This repository was archived by the owner on Sep 9, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
This repository was archived by the owner on Sep 9, 2024. It is now read-only.
tojson and primitive fails when class is derived #185
Copy link
Copy link
Closed
Description
- typical version: 2.7.4
- Python version: 3.8.11
- Operating System: Linux
Description
Try to make one class inherit another class. When using tojson
or primitive
on derived class get RecursionError
.
What I Did
import typic
@typic.klass
class A:
a :int
@typic.klass
class B(A):
b:int
b = B(1,2)
try:
b.tojson()
except RecursionError as e:
print(e)
b.primitive()
Traceback:
/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/klass.py:236: UserWarning: Keyword `always` will default to `False` in a future version. You should update your code to either explicitly declare `always=True` or update your code to not assume values will be coerced when set.
return make_typedclass(
maximum recursion depth exceeded while calling a Python object
Traceback (most recent call last):
File "test.py", line 14, in <module>
b.tojson()
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/ext/json.py", line 34, in tojson
return __dumps(__prim(o), **kwargs)
File "<typical generated serializer__5288976827520983837>", line 7, in serializer__5288976827520983837
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/serde/resolver.py", line 670, in iterator
return __fields(o)
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/serde/resolver.py", line 670, in iterator
return __fields(o)
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/serde/resolver.py", line 670, in iterator
return __fields(o)
[Previous line repeated 496 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 17, in <module>
b.primitive()
File "<typical generated serializer__5288976827520983837>", line 7, in serializer__5288976827520983837
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/serde/resolver.py", line 670, in iterator
return __fields(o)
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/serde/resolver.py", line 670, in iterator
return __fields(o)
File "/nix/store/6v5r9jyh7c96gh3j4bg8niakhk34dbrk-python3.8-typical-2.7.4/lib/python3.8/site-packages/typic/serde/resolver.py", line 670, in iterator
return __fields(o)
[Previous line repeated 496 more times]
RecursionError: maximum recursion depth exceeded
Metadata
Metadata
Assignees
Labels
No labels