Coverage for /usr/local/lib/python3.12/site-packages/prefect/client/schemas/__init__.py: 58%

20 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 11:21 +0000

1import importlib 1a

2import sys 1a

3from typing import Any, TYPE_CHECKING 1a

4 

5if TYPE_CHECKING: 5 ↛ 6line 5 didn't jump to line 6 because the condition on line 5 was never true1a

6 from .actions import BlockTypeUpdate, StateCreate 

7 from .objects import ( 

8 DEFAULT_BLOCK_SCHEMA_VERSION, 

9 BlockDocument, 

10 BlockSchema, 

11 BlockType, 

12 FlowRun, 

13 FlowRunPolicy, 

14 FlowRunResult, 

15 State, 

16 StateDetails, 

17 StateType, 

18 TaskRun, 

19 RunInput, 

20 TaskRunPolicy, 

21 TaskRunResult, 

22 Workspace, 

23 ) 

24 from .responses import ( 

25 OrchestrationResult, 

26 SetStateStatus, 

27 StateAbortDetails, 

28 StateAcceptDetails, 

29 StateRejectDetails, 

30 ) 

31 

32_public_api = { 1a

33 "BlockDocument": (__package__, ".objects"), 

34 "BlockSchema": (__package__, ".objects"), 

35 "BlockType": (__package__, ".objects"), 

36 "BlockTypeUpdate": (__package__, ".actions"), 

37 "DEFAULT_BLOCK_SCHEMA_VERSION": (__package__, ".objects"), 

38 "FlowRun": (__package__, ".objects"), 

39 "FlowRunPolicy": (__package__, ".objects"), 

40 "FlowRunResult": (__package__, ".objects"), 

41 "OrchestrationResult": (__package__, ".responses"), 

42 "SetStateStatus": (__package__, ".responses"), 

43 "State": (__package__, ".objects"), 

44 "StateAbortDetails": (__package__, ".responses"), 

45 "StateAcceptDetails": (__package__, ".responses"), 

46 "StateCreate": (__package__, ".actions"), 

47 "StateDetails": (__package__, ".objects"), 

48 "StateRejectDetails": (__package__, ".responses"), 

49 "StateType": (__package__, ".objects"), 

50 "TaskRun": (__package__, ".objects"), 

51 "TaskRunInput": (__package__, ".objects"), 

52 "TaskRunPolicy": (__package__, ".objects"), 

53 "TaskRunResult": (__package__, ".objects"), 

54 "Workspace": (__package__, ".objects"), 

55} 

56 

57__all__ = [ 1a

58 "BlockDocument", 

59 "BlockSchema", 

60 "BlockType", 

61 "BlockTypeUpdate", 

62 "DEFAULT_BLOCK_SCHEMA_VERSION", 

63 "FlowRun", 

64 "FlowRunPolicy", 

65 "FlowRunResult", 

66 "OrchestrationResult", 

67 "SetStateStatus", 

68 "State", 

69 "StateAbortDetails", 

70 "StateAcceptDetails", 

71 "StateCreate", 

72 "StateDetails", 

73 "StateRejectDetails", 

74 "StateType", 

75 "TaskRun", 

76 "RunInput", 

77 "TaskRunPolicy", 

78 "TaskRunResult", 

79 "Workspace", 

80] 

81 

82 

83def __getattr__(attr_name: str) -> Any: 1a

84 try: 1a

85 if (dynamic_attr := _public_api.get(attr_name)) is None: 85 ↛ 86line 85 didn't jump to line 86 because the condition on line 85 was never true1a

86 raise AttributeError(f"module {__name__} has no attribute {attr_name}") 

87 

88 package, mname = dynamic_attr 1a

89 module = importlib.import_module(mname, package=package) 1a

90 return getattr(module, attr_name) 1a

91 except ModuleNotFoundError as ex: 

92 mname, _, attr = (ex.name or "").rpartition(".") 

93 ctx = {"name": mname, "obj": attr} if sys.version_info >= (3, 10) else {} 

94 raise AttributeError(f"module {mname} has no attribute {attr}", **ctx) from ex