Home / File/ test_async_base_tracer.py — langchain Source File

test_async_base_tracer.py — langchain Source File

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

File python CoreAbstractions Serialization 12 imports 13 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  fafe6e9a_57bb_c323_638d_461ac496c1f9["test_async_base_tracer.py"]
  af34f08b_0ede_2b87_0db6_983d74ed0249["datetime"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> af34f08b_0ede_2b87_0db6_983d74ed0249
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  8dfa0cac_d802_3ccd_f710_43a5e70da3a5["uuid"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 8dfa0cac_d802_3ccd_f710_43a5e70da3a5
  120e2591_3e15_b895_72b6_cb26195e40a6["pytest"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 120e2591_3e15_b895_72b6_cb26195e40a6
  0a0b1957_08a9_6988_c388_b08d8a4c17ad["freezegun"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 0a0b1957_08a9_6988_c388_b08d8a4c17ad
  f3bc7443_c889_119d_0744_aacc3620d8d2["langchain_core.callbacks"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> f3bc7443_c889_119d_0744_aacc3620d8d2
  75137834_4ba7_dc43_7ec5_182c05eceedf["langchain_core.exceptions"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 75137834_4ba7_dc43_7ec5_182c05eceedf
  d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> d758344f_537f_649e_f467_b9d7442e86df
  ac2a9b92_4484_491e_1b48_ec85e71e1d58["langchain_core.outputs"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> ac2a9b92_4484_491e_1b48_ec85e71e1d58
  707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3["langchain_core.tracers._compat"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3
  59d7001f_fb28_1819_31fc_7fb0380a8b32["langchain_core.tracers.base"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 59d7001f_fb28_1819_31fc_7fb0380a8b32
  17e2fb09_6b0f_338f_1319_77bc43602969["langchain_core.tracers.schemas"]
  fafe6e9a_57bb_c323_638d_461ac496c1f9 --> 17e2fb09_6b0f_338f_1319_77bc43602969
  style fafe6e9a_57bb_c323_638d_461ac496c1f9 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 uuid import uuid4

import pytest
from freezegun import freeze_time

from langchain_core.callbacks import AsyncCallbackManager
from langchain_core.exceptions import TracerException
from langchain_core.messages import HumanMessage
from langchain_core.outputs import LLMResult
from langchain_core.tracers._compat import pydantic_to_dict
from langchain_core.tracers.base import AsyncBaseTracer
from langchain_core.tracers.schemas import Run

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


class FakeAsyncTracer(AsyncBaseTracer):
    """Fake tracer to test async based tracers."""

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

    async def _persist_run(self, run: Run) -> None:
        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


@freeze_time("2023-01-01")
async def test_tracer_llm_run() -> None:
    """Test tracer on an LLM run."""
    uuid = uuid4()
    compare_run = Run(
// ... (556 more lines)

Subdomains

Dependencies

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

Frequently Asked Questions

What does test_async_base_tracer.py do?
test_async_base_tracer.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, Serialization subdomain.
What functions are defined in test_async_base_tracer.py?
test_async_base_tracer.py defines 13 function(s): _compare_run_with_error, 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, test_tracer_multiple_llm_runs, test_tracer_nested_run, and 3 more.
What does test_async_base_tracer.py depend on?
test_async_base_tracer.py imports 12 module(s): datetime, freezegun, langchain_core.callbacks, langchain_core.exceptions, langchain_core.messages, langchain_core.outputs, langchain_core.tracers._compat, langchain_core.tracers.base, and 4 more.
Where is test_async_base_tracer.py in the architecture?
test_async_base_tracer.py is located at libs/core/tests/unit_tests/tracers/test_async_base_tracer.py (domain: CoreAbstractions, subdomain: Serialization, 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