azure-functions-durable 1.2.9__py3-none-any.whl → 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. azure/durable_functions/__init__.py +81 -81
  2. azure/durable_functions/constants.py +9 -9
  3. azure/durable_functions/decorators/__init__.py +3 -3
  4. azure/durable_functions/decorators/durable_app.py +260 -249
  5. azure/durable_functions/decorators/metadata.py +109 -109
  6. azure/durable_functions/entity.py +129 -125
  7. azure/durable_functions/models/DurableEntityContext.py +201 -201
  8. azure/durable_functions/models/DurableHttpRequest.py +58 -58
  9. azure/durable_functions/models/DurableOrchestrationBindings.py +66 -66
  10. azure/durable_functions/models/DurableOrchestrationClient.py +812 -781
  11. azure/durable_functions/models/DurableOrchestrationContext.py +761 -707
  12. azure/durable_functions/models/DurableOrchestrationStatus.py +156 -156
  13. azure/durable_functions/models/EntityStateResponse.py +23 -23
  14. azure/durable_functions/models/FunctionContext.py +7 -7
  15. azure/durable_functions/models/OrchestrationRuntimeStatus.py +32 -32
  16. azure/durable_functions/models/OrchestratorState.py +117 -116
  17. azure/durable_functions/models/PurgeHistoryResult.py +33 -33
  18. azure/durable_functions/models/ReplaySchema.py +9 -8
  19. azure/durable_functions/models/RetryOptions.py +69 -69
  20. azure/durable_functions/models/RpcManagementOptions.py +86 -86
  21. azure/durable_functions/models/Task.py +540 -426
  22. azure/durable_functions/models/TaskOrchestrationExecutor.py +352 -336
  23. azure/durable_functions/models/TokenSource.py +56 -56
  24. azure/durable_functions/models/__init__.py +26 -24
  25. azure/durable_functions/models/actions/Action.py +23 -23
  26. azure/durable_functions/models/actions/ActionType.py +18 -18
  27. azure/durable_functions/models/actions/CallActivityAction.py +41 -41
  28. azure/durable_functions/models/actions/CallActivityWithRetryAction.py +45 -45
  29. azure/durable_functions/models/actions/CallEntityAction.py +46 -46
  30. azure/durable_functions/models/actions/CallHttpAction.py +35 -35
  31. azure/durable_functions/models/actions/CallSubOrchestratorAction.py +40 -40
  32. azure/durable_functions/models/actions/CallSubOrchestratorWithRetryAction.py +44 -44
  33. azure/durable_functions/models/actions/CompoundAction.py +35 -35
  34. azure/durable_functions/models/actions/ContinueAsNewAction.py +36 -36
  35. azure/durable_functions/models/actions/CreateTimerAction.py +48 -48
  36. azure/durable_functions/models/actions/NoOpAction.py +35 -35
  37. azure/durable_functions/models/actions/SignalEntityAction.py +47 -47
  38. azure/durable_functions/models/actions/WaitForExternalEventAction.py +63 -63
  39. azure/durable_functions/models/actions/WhenAllAction.py +14 -14
  40. azure/durable_functions/models/actions/WhenAnyAction.py +14 -14
  41. azure/durable_functions/models/actions/__init__.py +24 -24
  42. azure/durable_functions/models/entities/EntityState.py +74 -74
  43. azure/durable_functions/models/entities/OperationResult.py +94 -76
  44. azure/durable_functions/models/entities/RequestMessage.py +53 -53
  45. azure/durable_functions/models/entities/ResponseMessage.py +48 -48
  46. azure/durable_functions/models/entities/Signal.py +62 -62
  47. azure/durable_functions/models/entities/__init__.py +17 -17
  48. azure/durable_functions/models/history/HistoryEvent.py +92 -92
  49. azure/durable_functions/models/history/HistoryEventType.py +27 -27
  50. azure/durable_functions/models/history/__init__.py +8 -8
  51. azure/durable_functions/models/utils/__init__.py +7 -7
  52. azure/durable_functions/models/utils/entity_utils.py +103 -91
  53. azure/durable_functions/models/utils/http_utils.py +80 -69
  54. azure/durable_functions/models/utils/json_utils.py +96 -56
  55. azure/durable_functions/orchestrator.py +73 -71
  56. azure/durable_functions/testing/OrchestratorGeneratorWrapper.py +42 -0
  57. azure/durable_functions/testing/__init__.py +6 -0
  58. {azure_functions_durable-1.2.9.dist-info → azure_functions_durable-1.3.0.dist-info}/LICENSE +21 -21
  59. {azure_functions_durable-1.2.9.dist-info → azure_functions_durable-1.3.0.dist-info}/METADATA +59 -58
  60. azure_functions_durable-1.3.0.dist-info/RECORD +103 -0
  61. {azure_functions_durable-1.2.9.dist-info → azure_functions_durable-1.3.0.dist-info}/WHEEL +1 -1
  62. tests/models/test_DecoratorMetadata.py +135 -135
  63. tests/models/test_Decorators.py +107 -107
  64. tests/models/test_DurableOrchestrationBindings.py +68 -68
  65. tests/models/test_DurableOrchestrationClient.py +730 -730
  66. tests/models/test_DurableOrchestrationContext.py +102 -102
  67. tests/models/test_DurableOrchestrationStatus.py +59 -59
  68. tests/models/test_OrchestrationState.py +28 -28
  69. tests/models/test_RpcManagementOptions.py +79 -79
  70. tests/models/test_TokenSource.py +10 -10
  71. tests/orchestrator/models/OrchestrationInstance.py +18 -18
  72. tests/orchestrator/orchestrator_test_utils.py +130 -130
  73. tests/orchestrator/schemas/OrchetrationStateSchema.py +66 -66
  74. tests/orchestrator/test_call_http.py +235 -176
  75. tests/orchestrator/test_continue_as_new.py +67 -67
  76. tests/orchestrator/test_create_timer.py +126 -126
  77. tests/orchestrator/test_entity.py +397 -395
  78. tests/orchestrator/test_external_event.py +53 -53
  79. tests/orchestrator/test_fan_out_fan_in.py +175 -175
  80. tests/orchestrator/test_is_replaying_flag.py +101 -101
  81. tests/orchestrator/test_retries.py +308 -308
  82. tests/orchestrator/test_sequential_orchestrator.py +841 -841
  83. tests/orchestrator/test_sequential_orchestrator_custom_status.py +119 -119
  84. tests/orchestrator/test_sequential_orchestrator_with_retry.py +465 -465
  85. tests/orchestrator/test_serialization.py +30 -30
  86. tests/orchestrator/test_sub_orchestrator.py +95 -95
  87. tests/orchestrator/test_sub_orchestrator_with_retry.py +129 -129
  88. tests/orchestrator/test_task_any.py +60 -60
  89. tests/tasks/tasks_test_utils.py +17 -17
  90. tests/tasks/test_long_timers.py +70 -0
  91. tests/tasks/test_new_uuid.py +34 -34
  92. tests/test_utils/ContextBuilder.py +174 -174
  93. tests/test_utils/EntityContextBuilder.py +56 -56
  94. tests/test_utils/constants.py +1 -1
  95. tests/test_utils/json_utils.py +30 -30
  96. tests/test_utils/testClasses.py +56 -56
  97. tests/utils/__init__.py +1 -0
  98. tests/utils/test_entity_utils.py +24 -0
  99. azure_functions_durable-1.2.9.data/data/_manifest/bsi.json +0 -1
  100. azure_functions_durable-1.2.9.data/data/_manifest/manifest.cat +0 -0
  101. azure_functions_durable-1.2.9.data/data/_manifest/manifest.spdx.json +0 -11985
  102. azure_functions_durable-1.2.9.data/data/_manifest/manifest.spdx.json.sha256 +0 -1
  103. azure_functions_durable-1.2.9.dist-info/RECORD +0 -102
  104. {azure_functions_durable-1.2.9.dist-info → azure_functions_durable-1.3.0.dist-info}/top_level.txt +0 -0
@@ -1,81 +1,81 @@
1
- """Base module for the Python Durable functions.
2
-
3
- Exposes the different API components intended for public consumption
4
- """
5
- from .orchestrator import Orchestrator
6
- from .entity import Entity
7
- from .models.utils.entity_utils import EntityId
8
- from .models.DurableOrchestrationClient import DurableOrchestrationClient
9
- from .models.OrchestrationRuntimeStatus import OrchestrationRuntimeStatus
10
- from .models.DurableOrchestrationContext import DurableOrchestrationContext
11
- from .models.DurableEntityContext import DurableEntityContext
12
- from .models.RetryOptions import RetryOptions
13
- from .models.TokenSource import ManagedIdentityTokenSource
14
- import json
15
- from pathlib import Path
16
- import sys
17
- import warnings
18
-
19
-
20
- def validate_extension_bundles():
21
- """Raise a warning if host.json contains bundle-range V1.
22
-
23
- Effects
24
- ------
25
- Warning: Warning prompting the user to update to bundles V2
26
- """
27
- # No need to validate if we're running tests
28
- if "pytest" in sys.modules:
29
- return
30
-
31
- host_path = "host.json"
32
- bundles_key = "extensionBundle"
33
- version_key = "version"
34
- host_file = Path(host_path)
35
-
36
- if not host_file.exists():
37
- # If it doesn't exist, we ignore it
38
- return
39
-
40
- with open(host_path) as f:
41
- host_settings = json.loads(f.read())
42
- try:
43
- version_range = host_settings[bundles_key][version_key]
44
- except Exception:
45
- # If bundle info is not available, we ignore it.
46
- # For example: it's possible the user is using a manual extension install
47
- return
48
- # We do a best-effort attempt to detect bundles V1
49
- # This is the string hard-coded into the bundles V1 template in VSCode
50
- if version_range == "[1.*, 2.0.0)":
51
- message = "Your application is currently configured to use Extension Bundles V1."\
52
- " Durable Functions for Python works best with Bundles V2,"\
53
- " which provides additional features like Durable Entities, better performance,"\
54
- " and is actively being developed."\
55
- " Please update to Bundles V2 in your `host.json`."\
56
- " You can set extensionBundles version to be: [2.*, 3.0.0)"
57
- warnings.warn(message)
58
-
59
-
60
- # Validate that users are not in extension bundles V1
61
- validate_extension_bundles()
62
-
63
- __all__ = [
64
- 'Orchestrator',
65
- 'Entity',
66
- 'EntityId',
67
- 'DurableOrchestrationClient',
68
- 'DurableEntityContext',
69
- 'DurableOrchestrationContext',
70
- 'ManagedIdentityTokenSource',
71
- 'OrchestrationRuntimeStatus',
72
- 'RetryOptions'
73
- ]
74
-
75
- try:
76
- # disabling linter on this line because it fails to recognize the conditional export
77
- from .decorators.durable_app import (DFApp, Blueprint) # noqa
78
- __all__.append('DFApp')
79
- __all__.append('Blueprint')
80
- except ModuleNotFoundError:
81
- pass
1
+ """Base module for the Python Durable functions.
2
+
3
+ Exposes the different API components intended for public consumption
4
+ """
5
+ from .orchestrator import Orchestrator
6
+ from .entity import Entity
7
+ from .models.utils.entity_utils import EntityId
8
+ from .models.DurableOrchestrationClient import DurableOrchestrationClient
9
+ from .models.OrchestrationRuntimeStatus import OrchestrationRuntimeStatus
10
+ from .models.DurableOrchestrationContext import DurableOrchestrationContext
11
+ from .models.DurableEntityContext import DurableEntityContext
12
+ from .models.RetryOptions import RetryOptions
13
+ from .models.TokenSource import ManagedIdentityTokenSource
14
+ import json
15
+ from pathlib import Path
16
+ import sys
17
+ import warnings
18
+
19
+
20
+ def validate_extension_bundles():
21
+ """Raise a warning if host.json contains bundle-range V1.
22
+
23
+ Effects
24
+ ------
25
+ Warning: Warning prompting the user to update to bundles V2
26
+ """
27
+ # No need to validate if we're running tests
28
+ if "pytest" in sys.modules:
29
+ return
30
+
31
+ host_path = "host.json"
32
+ bundles_key = "extensionBundle"
33
+ version_key = "version"
34
+ host_file = Path(host_path)
35
+
36
+ if not host_file.exists():
37
+ # If it doesn't exist, we ignore it
38
+ return
39
+
40
+ with open(host_path) as f:
41
+ host_settings = json.loads(f.read())
42
+ try:
43
+ version_range = host_settings[bundles_key][version_key]
44
+ except Exception:
45
+ # If bundle info is not available, we ignore it.
46
+ # For example: it's possible the user is using a manual extension install
47
+ return
48
+ # We do a best-effort attempt to detect bundles V1
49
+ # This is the string hard-coded into the bundles V1 template in VSCode
50
+ if version_range == "[1.*, 2.0.0)":
51
+ message = "Your application is currently configured to use Extension Bundles V1."\
52
+ " Durable Functions for Python works best with Bundles V2,"\
53
+ " which provides additional features like Durable Entities, better performance,"\
54
+ " and is actively being developed."\
55
+ " Please update to Bundles V2 in your `host.json`."\
56
+ " You can set extensionBundles version to be: [2.*, 3.0.0)"
57
+ warnings.warn(message)
58
+
59
+
60
+ # Validate that users are not in extension bundles V1
61
+ validate_extension_bundles()
62
+
63
+ __all__ = [
64
+ 'Orchestrator',
65
+ 'Entity',
66
+ 'EntityId',
67
+ 'DurableOrchestrationClient',
68
+ 'DurableEntityContext',
69
+ 'DurableOrchestrationContext',
70
+ 'ManagedIdentityTokenSource',
71
+ 'OrchestrationRuntimeStatus',
72
+ 'RetryOptions'
73
+ ]
74
+
75
+ try:
76
+ # disabling linter on this line because it fails to recognize the conditional export
77
+ from .decorators.durable_app import (DFApp, Blueprint) # noqa
78
+ __all__.append('DFApp')
79
+ __all__.append('Blueprint')
80
+ except ModuleNotFoundError:
81
+ pass
@@ -1,9 +1,9 @@
1
- """Constants used to determine the local running context."""
2
- DEFAULT_LOCAL_HOST: str = 'localhost:7071'
3
- DEFAULT_LOCAL_ORIGIN: str = f'http://{DEFAULT_LOCAL_HOST}'
4
- DATETIME_STRING_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
5
- HTTP_ACTION_NAME = 'BuiltIn::HttpActivity'
6
- ORCHESTRATION_TRIGGER = "orchestrationTrigger"
7
- ACTIVITY_TRIGGER = "activityTrigger"
8
- ENTITY_TRIGGER = "entityTrigger"
9
- DURABLE_CLIENT = "durableClient"
1
+ """Constants used to determine the local running context."""
2
+ DEFAULT_LOCAL_HOST: str = 'localhost:7071'
3
+ DEFAULT_LOCAL_ORIGIN: str = f'http://{DEFAULT_LOCAL_HOST}'
4
+ DATETIME_STRING_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
5
+ HTTP_ACTION_NAME = 'BuiltIn::HttpActivity'
6
+ ORCHESTRATION_TRIGGER = "orchestrationTrigger"
7
+ ACTIVITY_TRIGGER = "activityTrigger"
8
+ ENTITY_TRIGGER = "entityTrigger"
9
+ DURABLE_CLIENT = "durableClient"
@@ -1,3 +1,3 @@
1
- # Copyright (c) Microsoft Corporation. All rights reserved.
2
- # Licensed under the MIT License.
3
- """Decorator definitions for Durable Functions."""
1
+ # Copyright (c) Microsoft Corporation. All rights reserved.
2
+ # Licensed under the MIT License.
3
+ """Decorator definitions for Durable Functions."""