Coverage for greyhorse/app/abc/functional/context.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.11.3, created at 2026-05-12 22:07 +0300

1from __future__ import annotations 

2 

3from abc import ABC, abstractmethod 

4from enum import IntEnum 

5from typing import Any 

6 

7from greyhorse.app.contexts import SyncContext 

8from greyhorse.app.private.resolving import Resolver 

9 

10from ..collections.selectors import Selector 

11from .operators import Operator 

12 

13 

14class OperationContext(SyncContext[Selector[type, Any]], ABC): 

15 @property 

16 @abstractmethod 

17 def scope[S: IntEnum](self) -> S | None: ... 

18 

19 @abstractmethod 

20 def context[S: IntEnum](self, scope: S | None = None) -> OperationContext: ... 

21 

22 @abstractmethod 

23 def context_resolver[S: IntEnum](self, scope: S | None = None) -> Resolver: ... 

24 

25 @abstractmethod 

26 def advance(self) -> OperationContext: ... 

27 

28 

29class OperatorContext(ABC): 

30 """Abstract lifecycle manager for an Operator and its fragment-resolved dependencies.""" 

31 

32 @property 

33 @abstractmethod 

34 def operator(self) -> Operator: ... 

35 

36 @abstractmethod 

37 def setup(self, **external: Any) -> None: ... 

38 

39 @abstractmethod 

40 def resume(self) -> None: ... 

41 

42 @abstractmethod 

43 def pause(self) -> None: ... 

44 

45 @abstractmethod 

46 def teardown(self) -> None: ...