Coverage for langsmith/_internal/_context.py: 0%

15 statements  

« prev     ^ index     » next       coverage.py v7.10.1, created at 2025-12-11 16:15 -0800

1"""Shared context (ContextVars and global defaults) that configure tracing.""" 

2 

3import contextvars 

4from typing import TYPE_CHECKING, Any, Literal, Optional, Union 

5 

6if TYPE_CHECKING: 

7 from langsmith.client import Client 

8 from langsmith.run_trees import RunTree 

9else: 

10 Client = Any # type: ignore[assignment] 

11 RunTree = Any # type: ignore[assignment] 

12 

13_PROJECT_NAME = contextvars.ContextVar[Optional[str]]("_PROJECT_NAME", default=None) 

14_TAGS = contextvars.ContextVar[Optional[list[str]]]("_TAGS", default=None) 

15_METADATA = contextvars.ContextVar[Optional[dict[str, Any]]]("_METADATA", default=None) 

16 

17_TRACING_ENABLED = contextvars.ContextVar[Optional[Union[bool, Literal["local"]]]]( 

18 "_TRACING_ENABLED", default=None 

19) 

20_CLIENT = contextvars.ContextVar[Optional["Client"]]("_CLIENT", default=None) 

21_PARENT_RUN_TREE = contextvars.ContextVar[Optional["RunTree"]]( 

22 "_PARENT_RUN_TREE", default=None 

23) 

24# Not thread-local, so you can set this process-wide (before asyncio.run, etc.) 

25_GLOBAL_PROJECT_NAME: Optional[str] = None 

26_GLOBAL_TAGS: Optional[list[str]] = None 

27_GLOBAL_METADATA: Optional[dict[str, Any]] = None 

28_GLOBAL_TRACING_ENABLED: Optional[Union[bool, Literal["local"]]] = None 

29_GLOBAL_CLIENT: Optional["Client"] = None