types: fixing type casts.
This commit is contained in:
@ -257,12 +257,11 @@ class NodeExecutionContext(BaseContext, WithStatistics):
|
|||||||
:param mixed value: message
|
:param mixed value: message
|
||||||
"""
|
"""
|
||||||
for message in messages:
|
for message in messages:
|
||||||
if isinstance(message, Token):
|
if not isinstance(message, Token):
|
||||||
self.input.put(message)
|
message = ensure_tuple(message, cls=self._input_type, length=self._input_length)
|
||||||
elif self._input_type:
|
if self._input_length is None:
|
||||||
self.input.put(ensure_tuple(message, cls=self._input_type))
|
self._input_length = len(message)
|
||||||
else:
|
self.input.put(message)
|
||||||
self.input.put(ensure_tuple(message))
|
|
||||||
|
|
||||||
def write_sync(self, *messages):
|
def write_sync(self, *messages):
|
||||||
self.write(BEGIN, *messages, END)
|
self.write(BEGIN, *messages, END)
|
||||||
|
|||||||
@ -7,7 +7,23 @@ class sortedlist(list):
|
|||||||
bisect.insort(self, x)
|
bisect.insort(self, x)
|
||||||
|
|
||||||
|
|
||||||
def ensure_tuple(tuple_or_mixed, *, cls=tuple):
|
def _with_length_check(f):
|
||||||
|
@functools.wraps(f)
|
||||||
|
def _wrapped(*args, length=None, **kwargs):
|
||||||
|
nonlocal f
|
||||||
|
result = f(*args, **kwargs)
|
||||||
|
if length is not None:
|
||||||
|
if length != len(result):
|
||||||
|
raise TypeError(
|
||||||
|
'Length check failed, expected {} fields but got {}: {!r}.'.format(length, len(result), result)
|
||||||
|
)
|
||||||
|
return result
|
||||||
|
|
||||||
|
return _wrapped
|
||||||
|
|
||||||
|
|
||||||
|
@_with_length_check
|
||||||
|
def ensure_tuple(tuple_or_mixed, *, cls=None):
|
||||||
"""
|
"""
|
||||||
If it's not a tuple, let's make a tuple of one item.
|
If it's not a tuple, let's make a tuple of one item.
|
||||||
Otherwise, not changed.
|
Otherwise, not changed.
|
||||||
@ -16,6 +32,8 @@ def ensure_tuple(tuple_or_mixed, *, cls=tuple):
|
|||||||
:return: tuple
|
:return: tuple
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
if cls is None:
|
||||||
|
cls = tuple
|
||||||
|
|
||||||
if isinstance(tuple_or_mixed, cls):
|
if isinstance(tuple_or_mixed, cls):
|
||||||
return tuple_or_mixed
|
return tuple_or_mixed
|
||||||
|
|||||||
Reference in New Issue
Block a user