Skip to content

Commit b9165c5

Browse files
committed
Revert "fix: fixes type checking of tuples with primitive types"
This reverts commit 71fdd5f.
1 parent fd24e5f commit b9165c5

File tree

1 file changed

+52
-57
lines changed

1 file changed

+52
-57
lines changed

src/_algopy_testing/serialize.py

Lines changed: 52 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -25,71 +25,66 @@ def identity(i: _T) -> _T:
2525
return i
2626

2727

28-
def get_native_to_arc4_serializer(typ: type[_T]) -> _Serializer: # type: ignore[type-arg] # noqa: PLR0911, PLR0912
28+
def get_native_to_arc4_serializer(typ: type[_T]) -> _Serializer: # type: ignore[type-arg] # noqa: PLR0911
2929
from _algopy_testing import arc4
3030
from _algopy_testing.models import Account
3131
from _algopy_testing.primitives import BigUInt, Bytes, ImmutableArray, String
3232
from _algopy_testing.protocols import UInt64Backed
3333

34-
origin_typ = typing.get_origin(typ)
35-
36-
if inspect.isclass(typ) and issubclass(typ, arc4._ABIEncoded):
34+
if issubclass(typ, arc4._ABIEncoded):
3735
return _Serializer(
3836
native_type=typ, arc4_type=typ, native_to_arc4=identity, arc4_to_native=identity
3937
)
40-
# For types that are expected to be simple classes for these specific checks
41-
if inspect.isclass(typ):
42-
if issubclass(typ, bool):
43-
return _Serializer(
44-
native_type=typ,
45-
arc4_type=arc4.Bool,
46-
native_to_arc4=arc4.Bool,
47-
arc4_to_native=lambda n: n.native,
48-
)
49-
if issubclass(typ, UInt64Backed):
50-
return _Serializer(
51-
native_type=typ,
52-
arc4_type=arc4.UInt64,
53-
native_to_arc4=lambda n: arc4.UInt64(n.int_),
54-
arc4_to_native=lambda a: typ.from_int(a.native),
55-
)
56-
if issubclass(typ, BigUInt):
57-
return _Serializer(
58-
native_type=typ,
59-
arc4_type=arc4.UInt512,
60-
native_to_arc4=arc4.UInt512,
61-
arc4_to_native=lambda a: a.native,
62-
)
63-
if issubclass(typ, Account):
64-
return _Serializer(
65-
native_type=typ,
66-
arc4_type=arc4.Address,
67-
native_to_arc4=arc4.Address,
68-
arc4_to_native=lambda a: a.native,
69-
)
70-
if issubclass(typ, UInt64):
71-
return _Serializer(
72-
native_type=typ,
73-
arc4_type=arc4.UInt64,
74-
native_to_arc4=arc4.UInt64,
75-
arc4_to_native=lambda a: a.native,
76-
)
77-
if issubclass(typ, Bytes):
78-
return _Serializer(
79-
native_type=typ,
80-
arc4_type=arc4.DynamicBytes,
81-
native_to_arc4=arc4.DynamicBytes,
82-
arc4_to_native=lambda a: a.native,
83-
)
84-
if issubclass(typ, String):
85-
return _Serializer(
86-
native_type=typ,
87-
arc4_type=arc4.String,
88-
native_to_arc4=arc4.String,
89-
arc4_to_native=lambda a: a.native,
90-
)
91-
92-
if origin_typ is tuple or (inspect.isclass(typ) and issubclass(typ, tuple)):
38+
if issubclass(typ, bool):
39+
return _Serializer(
40+
native_type=typ,
41+
arc4_type=arc4.Bool,
42+
native_to_arc4=arc4.Bool,
43+
arc4_to_native=lambda n: n.native,
44+
)
45+
if issubclass(typ, UInt64Backed):
46+
return _Serializer(
47+
native_type=typ,
48+
arc4_type=arc4.UInt64,
49+
native_to_arc4=lambda n: arc4.UInt64(n.int_),
50+
arc4_to_native=lambda a: typ.from_int(a.native),
51+
)
52+
if issubclass(typ, BigUInt):
53+
return _Serializer(
54+
native_type=typ,
55+
arc4_type=arc4.UInt512,
56+
native_to_arc4=arc4.UInt512,
57+
arc4_to_native=lambda a: a.native,
58+
)
59+
if issubclass(typ, Account):
60+
return _Serializer(
61+
native_type=typ,
62+
arc4_type=arc4.Address,
63+
native_to_arc4=arc4.Address,
64+
arc4_to_native=lambda a: a.native,
65+
)
66+
if issubclass(typ, UInt64):
67+
return _Serializer(
68+
native_type=typ,
69+
arc4_type=arc4.UInt64,
70+
native_to_arc4=arc4.UInt64,
71+
arc4_to_native=lambda a: a.native,
72+
)
73+
if issubclass(typ, Bytes):
74+
return _Serializer(
75+
native_type=typ,
76+
arc4_type=arc4.DynamicBytes,
77+
native_to_arc4=arc4.DynamicBytes,
78+
arc4_to_native=lambda a: a.native,
79+
)
80+
if issubclass(typ, String):
81+
return _Serializer(
82+
native_type=typ,
83+
arc4_type=arc4.String,
84+
native_to_arc4=arc4.String,
85+
arc4_to_native=lambda a: a.native,
86+
)
87+
if issubclass(typ, tuple) or typing.get_origin(typ) is tuple:
9388
if typing.NamedTuple in getattr(typ, "__orig_bases__", []):
9489
tuple_fields: Sequence[type] = list(inspect.get_annotations(typ).values())
9590
else:

0 commit comments

Comments
 (0)