Implement serialization with msgpack library (#1716)

* Implement serialization with msgpack library

- encode custom python objects with a msgpack extension type, with constructor path string, and args encoded as nested msgpack doc

* Smaller msgpack extension types

* Update lock files

* lock

* Don't delegate to pydantic json

* Fix kafka serde

- should use our serializer to load, as inputs to subgraphs are serialized using it
This commit is contained in:
Nuno Campos
2024-09-16 14:06:42 -07:00
committed by GitHub
parent afc64c4f62
commit 3b05279e32
12 changed files with 893 additions and 114 deletions
@@ -226,13 +226,7 @@ class BasePostgresSaver(BaseCheckpointSaver):
return self.jsonplus_serde.loads(self.jsonplus_serde.dumps(metadata))
def _dump_metadata(self, metadata) -> str:
serialized_metadata_type, serialized_metadata = self.jsonplus_serde.dumps_typed(
metadata
)
if serialized_metadata_type != "json":
raise TypeError(
f"Failed to properly serialize metadata -- expected 'json', got '{serialized_metadata_type}'"
)
serialized_metadata = self.jsonplus_serde.dumps(metadata)
return serialized_metadata.decode()
def get_next_version(self, current: Optional[str], channel: ChannelProtocol) -> str: