-
Notifications
You must be signed in to change notification settings - Fork 202
Open
Description
Adding this issue to properly document the PR:
To make the RPC communication work properly with non-Python libraries, the serialization should be done with JSON (or another non-Python proprietary) and not with Python Pickle.
The existing JsonRPC serializer is having the following issues:
- It's not working with Python 3+
- The exceptions are not properly unserialized.
- JsonRPC exception serializer does not include Python module which is important for dynamic class creation
The fix to both of those issues is available here - #418
Exception object serialization is especially challenging, since they need to be recreated dynamically when the class is known or not known on the client size.
- When the class is registered (i.e. standard Python exceptions, asserts) it is handled with
pydoc.locatestandard function. - When the class is custom (i.e. custom derivative of
Exceptionwhich is not registered on client side. The dynamic creation is done withtypeconstruction.
Metadata
Metadata
Assignees
Labels
No labels