azure-functions-durable 1.3.1__tar.gz → 1.3.3__tar.gz

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 (302) hide show
  1. {azure-functions-durable-1.3.1/azure_functions_durable.egg-info → azure-functions-durable-1.3.3}/PKG-INFO +1 -1
  2. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/DurableOrchestrationContext.py +33 -16
  3. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3/azure_functions_durable.egg-info}/PKG-INFO +1 -1
  4. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure_functions_durable.egg-info/SOURCES.txt +6 -0
  5. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure_functions_durable.egg-info/requires.txt +1 -1
  6. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/requirements.txt +1 -1
  7. azure-functions-durable-1.3.3/samples/simple_sub_orchestration/.funcignore +5 -0
  8. azure-functions-durable-1.3.3/samples/simple_sub_orchestration/.gitignore +130 -0
  9. azure-functions-durable-1.3.3/samples-v2/orchestration_versioning/README.md +44 -0
  10. azure-functions-durable-1.3.3/samples-v2/orchestration_versioning/function_app.py +46 -0
  11. azure-functions-durable-1.3.3/samples-v2/orchestration_versioning/host.json +16 -0
  12. azure-functions-durable-1.3.3/samples-v2/orchestration_versioning/requirements.txt +7 -0
  13. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/setup.py +1 -1
  14. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_DurableOrchestrationContext.py +8 -0
  15. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.devcontainer/devcontainer.json +0 -0
  16. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.devcontainer/setup.sh +0 -0
  17. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.flake8 +0 -0
  18. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/ISSUE_TEMPLATE/----feature-request.md +0 -0
  19. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/ISSUE_TEMPLATE/---bug-report.md +0 -0
  20. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/policies/resourceManagement.yml +0 -0
  21. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/workflows/codeQL.yml +0 -0
  22. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/workflows/durable_python_action.yml +0 -0
  23. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/workflows/submodule-sync.yml +0 -0
  24. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.github/workflows/validate.yml +0 -0
  25. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/.gitignore +0 -0
  26. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/CHANGELOG.md +0 -0
  27. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/CODEOWNERS +0 -0
  28. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/CONTRIBUTING.md +0 -0
  29. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/LICENSE +0 -0
  30. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/MANIFEST.in +0 -0
  31. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/README.md +0 -0
  32. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/SECURITY.md +0 -0
  33. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/__init__.py +0 -0
  34. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/__init__.py +0 -0
  35. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/constants.py +0 -0
  36. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/decorators/__init__.py +0 -0
  37. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/decorators/durable_app.py +0 -0
  38. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/decorators/metadata.py +0 -0
  39. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/entity.py +0 -0
  40. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/DurableEntityContext.py +0 -0
  41. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/DurableHttpRequest.py +0 -0
  42. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/DurableOrchestrationBindings.py +0 -0
  43. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/DurableOrchestrationClient.py +0 -0
  44. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/DurableOrchestrationStatus.py +0 -0
  45. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/EntityStateResponse.py +0 -0
  46. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/FunctionContext.py +0 -0
  47. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/OrchestrationRuntimeStatus.py +0 -0
  48. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/OrchestratorState.py +0 -0
  49. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/PurgeHistoryResult.py +0 -0
  50. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/ReplaySchema.py +0 -0
  51. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/RetryOptions.py +0 -0
  52. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/RpcManagementOptions.py +0 -0
  53. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/Task.py +0 -0
  54. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/TaskOrchestrationExecutor.py +0 -0
  55. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/TokenSource.py +0 -0
  56. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/__init__.py +0 -0
  57. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/Action.py +0 -0
  58. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/ActionType.py +0 -0
  59. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CallActivityAction.py +0 -0
  60. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CallActivityWithRetryAction.py +0 -0
  61. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CallEntityAction.py +0 -0
  62. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CallHttpAction.py +0 -0
  63. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CallSubOrchestratorAction.py +0 -0
  64. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CallSubOrchestratorWithRetryAction.py +0 -0
  65. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CompoundAction.py +0 -0
  66. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/ContinueAsNewAction.py +0 -0
  67. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/CreateTimerAction.py +0 -0
  68. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/NoOpAction.py +0 -0
  69. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/SignalEntityAction.py +0 -0
  70. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/WaitForExternalEventAction.py +0 -0
  71. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/WhenAllAction.py +0 -0
  72. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/WhenAnyAction.py +0 -0
  73. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/actions/__init__.py +0 -0
  74. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/entities/EntityState.py +0 -0
  75. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/entities/OperationResult.py +0 -0
  76. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/entities/RequestMessage.py +0 -0
  77. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/entities/ResponseMessage.py +0 -0
  78. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/entities/Signal.py +0 -0
  79. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/entities/__init__.py +0 -0
  80. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/history/HistoryEvent.py +0 -0
  81. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/history/HistoryEventType.py +0 -0
  82. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/history/__init__.py +0 -0
  83. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/utils/__init__.py +0 -0
  84. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/utils/entity_utils.py +0 -0
  85. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/utils/http_utils.py +0 -0
  86. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/models/utils/json_utils.py +0 -0
  87. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/orchestrator.py +0 -0
  88. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/testing/OrchestratorGeneratorWrapper.py +0 -0
  89. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure/durable_functions/testing/__init__.py +0 -0
  90. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure-pipelines-release.yml +0 -0
  91. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure-pipelines.yml +0 -0
  92. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure_functions_durable.egg-info/dependency_links.txt +0 -0
  93. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/azure_functions_durable.egg-info/top_level.txt +0 -0
  94. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/eng/ci/code-mirror.yml +0 -0
  95. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/eng/ci/official-build.yml +0 -0
  96. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/eng/templates/build.yml +0 -0
  97. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/host.json +0 -0
  98. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/noxfile.py +0 -0
  99. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/.funcignore +0 -0
  100. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/.gitignore +0 -0
  101. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/aml_durable_orchestrator/__init__.py +0 -0
  102. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/aml_durable_orchestrator/function.json +0 -0
  103. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/aml_pipeline/__init__.py +0 -0
  104. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/aml_pipeline/function.json +0 -0
  105. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/aml_poll_status/__init__.py +0 -0
  106. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/aml_poll_status/function.json +0 -0
  107. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/extensions.csproj +0 -0
  108. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/host.json +0 -0
  109. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/local.settings.json +0 -0
  110. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/proxies.json +0 -0
  111. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/requirements.txt +0 -0
  112. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/shared/__init__.py +0 -0
  113. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/shared/aml_helper.py +0 -0
  114. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/aml_monitoring/shared/auth_helper.py +0 -0
  115. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/.funcignore +0 -0
  116. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/.gitignore +0 -0
  117. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/Counter/__init__.py +0 -0
  118. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/Counter/function.json +0 -0
  119. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/DurableOrchestration/__init__.py +0 -0
  120. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/DurableOrchestration/function.json +0 -0
  121. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/DurableTrigger/__init__.py +0 -0
  122. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/DurableTrigger/function.json +0 -0
  123. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/README.md +0 -0
  124. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/RetrieveEntity/__init__.py +0 -0
  125. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/RetrieveEntity/function.json +0 -0
  126. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/host.json +0 -0
  127. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/local.settings.json +0 -0
  128. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/counter_entity/requirements.txt +0 -0
  129. {azure-functions-durable-1.3.1/samples/function_chaining → azure-functions-durable-1.3.3/samples/fan_in_fan_out}/.funcignore +0 -0
  130. {azure-functions-durable-1.3.1/samples/function_chaining → azure-functions-durable-1.3.3/samples/fan_in_fan_out}/.gitignore +0 -0
  131. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/E2_BackupSiteContent/__init__.py +0 -0
  132. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/E2_BackupSiteContent/function.json +0 -0
  133. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/E2_CopyFileToBlob/__init__.py +0 -0
  134. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/E2_CopyFileToBlob/function.json +0 -0
  135. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/E2_GetFileList/__init__.py +0 -0
  136. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/E2_GetFileList/function.json +0 -0
  137. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/HttpStart/__init__.py +0 -0
  138. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/HttpStart/function.json +0 -0
  139. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/README.md +0 -0
  140. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/host.json +0 -0
  141. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/local.settings.json +0 -0
  142. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/proxies.json +0 -0
  143. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/fan_in_fan_out/requirements.txt +0 -0
  144. {azure-functions-durable-1.3.1/samples/human_interaction → azure-functions-durable-1.3.3/samples/function_chaining}/.funcignore +0 -0
  145. {azure-functions-durable-1.3.1/samples/human_interaction → azure-functions-durable-1.3.3/samples/function_chaining}/.gitignore +0 -0
  146. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/E1_HelloSequence/__init__.py +0 -0
  147. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/E1_HelloSequence/function.json +0 -0
  148. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/E1_SayHello/__init__.py +0 -0
  149. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/E1_SayHello/function.json +0 -0
  150. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/HttpStart/__init__.py +0 -0
  151. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/HttpStart/function.json +0 -0
  152. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/README.md +0 -0
  153. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/host.json +0 -0
  154. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/local.settings.json +0 -0
  155. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/proxies.json +0 -0
  156. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining/requirements.txt +0 -0
  157. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/.funcignore +0 -0
  158. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/.gitignore +0 -0
  159. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/DurableActivity/__init__.py +0 -0
  160. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/DurableActivity/function.json +0 -0
  161. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/DurableOrchestration/__init__.py +0 -0
  162. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/DurableOrchestration/function.json +0 -0
  163. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/DurableTrigger/__init__.py +0 -0
  164. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/DurableTrigger/function.json +0 -0
  165. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/README.md +0 -0
  166. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/host.json +0 -0
  167. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/local.settings.json +0 -0
  168. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/proxies.json +0 -0
  169. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/function_chaining_custom_status/requirements.txt +0 -0
  170. {azure-functions-durable-1.3.1/samples/monitor → azure-functions-durable-1.3.3/samples/human_interaction}/.funcignore +0 -0
  171. {azure-functions-durable-1.3.1/samples/monitor → azure-functions-durable-1.3.3/samples/human_interaction}/.gitignore +0 -0
  172. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/E4_SMSPhoneVerification/__init__.py +0 -0
  173. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/E4_SMSPhoneVerification/function.json +0 -0
  174. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/HttpStart/__init__.py +0 -0
  175. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/HttpStart/function.json +0 -0
  176. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/README.md +0 -0
  177. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/SendSMSChallenge/__init__.py +0 -0
  178. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/SendSMSChallenge/function.json +0 -0
  179. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/host.json +0 -0
  180. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/local.settings.json +0 -0
  181. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/proxies.json +0 -0
  182. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/human_interaction/requirements.txt +0 -0
  183. {azure-functions-durable-1.3.1/samples/simple_sub_orchestration → azure-functions-durable-1.3.3/samples/monitor}/.funcignore +0 -0
  184. {azure-functions-durable-1.3.1/samples/simple_sub_orchestration → azure-functions-durable-1.3.3/samples/monitor}/.gitignore +0 -0
  185. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/E3_Monitor/__init__.py +0 -0
  186. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/E3_Monitor/function.json +0 -0
  187. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/E3_SendAlert/__init__.py +0 -0
  188. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/E3_SendAlert/function.json +0 -0
  189. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/E3_TooManyOpenIssues/__init__.py +0 -0
  190. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/E3_TooManyOpenIssues/function.json +0 -0
  191. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/HttpStart/__init__.py +0 -0
  192. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/HttpStart/function.json +0 -0
  193. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/README.md +0 -0
  194. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/host.json +0 -0
  195. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/local.settings.json +0 -0
  196. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/proxies.json +0 -0
  197. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/monitor/requirements.txt +0 -0
  198. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/.gitignore +0 -0
  199. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/DurableActivity/__init__.py +0 -0
  200. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/DurableActivity/function.json +0 -0
  201. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/DurableOrchestration/__init__.py +0 -0
  202. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/DurableOrchestration/function.json +0 -0
  203. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/DurableTrigger/__init__.py +0 -0
  204. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/DurableTrigger/function.json +0 -0
  205. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/README.md +0 -0
  206. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/host.json +0 -0
  207. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/local.settings.json +0 -0
  208. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/requirements.txt +0 -0
  209. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/serialize_arguments/shared_code/MyClasses.py +0 -0
  210. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/DurableFunctionsHttpStart/__init__.py +0 -0
  211. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/DurableFunctionsHttpStart/function.json +0 -0
  212. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/DurableOrchestrator/__init__.py +0 -0
  213. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/DurableOrchestrator/function.json +0 -0
  214. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/DurableSubOrchestrator/__init__.py +0 -0
  215. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/DurableSubOrchestrator/function.json +0 -0
  216. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/Hello/__init__.py +0 -0
  217. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/Hello/function.json +0 -0
  218. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/README.md +0 -0
  219. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/host.json +0 -0
  220. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/local.settings.json +0 -0
  221. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/proxies.json +0 -0
  222. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples/simple_sub_orchestration/requirements.txt +0 -0
  223. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/.funcignore +0 -0
  224. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/.gitignore +0 -0
  225. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/durable_blueprints.py +0 -0
  226. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/function_app.py +0 -0
  227. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/host.json +0 -0
  228. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/requirements.txt +0 -0
  229. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/tests/readme.md +0 -0
  230. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/tests/test_my_orchestrator.py +0 -0
  231. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/tests/test_say_hello.py +0 -0
  232. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/blueprint/tests/test_start_orchestrator.py +0 -0
  233. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/.funcignore +0 -0
  234. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/.gitignore +0 -0
  235. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/README.md +0 -0
  236. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/function_app.py +0 -0
  237. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/host.json +0 -0
  238. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/proxies.json +0 -0
  239. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/requirements.txt +0 -0
  240. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/tests/readme.md +0 -0
  241. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/tests/test_E2_BackupSiteContent.py +0 -0
  242. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/tests/test_E2_CopyFileToBlob.py +0 -0
  243. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/tests/test_E2_GetFileList.py +0 -0
  244. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/fan_in_fan_out/tests/test_HttpStart.py +0 -0
  245. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/.funcignore +0 -0
  246. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/.gitignore +0 -0
  247. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/README.md +0 -0
  248. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/function_app.py +0 -0
  249. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/host.json +0 -0
  250. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/proxies.json +0 -0
  251. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/requirements.txt +0 -0
  252. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/tests/readme.md +0 -0
  253. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/tests/test_http_start.py +0 -0
  254. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/tests/test_my_orchestrator.py +0 -0
  255. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/samples-v2/function_chaining/tests/test_say_hello.py +0 -0
  256. {azure-functions-durable-1.3.1/samples/fan_in_fan_out → azure-functions-durable-1.3.3/samples-v2/orchestration_versioning}/.funcignore +0 -0
  257. {azure-functions-durable-1.3.1/samples/fan_in_fan_out → azure-functions-durable-1.3.3/samples-v2/orchestration_versioning}/.gitignore +0 -0
  258. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/scripts/sample_deploy.sh +0 -0
  259. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/setup.cfg +0 -0
  260. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/__init__.py +0 -0
  261. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/conftest.py +0 -0
  262. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/__init__.py +0 -0
  263. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_DecoratorMetadata.py +0 -0
  264. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_Decorators.py +0 -0
  265. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_DurableOrchestrationBindings.py +0 -0
  266. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_DurableOrchestrationClient.py +0 -0
  267. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_DurableOrchestrationStatus.py +0 -0
  268. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_OrchestrationState.py +0 -0
  269. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_RpcManagementOptions.py +0 -0
  270. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/models/test_TokenSource.py +0 -0
  271. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/__init__.py +0 -0
  272. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/models/OrchestrationInstance.py +0 -0
  273. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/orchestrator_test_utils.py +0 -0
  274. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/schemas/OrchetrationStateSchema.py +0 -0
  275. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_call_http.py +0 -0
  276. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_continue_as_new.py +0 -0
  277. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_create_timer.py +0 -0
  278. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_entity.py +0 -0
  279. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_external_event.py +0 -0
  280. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_fan_out_fan_in.py +0 -0
  281. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_is_replaying_flag.py +0 -0
  282. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_retries.py +0 -0
  283. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_sequential_orchestrator.py +0 -0
  284. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_sequential_orchestrator_custom_status.py +0 -0
  285. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_sequential_orchestrator_with_retry.py +0 -0
  286. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_serialization.py +0 -0
  287. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_sub_orchestrator.py +0 -0
  288. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_sub_orchestrator_with_retry.py +0 -0
  289. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/orchestrator/test_task_any.py +0 -0
  290. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/tasks/__init__.py +0 -0
  291. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/tasks/tasks_test_utils.py +0 -0
  292. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/tasks/test_long_timers.py +0 -0
  293. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/tasks/test_new_uuid.py +0 -0
  294. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_constants.py +0 -0
  295. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_utils/ContextBuilder.py +0 -0
  296. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_utils/EntityContextBuilder.py +0 -0
  297. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_utils/__init__.py +0 -0
  298. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_utils/constants.py +0 -0
  299. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_utils/json_utils.py +0 -0
  300. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/test_utils/testClasses.py +0 -0
  301. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/utils/__init__.py +0 -0
  302. {azure-functions-durable-1.3.1 → azure-functions-durable-1.3.3}/tests/utils/test_entity_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: azure-functions-durable
3
- Version: 1.3.1
3
+ Version: 1.3.3
4
4
  Summary: Durable Functions For Python
5
5
  Home-page: https://github.com/Azure/azure-functions-durable-python
6
6
  Author: Azure Functions team at Microsoft Corp.
@@ -100,6 +100,8 @@ class DurableOrchestrationContext:
100
100
  self.open_tasks = defaultdict(list)
101
101
  self.deferred_tasks: Dict[Union[int, str], Tuple[HistoryEvent, bool, str]] = {}
102
102
 
103
+ self._version: str = self._extract_version_from_history(self._histories)
104
+
103
105
  @classmethod
104
106
  def from_json(cls, json_string: str):
105
107
  """Convert the value passed into a new instance of the class.
@@ -600,22 +602,15 @@ class DurableOrchestrationContext:
600
602
  TaskBase
601
603
  A Durable Timer Task that schedules the timer to wake up the activity
602
604
  """
603
- if self._replay_schema.value >= ReplaySchema.V3.value:
604
- if not self._maximum_short_timer_duration or not self._long_timer_interval_duration:
605
- raise Exception(
606
- "A framework-internal error was detected: "
607
- "replay schema version >= V3 is being used, "
608
- "but one or more of the properties `maximumShortTimerDuration`"
609
- "and `longRunningTimerIntervalDuration` are not defined. "
610
- "This is likely an issue with the Durable Functions Extension. "
611
- "Please report this bug here: "
612
- "https://github.com/Azure/azure-functions-durable-python/issues\n"
613
- f"maximumShortTimerDuration: {self._maximum_short_timer_duration}\n"
614
- f"longRunningTimerIntervalDuration: {self._long_timer_interval_duration}"
615
- )
616
- if fire_at > self.current_utc_datetime + self._maximum_short_timer_duration:
617
- action = CreateTimerAction(fire_at)
618
- return LongTimerTask(None, action, self)
605
+ if (self._replay_schema.value >= ReplaySchema.V3.value
606
+ and self._maximum_short_timer_duration
607
+ and self._long_timer_interval_duration
608
+ and fire_at > self.current_utc_datetime + self._maximum_short_timer_duration):
609
+ # Timer duration config values are not provided for DTS or MSSQL, so skip the
610
+ # LongTimerTask and create the TimerTask as normal
611
+
612
+ action = CreateTimerAction(fire_at)
613
+ return LongTimerTask(None, action, self)
619
614
 
620
615
  action = CreateTimerAction(fire_at)
621
616
  task = self._generate_task(action, task_constructor=TimerTask)
@@ -759,3 +754,25 @@ class DurableOrchestrationContext:
759
754
  "https://github.com/Azure/azure-functions-durable-python.\n"\
760
755
  "Error trace: " + e.message
761
756
  raise e
757
+
758
+ @property
759
+ def version(self) -> Optional[str]:
760
+ """Get the version assigned to the orchestration instance on creation.
761
+
762
+ Returns
763
+ -------
764
+ Optional[str]
765
+ The version assigned to the orchestration instance on creation, or None if not found.
766
+ """
767
+ return self._version
768
+
769
+ @staticmethod
770
+ def _extract_version_from_history(history_events: List[HistoryEvent]) -> Optional[str]:
771
+ """Extract the version from the execution started event in history.
772
+
773
+ Returns None if not found.
774
+ """
775
+ for event in history_events:
776
+ if event.event_type == HistoryEventType.EXECUTION_STARTED:
777
+ return event.Version
778
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: azure-functions-durable
3
- Version: 1.3.1
3
+ Version: 1.3.3
4
4
  Summary: Durable Functions For Python
5
5
  Home-page: https://github.com/Azure/azure-functions-durable-python
6
6
  Author: Azure Functions team at Microsoft Corp.
@@ -121,6 +121,12 @@ samples-v2/function_chaining/tests/readme.md
121
121
  samples-v2/function_chaining/tests/test_http_start.py
122
122
  samples-v2/function_chaining/tests/test_my_orchestrator.py
123
123
  samples-v2/function_chaining/tests/test_say_hello.py
124
+ samples-v2/orchestration_versioning/.funcignore
125
+ samples-v2/orchestration_versioning/.gitignore
126
+ samples-v2/orchestration_versioning/README.md
127
+ samples-v2/orchestration_versioning/function_app.py
128
+ samples-v2/orchestration_versioning/host.json
129
+ samples-v2/orchestration_versioning/requirements.txt
124
130
  samples/aml_monitoring/.funcignore
125
131
  samples/aml_monitoring/.gitignore
126
132
  samples/aml_monitoring/extensions.csproj
@@ -1,5 +1,5 @@
1
1
  azure-functions>=1.12.0
2
- aiohttp>=3.12.9
2
+ aiohttp>=3.12.14
3
3
  requests==2.*
4
4
  python-dateutil>=2.8.0
5
5
  furl>=2.1.0
@@ -4,7 +4,7 @@ pytest==7.1.2
4
4
  python-dateutil==2.8.0
5
5
  requests==2.32.4
6
6
  jsonschema==3.2.0
7
- aiohttp==3.12.9
7
+ aiohttp==3.12.14
8
8
  azure-functions>=1.11.3b3
9
9
  nox==2019.11.9
10
10
  furl==2.1.0
@@ -0,0 +1,5 @@
1
+ .git*
2
+ .vscode
3
+ local.settings.json
4
+ test
5
+ .venv
@@ -0,0 +1,130 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+
53
+ # Translations
54
+ *.mo
55
+ *.pot
56
+
57
+ # Django stuff:
58
+ *.log
59
+ local_settings.py
60
+ db.sqlite3
61
+
62
+ # Flask stuff:
63
+ instance/
64
+ .webassets-cache
65
+
66
+ # Scrapy stuff:
67
+ .scrapy
68
+
69
+ # Sphinx documentation
70
+ docs/_build/
71
+
72
+ # PyBuilder
73
+ target/
74
+
75
+ # Jupyter Notebook
76
+ .ipynb_checkpoints
77
+
78
+ # IPython
79
+ profile_default/
80
+ ipython_config.py
81
+
82
+ # pyenv
83
+ .python-version
84
+
85
+ # pipenv
86
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
87
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
88
+ # having no cross-platform support, pipenv may install dependencies that don’t work, or not
89
+ # install all needed dependencies.
90
+ #Pipfile.lock
91
+
92
+ # celery beat schedule file
93
+ celerybeat-schedule
94
+
95
+ # SageMath parsed files
96
+ *.sage.py
97
+
98
+ # Environments
99
+ .env
100
+ .venv
101
+ env/
102
+ venv/
103
+ ENV/
104
+ env.bak/
105
+ venv.bak/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+ .spyproject
110
+
111
+ # Rope project settings
112
+ .ropeproject
113
+
114
+ # mkdocs documentation
115
+ /site
116
+
117
+ # mypy
118
+ .mypy_cache/
119
+ .dmypy.json
120
+ dmypy.json
121
+
122
+ # Pyre type checker
123
+ .pyre/
124
+
125
+ # Azure Functions artifacts
126
+ bin
127
+ obj
128
+ appsettings.json
129
+ local.settings.json
130
+ .python_packages
@@ -0,0 +1,44 @@
1
+ # Versioning
2
+
3
+ This directory contains a Function app that demonstrates how to make changes to an orchestrator function without breaking existing orchestration instances.
4
+
5
+ The orchestrator function has two code paths:
6
+
7
+ 1. The old path invoking `activity_a`.
8
+ 2. The new path invoking `activity_b` instead.
9
+
10
+ While `defaultVersion` in `host.json` is set to `1.0`, the orchestrator will always follow the first path, producing the following output:
11
+
12
+ ```
13
+ Orchestration version: 1.0
14
+ Suborchestration version: 1.0
15
+ Hello from A!
16
+ ```
17
+
18
+ When `defaultVersion` in `host.json` is updated (for example, to `2.0`), *new orchestration instances* will follow the new path, producing the following output:
19
+
20
+ ```
21
+ Orchestration version: 2.0
22
+ Suborchestration version: 2.0
23
+ Hello from B!
24
+ ```
25
+
26
+ What happens to *existing orchestration instances* that were started *before* the `defaultVersion` change? Waiting for an external event in the middle of the orchestrator provides a convenient opportunity to emulate a deployment while orchestration instances are still running:
27
+
28
+ 1. Create a new orchestration by invoking the HTTP trigger (`http_start`).
29
+ 2. Wait for the orchestration to reach the point where it is waiting for an external event.
30
+ 3. Stop the app.
31
+ 4. Change `defaultVersion` in `host.json` to `2.0`.
32
+ 5. Deploy and start the updated app.
33
+ 6. Trigger the external event.
34
+ 7. Observe that the orchestration output.
35
+
36
+ ```
37
+ Orchestration version: 1.0
38
+ Suborchestration version: 2.0
39
+ Hello from A!
40
+ ```
41
+
42
+ Note that the value returned by `context.version` is permanently associated with the orchestrator instance and is not impacted by the `defaultVersion` change. As a result, the orchestrator follows the old execution path to guarantee deterministic replay behavior.
43
+
44
+ However, the suborchestration version is `2.0` because this suborchestration was created *after* the `defaultVersion` change.
@@ -0,0 +1,46 @@
1
+ import logging
2
+ import azure.functions as func
3
+ import azure.durable_functions as df
4
+
5
+ myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)
6
+
7
+ @myApp.route(route="orchestrators/{functionName}")
8
+ @myApp.durable_client_input(client_name="client")
9
+ async def http_start(req: func.HttpRequest, client):
10
+ function_name = req.route_params.get('functionName')
11
+ instance_id = await client.start_new(function_name)
12
+
13
+ logging.info(f"Started orchestration with ID = '{instance_id}'.")
14
+ return client.create_check_status_response(req, instance_id)
15
+
16
+ @myApp.orchestration_trigger(context_name="context")
17
+ def my_orchestrator(context: df.DurableOrchestrationContext):
18
+ # context.version contains the value of defaultVersion in host.json
19
+ # at the moment when the orchestration was created.
20
+ if (context.version == "1.0"):
21
+ # Legacy code path
22
+ activity_result = yield context.call_activity('activity_a')
23
+ else:
24
+ # New code path
25
+ activity_result = yield context.call_activity('activity_b')
26
+
27
+ # Provide an opportunity to update and restart the app
28
+ context.set_custom_status("Waiting for Continue event...")
29
+ yield context.wait_for_external_event("Continue")
30
+ context.set_custom_status("Continue event received")
31
+
32
+ # New sub-orchestrations will use the current defaultVersion specified in host.json
33
+ sub_result = yield context.call_sub_orchestrator('my_sub_orchestrator')
34
+ return [f'Orchestration version: {context.version}', f'Suborchestration version: {sub_result}', activity_result]
35
+
36
+ @myApp.orchestration_trigger(context_name="context")
37
+ def my_sub_orchestrator(context: df.DurableOrchestrationContext):
38
+ return context.version
39
+
40
+ @myApp.activity_trigger()
41
+ def activity_a() -> str:
42
+ return f"Hello from A!"
43
+
44
+ @myApp.activity_trigger()
45
+ def activity_b() -> str:
46
+ return f"Hello from B!"
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": "2.0",
3
+ "logging": {
4
+ "applicationInsights": {
5
+ "samplingSettings": {
6
+ "isEnabled": true,
7
+ "excludedTypes": "Request"
8
+ }
9
+ }
10
+ },
11
+ "extensions": {
12
+ "durableTask": {
13
+ "defaultVersion": "1.0"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,7 @@
1
+ # DO NOT include azure-functions-worker in this file
2
+ # The Python Worker is managed by Azure Functions platform
3
+ # Manually managing azure-functions-worker may cause unexpected issues
4
+
5
+ azure-functions
6
+ azure-functions-durable
7
+ pytest
@@ -55,7 +55,7 @@ setup(
55
55
  python_requires='>=3.9,<4',
56
56
  install_requires=[
57
57
  'azure-functions>=1.12.0',
58
- 'aiohttp>=3.12.9',
58
+ 'aiohttp>=3.12.14',
59
59
  'requests==2.*',
60
60
  'python-dateutil>=2.8.0',
61
61
  'furl>=2.1.0',
@@ -100,3 +100,11 @@ def test_get_input_json_str():
100
100
  result = context.get_input()
101
101
 
102
102
  assert 'Seattle' == result['city']
103
+
104
+ def test_version_equals_version_from_execution_started_event():
105
+ builder = ContextBuilder('test_function_context')
106
+ builder.history_events = []
107
+ builder.add_orchestrator_started_event()
108
+ builder.add_execution_started_event(name="TestOrchestrator", version="1.0")
109
+ context = DurableOrchestrationContext.from_json(builder.to_json_string())
110
+ assert context.version == "1.0"