prefect-client 3.7.1.dev8__tar.gz → 3.7.2.dev1__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 (447) hide show
  1. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/PKG-INFO +1 -1
  2. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/AGENTS.md +1 -1
  3. prefect_client-3.7.2.dev1/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/flow_engine.py +64 -44
  5. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_scheduled_run_poller.py +4 -7
  6. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/runner.py +5 -7
  7. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/types/_datetime.py +30 -1
  8. prefect_client-3.7.1.dev8/src/prefect/_build_info.py +0 -5
  9. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/.gitignore +0 -0
  10. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/LICENSE +0 -0
  11. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/README.md +0 -0
  12. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/hatch_build.py +0 -0
  13. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/pyproject.toml +0 -0
  14. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/.prefectignore +0 -0
  15. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/__init__.py +0 -0
  16. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/__main__.py +0 -0
  17. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/__init__.py +0 -0
  18. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/_launchers.py +0 -0
  19. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/bundles/__init__.py +0 -0
  20. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/bundles/execute.py +0 -0
  21. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/plugins/__init__.py +0 -0
  22. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/plugins/apply.py +0 -0
  23. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  24. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/plugins/manager.py +0 -0
  25. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/plugins/spec.py +0 -0
  26. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
  27. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/sla/client.py +0 -0
  28. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
  29. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_flow_run_suspension.py +0 -0
  30. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/__init__.py +0 -0
  31. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/_logging.py +0 -0
  32. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/__init__.py +0 -0
  33. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  34. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/client.py +0 -0
  35. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/device_id.py +0 -0
  36. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/emit.py +0 -0
  37. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/enabled.py +0 -0
  38. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/events.py +0 -0
  39. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/milestones.py +0 -0
  40. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/notice.py +0 -0
  41. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/analytics/service.py +0 -0
  42. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/ast_utils.py +0 -0
  43. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/buildx.py +0 -0
  44. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
  45. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  46. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/backports.py +0 -0
  47. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/blocks.py +0 -0
  48. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  49. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  50. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
  51. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/compatibility/starlette.py +0 -0
  52. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
  53. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
  54. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
  55. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  56. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  57. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
  58. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
  59. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
  60. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
  61. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
  62. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/control_listener.py +0 -0
  63. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/deprecated.py +0 -0
  64. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/engine.py +0 -0
  65. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/git.py +0 -0
  66. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  67. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/installation.py +0 -0
  68. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/integrations.py +0 -0
  69. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/launchers.py +0 -0
  70. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/lazy.py +0 -0
  71. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/metrics.py +0 -0
  72. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/observability.py +0 -0
  73. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/observers.py +0 -0
  74. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/__init__.py +0 -0
  75. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/apply.py +0 -0
  76. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/collections.py +0 -0
  77. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  78. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/manager.py +0 -0
  79. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/spec.py +0 -0
  80. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/plugins/startup.py +0 -0
  81. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
  82. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
  83. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  84. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  85. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  86. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/pytz.py +0 -0
  87. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/result_records.py +0 -0
  88. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/retries.py +0 -0
  89. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/schema.py +0 -0
  90. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
  91. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
  92. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
  93. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
  94. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/schemas/validators.py +0 -0
  95. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  96. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/states.py +0 -0
  97. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/testing.py +0 -0
  98. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/urls.py +0 -0
  99. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/uuid7.py +0 -0
  100. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/version_checking.py +0 -0
  101. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/versioning.py +0 -0
  102. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/waiters.py +0 -0
  103. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_internal/websockets.py +0 -0
  104. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/__init__.py +0 -0
  105. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/fetcher.py +0 -0
  106. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/generator.py +0 -0
  107. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/models.py +0 -0
  108. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/naming.py +0 -0
  109. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/renderer.py +0 -0
  110. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/schema_converter.py +0 -0
  111. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/templates/__init__.py +0 -0
  112. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  113. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/types.py +0 -0
  114. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_sdk/unions.py +0 -0
  115. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
  116. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
  117. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/agent.py +0 -0
  118. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/analytics/__init__.py +0 -0
  119. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/artifacts.py +0 -0
  120. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/assets/__init__.py +0 -0
  121. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/assets/core.py +0 -0
  122. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/assets/materialize.py +0 -0
  123. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/automations.py +0 -0
  124. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/AGENTS.md +0 -0
  125. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/__init__.py +0 -0
  126. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/abstract.py +0 -0
  127. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/core.py +0 -0
  128. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/fields.py +0 -0
  129. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/notifications.py +0 -0
  130. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/redis.py +0 -0
  131. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/system.py +0 -0
  132. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/blocks/webhook.py +0 -0
  133. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/__init__.py +0 -0
  134. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/_file_collector.py +0 -0
  135. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/_ignore_filter.py +0 -0
  136. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/_path_resolver.py +0 -0
  137. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/_zip_builder.py +0 -0
  138. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/_zip_extractor.py +0 -0
  139. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/bundles/execute.py +0 -0
  140. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/cache_policies.py +0 -0
  141. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/AGENTS.md +0 -0
  142. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/__init__.py +0 -0
  143. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/attribution.py +0 -0
  144. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/base.py +0 -0
  145. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/cloud.py +0 -0
  146. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/collections.py +0 -0
  147. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/constants.py +0 -0
  148. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
  149. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  150. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  151. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  152. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
  153. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  154. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  155. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  156. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  157. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  158. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  159. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  160. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  161. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  162. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  163. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  164. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_events/client.py +0 -0
  165. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  166. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  167. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  168. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
  169. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  170. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
  171. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  172. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
  173. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  174. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  175. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/base.py +0 -0
  176. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/orchestration/routes.py +0 -0
  177. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/__init__.py +0 -0
  178. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/actions.py +0 -0
  179. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/events.py +0 -0
  180. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/filters.py +0 -0
  181. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/objects.py +0 -0
  182. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/responses.py +0 -0
  183. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/schedules.py +0 -0
  184. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/sorting.py +0 -0
  185. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/schemas/worker_channel.py +0 -0
  186. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/subscriptions.py +0 -0
  187. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/types/__init__.py +0 -0
  188. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  189. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/client/utilities.py +0 -0
  190. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/AGENTS.md +0 -0
  191. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/__init__.py +0 -0
  192. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/_asyncio.py +0 -0
  193. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/_events.py +0 -0
  194. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/_leases.py +0 -0
  195. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/_sync.py +0 -0
  196. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/asyncio.py +0 -0
  197. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/context.py +0 -0
  198. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/services.py +0 -0
  199. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/sync.py +0 -0
  200. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
  201. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  202. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
  203. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
  204. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/context.py +0 -0
  205. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/services.py +0 -0
  206. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
  207. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/context.py +0 -0
  208. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/AGENTS.md +0 -0
  209. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/__init__.py +0 -0
  210. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/base.py +0 -0
  211. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/deployments.py +0 -0
  212. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/flow_runs.py +0 -0
  213. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/runner.py +0 -0
  214. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/schedules.py +0 -0
  215. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
  216. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/steps/core.py +0 -0
  217. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/steps/pull.py +0 -0
  218. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/deployments/steps/utility.py +0 -0
  219. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/docker/__init__.py +0 -0
  220. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/docker/_buildx.py +0 -0
  221. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/docker/docker_image.py +0 -0
  222. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/engine.py +0 -0
  223. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/AGENTS.md +0 -0
  224. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/__init__.py +0 -0
  225. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/actions.py +0 -0
  226. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/clients.py +0 -0
  227. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/filters.py +0 -0
  228. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/related.py +0 -0
  229. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/schemas/__init__.py +0 -0
  230. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/schemas/automations.py +0 -0
  231. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  232. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/schemas/events.py +0 -0
  233. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/schemas/labelling.py +0 -0
  234. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/subscribers.py +0 -0
  235. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/utilities.py +0 -0
  236. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/events/worker.py +0 -0
  237. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/exceptions.py +0 -0
  238. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/filesystems.py +0 -0
  239. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/flow_runs.py +0 -0
  240. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/flows.py +0 -0
  241. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/futures.py +0 -0
  242. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/__init__.py +0 -0
  243. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/base.py +0 -0
  244. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  245. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  246. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  247. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  248. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  249. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  250. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/input/__init__.py +0 -0
  251. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/input/actions.py +0 -0
  252. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/input/run_input.py +0 -0
  253. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/locking/__init__.py +0 -0
  254. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/locking/_filelock.py +0 -0
  255. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/locking/filesystem.py +0 -0
  256. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/locking/memory.py +0 -0
  257. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/locking/protocol.py +0 -0
  258. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/AGENTS.md +0 -0
  259. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/__init__.py +0 -0
  260. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/clients.py +0 -0
  261. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/configuration.py +0 -0
  262. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/filters.py +0 -0
  263. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/formatters.py +0 -0
  264. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/handlers.py +0 -0
  265. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/highlighters.py +0 -0
  266. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/loggers.py +0 -0
  267. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/logging/logging.yml +0 -0
  268. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/main.py +0 -0
  269. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/plugins.py +0 -0
  270. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/py.typed +0 -0
  271. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/results.py +0 -0
  272. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/AGENTS.md +0 -0
  273. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/__init__.py +0 -0
  274. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_cancel_finalizer.py +0 -0
  275. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_cancellation_manager.py +0 -0
  276. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_control_channel.py +0 -0
  277. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_deployment_registry.py +0 -0
  278. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_event_emitter.py +0 -0
  279. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_flow_resolver.py +0 -0
  280. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_flow_run_executor.py +0 -0
  281. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_hook_runner.py +0 -0
  282. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_limit_manager.py +0 -0
  283. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_process_manager.py +0 -0
  284. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_starter_bundle.py +0 -0
  285. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_starter_direct.py +0 -0
  286. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_starter_engine.py +0 -0
  287. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_state_proposer.py +0 -0
  288. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_workspace_resolver.py +0 -0
  289. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/_workspace_starter.py +0 -0
  290. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/server.py +0 -0
  291. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runner/storage.py +0 -0
  292. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runtime/__init__.py +0 -0
  293. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runtime/deployment.py +0 -0
  294. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runtime/flow_run.py +0 -0
  295. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/runtime/task_run.py +0 -0
  296. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/schedules.py +0 -0
  297. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/serializers.py +0 -0
  298. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/__init__.py +0 -0
  299. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/admin.py +0 -0
  300. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/artifacts.py +0 -0
  301. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/automations.py +0 -0
  302. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/background_workers.py +0 -0
  303. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
  304. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/block_documents.py +0 -0
  305. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/block_schemas.py +0 -0
  306. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/block_types.py +0 -0
  307. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/clients.py +0 -0
  308. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/collections.py +0 -0
  309. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  310. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
  311. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  312. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/csrf_token.py +0 -0
  313. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/dependencies.py +0 -0
  314. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/deployments.py +0 -0
  315. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/events.py +0 -0
  316. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
  317. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/flow_runs.py +0 -0
  318. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/flows.py +0 -0
  319. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/logs.py +0 -0
  320. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/middleware.py +0 -0
  321. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/root.py +0 -0
  322. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/run_history.py +0 -0
  323. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/saved_searches.py +0 -0
  324. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/server.py +0 -0
  325. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  326. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/task_run_states.py +0 -0
  327. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/task_runs.py +0 -0
  328. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/task_workers.py +0 -0
  329. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/templates.py +0 -0
  330. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
  331. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
  332. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/ui/flows.py +0 -0
  333. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
  334. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
  335. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/validation.py +0 -0
  336. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/variables.py +0 -0
  337. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/work_queues.py +0 -0
  338. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/server/api/workers.py +0 -0
  339. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/AGENTS.md +0 -0
  340. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/__init__.py +0 -0
  341. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/base.py +0 -0
  342. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/constants.py +0 -0
  343. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/context.py +0 -0
  344. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/legacy.py +0 -0
  345. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/__init__.py +0 -0
  346. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/_defaults.py +0 -0
  347. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/api.py +0 -0
  348. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/cli.py +0 -0
  349. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/client.py +0 -0
  350. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/cloud.py +0 -0
  351. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/deployments.py +0 -0
  352. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/events.py +0 -0
  353. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/experiments.py +0 -0
  354. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/flows.py +0 -0
  355. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/internal.py +0 -0
  356. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/logging.py +0 -0
  357. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/plugins.py +0 -0
  358. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/results.py +0 -0
  359. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/root.py +0 -0
  360. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/runner.py +0 -0
  361. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
  362. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/api.py +0 -0
  363. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/concurrency.py +0 -0
  364. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/database.py +0 -0
  365. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
  366. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/docket.py +0 -0
  367. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
  368. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/events.py +0 -0
  369. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  370. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/logs.py +0 -0
  371. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/root.py +0 -0
  372. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/services.py +0 -0
  373. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
  374. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/server/ui.py +0 -0
  375. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/tasks.py +0 -0
  376. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/telemetry.py +0 -0
  377. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/testing.py +0 -0
  378. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/models/worker.py +0 -0
  379. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/profiles.py +0 -0
  380. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/profiles.toml +0 -0
  381. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/settings/sources.py +0 -0
  382. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/states.py +0 -0
  383. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/task_engine.py +0 -0
  384. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/task_runners.py +0 -0
  385. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/task_runs.py +0 -0
  386. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/task_worker.py +0 -0
  387. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/tasks.py +0 -0
  388. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/telemetry/__init__.py +0 -0
  389. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
  390. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/transactions.py +0 -0
  391. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/types/__init__.py +0 -0
  392. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/types/_concurrency.py +0 -0
  393. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/types/entrypoint.py +0 -0
  394. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/types/names.py +0 -0
  395. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/AGENTS.md +0 -0
  396. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/__init__.py +0 -0
  397. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/annotations.py +0 -0
  398. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  399. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  400. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/callables/AGENTS.md +0 -0
  401. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/callables/__init__.py +0 -0
  402. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/collections.py +0 -0
  403. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/compat.py +0 -0
  404. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/context.py +0 -0
  405. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/dispatch.py +0 -0
  406. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/dockerutils.py +0 -0
  407. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/engine/AGENTS.md +0 -0
  408. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/engine/__init__.py +0 -0
  409. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  410. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/filesystem/__init__.py +0 -0
  411. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/generics.py +0 -0
  412. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/hashing.py +0 -0
  413. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/importtools.py +0 -0
  414. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/math.py +0 -0
  415. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/names.py +0 -0
  416. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  417. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/processutils/__init__.py +0 -0
  418. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/pydantic.py +0 -0
  419. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/render_swagger.py +0 -0
  420. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  421. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  422. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  423. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
  424. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/services.py +0 -0
  425. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/slugify.py +0 -0
  426. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/templating/AGENTS.md +0 -0
  427. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/templating/__init__.py +0 -0
  428. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/text.py +0 -0
  429. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/timeout.py +0 -0
  430. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/urls.py +0 -0
  431. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/utilities/visualization.py +0 -0
  432. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/variables.py +0 -0
  433. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/AGENTS.md +0 -0
  434. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/__init__.py +0 -0
  435. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_cleanup.py +0 -0
  436. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_cleanup_handlers.py +0 -0
  437. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  438. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  439. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_worker_channel/_state.py +0 -0
  440. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  441. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  442. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/base.py +0 -0
  443. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/block.py +0 -0
  444. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/cloud.py +0 -0
  445. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/process.py +0 -0
  446. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/server.py +0 -0
  447. {prefect_client-3.7.1.dev8 → prefect_client-3.7.2.dev1}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.7.1.dev8
3
+ Version: 3.7.2.dev1
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -23,7 +23,7 @@ There is no formal public/private boundary beyond the `_` prefix convention. Mod
23
23
  - **Engine ordering matters.** The engines apply features (retries, caching, result persistence, transactions) in a specific order. Changing the order or forgetting a feature in one engine path is the most common source of breakage.
24
24
  - **Set run metadata before state transitions.** Any run attribute that event subscribers observe at the moment of a state transition (e.g., custom `flow_run_name`) must be persisted to the server *before* `set_state()` is called for that transition. Metadata set after the call appears stale to subscribers of that state event.
25
25
  - **Sync and async must stay in sync.** Both `flow_engine.py` and `task_engine.py` have sync and async paths. Any behavior change must be applied to both.
26
- - **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences between whenever 0.7.x–0.9.x and ≥ 0.10.0. The `_WHENEVER_NEW_API` flag (True when whenever ≥ 0.10.0) guards version-specific code. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Violations will silently break on whichever whenever version the helpers weren't written for.
26
+ - **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences between whenever 0.7.x–0.9.x and ≥ 0.10.0. The `_WHENEVER_NEW_API` flag (True when whenever ≥ 0.10.0) guards version-specific code. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Avoid no-argument `datetime.datetime.now()` because it returns a tz-naive datetime that raises `TypeError` when compared to the tz-aware datetimes produced by `now()`. Explicitly timezone-aware stdlib calls such as `datetime.now(ZoneInfo("UTC"))` are allowed when needed to preserve timezone information. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Violations will silently break on whichever whenever version the helpers weren't written for.
27
27
  - **Flow and task engines advance state differently.** The flow engine makes blocking API calls to the server to propose and advance states. The task engine emits `prefect.task_run.*` events (delivered via WebSockets) but advances state locally through `set_state` calls with polling/backoff — do not assume the two engines work the same way.
28
28
  - **Flow state transitions go through the server.** The flow engine proposes states to the server, which accepts or rejects them via orchestration rules. The task engine, by contrast, manages state transitions locally via `set_state` and emits `prefect.task_run.*` events — it does not propose states to the server.
29
29
  - **`ProcessPoolTaskRunner` requires picklable data across subprocess boundaries.** `PrefectFuture` objects are not picklable and cannot be passed to worker subprocesses. Any `wait_for` futures must be waited on in the parent process and converted to `State` objects before submission. The subprocess task engine handles `State` objects via `resolve_to_final_result`, which raises `UpstreamTaskError` for non-completed upstreams.
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.7.2.dev1"
3
+ __build_date__ = "2026-05-18 09:19:56.215908+00:00"
4
+ __git_commit__ = "25ff793e11f525e8f7043525165e0ded57abaea9"
5
+ __dirty__ = False
@@ -909,10 +909,15 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
909
909
  This method attempts to load an existing flow run for a subflow task
910
910
  run, if appropriate.
911
911
 
912
- If the parent task run is in a final but not COMPLETED state, and not
913
- being rerun, then we attempt to load an existing flow run instead of
914
- creating a new one. This will prevent the engine from running the
915
- subflow again.
912
+ If the parent task run is in a final state, we return the existing
913
+ subflow run to avoid re-execution (unless the parent is being rerun
914
+ and the subflow did not complete, in which case a fresh run is
915
+ desired).
916
+
917
+ If the parent task run is in a non-final state (e.g. still Running
918
+ after a process restart), we also look for an existing subflow run
919
+ to reattach to, preventing duplicate subflow runs from being created
920
+ under the same parent task run.
916
921
 
917
922
  If no existing flow run is found, or if the subflow should be rerun,
918
923
  then no flow run is returned.
@@ -926,27 +931,32 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
926
931
  else False
927
932
  )
928
933
 
929
- # if the parent task run is in a final but not completed state, and
930
- # not rerunning, then retrieve the most recent flow run instead of
931
- # creating a new one. This effectively loads a cached flow run for
932
- # situations where we are confident the flow should not be run
933
- # again.
934
934
  assert isinstance(parent_task_run.state, State)
935
- if parent_task_run.state.is_final() and not (
936
- rerunning and not parent_task_run.state.is_completed()
935
+
936
+ # If the user explicitly triggered a re-run and the subflow did not
937
+ # complete, allow a fresh subflow to be created.
938
+ if (
939
+ parent_task_run.state.is_final()
940
+ and rerunning
941
+ and not parent_task_run.state.is_completed()
937
942
  ):
938
- # return the most recent flow run, if it exists
939
- flow_runs = client.read_flow_runs(
940
- flow_run_filter=FlowRunFilter(
941
- parent_task_run_id={"any_": [parent_task_run.id]}
942
- ),
943
- sort=FlowRunSort.EXPECTED_START_TIME_ASC,
944
- limit=1,
945
- )
946
- if flow_runs:
947
- loaded_flow_run = flow_runs[-1]
943
+ return None
944
+
945
+ # Look for an existing subflow run attached to this parent task run.
946
+ flow_runs = client.read_flow_runs(
947
+ flow_run_filter=FlowRunFilter(
948
+ parent_task_run_id={"any_": [parent_task_run.id]}
949
+ ),
950
+ sort=FlowRunSort.EXPECTED_START_TIME_DESC,
951
+ limit=1,
952
+ )
953
+ if flow_runs:
954
+ loaded_flow_run = flow_runs[0]
955
+ # When the parent task run is final the subflow has already
956
+ # finished; cache the result so the engine skips re-execution.
957
+ if parent_task_run.state.is_final():
948
958
  self._return_value = loaded_flow_run.state
949
- return loaded_flow_run
959
+ return loaded_flow_run
950
960
 
951
961
  def create_flow_run(self, client: SyncPrefectClient) -> FlowRun:
952
962
  flow_run_ctx = FlowRunContext.get()
@@ -1594,10 +1604,15 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
1594
1604
  This method attempts to load an existing flow run for a subflow task
1595
1605
  run, if appropriate.
1596
1606
 
1597
- If the parent task run is in a final but not COMPLETED state, and not
1598
- being rerun, then we attempt to load an existing flow run instead of
1599
- creating a new one. This will prevent the engine from running the
1600
- subflow again.
1607
+ If the parent task run is in a final state, we return the existing
1608
+ subflow run to avoid re-execution (unless the parent is being rerun
1609
+ and the subflow did not complete, in which case a fresh run is
1610
+ desired).
1611
+
1612
+ If the parent task run is in a non-final state (e.g. still Running
1613
+ after a process restart), we also look for an existing subflow run
1614
+ to reattach to, preventing duplicate subflow runs from being created
1615
+ under the same parent task run.
1601
1616
 
1602
1617
  If no existing flow run is found, or if the subflow should be rerun,
1603
1618
  then no flow run is returned.
@@ -1611,27 +1626,32 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
1611
1626
  else False
1612
1627
  )
1613
1628
 
1614
- # if the parent task run is in a final but not completed state, and
1615
- # not rerunning, then retrieve the most recent flow run instead of
1616
- # creating a new one. This effectively loads a cached flow run for
1617
- # situations where we are confident the flow should not be run
1618
- # again.
1619
1629
  assert isinstance(parent_task_run.state, State)
1620
- if parent_task_run.state.is_final() and not (
1621
- rerunning and not parent_task_run.state.is_completed()
1630
+
1631
+ # If the user explicitly triggered a re-run and the subflow did not
1632
+ # complete, allow a fresh subflow to be created.
1633
+ if (
1634
+ parent_task_run.state.is_final()
1635
+ and rerunning
1636
+ and not parent_task_run.state.is_completed()
1622
1637
  ):
1623
- # return the most recent flow run, if it exists
1624
- flow_runs = await client.read_flow_runs(
1625
- flow_run_filter=FlowRunFilter(
1626
- parent_task_run_id={"any_": [parent_task_run.id]}
1627
- ),
1628
- sort=FlowRunSort.EXPECTED_START_TIME_ASC,
1629
- limit=1,
1630
- )
1631
- if flow_runs:
1632
- loaded_flow_run = flow_runs[-1]
1638
+ return None
1639
+
1640
+ # Look for an existing subflow run attached to this parent task run.
1641
+ flow_runs = await client.read_flow_runs(
1642
+ flow_run_filter=FlowRunFilter(
1643
+ parent_task_run_id={"any_": [parent_task_run.id]}
1644
+ ),
1645
+ sort=FlowRunSort.EXPECTED_START_TIME_DESC,
1646
+ limit=1,
1647
+ )
1648
+ if flow_runs:
1649
+ loaded_flow_run = flow_runs[0]
1650
+ # When the parent task run is final the subflow has already
1651
+ # finished; cache the result so the engine skips re-execution.
1652
+ if parent_task_run.state.is_final():
1633
1653
  self._return_value = loaded_flow_run.state
1634
- return loaded_flow_run
1654
+ return loaded_flow_run
1635
1655
 
1636
1656
  async def create_flow_run(self, client: PrefectClient) -> FlowRun:
1637
1657
  flow_run_ctx = FlowRunContext.get()
@@ -182,18 +182,15 @@ class ScheduledRunPoller:
182
182
  pull_interval = getattr(storage, "pull_interval", None)
183
183
  if storage and isinstance(pull_interval, (int, float)) and pull_interval:
184
184
  last_adhoc_pull = getattr(storage, "last_adhoc_pull", None)
185
- if (
186
- last_adhoc_pull is None
187
- or last_adhoc_pull
188
- < datetime.datetime.now()
189
- - datetime.timedelta(seconds=storage.pull_interval)
190
- ):
185
+ if last_adhoc_pull is None or last_adhoc_pull < now(
186
+ "UTC"
187
+ ) - datetime.timedelta(seconds=storage.pull_interval):
191
188
  self._logger.debug(
192
189
  "Performing adhoc pull of code for flow run %s",
193
190
  flow_run.id,
194
191
  )
195
192
  await storage.pull_code()
196
- storage.last_adhoc_pull = datetime.datetime.now()
193
+ storage.last_adhoc_pull = now("UTC")
197
194
 
198
195
  executor = FlowRunExecutor(
199
196
  flow_run=flow_run,
@@ -129,6 +129,7 @@ from prefect.settings import (
129
129
  from prefect.states import (
130
130
  AwaitingRetry,
131
131
  )
132
+ from prefect.types._datetime import now
132
133
  from prefect.types.entrypoint import EntrypointType
133
134
  from prefect.utilities.annotations import NotSet
134
135
  from prefect.utilities.asyncutils import (
@@ -1051,19 +1052,16 @@ class Runner:
1051
1052
  # adhoc pull hasn't been performed in the last pull_interval
1052
1053
  # TODO: Explore integrating this behavior with global concurrency.
1053
1054
  last_adhoc_pull = getattr(storage, "last_adhoc_pull", None)
1054
- if (
1055
- last_adhoc_pull is None
1056
- or last_adhoc_pull
1057
- < datetime.datetime.now()
1058
- - datetime.timedelta(seconds=storage.pull_interval)
1059
- ):
1055
+ if last_adhoc_pull is None or last_adhoc_pull < now(
1056
+ "UTC"
1057
+ ) - datetime.timedelta(seconds=storage.pull_interval):
1060
1058
  self._logger.debug(
1061
1059
  "Performing adhoc pull of code for flow run %s with storage %r",
1062
1060
  flow_run.id,
1063
1061
  storage,
1064
1062
  )
1065
1063
  await storage.pull_code()
1066
- setattr(storage, "last_adhoc_pull", datetime.datetime.now())
1064
+ setattr(storage, "last_adhoc_pull", now("UTC"))
1067
1065
 
1068
1066
  handed_off = False
1069
1067
 
@@ -13,6 +13,8 @@ from pydantic import AfterValidator
13
13
  from typing_extensions import TypeAlias
14
14
 
15
15
  if sys.version_info >= (3, 13):
16
+ from pydantic import GetCoreSchemaHandler
17
+ from pydantic_core import core_schema as _core_schema
16
18
  from whenever import DateTimeDelta
17
19
  from whenever import ZonedDateTime as _ZDTProbe
18
20
 
@@ -21,7 +23,34 @@ if sys.version_info >= (3, 13):
21
23
  _WHENEVER_NEW_API: bool = hasattr(_ZDTProbe, "to_stdlib")
22
24
  del _ZDTProbe
23
25
 
24
- DateTime: TypeAlias = datetime.datetime
26
+ class _DateTime(datetime.datetime):
27
+ """`datetime.datetime` with a Pydantic schema that coerces naive to UTC.
28
+
29
+ On Python <= 3.12 the pendulum-backed `PydanticDateTime` enforces
30
+ tz-awareness during validation. This class is the 3.13+ equivalent so
31
+ any field typed as `DateTime` gets the same guarantee instead of
32
+ deferring to ad-hoc per-field validators (see #21949). Coercion reuses
33
+ the existing `create_datetime_instance` helper rather than open-coding
34
+ the naive→UTC check.
35
+
36
+ Runtime construction (`DateTime(2020, 1, 1)`) preserves the underlying
37
+ `datetime.datetime` semantics — naive in, naive out. The coercion
38
+ applies during Pydantic validation, which is where the silent
39
+ server-side drop originated.
40
+ """
41
+
42
+ @classmethod
43
+ def __get_pydantic_core_schema__(
44
+ cls,
45
+ source_type: Any,
46
+ handler: GetCoreSchemaHandler,
47
+ ) -> _core_schema.CoreSchema:
48
+ return _core_schema.no_info_after_validator_function(
49
+ create_datetime_instance,
50
+ handler(datetime.datetime),
51
+ )
52
+
53
+ DateTime: TypeAlias = _DateTime
25
54
  Date: TypeAlias = datetime.date
26
55
  Duration: TypeAlias = datetime.timedelta
27
56
  if _WHENEVER_NEW_API:
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.7.1.dev8"
3
- __build_date__ = "2026-05-14 09:02:56.534802+00:00"
4
- __git_commit__ = "7057b0df499b140407d3abf264538c21444724ce"
5
- __dirty__ = False