base.py 639 B

12345678910111213141516171819202122232425262728293031
  1. from abc import ABC, abstractmethod
  2. from inspect import isclass
  3. from typing import (
  4. Any,
  5. Generic,
  6. TypeGuard,
  7. TypeVar,
  8. )
  9. from langgraph._internal._scratchpad import PregelScratchpad
  10. V = TypeVar("V")
  11. U = TypeVar("U")
  12. __all__ = ("ManagedValueSpec", "ManagedValueMapping")
  13. class ManagedValue(ABC, Generic[V]):
  14. @staticmethod
  15. @abstractmethod
  16. def get(scratchpad: PregelScratchpad) -> V: ...
  17. ManagedValueSpec = type[ManagedValue]
  18. def is_managed_value(value: Any) -> TypeGuard[ManagedValueSpec]:
  19. return isclass(value) and issubclass(value, ManagedValue)
  20. ManagedValueMapping = dict[str, ManagedValueSpec]