Home / File/ test_base_tracer.py — langchain Source File

test_base_tracer.py — langchain Source File

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

File python CoreAbstractions RunnableInterface 15 imports 15 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  f1e82fd5_1983_e6d8_530a_dd72a95126b8["test_base_tracer.py"]
  af34f08b_0ede_2b87_0db6_983d74ed0249["datetime"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> af34f08b_0ede_2b87_0db6_983d74ed0249
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  525a7d6f_f455_56e3_854a_c8a7da4a1417["unittest.mock"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 525a7d6f_f455_56e3_854a_c8a7da4a1417
  8dfa0cac_d802_3ccd_f710_43a5e70da3a5["uuid"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 8dfa0cac_d802_3ccd_f710_43a5e70da3a5
  023156c8_e306_6129_d953_9f1dac71e6fd["langsmith"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 023156c8_e306_6129_d953_9f1dac71e6fd
  120e2591_3e15_b895_72b6_cb26195e40a6["pytest"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 120e2591_3e15_b895_72b6_cb26195e40a6
  0a0b1957_08a9_6988_c388_b08d8a4c17ad["freezegun"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 0a0b1957_08a9_6988_c388_b08d8a4c17ad
  f3bc7443_c889_119d_0744_aacc3620d8d2["langchain_core.callbacks"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> f3bc7443_c889_119d_0744_aacc3620d8d2
  75137834_4ba7_dc43_7ec5_182c05eceedf["langchain_core.exceptions"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 75137834_4ba7_dc43_7ec5_182c05eceedf
  d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> d758344f_537f_649e_f467_b9d7442e86df
  ac2a9b92_4484_491e_1b48_ec85e71e1d58["langchain_core.outputs"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> ac2a9b92_4484_491e_1b48_ec85e71e1d58
  2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c["langchain_core.runnables"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c
  707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3["langchain_core.tracers._compat"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3
  59d7001f_fb28_1819_31fc_7fb0380a8b32["langchain_core.tracers.base"]
  f1e82fd5_1983_e6d8_530a_dd72a95126b8 --> 59d7001f_fb28_1819_31fc_7fb0380a8b32
  style f1e82fd5_1983_e6d8_530a_dd72a95126b8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Test Tracer classes."""

from __future__ import annotations

from datetime import datetime, timezone
from typing import Any
from unittest.mock import MagicMock
from uuid import uuid4

import langsmith
import pytest
from freezegun import freeze_time
from langsmith import Client, traceable

from langchain_core.callbacks import CallbackManager
from langchain_core.exceptions import TracerException
from langchain_core.messages import HumanMessage
from langchain_core.outputs import LLMResult
from langchain_core.runnables import chain as as_runnable
from langchain_core.tracers._compat import pydantic_to_dict
from langchain_core.tracers.base import BaseTracer
from langchain_core.tracers.schemas import Run

SERIALIZED = {"id": ["llm"]}
SERIALIZED_CHAT = {"id": ["chat_model"]}


class FakeTracer(BaseTracer):
    """Fake tracer that records LangChain execution."""

    def __init__(self) -> None:
        """Initialize the tracer."""
        super().__init__()
        self.runs: list[Run] = []

    def _persist_run(self, run: Run) -> None:
        """Persist a run."""
        self.runs.append(run)


def _compare_run_with_error(run: Any, expected_run: Any) -> None:
    if run.child_runs:
        assert len(expected_run.child_runs) == len(run.child_runs)
        for received, expected in zip(
            run.child_runs, expected_run.child_runs, strict=False
        ):
            _compare_run_with_error(received, expected)
    received = pydantic_to_dict(run, exclude={"child_runs"})
    received_err = received.pop("error")
    expected = pydantic_to_dict(expected_run, exclude={"child_runs"})
    expected_err = expected.pop("error")

    assert received == expected
    if expected_err is not None:
        assert received_err is not None
        assert expected_err in received_err
    else:
        assert received_err is None


// ... (586 more lines)

Subdomains

Dependencies

  • datetime
  • freezegun
  • langchain_core.callbacks
  • langchain_core.exceptions
  • langchain_core.messages
  • langchain_core.outputs
  • langchain_core.runnables
  • langchain_core.tracers._compat
  • langchain_core.tracers.base
  • langchain_core.tracers.schemas
  • langsmith
  • pytest
  • typing
  • unittest.mock
  • uuid

Frequently Asked Questions

What does test_base_tracer.py do?
test_base_tracer.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in test_base_tracer.py?
test_base_tracer.py defines 15 function(s): _compare_run_with_error, _get_mock_client, test_traceable_to_tracing, test_tracer_chain_run, test_tracer_chain_run_on_error, test_tracer_chat_model_run, test_tracer_llm_run, test_tracer_llm_run_errors_no_start, test_tracer_llm_run_on_error, test_tracer_llm_run_on_error_callback, and 5 more.
What does test_base_tracer.py depend on?
test_base_tracer.py imports 15 module(s): datetime, freezegun, langchain_core.callbacks, langchain_core.exceptions, langchain_core.messages, langchain_core.outputs, langchain_core.runnables, langchain_core.tracers._compat, and 7 more.
Where is test_base_tracer.py in the architecture?
test_base_tracer.py is located at libs/core/tests/unit_tests/tracers/test_base_tracer.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/tests/unit_tests/tracers).

Analyze Your Own Codebase

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

Try Supermodel Free