Home / Function/ _compute_allowed_class_paths() — langchain Function Reference

_compute_allowed_class_paths() — langchain Function Reference

Architecture documentation for the _compute_allowed_class_paths() function in load.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  c584d861_df02_97d8_4142_01d7bb085981["_compute_allowed_class_paths()"]
  05e0e20a_4425_e962_37a4_c6c6f08a700d["load.py"]
  c584d861_df02_97d8_4142_01d7bb085981 -->|defined in| 05e0e20a_4425_e962_37a4_c6c6f08a700d
  b3f6aa7f_cc79_a63c_c7f8_32c14bbf6343["__init__()"]
  b3f6aa7f_cc79_a63c_c7f8_32c14bbf6343 -->|calls| c584d861_df02_97d8_4142_01d7bb085981
  style c584d861_df02_97d8_4142_01d7bb085981 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/load/load.py lines 221–265

def _compute_allowed_class_paths(
    allowed_objects: Iterable[AllowedObject],
    import_mappings: dict[tuple[str, ...], tuple[str, ...]],
) -> set[tuple[str, ...]]:
    """Return allowed class paths from an explicit list of classes.

    A class path is a tuple of strings identifying a serializable class, derived from
    `Serializable.lc_id()`. For example: `('langchain_core', 'messages', 'AIMessage')`.

    Args:
        allowed_objects: Iterable of `Serializable` subclasses to allow.
        import_mappings: Mapping of legacy class paths to current class paths.

    Returns:
        Set of allowed class paths.

    Example:
        ```python
        # Allow a specific class
        _compute_allowed_class_paths([MyPrompt], {}) ->
            {("langchain_core", "prompts", "MyPrompt")}

        # Include legacy paths that map to the same class
        import_mappings = {("old", "Prompt"): ("langchain_core", "prompts", "MyPrompt")}
        _compute_allowed_class_paths([MyPrompt], import_mappings) ->
            {("langchain_core", "prompts", "MyPrompt"), ("old", "Prompt")}
        ```
    """
    allowed_objects_list = list(allowed_objects)

    allowed_class_paths: set[tuple[str, ...]] = set()
    for allowed_obj in allowed_objects_list:
        if not isinstance(allowed_obj, type) or not issubclass(
            allowed_obj, Serializable
        ):
            msg = "allowed_objects must contain Serializable subclasses."
            raise TypeError(msg)

        class_path = tuple(allowed_obj.lc_id())
        allowed_class_paths.add(class_path)
        # Add legacy paths that map to the same class.
        for mapping_key, mapping_value in import_mappings.items():
            if tuple(mapping_value) == class_path:
                allowed_class_paths.add(mapping_key)
    return allowed_class_paths

Subdomains

Called By

Frequently Asked Questions

What does _compute_allowed_class_paths() do?
_compute_allowed_class_paths() is a function in the langchain codebase, defined in libs/core/langchain_core/load/load.py.
Where is _compute_allowed_class_paths() defined?
_compute_allowed_class_paths() is defined in libs/core/langchain_core/load/load.py at line 221.
What calls _compute_allowed_class_paths()?
_compute_allowed_class_paths() is called by 1 function(s): __init__.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free