prefect-client 3.8.6.dev4__tar.gz → 3.8.7__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 (457) hide show
  1. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/PKG-INFO +2 -2
  2. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/pyproject.toml +1 -1
  3. prefect_client-3.8.7/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/cancellation.py +16 -4
  5. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/_zip_extractor.py +9 -0
  6. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/execute.py +21 -1
  7. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/attribution.py +7 -1
  8. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/flow_engine.py +32 -10
  9. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/results.py +11 -5
  10. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +7 -0
  11. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/root.py +13 -0
  12. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/docket.py +8 -1
  13. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/task_engine.py +2 -1
  14. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/math.py +5 -0
  15. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/templating/__init__.py +1 -1
  16. prefect_client-3.8.6.dev4/src/prefect/_build_info.py +0 -5
  17. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/.gitignore +0 -0
  18. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/LICENSE +0 -0
  19. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/README.md +0 -0
  20. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/hatch_build.py +0 -0
  21. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/.prefectignore +0 -0
  22. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/AGENTS.md +0 -0
  23. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/__init__.py +0 -0
  24. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/__main__.py +0 -0
  25. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/__init__.py +0 -0
  26. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/_launchers.py +0 -0
  27. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/bundles/__init__.py +0 -0
  28. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/bundles/execute.py +0 -0
  29. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/plugins/__init__.py +0 -0
  30. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/plugins/apply.py +0 -0
  31. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  32. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/plugins/manager.py +0 -0
  33. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/plugins/spec.py +0 -0
  34. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/sla/__init__.py +0 -0
  35. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/sla/client.py +0 -0
  36. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_experimental/sla/objects.py +0 -0
  37. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_flow_run_suspension.py +0 -0
  38. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/__init__.py +0 -0
  39. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/_logging.py +0 -0
  40. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/__init__.py +0 -0
  41. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  42. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/client.py +0 -0
  43. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/device_id.py +0 -0
  44. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/emit.py +0 -0
  45. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/enabled.py +0 -0
  46. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/events.py +0 -0
  47. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/milestones.py +0 -0
  48. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/notice.py +0 -0
  49. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/analytics/service.py +0 -0
  50. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/ast_utils.py +0 -0
  51. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/attempt_control.py +0 -0
  52. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/buildx.py +0 -0
  53. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/__init__.py +0 -0
  54. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  55. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/backports.py +0 -0
  56. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/blocks.py +0 -0
  57. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  58. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  59. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/migration.py +0 -0
  60. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/compatibility/starlette.py +0 -0
  61. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/__init__.py +0 -0
  62. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/api.py +0 -0
  63. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/calls.py +0 -0
  64. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  65. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/inspection.py +0 -0
  66. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/primitives.py +0 -0
  67. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/services.py +0 -0
  68. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/threads.py +0 -0
  69. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/concurrency/waiters.py +0 -0
  70. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/control_listener.py +0 -0
  71. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/deprecated.py +0 -0
  72. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/engine.py +0 -0
  73. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/git.py +0 -0
  74. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  75. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/installation.py +0 -0
  76. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/integrations.py +0 -0
  77. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/launchers.py +0 -0
  78. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/lazy.py +0 -0
  79. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/metrics.py +0 -0
  80. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/observability.py +0 -0
  81. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/observers.py +0 -0
  82. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/__init__.py +0 -0
  83. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/apply.py +0 -0
  84. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/collections.py +0 -0
  85. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  86. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/manager.py +0 -0
  87. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/spec.py +0 -0
  88. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/plugins/startup.py +0 -0
  89. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/pydantic/__init__.py +0 -0
  90. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/pydantic/schemas.py +0 -0
  91. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  92. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  93. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  94. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/pytz.py +0 -0
  95. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/result_records.py +0 -0
  96. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/retries.py +0 -0
  97. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schema.py +0 -0
  98. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schemas/__init__.py +0 -0
  99. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schemas/_registry.py +0 -0
  100. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schemas/bases.py +0 -0
  101. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schemas/fields.py +0 -0
  102. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schemas/serializers.py +0 -0
  103. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/schemas/validators.py +0 -0
  104. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  105. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/states.py +0 -0
  106. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/testing.py +0 -0
  107. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/urls.py +0 -0
  108. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/uuid7.py +0 -0
  109. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/version_checking.py +0 -0
  110. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/versioning.py +0 -0
  111. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/waiters.py +0 -0
  112. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_internal/websockets.py +0 -0
  113. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/__init__.py +0 -0
  114. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/fetcher.py +0 -0
  115. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/generator.py +0 -0
  116. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/models.py +0 -0
  117. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/naming.py +0 -0
  118. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/renderer.py +0 -0
  119. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/schema_converter.py +0 -0
  120. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/templates/__init__.py +0 -0
  121. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  122. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/types.py +0 -0
  123. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_sdk/unions.py +0 -0
  124. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_vendor/croniter/__init__.py +0 -0
  125. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/_vendor/croniter/croniter.py +0 -0
  126. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/agent.py +0 -0
  127. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/analytics/__init__.py +0 -0
  128. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/artifacts.py +0 -0
  129. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/assets/__init__.py +0 -0
  130. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/assets/core.py +0 -0
  131. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/assets/materialize.py +0 -0
  132. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/automations.py +0 -0
  133. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/AGENTS.md +0 -0
  134. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/__init__.py +0 -0
  135. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/abstract.py +0 -0
  136. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/core.py +0 -0
  137. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/fields.py +0 -0
  138. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/notifications.py +0 -0
  139. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/redis.py +0 -0
  140. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/system.py +0 -0
  141. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/blocks/webhook.py +0 -0
  142. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/__init__.py +0 -0
  143. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/_file_collector.py +0 -0
  144. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/_ignore_filter.py +0 -0
  145. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/_path_resolver.py +0 -0
  146. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/bundles/_zip_builder.py +0 -0
  147. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/cache_policies.py +0 -0
  148. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/AGENTS.md +0 -0
  149. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/__init__.py +0 -0
  150. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/base.py +0 -0
  151. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/cloud.py +0 -0
  152. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/collections.py +0 -0
  153. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/constants.py +0 -0
  154. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/__init__.py +0 -0
  155. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  156. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  157. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  158. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_automations/client.py +0 -0
  159. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  160. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  161. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  162. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  163. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  164. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  165. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  166. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  167. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  168. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  169. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  170. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_events/client.py +0 -0
  171. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  172. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  173. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  174. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_flows/client.py +0 -0
  175. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  176. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_logs/client.py +0 -0
  177. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  178. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_variables/client.py +0 -0
  179. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  180. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  181. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/base.py +0 -0
  182. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/orchestration/routes.py +0 -0
  183. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/__init__.py +0 -0
  184. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/actions.py +0 -0
  185. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/events.py +0 -0
  186. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/filters.py +0 -0
  187. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/objects.py +0 -0
  188. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/responses.py +0 -0
  189. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/schedules.py +0 -0
  190. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/sorting.py +0 -0
  191. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/schemas/worker_channel.py +0 -0
  192. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/subscriptions.py +0 -0
  193. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/types/__init__.py +0 -0
  194. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  195. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/client/utilities.py +0 -0
  196. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/AGENTS.md +0 -0
  197. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/__init__.py +0 -0
  198. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/_asyncio.py +0 -0
  199. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/_events.py +0 -0
  200. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/_leases.py +0 -0
  201. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/_sync.py +0 -0
  202. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/asyncio.py +0 -0
  203. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/context.py +0 -0
  204. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/services.py +0 -0
  205. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/sync.py +0 -0
  206. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/__init__.py +0 -0
  207. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  208. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/_events.py +0 -0
  209. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/asyncio.py +0 -0
  210. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/context.py +0 -0
  211. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/services.py +0 -0
  212. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/concurrency/v1/sync.py +0 -0
  213. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/context.py +0 -0
  214. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/AGENTS.md +0 -0
  215. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/__init__.py +0 -0
  216. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/base.py +0 -0
  217. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/deployments.py +0 -0
  218. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/flow_runs.py +0 -0
  219. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/runner.py +0 -0
  220. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/schedules.py +0 -0
  221. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/steps/__init__.py +0 -0
  222. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/steps/core.py +0 -0
  223. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/steps/pull.py +0 -0
  224. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/deployments/steps/utility.py +0 -0
  225. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/docker/__init__.py +0 -0
  226. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/docker/_buildx.py +0 -0
  227. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/docker/docker_image.py +0 -0
  228. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/engine.py +0 -0
  229. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/AGENTS.md +0 -0
  230. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/__init__.py +0 -0
  231. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/actions.py +0 -0
  232. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/clients.py +0 -0
  233. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/filters.py +0 -0
  234. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/related.py +0 -0
  235. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/schemas/__init__.py +0 -0
  236. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/schemas/automations.py +0 -0
  237. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  238. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/schemas/events.py +0 -0
  239. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/schemas/labelling.py +0 -0
  240. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/subscribers.py +0 -0
  241. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/utilities.py +0 -0
  242. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/events/worker.py +0 -0
  243. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/exceptions.py +0 -0
  244. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/filesystems.py +0 -0
  245. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/flow_runs.py +0 -0
  246. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/flows.py +0 -0
  247. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/futures.py +0 -0
  248. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/__init__.py +0 -0
  249. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/base.py +0 -0
  250. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  251. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  252. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  253. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  254. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  255. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  256. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/input/__init__.py +0 -0
  257. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/input/actions.py +0 -0
  258. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/input/run_input.py +0 -0
  259. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/locking/__init__.py +0 -0
  260. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/locking/_filelock.py +0 -0
  261. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/locking/filesystem.py +0 -0
  262. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/locking/memory.py +0 -0
  263. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/locking/protocol.py +0 -0
  264. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/AGENTS.md +0 -0
  265. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/__init__.py +0 -0
  266. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/clients.py +0 -0
  267. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/configuration.py +0 -0
  268. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/filters.py +0 -0
  269. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/formatters.py +0 -0
  270. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/handlers.py +0 -0
  271. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/highlighters.py +0 -0
  272. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/loggers.py +0 -0
  273. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/logging/logging.yml +0 -0
  274. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/main.py +0 -0
  275. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/plugins.py +0 -0
  276. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/py.typed +0 -0
  277. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/AGENTS.md +0 -0
  278. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/__init__.py +0 -0
  279. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_cancel_finalizer.py +0 -0
  280. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_cancellation_manager.py +0 -0
  281. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_control_channel.py +0 -0
  282. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_deployment_registry.py +0 -0
  283. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_event_emitter.py +0 -0
  284. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_flow_resolver.py +0 -0
  285. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_flow_run_executor.py +0 -0
  286. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_hook_runner.py +0 -0
  287. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_limit_manager.py +0 -0
  288. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_process_manager.py +0 -0
  289. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  290. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_starter_bundle.py +0 -0
  291. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_starter_direct.py +0 -0
  292. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_starter_engine.py +0 -0
  293. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_state_proposer.py +0 -0
  294. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_uv_command.py +0 -0
  295. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_workspace_hook_runner.py +0 -0
  296. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_workspace_resolver.py +0 -0
  297. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_workspace_runtime.py +0 -0
  298. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
  299. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_workspace_starter.py +0 -0
  300. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/_workspace_supervisor.py +0 -0
  301. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/runner.py +0 -0
  302. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/server.py +0 -0
  303. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runner/storage.py +0 -0
  304. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runtime/__init__.py +0 -0
  305. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runtime/deployment.py +0 -0
  306. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runtime/flow_run.py +0 -0
  307. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/runtime/task_run.py +0 -0
  308. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/schedules.py +0 -0
  309. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/serializers.py +0 -0
  310. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/__init__.py +0 -0
  311. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/_ui_static.py +0 -0
  312. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/admin.py +0 -0
  313. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/artifacts.py +0 -0
  314. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/automations.py +0 -0
  315. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/background_workers.py +0 -0
  316. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/block_capabilities.py +0 -0
  317. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/block_documents.py +0 -0
  318. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/block_schemas.py +0 -0
  319. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/block_types.py +0 -0
  320. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/clients.py +0 -0
  321. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/collections.py +0 -0
  322. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/concurrency_limits.py +0 -0
  323. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  324. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/csrf_token.py +0 -0
  325. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/dependencies.py +0 -0
  326. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/deployments.py +0 -0
  327. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/events.py +0 -0
  328. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/flow_run_states.py +0 -0
  329. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/flow_runs.py +0 -0
  330. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/flows.py +0 -0
  331. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/logs.py +0 -0
  332. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/middleware.py +0 -0
  333. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/root.py +0 -0
  334. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/run_history.py +0 -0
  335. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/saved_searches.py +0 -0
  336. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/server.py +0 -0
  337. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  338. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/task_run_states.py +0 -0
  339. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/task_runs.py +0 -0
  340. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/task_workers.py +0 -0
  341. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/templates.py +0 -0
  342. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/ui/__init__.py +0 -0
  343. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/ui/flow_runs.py +0 -0
  344. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/ui/flows.py +0 -0
  345. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/ui/schemas.py +0 -0
  346. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/ui/task_runs.py +0 -0
  347. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/validation.py +0 -0
  348. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/variables.py +0 -0
  349. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/work_queues.py +0 -0
  350. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/server/api/workers.py +0 -0
  351. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/AGENTS.md +0 -0
  352. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/__init__.py +0 -0
  353. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/_types.py +0 -0
  354. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/base.py +0 -0
  355. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/constants.py +0 -0
  356. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/context.py +0 -0
  357. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/legacy.py +0 -0
  358. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/__init__.py +0 -0
  359. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/_defaults.py +0 -0
  360. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/api.py +0 -0
  361. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/cli.py +0 -0
  362. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/client.py +0 -0
  363. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/cloud.py +0 -0
  364. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/deployments.py +0 -0
  365. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/events.py +0 -0
  366. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/experiments.py +0 -0
  367. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/flows.py +0 -0
  368. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/internal.py +0 -0
  369. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/logging.py +0 -0
  370. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/plugins.py +0 -0
  371. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/results.py +0 -0
  372. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/runner.py +0 -0
  373. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/__init__.py +0 -0
  374. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/api.py +0 -0
  375. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/concurrency.py +0 -0
  376. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/database.py +0 -0
  377. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/deployments.py +0 -0
  378. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/ephemeral.py +0 -0
  379. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/events.py +0 -0
  380. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  381. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/logs.py +0 -0
  382. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/root.py +0 -0
  383. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/services.py +0 -0
  384. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/tasks.py +0 -0
  385. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/ui.py +0 -0
  386. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/server/worker_channel.py +0 -0
  387. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/tasks.py +0 -0
  388. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/telemetry.py +0 -0
  389. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/testing.py +0 -0
  390. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/models/worker.py +0 -0
  391. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/profiles.py +0 -0
  392. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/profiles.toml +0 -0
  393. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/settings/sources.py +0 -0
  394. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/states.py +0 -0
  395. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/task_runners.py +0 -0
  396. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/task_runs.py +0 -0
  397. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/task_worker.py +0 -0
  398. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/tasks.py +0 -0
  399. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/telemetry/__init__.py +0 -0
  400. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/telemetry/run_telemetry.py +0 -0
  401. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/transactions.py +0 -0
  402. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/types/__init__.py +0 -0
  403. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/types/_concurrency.py +0 -0
  404. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/types/_datetime.py +0 -0
  405. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/types/entrypoint.py +0 -0
  406. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/types/names.py +0 -0
  407. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/AGENTS.md +0 -0
  408. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/__init__.py +0 -0
  409. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/annotations.py +0 -0
  410. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  411. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  412. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/callables/AGENTS.md +0 -0
  413. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/callables/__init__.py +0 -0
  414. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/collections.py +0 -0
  415. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/compat.py +0 -0
  416. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/context.py +0 -0
  417. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/dispatch.py +0 -0
  418. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/dockerutils.py +0 -0
  419. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/engine/AGENTS.md +0 -0
  420. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/engine/__init__.py +0 -0
  421. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  422. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/filesystem/__init__.py +0 -0
  423. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/generics.py +0 -0
  424. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/hashing.py +0 -0
  425. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/importtools.py +0 -0
  426. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/names.py +0 -0
  427. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  428. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/processutils/__init__.py +0 -0
  429. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/pydantic.py +0 -0
  430. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/render_swagger.py +0 -0
  431. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  432. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  433. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  434. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/schema_tools/validation.py +0 -0
  435. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/services.py +0 -0
  436. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/slugify.py +0 -0
  437. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/templating/AGENTS.md +0 -0
  438. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/text.py +0 -0
  439. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/timeout.py +0 -0
  440. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/urls.py +0 -0
  441. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/utilities/visualization.py +0 -0
  442. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/variables.py +0 -0
  443. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/AGENTS.md +0 -0
  444. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/__init__.py +0 -0
  445. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_cleanup.py +0 -0
  446. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_cleanup_handlers.py +0 -0
  447. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  448. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  449. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_worker_channel/_state.py +0 -0
  450. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  451. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  452. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/base.py +0 -0
  453. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/block.py +0 -0
  454. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/cloud.py +0 -0
  455. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/process.py +0 -0
  456. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/server.py +0 -0
  457. {prefect_client-3.8.6.dev4 → prefect_client-3.8.7}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: prefect-client
3
- Version: 3.8.6.dev4
3
+ Version: 3.8.7
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
@@ -49,7 +49,7 @@ Requires-Dist: pydantic-core<3.0.0,>=2.12.0
49
49
  Requires-Dist: pydantic-extra-types<3.0.0,>=2.8.2
50
50
  Requires-Dist: pydantic-settings<3.0.0,>=2.9.1
51
51
  Requires-Dist: python-dateutil<3.0.0,>=2.8.2
52
- Requires-Dist: python-slugify<9.0,>=5.0
52
+ Requires-Dist: python-slugify<9.1,>=9
53
53
  Requires-Dist: pytz<2027,>=2021.1
54
54
  Requires-Dist: pyyaml<7.0.0,>=5.4.1
55
55
  Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
@@ -53,7 +53,7 @@ dependencies = [
53
53
  "pydantic_extra_types>=2.8.2,<3.0.0",
54
54
  "pydantic_settings>=2.9.1,<3.0.0",
55
55
  "python-dateutil>=2.8.2,<3.0.0",
56
- "python-slugify>=5.0,<9.0",
56
+ "python-slugify>=9,<9.1",
57
57
  "pytz>=2021.1,<2027",
58
58
  "pyyaml>=5.4.1,<7.0.0",
59
59
  "rfc3339-validator>=0.1.4,<0.2.0",
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.8.7"
3
+ __build_date__ = "2026-09-26 23:42:21.142838+00:00"
4
+ __git_commit__ = "4f52bc6d0dd8186ca63bdd0552c5e21f05b483b2"
5
+ __dirty__ = False
@@ -410,6 +410,11 @@ class WatcherThreadCancelScope(CancelScope):
410
410
  def __enter__(self):
411
411
  super().__enter__()
412
412
  self._event = threading.Event()
413
+ # Serializes exception delivery with the supervised thread's exit, so the
414
+ # exception is never injected into a thread that has already left the scope
415
+ # and is running arbitrary code.
416
+ self._exit_lock = threading.Lock()
417
+ self._exited = False
413
418
  self._enforcer_thread = None
414
419
  self._supervised_thread = threading.current_thread()
415
420
 
@@ -428,7 +433,9 @@ class WatcherThreadCancelScope(CancelScope):
428
433
  # this frame, so the event must be set from a `finally` to guarantee the
429
434
  # enforcer is always released.
430
435
  try:
431
- retval = super().__exit__(*_)
436
+ with self._exit_lock:
437
+ self._exited = True
438
+ retval = super().__exit__(*_)
432
439
  finally:
433
440
  self._event.set()
434
441
  if self._enforcer_thread:
@@ -448,7 +455,13 @@ class WatcherThreadCancelScope(CancelScope):
448
455
  self,
449
456
  self._supervised_thread,
450
457
  )
451
- with _get_thread_shield(self._supervised_thread):
458
+ # The shield is acquired before the exit lock: the supervised thread may
459
+ # exit the scope while shielded and must not wait on a lock held by a
460
+ # thread that is waiting for that shield.
461
+ with _get_thread_shield(self._supervised_thread), self._exit_lock:
462
+ if self._exited:
463
+ logger.debug("%r already exited; not sending exception", self)
464
+ return
452
465
  try:
453
466
  _send_exception_to_thread(self._supervised_thread, CancelledError)
454
467
  except ValueError:
@@ -462,8 +475,7 @@ class WatcherThreadCancelScope(CancelScope):
462
475
  if not self._event.wait(self.timeout):
463
476
  logger.debug("%r enforcer detected timeout!", self)
464
477
  if self.cancel(throw=False):
465
- with _get_thread_shield(self._supervised_thread):
466
- self._send_cancelled_error()
478
+ self._send_cancelled_error()
467
479
 
468
480
  def cancel(self, throw: bool = True):
469
481
  if not super().cancel():
@@ -113,6 +113,15 @@ class ZipExtractor:
113
113
  # Extract all
114
114
  zf.extractall(target_dir)
115
115
 
116
+ # `extractall` drops the archived permission bits, so executable
117
+ # files would arrive without their executable mode.
118
+ for info in zf.infolist():
119
+ if info.is_dir():
120
+ continue
121
+ mode = info.external_attr >> 16 & 0o7777
122
+ if mode:
123
+ (target_dir / info.filename).chmod(mode)
124
+
116
125
  # Build extracted paths list
117
126
  for member in members:
118
127
  if not member.endswith("/"): # Skip directories
@@ -1,7 +1,9 @@
1
1
  import json
2
2
  import sys
3
+ from pathlib import Path
3
4
  from typing import Any
4
5
 
6
+ from prefect.bundles._zip_extractor import ZipExtractor
5
7
  from prefect.utilities.asyncutils import run_coro_as_sync
6
8
 
7
9
 
@@ -9,12 +11,30 @@ def execute_bundle_from_file(key: str) -> None:
9
11
  """
10
12
  Loads a bundle from a file and executes it.
11
13
 
14
+ If the bundle declares a sidecar zip of included files, the zip is read from
15
+ the directory of the bundle file and its contents are extracted into the
16
+ working directory before the flow runs.
17
+
12
18
  Args:
13
19
  key: The key of the bundle to execute.
14
20
  """
15
- with open(key, "r") as f:
21
+ bundle_path = Path(key)
22
+ with open(bundle_path, "r") as f:
16
23
  bundle = json.load(f)
17
24
 
25
+ files_key: str | None = bundle.get("files_key")
26
+ if files_key:
27
+ sidecar_path = bundle_path.parent / files_key
28
+ if not sidecar_path.exists():
29
+ raise RuntimeError(
30
+ f"Bundle declares included files at {files_key!r}, but no archive"
31
+ f" was found at {sidecar_path}."
32
+ )
33
+ try:
34
+ ZipExtractor(sidecar_path).extract()
35
+ except Exception as e:
36
+ raise RuntimeError(f"Failed to extract included files: {e}") from e
37
+
18
38
  run_coro_as_sync(execute_bundle(bundle))
19
39
 
20
40
 
@@ -67,4 +67,10 @@ def get_attribution_headers() -> dict[str, str]:
67
67
  if deployment_name := os.environ.get("PREFECT__DEPLOYMENT_NAME"):
68
68
  headers["X-Prefect-Deployment-Name"] = deployment_name
69
69
 
70
- return headers
70
+ # HTTP header values cannot start or end with spaces or tabs. Normalize only
71
+ # the attribution values, leaving the actual flow/deployment/worker names intact.
72
+ return {
73
+ name: stripped
74
+ for name, value in headers.items()
75
+ if (stripped := value.strip(" \t"))
76
+ }
@@ -930,9 +930,10 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
930
930
  run, if appropriate.
931
931
 
932
932
  If the parent task run is in a final state, we return the existing
933
- subflow run to avoid re-execution (unless the parent is being rerun
934
- and the subflow did not complete, in which case a fresh run is
935
- desired).
933
+ subflow run unless the parent is being rerun and the subflow either
934
+ did not complete or has no persisted result. In those cases a fresh
935
+ run gives the subflow its full retry budget while preserving the
936
+ previous run's history.
936
937
 
937
938
  If the parent task run is in a non-final state (e.g. still Running
938
939
  after a process restart), we also look for an existing subflow run
@@ -972,8 +973,18 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
972
973
  )
973
974
  if flow_runs:
974
975
  loaded_flow_run = flow_runs[0]
975
- # When the parent task run is final the subflow has already
976
- # finished; cache the result so the engine skips re-execution.
976
+ if (
977
+ rerunning
978
+ and parent_task_run.state.is_completed()
979
+ and loaded_flow_run.state is not None
980
+ and loaded_flow_run.state.is_completed()
981
+ and loaded_flow_run.state.data is None
982
+ ):
983
+ # Without a persisted result the child must execute again. A
984
+ # fresh run preserves its history and restores its retry budget.
985
+ return None
986
+
987
+ # Keep the previous state available when reusing a finished run.
977
988
  if parent_task_run.state.is_final():
978
989
  self._return_value = loaded_flow_run.state
979
990
  return loaded_flow_run
@@ -1638,9 +1649,10 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
1638
1649
  run, if appropriate.
1639
1650
 
1640
1651
  If the parent task run is in a final state, we return the existing
1641
- subflow run to avoid re-execution (unless the parent is being rerun
1642
- and the subflow did not complete, in which case a fresh run is
1643
- desired).
1652
+ subflow run unless the parent is being rerun and the subflow either
1653
+ did not complete or has no persisted result. In those cases a fresh
1654
+ run gives the subflow its full retry budget while preserving the
1655
+ previous run's history.
1644
1656
 
1645
1657
  If the parent task run is in a non-final state (e.g. still Running
1646
1658
  after a process restart), we also look for an existing subflow run
@@ -1680,8 +1692,18 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
1680
1692
  )
1681
1693
  if flow_runs:
1682
1694
  loaded_flow_run = flow_runs[0]
1683
- # When the parent task run is final the subflow has already
1684
- # finished; cache the result so the engine skips re-execution.
1695
+ if (
1696
+ rerunning
1697
+ and parent_task_run.state.is_completed()
1698
+ and loaded_flow_run.state is not None
1699
+ and loaded_flow_run.state.is_completed()
1700
+ and loaded_flow_run.state.data is None
1701
+ ):
1702
+ # Without a persisted result the child must execute again. A
1703
+ # fresh run preserves its history and restores its retry budget.
1704
+ return None
1705
+
1706
+ # Keep the previous state available when reusing a finished run.
1685
1707
  if parent_task_run.state.is_final():
1686
1708
  self._return_value = loaded_flow_run.state
1687
1709
  return loaded_flow_run
@@ -486,15 +486,21 @@ class ResultStore(BaseModel):
486
486
  Returns:
487
487
  ResultRecord: The result record.
488
488
  """
489
- if metadata.storage_block_id is None:
490
- storage_block = None
491
- else:
492
- storage_block = await aresolve_result_storage(metadata.storage_block_id)
493
- store = cls(result_storage=storage_block, serializer=metadata.serializer)
494
489
  if metadata.storage_key is None:
495
490
  raise ValueError(
496
491
  "storage_key is required to hydrate a result record from metadata"
497
492
  )
493
+ if metadata.storage_block_id is not None:
494
+ storage_block = await aresolve_result_storage(metadata.storage_block_id)
495
+ elif Path(metadata.storage_key).is_absolute():
496
+ # Results written to an unsaved local filesystem record an absolute path
497
+ # as the storage key, which may live outside the default local storage.
498
+ storage_block = LocalFileSystem(
499
+ basepath=str(Path(metadata.storage_key).parent)
500
+ )
501
+ else:
502
+ storage_block = None
503
+ store = cls(result_storage=storage_block, serializer=metadata.serializer)
498
504
  result = await store.aread(metadata.storage_key)
499
505
  return result
500
506
 
@@ -760,6 +760,7 @@
760
760
  "auto_remove": "{{ auto_remove }}",
761
761
  "volumes": "{{ volumes }}",
762
762
  "stream_output": "{{ stream_output }}",
763
+ "container_wait_timeout": "{{ container_wait_timeout }}",
763
764
  "mem_limit": "{{ mem_limit }}",
764
765
  "memswap_limit": "{{ memswap_limit }}",
765
766
  "privileged": "{{ privileged }}"
@@ -856,6 +857,12 @@
856
857
  "default": true,
857
858
  "type": "boolean"
858
859
  },
860
+ "container_wait_timeout": {
861
+ "title": "Container Wait Timeout",
862
+ "description": "Maximum number of seconds the worker waits for a created container to exit. If the container has not exited within this time, the worker stops watching it; the container itself is not stopped. If not set, the worker waits indefinitely.",
863
+ "exclusiveMinimum": 0,
864
+ "type": "integer"
865
+ },
859
866
  "mem_limit": {
860
867
  "title": "Memory Limit",
861
868
  "description": "Memory limit of created containers. Accepts a value with a unit identifier (e.g. 100000b, 1000k, 128m, 1g.) If a value is given without a unit, bytes are assumed.",
@@ -279,6 +279,19 @@ class Settings(PrefectBaseSettings):
279
279
  to use default_factory. The remaining items here require access to the full Settings instance
280
280
  or have complex interdependencies that will be migrated in future PRs.
281
281
  """
282
+ if "profiles_path" not in self.model_fields_set:
283
+ self.profiles_path = self.home / "profiles.toml"
284
+ self.__pydantic_fields_set__.remove("profiles_path")
285
+ if "local_storage_path" not in self.results.model_fields_set:
286
+ self.results.local_storage_path = self.home / "storage"
287
+ self.results.__pydantic_fields_set__.remove("local_storage_path")
288
+ if "config_path" not in self.logging.model_fields_set:
289
+ self.logging.config_path = self.home / "logging.yml"
290
+ self.logging.__pydantic_fields_set__.remove("config_path")
291
+ if "memo_store_path" not in self.server.model_fields_set:
292
+ self.server.memo_store_path = self.home / "memo_store.toml"
293
+ self.server.__pydantic_fields_set__.remove("memo_store_path")
294
+
282
295
  if self.ui_url is None:
283
296
  self.ui_url = default_ui_url(self)
284
297
  self.__pydantic_fields_set__.remove("ui_url")
@@ -22,5 +22,12 @@ class ServerDocketSettings(PrefectBaseSettings):
22
22
 
23
23
  url: str = Field(
24
24
  default="memory://",
25
- description="The URL of the Redis server to use for Docket.",
25
+ description=(
26
+ "The URL of the Redis server to use for Docket. Supports the "
27
+ "memory:// (single-server only), redis://, rediss://, "
28
+ "redis+sentinel:// and rediss+sentinel:// schemes; the Sentinel "
29
+ "schemes discover the current master through the listed Sentinel "
30
+ "daemons and follow failover automatically (requires "
31
+ "pydocket>=0.23.1)."
32
+ ),
26
33
  )
@@ -721,7 +721,7 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
721
721
  exc,
722
722
  message="Task run encountered an exception",
723
723
  result_store=get_result_store(),
724
- write_result=True,
724
+ write_result=should_persist_result(),
725
725
  )
726
726
  self.set_state(state)
727
727
  self._raised = exc
@@ -1348,6 +1348,7 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
1348
1348
  exc,
1349
1349
  message="Task run encountered an exception",
1350
1350
  result_store=get_result_store(),
1351
+ write_result=should_persist_result(),
1351
1352
  )
1352
1353
  await self.set_state(state)
1353
1354
  self._raised = exc
@@ -48,10 +48,15 @@ def clamped_poisson_interval(
48
48
 
49
49
  The upper bound for this random variate is: average_interval * (1 + clamping_factor).
50
50
  A lower bound is picked so that the average interval remains approximately fixed.
51
+
52
+ An `average_interval` of zero (or less) yields an interval of `0.0`.
51
53
  """
52
54
  if clamping_factor <= 0:
53
55
  raise ValueError("`clamping_factor` must be >= 0.")
54
56
 
57
+ if average_interval <= 0:
58
+ return 0.0
59
+
55
60
  upper_clamp_multiple = 1 + clamping_factor
56
61
  upper_bound = average_interval * upper_clamp_multiple
57
62
  lower_bound = max(0, average_interval * lower_clamp_multiple(upper_clamp_multiple))
@@ -83,7 +83,7 @@ def find_placeholders(template: T) -> set[Placeholder]:
83
83
  A set of all placeholders in the template
84
84
  """
85
85
  seed: set[Placeholder] = set()
86
- if isinstance(template, (int, float, bool)):
86
+ if template is None or isinstance(template, (int, float, bool)):
87
87
  return seed
88
88
  if isinstance(template, str):
89
89
  result = PLACEHOLDER_CAPTURE_REGEX.findall(template)
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.8.6.dev4"
3
- __build_date__ = "2026-09-11 08:19:45.490504+00:00"
4
- __git_commit__ = "d82220b5887fe65f6a469f4cb51124a01d02741f"
5
- __dirty__ = False