Home / File/ test_dump.py — langchain Source File

test_dump.py — langchain Source File

Architecture documentation for test_dump.py, a python file in the langchain codebase. 8 imports, 0 dependents.

File python LangChainCore MessageInterface 8 imports 5 functions 4 classes

Entity Profile

Dependency Diagram

graph LR
  fa1913ed_53d8_ed72_5806_c4cd35bee49c["test_dump.py"]
  9d14ea65_8b2e_6721_a947_acc89905651f["json"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> 9d14ea65_8b2e_6721_a947_acc89905651f
  0029f612_c503_ebcf_a452_a0fae8c9f2c3["os"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> 0029f612_c503_ebcf_a452_a0fae8c9f2c3
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> feec1ec4_6917_867b_d228_b134d0ff8099
  23cb242e_1754_041d_200a_553fcb8abe1b["unittest.mock"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> 23cb242e_1754_041d_200a_553fcb8abe1b
  f69d6389_263d_68a4_7fbf_f14c0602a9ba["pytest"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> f69d6389_263d_68a4_7fbf_f14c0602a9ba
  f4426504_dae2_8ae3_99a7_67cc4d1997ba["langchain_core.load.dump"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> f4426504_dae2_8ae3_99a7_67cc4d1997ba
  e082ede2_868f_7149_8977_a2af7e5aeb38["langchain_core.load.serializable"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> e082ede2_868f_7149_8977_a2af7e5aeb38
  dd5e7909_a646_84f1_497b_cae69735550e["pydantic"]
  fa1913ed_53d8_ed72_5806_c4cd35bee49c --> dd5e7909_a646_84f1_497b_cae69735550e
  style fa1913ed_53d8_ed72_5806_c4cd35bee49c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Test for Serializable base class."""

import json
import os
from typing import Any
from unittest.mock import patch

import pytest
from langchain_core.load.dump import dumps
from langchain_core.load.serializable import Serializable
from pydantic import ConfigDict, Field, model_validator


class Person(Serializable):
    secret: str

    you_can_see_me: str = "hello"

    @classmethod
    def is_lc_serializable(cls) -> bool:
        return True

    @property
    def lc_secrets(self) -> dict[str, str]:
        return {"secret": "SECRET"}

    @property
    def lc_attributes(self) -> dict[str, str]:
        return {"you_can_see_me": self.you_can_see_me}


class SpecialPerson(Person):
    another_secret: str

    another_visible: str = "bye"

    @classmethod
    def get_lc_namespace(cls) -> list[str]:
        return ["my", "special", "namespace"]

    # Gets merged with parent class's secrets
    @property
    def lc_secrets(self) -> dict[str, str]:
        return {"another_secret": "ANOTHER_SECRET"}

    # Gets merged with parent class's attributes
    @property
    def lc_attributes(self) -> dict[str, str]:
        return {"another_visible": self.another_visible}


class NotSerializable:
    pass


def test_person(snapshot: Any) -> None:
    p = Person(secret="parrot party")  # noqa: S106
    assert dumps(p, pretty=True) == snapshot
    sp = SpecialPerson(another_secret="Wooo", secret="Hmm")  # noqa: S106
    assert dumps(sp, pretty=True) == snapshot
// ... (109 more lines)

Domain

Subdomains

Dependencies

  • json
  • langchain_core.load.dump
  • langchain_core.load.serializable
  • os
  • pydantic
  • pytest
  • typing
  • unittest.mock

Frequently Asked Questions

What does test_dump.py do?
test_dump.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, MessageInterface subdomain.
What functions are defined in test_dump.py?
test_dump.py defines 5 function(s): test_aliases_hidden, test_person, test_person_with_invalid_kwargs, test_person_with_kwargs, test_typeerror.
What does test_dump.py depend on?
test_dump.py imports 8 module(s): json, langchain_core.load.dump, langchain_core.load.serializable, os, pydantic, pytest, typing, unittest.mock.
Where is test_dump.py in the architecture?
test_dump.py is located at libs/langchain/tests/unit_tests/load/test_dump.py (domain: LangChainCore, subdomain: MessageInterface, directory: libs/langchain/tests/unit_tests/load).

Analyze Your Own Codebase

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

Try Supermodel Free