lib.data: no loop required, we return or die.
This commit is contained in:
parent
cdf8fcc32f
commit
f4b013ac73
|
@ -674,14 +674,13 @@ class View(ValueCastable):
|
|||
value = self.__target[field.offset:field.offset + field.width]
|
||||
# Field guarantees that the shape-castable object is well-formed, so there is no need
|
||||
# to handle erroneous cases here.
|
||||
while isinstance(shape, ShapeCastable):
|
||||
if hasattr(shape, "__call__"):
|
||||
value = shape(value)
|
||||
if not isinstance(value, (Value, ValueCastable)):
|
||||
raise TypeError("{!r}.__call__() must return a value or "
|
||||
"a value-castable object, not {!r}"
|
||||
.format(shape, value))
|
||||
return value
|
||||
if isinstance(shape, ShapeCastable):
|
||||
value = shape(value)
|
||||
if not isinstance(value, (Value, ValueCastable)):
|
||||
raise TypeError("{!r}.__call__() must return a value or "
|
||||
"a value-castable object, not {!r}"
|
||||
.format(shape, value))
|
||||
return value
|
||||
if Shape.cast(shape).signed:
|
||||
return value.as_signed()
|
||||
else:
|
||||
|
|
Loading…
Reference in a new issue