allow other namespaces (#14606)

This commit is contained in:
Harrison Chase
2023-12-12 09:09:59 -08:00
committed by GitHub
parent ce61a8ca98
commit ad8d8f71aa

View File

@@ -63,6 +63,8 @@ class Reviver:
if len(namespace) == 1 and namespace[0] == "langchain":
raise ValueError(f"Invalid namespace: {value}")
# If namespace is in known namespaces, try to use mapping
if namespace[0] in DEFAULT_NAMESPACES:
# Get the importable path
key = tuple(namespace + [name])
if key not in SERIALIZABLE_MAPPING:
@@ -78,6 +80,10 @@ class Reviver:
mod = importlib.import_module(".".join(import_dir))
# Import class
cls = getattr(mod, import_obj)
# Otherwise, load by path
else:
mod = importlib.import_module(".".join(namespace))
cls = getattr(mod, name)
# The class must be a subclass of Serializable.
if not issubclass(cls, Serializable):