prefect-client 3.8.1.dev2__tar.gz → 3.8.1.dev3__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 (451) hide show
  1. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/PKG-INFO +1 -1
  2. prefect_client-3.8.1.dev3/src/prefect/_build_info.py +5 -0
  3. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/base.py +111 -47
  4. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/process.py +1 -102
  5. prefect_client-3.8.1.dev2/src/prefect/_build_info.py +0 -5
  6. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/.gitignore +0 -0
  7. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/LICENSE +0 -0
  8. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/README.md +0 -0
  9. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/hatch_build.py +0 -0
  10. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/pyproject.toml +0 -0
  11. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/.prefectignore +0 -0
  12. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/AGENTS.md +0 -0
  13. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/__init__.py +0 -0
  14. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/__main__.py +0 -0
  15. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/__init__.py +0 -0
  16. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/_launchers.py +0 -0
  17. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/bundles/__init__.py +0 -0
  18. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/bundles/execute.py +0 -0
  19. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/plugins/__init__.py +0 -0
  20. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/plugins/apply.py +0 -0
  21. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  22. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/plugins/manager.py +0 -0
  23. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/plugins/spec.py +0 -0
  24. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/sla/__init__.py +0 -0
  25. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/sla/client.py +0 -0
  26. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_experimental/sla/objects.py +0 -0
  27. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_flow_run_suspension.py +0 -0
  28. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/__init__.py +0 -0
  29. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/_logging.py +0 -0
  30. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/__init__.py +0 -0
  31. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  32. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/client.py +0 -0
  33. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/device_id.py +0 -0
  34. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/emit.py +0 -0
  35. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/enabled.py +0 -0
  36. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/events.py +0 -0
  37. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/milestones.py +0 -0
  38. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/notice.py +0 -0
  39. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/analytics/service.py +0 -0
  40. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/ast_utils.py +0 -0
  41. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/buildx.py +0 -0
  42. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/__init__.py +0 -0
  43. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  44. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/backports.py +0 -0
  45. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/blocks.py +0 -0
  46. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  47. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  48. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/migration.py +0 -0
  49. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/compatibility/starlette.py +0 -0
  50. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/__init__.py +0 -0
  51. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/api.py +0 -0
  52. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/calls.py +0 -0
  53. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  54. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  55. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/inspection.py +0 -0
  56. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/primitives.py +0 -0
  57. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/services.py +0 -0
  58. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/threads.py +0 -0
  59. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/concurrency/waiters.py +0 -0
  60. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/control_listener.py +0 -0
  61. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/deprecated.py +0 -0
  62. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/engine.py +0 -0
  63. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/git.py +0 -0
  64. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  65. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/installation.py +0 -0
  66. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/integrations.py +0 -0
  67. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/launchers.py +0 -0
  68. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/lazy.py +0 -0
  69. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/metrics.py +0 -0
  70. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/observability.py +0 -0
  71. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/observers.py +0 -0
  72. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/__init__.py +0 -0
  73. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/apply.py +0 -0
  74. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/collections.py +0 -0
  75. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  76. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/manager.py +0 -0
  77. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/spec.py +0 -0
  78. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/plugins/startup.py +0 -0
  79. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/pydantic/__init__.py +0 -0
  80. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/pydantic/schemas.py +0 -0
  81. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  82. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  83. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  84. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/pytz.py +0 -0
  85. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/result_records.py +0 -0
  86. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/retries.py +0 -0
  87. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schema.py +0 -0
  88. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schemas/__init__.py +0 -0
  89. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schemas/_registry.py +0 -0
  90. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schemas/bases.py +0 -0
  91. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schemas/fields.py +0 -0
  92. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schemas/serializers.py +0 -0
  93. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/schemas/validators.py +0 -0
  94. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  95. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/states.py +0 -0
  96. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/testing.py +0 -0
  97. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/urls.py +0 -0
  98. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/uuid7.py +0 -0
  99. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/version_checking.py +0 -0
  100. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/versioning.py +0 -0
  101. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/waiters.py +0 -0
  102. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_internal/websockets.py +0 -0
  103. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/__init__.py +0 -0
  104. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/fetcher.py +0 -0
  105. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/generator.py +0 -0
  106. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/models.py +0 -0
  107. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/naming.py +0 -0
  108. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/renderer.py +0 -0
  109. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/schema_converter.py +0 -0
  110. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/templates/__init__.py +0 -0
  111. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  112. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/types.py +0 -0
  113. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_sdk/unions.py +0 -0
  114. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_vendor/croniter/__init__.py +0 -0
  115. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/_vendor/croniter/croniter.py +0 -0
  116. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/agent.py +0 -0
  117. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/analytics/__init__.py +0 -0
  118. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/artifacts.py +0 -0
  119. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/assets/__init__.py +0 -0
  120. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/assets/core.py +0 -0
  121. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/assets/materialize.py +0 -0
  122. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/automations.py +0 -0
  123. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/AGENTS.md +0 -0
  124. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/__init__.py +0 -0
  125. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/abstract.py +0 -0
  126. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/core.py +0 -0
  127. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/fields.py +0 -0
  128. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/notifications.py +0 -0
  129. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/redis.py +0 -0
  130. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/system.py +0 -0
  131. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/blocks/webhook.py +0 -0
  132. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/__init__.py +0 -0
  133. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/_file_collector.py +0 -0
  134. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/_ignore_filter.py +0 -0
  135. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/_path_resolver.py +0 -0
  136. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/_zip_builder.py +0 -0
  137. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/_zip_extractor.py +0 -0
  138. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/bundles/execute.py +0 -0
  139. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/cache_policies.py +0 -0
  140. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/AGENTS.md +0 -0
  141. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/__init__.py +0 -0
  142. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/attribution.py +0 -0
  143. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/base.py +0 -0
  144. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/cloud.py +0 -0
  145. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/collections.py +0 -0
  146. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/constants.py +0 -0
  147. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/__init__.py +0 -0
  148. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  149. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  150. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  151. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_automations/client.py +0 -0
  152. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  153. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  154. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  155. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  156. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  157. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  158. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  159. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  160. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  161. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  162. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  163. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_events/client.py +0 -0
  164. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  165. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  166. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  167. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_flows/client.py +0 -0
  168. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  169. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_logs/client.py +0 -0
  170. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  171. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_variables/client.py +0 -0
  172. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  173. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  174. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/base.py +0 -0
  175. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/orchestration/routes.py +0 -0
  176. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/__init__.py +0 -0
  177. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/actions.py +0 -0
  178. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/events.py +0 -0
  179. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/filters.py +0 -0
  180. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/objects.py +0 -0
  181. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/responses.py +0 -0
  182. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/schedules.py +0 -0
  183. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/sorting.py +0 -0
  184. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/schemas/worker_channel.py +0 -0
  185. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/subscriptions.py +0 -0
  186. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/types/__init__.py +0 -0
  187. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  188. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/client/utilities.py +0 -0
  189. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/AGENTS.md +0 -0
  190. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/__init__.py +0 -0
  191. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/_asyncio.py +0 -0
  192. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/_events.py +0 -0
  193. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/_leases.py +0 -0
  194. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/_sync.py +0 -0
  195. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/asyncio.py +0 -0
  196. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/context.py +0 -0
  197. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/services.py +0 -0
  198. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/sync.py +0 -0
  199. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/__init__.py +0 -0
  200. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  201. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/_events.py +0 -0
  202. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/asyncio.py +0 -0
  203. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/context.py +0 -0
  204. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/services.py +0 -0
  205. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/concurrency/v1/sync.py +0 -0
  206. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/context.py +0 -0
  207. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/AGENTS.md +0 -0
  208. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/__init__.py +0 -0
  209. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/base.py +0 -0
  210. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/deployments.py +0 -0
  211. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/flow_runs.py +0 -0
  212. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/runner.py +0 -0
  213. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/schedules.py +0 -0
  214. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/steps/__init__.py +0 -0
  215. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/steps/core.py +0 -0
  216. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/steps/pull.py +0 -0
  217. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/deployments/steps/utility.py +0 -0
  218. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/docker/__init__.py +0 -0
  219. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/docker/_buildx.py +0 -0
  220. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/docker/docker_image.py +0 -0
  221. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/engine.py +0 -0
  222. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/AGENTS.md +0 -0
  223. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/__init__.py +0 -0
  224. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/actions.py +0 -0
  225. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/clients.py +0 -0
  226. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/filters.py +0 -0
  227. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/related.py +0 -0
  228. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/schemas/__init__.py +0 -0
  229. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/schemas/automations.py +0 -0
  230. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  231. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/schemas/events.py +0 -0
  232. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/schemas/labelling.py +0 -0
  233. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/subscribers.py +0 -0
  234. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/utilities.py +0 -0
  235. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/events/worker.py +0 -0
  236. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/exceptions.py +0 -0
  237. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/filesystems.py +0 -0
  238. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/flow_engine.py +0 -0
  239. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/flow_runs.py +0 -0
  240. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/flows.py +0 -0
  241. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/futures.py +0 -0
  242. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/__init__.py +0 -0
  243. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/base.py +0 -0
  244. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  245. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  246. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  247. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  248. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  249. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  250. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/input/__init__.py +0 -0
  251. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/input/actions.py +0 -0
  252. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/input/run_input.py +0 -0
  253. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/locking/__init__.py +0 -0
  254. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/locking/_filelock.py +0 -0
  255. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/locking/filesystem.py +0 -0
  256. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/locking/memory.py +0 -0
  257. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/locking/protocol.py +0 -0
  258. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/AGENTS.md +0 -0
  259. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/__init__.py +0 -0
  260. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/clients.py +0 -0
  261. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/configuration.py +0 -0
  262. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/filters.py +0 -0
  263. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/formatters.py +0 -0
  264. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/handlers.py +0 -0
  265. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/highlighters.py +0 -0
  266. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/loggers.py +0 -0
  267. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/logging/logging.yml +0 -0
  268. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/main.py +0 -0
  269. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/plugins.py +0 -0
  270. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/py.typed +0 -0
  271. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/results.py +0 -0
  272. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/AGENTS.md +0 -0
  273. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/__init__.py +0 -0
  274. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_cancel_finalizer.py +0 -0
  275. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_cancellation_manager.py +0 -0
  276. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_control_channel.py +0 -0
  277. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_deployment_registry.py +0 -0
  278. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_event_emitter.py +0 -0
  279. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_flow_resolver.py +0 -0
  280. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_flow_run_executor.py +0 -0
  281. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_hook_runner.py +0 -0
  282. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_limit_manager.py +0 -0
  283. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_process_manager.py +0 -0
  284. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  285. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_starter_bundle.py +0 -0
  286. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_starter_direct.py +0 -0
  287. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_starter_engine.py +0 -0
  288. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_state_proposer.py +0 -0
  289. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_workspace_resolver.py +0 -0
  290. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/_workspace_starter.py +0 -0
  291. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/runner.py +0 -0
  292. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/server.py +0 -0
  293. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runner/storage.py +0 -0
  294. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runtime/__init__.py +0 -0
  295. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runtime/deployment.py +0 -0
  296. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runtime/flow_run.py +0 -0
  297. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/runtime/task_run.py +0 -0
  298. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/schedules.py +0 -0
  299. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/serializers.py +0 -0
  300. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/__init__.py +0 -0
  301. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/_ui_static.py +0 -0
  302. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/admin.py +0 -0
  303. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/artifacts.py +0 -0
  304. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/automations.py +0 -0
  305. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/background_workers.py +0 -0
  306. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/block_capabilities.py +0 -0
  307. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/block_documents.py +0 -0
  308. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/block_schemas.py +0 -0
  309. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/block_types.py +0 -0
  310. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/clients.py +0 -0
  311. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/collections.py +0 -0
  312. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  313. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/concurrency_limits.py +0 -0
  314. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  315. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/csrf_token.py +0 -0
  316. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/dependencies.py +0 -0
  317. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/deployments.py +0 -0
  318. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/events.py +0 -0
  319. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/flow_run_states.py +0 -0
  320. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/flow_runs.py +0 -0
  321. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/flows.py +0 -0
  322. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/logs.py +0 -0
  323. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/middleware.py +0 -0
  324. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/root.py +0 -0
  325. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/run_history.py +0 -0
  326. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/saved_searches.py +0 -0
  327. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/server.py +0 -0
  328. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  329. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/task_run_states.py +0 -0
  330. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/task_runs.py +0 -0
  331. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/task_workers.py +0 -0
  332. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/templates.py +0 -0
  333. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/ui/__init__.py +0 -0
  334. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/ui/flow_runs.py +0 -0
  335. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/ui/flows.py +0 -0
  336. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/ui/schemas.py +0 -0
  337. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/ui/task_runs.py +0 -0
  338. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/validation.py +0 -0
  339. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/variables.py +0 -0
  340. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/work_queues.py +0 -0
  341. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/server/api/workers.py +0 -0
  342. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/AGENTS.md +0 -0
  343. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/__init__.py +0 -0
  344. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/_types.py +0 -0
  345. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/base.py +0 -0
  346. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/constants.py +0 -0
  347. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/context.py +0 -0
  348. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/legacy.py +0 -0
  349. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/__init__.py +0 -0
  350. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/_defaults.py +0 -0
  351. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/api.py +0 -0
  352. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/cli.py +0 -0
  353. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/client.py +0 -0
  354. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/cloud.py +0 -0
  355. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/deployments.py +0 -0
  356. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/events.py +0 -0
  357. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/experiments.py +0 -0
  358. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/flows.py +0 -0
  359. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/internal.py +0 -0
  360. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/logging.py +0 -0
  361. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/plugins.py +0 -0
  362. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/results.py +0 -0
  363. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/root.py +0 -0
  364. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/runner.py +0 -0
  365. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/__init__.py +0 -0
  366. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/api.py +0 -0
  367. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/concurrency.py +0 -0
  368. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/database.py +0 -0
  369. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/deployments.py +0 -0
  370. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/docket.py +0 -0
  371. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/ephemeral.py +0 -0
  372. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/events.py +0 -0
  373. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  374. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/logs.py +0 -0
  375. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/root.py +0 -0
  376. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/services.py +0 -0
  377. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/tasks.py +0 -0
  378. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/ui.py +0 -0
  379. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/server/worker_channel.py +0 -0
  380. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/tasks.py +0 -0
  381. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/telemetry.py +0 -0
  382. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/testing.py +0 -0
  383. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/models/worker.py +0 -0
  384. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/profiles.py +0 -0
  385. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/profiles.toml +0 -0
  386. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/settings/sources.py +0 -0
  387. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/states.py +0 -0
  388. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/task_engine.py +0 -0
  389. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/task_runners.py +0 -0
  390. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/task_runs.py +0 -0
  391. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/task_worker.py +0 -0
  392. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/tasks.py +0 -0
  393. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/telemetry/__init__.py +0 -0
  394. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/telemetry/run_telemetry.py +0 -0
  395. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/transactions.py +0 -0
  396. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/types/__init__.py +0 -0
  397. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/types/_concurrency.py +0 -0
  398. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/types/_datetime.py +0 -0
  399. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/types/entrypoint.py +0 -0
  400. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/types/names.py +0 -0
  401. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/AGENTS.md +0 -0
  402. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/__init__.py +0 -0
  403. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/annotations.py +0 -0
  404. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  405. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  406. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/callables/AGENTS.md +0 -0
  407. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/callables/__init__.py +0 -0
  408. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/collections.py +0 -0
  409. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/compat.py +0 -0
  410. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/context.py +0 -0
  411. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/dispatch.py +0 -0
  412. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/dockerutils.py +0 -0
  413. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/engine/AGENTS.md +0 -0
  414. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/engine/__init__.py +0 -0
  415. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  416. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/filesystem/__init__.py +0 -0
  417. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/generics.py +0 -0
  418. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/hashing.py +0 -0
  419. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/importtools.py +0 -0
  420. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/math.py +0 -0
  421. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/names.py +0 -0
  422. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  423. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/processutils/__init__.py +0 -0
  424. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/pydantic.py +0 -0
  425. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/render_swagger.py +0 -0
  426. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  427. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  428. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  429. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/schema_tools/validation.py +0 -0
  430. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/services.py +0 -0
  431. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/slugify.py +0 -0
  432. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/templating/AGENTS.md +0 -0
  433. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/templating/__init__.py +0 -0
  434. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/text.py +0 -0
  435. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/timeout.py +0 -0
  436. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/urls.py +0 -0
  437. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/utilities/visualization.py +0 -0
  438. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/variables.py +0 -0
  439. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/AGENTS.md +0 -0
  440. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/__init__.py +0 -0
  441. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_cleanup.py +0 -0
  442. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_cleanup_handlers.py +0 -0
  443. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  444. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  445. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_worker_channel/_state.py +0 -0
  446. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  447. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  448. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/block.py +0 -0
  449. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/cloud.py +0 -0
  450. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/src/prefect/workers/server.py +0 -0
  451. {prefect_client-3.8.1.dev2 → prefect_client-3.8.1.dev3}/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.8.1.dev2
3
+ Version: 3.8.1.dev3
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
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.8.1.dev3"
3
+ __build_date__ = "2026-07-28 08:59:55.996688+00:00"
4
+ __git_commit__ = "3ef82fb58dc8dfdf8fc43fd2bab45007eeec0450"
5
+ __dirty__ = False
@@ -26,6 +26,7 @@ from zoneinfo import ZoneInfo
26
26
 
27
27
  import anyio
28
28
  import anyio.abc
29
+ import httpx
29
30
  from exceptiongroup import BaseExceptionGroup, ExceptionGroup
30
31
  from pydantic import BaseModel, Field, PrivateAttr, field_validator
31
32
  from pydantic.json_schema import GenerateJsonSchema
@@ -118,6 +119,13 @@ if TYPE_CHECKING:
118
119
  from prefect.flows import Flow
119
120
 
120
121
 
122
+ def _is_transient_api_error(exc: httpx.HTTPError) -> bool:
123
+ """Whether an API error is likely to resolve itself if retried."""
124
+ if isinstance(exc, httpx.HTTPStatusError):
125
+ return exc.response.status_code >= 500
126
+ return isinstance(exc, httpx.TransportError)
127
+
128
+
121
129
  class BaseJobConfiguration(BaseModel):
122
130
  command: Optional[str] = Field(
123
131
  default=None,
@@ -681,6 +689,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
681
689
  self._submitting_flow_run_ids: set[UUID] = set()
682
690
  self._scheduled_task_scopes: set[anyio.CancelScope] = set()
683
691
  self._worker_channel: Optional[WorkerChannel] = None
692
+ self._has_successfully_synced = False
684
693
 
685
694
  # Cancellation handling
686
695
  self._cancelling_observer: Optional[FlowRunCancellingObserver] = None
@@ -836,29 +845,36 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
836
845
  healthcheck_thread = None
837
846
  try:
838
847
  async with self as worker:
839
- # schedule the scheduled flow run polling loop
848
+ polling_service = partial(
849
+ critical_service_loop,
850
+ workload=self.get_and_submit_flow_runs,
851
+ interval=PREFECT_WORKER_QUERY_SECONDS.value(),
852
+ run_once=run_once,
853
+ jitter_range=0.3,
854
+ backoff=4, # Up to ~1 minute interval during backoff
855
+ )
856
+ sync_service = partial(
857
+ critical_service_loop,
858
+ workload=self._sync_and_initialize,
859
+ interval=self.heartbeat_interval_seconds,
860
+ run_once=run_once,
861
+ jitter_range=0.3,
862
+ backoff=4,
863
+ )
864
+
840
865
  async with anyio.create_task_group() as loops_task_group:
841
- loops_task_group.start_soon(
842
- partial(
843
- critical_service_loop,
844
- workload=self.get_and_submit_flow_runs,
845
- interval=PREFECT_WORKER_QUERY_SECONDS.value(),
846
- run_once=run_once,
847
- jitter_range=0.3,
848
- backoff=4, # Up to ~1 minute interval during backoff
849
- )
850
- )
851
- # schedule the sync loop
852
- loops_task_group.start_soon(
853
- partial(
854
- critical_service_loop,
855
- workload=self.sync_with_backend,
856
- interval=self.heartbeat_interval_seconds,
857
- run_once=run_once,
858
- jitter_range=0.3,
859
- backoff=4,
860
- )
861
- )
866
+ if run_once:
867
+
868
+ async def run_once_services() -> None:
869
+ # A one-shot poll needs the work-pool configuration
870
+ # produced by the one-shot synchronization attempt.
871
+ await sync_service()
872
+ await polling_service()
873
+
874
+ loops_task_group.start_soon(run_once_services)
875
+ else:
876
+ loops_task_group.start_soon(polling_service)
877
+ loops_task_group.start_soon(sync_service)
862
878
 
863
879
  self._started_event = await self._emit_worker_started_event()
864
880
 
@@ -1193,6 +1209,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1193
1209
  async def setup(self) -> None:
1194
1210
  """Prepares the worker to run."""
1195
1211
  self._logger.debug("Setting up worker...")
1212
+ self._has_successfully_synced = False
1196
1213
  self._runs_task_group = anyio.create_task_group()
1197
1214
  self._limiter = (
1198
1215
  anyio.CapacityLimiter(self._limit) if self._limit is not None else None
@@ -1210,31 +1227,16 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1210
1227
  # it in all API requests made by this worker process.
1211
1228
  os.environ["PREFECT__WORKER_NAME"] = self.name
1212
1229
 
1213
- await self.sync_with_backend()
1214
-
1215
- # Initialize cancellation handling if enabled
1216
- if get_current_settings().worker.enable_cancellation and self._work_pool:
1217
- try:
1218
- self._cancelling_observer = await self._exit_stack.enter_async_context(
1219
- FlowRunCancellingObserver(
1220
- on_cancelling=lambda flow_run_id: (
1221
- self._runs_task_group.start_soon(
1222
- self._cancel_run, flow_run_id
1223
- )
1224
- ),
1225
- polling_interval=get_current_settings().worker.cancellation_poll_seconds,
1226
- event_filter=EventFilter(
1227
- event=EventNameFilter(name=["prefect.flow-run.Cancelling"]),
1228
- any_resource=EventAnyResourceFilter(
1229
- id=[f"prefect.work-pool.{self._work_pool.id}"]
1230
- ),
1231
- ),
1232
- )
1233
- )
1234
- except Exception as exc:
1235
- self._logger.warning(
1236
- "Failed to setup cancellation handling: %s", exc, exc_info=True
1237
- )
1230
+ try:
1231
+ await self._sync_and_initialize()
1232
+ except httpx.HTTPError as exc:
1233
+ if not _is_transient_api_error(exc):
1234
+ raise
1235
+ self._logger.warning(
1236
+ "Unable to reach the Prefect API while starting up; the worker will "
1237
+ "keep attempting to connect: %s",
1238
+ exc,
1239
+ )
1238
1240
 
1239
1241
  self.is_setup = True
1240
1242
 
@@ -1266,6 +1268,8 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1266
1268
  self._runs_task_group = None
1267
1269
  self._client = None
1268
1270
  self._worker_channel = None
1271
+ self._has_successfully_synced = False
1272
+ self._cancelling_observer = None
1269
1273
 
1270
1274
  def is_worker_still_polling(self, query_interval_seconds: float) -> bool:
1271
1275
  """
@@ -1297,6 +1301,14 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1297
1301
  return is_still_polling
1298
1302
 
1299
1303
  async def get_and_submit_flow_runs(self) -> list["FlowRun"]:
1304
+ if not self._has_successfully_synced:
1305
+ self._logger.debug(
1306
+ "Worker has not yet synced with the Prefect API; "
1307
+ "skipping flow run submission."
1308
+ )
1309
+ self._last_polled_time = prefect.types._datetime.now("UTC")
1310
+ return []
1311
+
1300
1312
  runs_response = await self._get_scheduled_flow_runs()
1301
1313
 
1302
1314
  self._last_polled_time = prefect.types._datetime.now("UTC")
@@ -1341,6 +1353,15 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1341
1353
  return WorkerMetadata(integrations=integration_versions)
1342
1354
  return None
1343
1355
 
1356
+ async def _sync_and_initialize(self) -> None:
1357
+ """Synchronize the worker and initialize sync-dependent services."""
1358
+ await self.sync_with_backend()
1359
+
1360
+ # Preserve startup behavior for custom workers that override the public
1361
+ # synchronization method without calling `super()`.
1362
+ if not self._has_successfully_synced:
1363
+ await self._initialize_after_sync()
1364
+
1344
1365
  async def sync_with_backend(self) -> None:
1345
1366
  """
1346
1367
  Updates the worker's local information about it's current work pool and
@@ -1353,12 +1374,55 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1353
1374
  return
1354
1375
 
1355
1376
  await self._worker_channel.sync(self._runs_task_group)
1377
+ await self._initialize_after_sync()
1356
1378
 
1357
1379
  self._logger.debug(
1358
1380
  "Worker synchronized with the Prefect API server. "
1359
1381
  + (f"Remote ID: {self.backend_id}" if self.backend_id else "")
1360
1382
  )
1361
1383
 
1384
+ async def _initialize_after_sync(self) -> None:
1385
+ """Initialize services that depend on a completed backend sync."""
1386
+ # Synchronization can succeed without a work pool when automatic work-pool
1387
+ # creation is disabled. The worker cannot submit runs without its template.
1388
+ if self._work_pool is None:
1389
+ return
1390
+
1391
+ await self._setup_cancellation_observer()
1392
+ self._has_successfully_synced = True
1393
+
1394
+ async def _setup_cancellation_observer(self) -> None:
1395
+ """Start observing flow run cancellations if not already observing.
1396
+
1397
+ Requires a work pool, which is only available once the worker has
1398
+ synced with the API.
1399
+ """
1400
+ if self._cancelling_observer is not None or self._work_pool is None:
1401
+ return
1402
+
1403
+ if not get_current_settings().worker.enable_cancellation:
1404
+ return
1405
+
1406
+ try:
1407
+ self._cancelling_observer = await self._exit_stack.enter_async_context(
1408
+ FlowRunCancellingObserver(
1409
+ on_cancelling=lambda flow_run_id: self._runs_task_group.start_soon(
1410
+ self._cancel_run, flow_run_id
1411
+ ),
1412
+ polling_interval=get_current_settings().worker.cancellation_poll_seconds,
1413
+ event_filter=EventFilter(
1414
+ event=EventNameFilter(name=["prefect.flow-run.Cancelling"]),
1415
+ any_resource=EventAnyResourceFilter(
1416
+ id=[f"prefect.work-pool.{self._work_pool.id}"]
1417
+ ),
1418
+ ),
1419
+ )
1420
+ )
1421
+ except Exception as exc:
1422
+ self._logger.warning(
1423
+ "Failed to setup cancellation handling: %s", exc, exc_info=True
1424
+ )
1425
+
1362
1426
  def _ensure_worker_channel(self) -> None:
1363
1427
  if self._client is None:
1364
1428
  return
@@ -19,11 +19,9 @@ from __future__ import annotations
19
19
  import contextlib
20
20
  import os
21
21
  import tempfile
22
- import threading
23
22
  import warnings
24
- from functools import partial
25
23
  from pathlib import Path
26
- from typing import TYPE_CHECKING, Any, Callable, Optional, TypeVar
24
+ from typing import TYPE_CHECKING, Any, Optional, TypeVar
27
25
 
28
26
  import anyio
29
27
  import anyio.abc
@@ -32,14 +30,8 @@ from pydantic import Field, field_validator
32
30
  from prefect._internal.schemas.validators import validate_working_dir
33
31
  from prefect.client.schemas.objects import Flow as APIFlow
34
32
  from prefect.runner.runner import Runner
35
- from prefect.settings import PREFECT_WORKER_QUERY_SECONDS
36
33
  from prefect.states import Pending
37
34
  from prefect.utilities.processutils import command_to_string, get_sys_executable
38
- from prefect.utilities.services import (
39
- critical_service_loop,
40
- start_client_metrics_server,
41
- stop_client_metrics_server,
42
- )
43
35
  from prefect.workers.base import (
44
36
  BaseJobConfiguration,
45
37
  BaseVariables,
@@ -141,99 +133,6 @@ class ProcessWorker(
141
133
  _documentation_url = "https://docs.prefect.io/latest/get-started/quickstart"
142
134
  _logo_url = "https://cdn.sanity.io/images/3ugk85nk/production/356e6766a91baf20e1d08bbe16e8b5aaef4d8643-48x48.png"
143
135
 
144
- async def start(
145
- self,
146
- run_once: bool = False,
147
- with_healthcheck: bool = False,
148
- printer: Callable[..., None] = print,
149
- ) -> None:
150
- """
151
- Starts the worker and runs the main worker loops.
152
-
153
- By default, the worker will run loops to poll for scheduled/cancelled flow
154
- runs and sync with the Prefect API server.
155
-
156
- If `run_once` is set, the worker will only run each loop once and then return.
157
-
158
- If `with_healthcheck` is set, the worker will start a healthcheck server which
159
- can be used to determine if the worker is still polling for flow runs and restart
160
- the worker if necessary.
161
-
162
- Args:
163
- run_once: If set, the worker will only run each loop once then return.
164
- with_healthcheck: If set, the worker will start a healthcheck server.
165
- printer: A `print`-like function where logs will be reported.
166
- """
167
- healthcheck_server = None
168
- healthcheck_thread = None
169
- try:
170
- async with self as worker:
171
- # wait for an initial heartbeat to configure the worker
172
- await worker.sync_with_backend()
173
- # schedule the scheduled flow run polling loop
174
- async with anyio.create_task_group() as loops_task_group:
175
- loops_task_group.start_soon(
176
- partial(
177
- critical_service_loop,
178
- workload=self.get_and_submit_flow_runs,
179
- interval=PREFECT_WORKER_QUERY_SECONDS.value(),
180
- run_once=run_once,
181
- jitter_range=0.3,
182
- backoff=4, # Up to ~1 minute interval during backoff
183
- )
184
- )
185
- # schedule the sync loop
186
- loops_task_group.start_soon(
187
- partial(
188
- critical_service_loop,
189
- workload=self.sync_with_backend,
190
- interval=self.heartbeat_interval_seconds,
191
- run_once=run_once,
192
- jitter_range=0.3,
193
- backoff=4,
194
- )
195
- )
196
-
197
- self._started_event = await self._emit_worker_started_event()
198
-
199
- start_client_metrics_server()
200
-
201
- if with_healthcheck:
202
- from prefect.workers.server import build_healthcheck_server
203
-
204
- # we'll start the ASGI server in a separate thread so that
205
- # uvicorn does not block the main thread
206
- healthcheck_server = build_healthcheck_server(
207
- worker=worker,
208
- query_interval_seconds=PREFECT_WORKER_QUERY_SECONDS.value(),
209
- )
210
- healthcheck_thread = threading.Thread(
211
- name="healthcheck-server-thread",
212
- target=healthcheck_server.run,
213
- daemon=True,
214
- )
215
- healthcheck_thread.start()
216
- printer(f"Worker {worker.name!r} started!")
217
-
218
- # If running once, wait for active runs to complete before exiting
219
- if run_once and self._limiter:
220
- while self.limiter.borrowed_tokens > 0:
221
- self._logger.debug(
222
- "Waiting for %s active run(s) to finish before shutdown...",
223
- self.limiter.borrowed_tokens,
224
- )
225
- await anyio.sleep(0.1)
226
- finally:
227
- stop_client_metrics_server()
228
-
229
- if healthcheck_server and healthcheck_thread:
230
- self._logger.debug("Stopping healthcheck server...")
231
- healthcheck_server.should_exit = True
232
- healthcheck_thread.join()
233
- self._logger.debug("Healthcheck server stopped.")
234
-
235
- printer(f"Worker {worker.name!r} stopped!")
236
-
237
136
  async def run(
238
137
  self,
239
138
  flow_run: "FlowRun",
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.8.1.dev2"
3
- __build_date__ = "2026-07-27 09:12:40.986268+00:00"
4
- __git_commit__ = "d630146acb690f2967e89c3f429ec3425644d87a"
5
- __dirty__ = False