typed_python
typed_python copied to clipboard
Serializer cannot deserialize Alternatives of the same name and signature in different modules
Given three files:
#module_1.py
from typed_python import Alternative, SerializationContext, Entrypoint
def clone(x):
return SerializationContext().deserialize(SerializationContext().serialize(x))
@Entrypoint
def test_alternative_hashing():
A = Alternative("A", A=dict(a=int))
print('A from module 1', A, 'clones to', clone(A))
return A
test_alternative_hashing()
#module_2.py
from typed_python import Alternative, SerializationContext, Entrypoint
from alternative_serialisation_module import clone
@Entrypoint
def test_alternative_hashing_2():
A = Alternative("A", A=dict(a=int))
print('A from module 2', A, 'clones to', clone(A))
return A
test_alternative_hashing_2()
#module_3.py
from module_1 import test_alternative_hashing
from module_2 import test_alternative_hashing_2
Run module_3.py
.
Expected output
A from module 1 <class 'module_1.A'> clones to <class 'module_1.A'>
A from module 2 <class 'module_2.A'> clones to <class 'module_2.A'>
Actual output
A from module 1 <class 'module_1.A'> clones to <class 'module_1.A'>
A from module 2 <class 'module_2.A'> clones to <class 'module_1.A'>