Coverage for langsmith/_internal/_beta_decorator.py: 23%

13 statements  

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

1import functools 

2import warnings 

3from typing import Callable 

4 

5 

6class LangSmithBetaWarning(UserWarning): 

7 """This is a warning specific to the LangSmithBeta module.""" 

8 

9 

10@functools.lru_cache(maxsize=100) 

11def _warn_once(message: str, stacklevel: int = 2) -> None: 

12 warnings.warn(message, LangSmithBetaWarning, stacklevel=stacklevel) 

13 

14 

15def warn_beta(func: Callable) -> Callable: 

16 @functools.wraps(func) 

17 def wrapper(*args, **kwargs): 

18 _warn_once(f"Function {func.__name__} is in beta.", stacklevel=3) 

19 return func(*args, **kwargs) 

20 

21 return wrapper