Skip to content

Add pickle / cloudpickle default support to the Registry #309

@JeremyWurbs

Description

@JeremyWurbs

Description

Add a default Materializer argument for the Registry (default to None). Make sure support works for the ZenML CloudpickleMaterializer.

E.g. allow something like:

from mindtrace.registry import Registry
from zenml.materializers import CloudpickleMaterializer

registry = Registry(default_materializer=CloudpickleMaterializer)

Doing so should allow default (cloud)pickle behavior, e.g.

# Save methods
f = lambda x: x + 1
registry.save("test:lambda", f)
y = registry["test:lambda"](1)

# Define serialization through Python's standard __reduce__
class Point:
    def __init__(self, x): self.x = x
    def __reduce__(self): return (Point, (self.x,))

registry.save("test:point", Point(5))
point = registry.load("test:point")

Acceptance Criteria

  • 100% testing coverage

Priority

Low (cleanup or optional enhancement)

Estimated Effort (Story Points)

3 (2 days)

Metadata

Metadata

Assignees

Labels

good first issueGood for newcomersmindtrace-registryIssues raised from registry module in mindtrace package

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions