laminar integration (#2887)
This commit is contained in:
47
skyvern/forge/sdk/trace/base.py
Normal file
47
skyvern/forge/sdk/trace/base.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any, Awaitable, Callable, ParamSpec, TypeVar
|
||||
|
||||
P = ParamSpec("P")
|
||||
R = TypeVar("R")
|
||||
|
||||
|
||||
class BaseTrace(ABC):
|
||||
@abstractmethod
|
||||
def traced(
|
||||
self,
|
||||
name: str | None = None,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
tags: list[str] | None = None,
|
||||
**kwargs: Any,
|
||||
) -> Callable[[Callable[P, R]], Callable[P, R]]:
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def traced_async(
|
||||
self,
|
||||
name: str | None = None,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
tags: list[str] | None = None,
|
||||
**kwargs: Any,
|
||||
) -> Callable[[Callable[P, Awaitable[R]]], Callable[P, Awaitable[R]]]:
|
||||
pass
|
||||
|
||||
|
||||
class NoOpTrace(BaseTrace):
|
||||
def traced(
|
||||
self,
|
||||
name: str | None = None,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
tags: list[str] | None = None,
|
||||
**kwargs: Any,
|
||||
) -> Callable[[Callable[P, R]], Callable[P, R]]:
|
||||
return lambda func: func
|
||||
|
||||
def traced_async(
|
||||
self,
|
||||
name: str | None = None,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
tags: list[str] | None = None,
|
||||
**kwargs: Any,
|
||||
) -> Callable[[Callable[P, Awaitable[R]]], Callable[P, Awaitable[R]]]:
|
||||
return lambda func: func
|
||||
Reference in New Issue
Block a user