prefect-client 3.7.8.dev3__tar.gz → 3.7.9.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/PKG-INFO +1 -1
  2. prefect_client-3.7.9.dev1/src/prefect/_build_info.py +5 -0
  3. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/validators.py +27 -4
  4. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_asyncio.py +55 -0
  5. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/clients.py +42 -6
  6. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/filesystems.py +42 -2
  7. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_transport.py +6 -1
  8. prefect_client-3.7.8.dev3/src/prefect/_build_info.py +0 -5
  9. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/.gitignore +0 -0
  10. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/LICENSE +0 -0
  11. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/README.md +0 -0
  12. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/hatch_build.py +0 -0
  13. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/pyproject.toml +0 -0
  14. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/.prefectignore +0 -0
  15. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/AGENTS.md +0 -0
  16. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/__init__.py +0 -0
  17. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/__main__.py +0 -0
  18. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/__init__.py +0 -0
  19. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/_launchers.py +0 -0
  20. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/bundles/__init__.py +0 -0
  21. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/bundles/execute.py +0 -0
  22. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/__init__.py +0 -0
  23. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/apply.py +0 -0
  24. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  25. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/manager.py +0 -0
  26. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/spec.py +0 -0
  27. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
  28. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/client.py +0 -0
  29. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
  30. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_flow_run_suspension.py +0 -0
  31. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/__init__.py +0 -0
  32. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/_logging.py +0 -0
  33. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/__init__.py +0 -0
  34. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  35. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/client.py +0 -0
  36. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/device_id.py +0 -0
  37. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/emit.py +0 -0
  38. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/enabled.py +0 -0
  39. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/events.py +0 -0
  40. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/milestones.py +0 -0
  41. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/notice.py +0 -0
  42. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/service.py +0 -0
  43. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/ast_utils.py +0 -0
  44. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/buildx.py +0 -0
  45. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
  46. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  47. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/backports.py +0 -0
  48. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/blocks.py +0 -0
  49. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  50. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  51. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
  52. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/starlette.py +0 -0
  53. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
  54. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
  55. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
  56. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  57. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  58. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
  59. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
  60. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
  61. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
  62. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
  63. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/control_listener.py +0 -0
  64. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/deprecated.py +0 -0
  65. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/engine.py +0 -0
  66. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/git.py +0 -0
  67. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  68. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/installation.py +0 -0
  69. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/integrations.py +0 -0
  70. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/launchers.py +0 -0
  71. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/lazy.py +0 -0
  72. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/metrics.py +0 -0
  73. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/observability.py +0 -0
  74. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/observers.py +0 -0
  75. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/__init__.py +0 -0
  76. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/apply.py +0 -0
  77. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/collections.py +0 -0
  78. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  79. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/manager.py +0 -0
  80. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/spec.py +0 -0
  81. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/startup.py +0 -0
  82. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
  83. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
  84. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  85. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  86. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  87. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pytz.py +0 -0
  88. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/result_records.py +0 -0
  89. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/retries.py +0 -0
  90. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schema.py +0 -0
  91. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
  92. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/_registry.py +0 -0
  93. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
  94. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
  95. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
  96. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  97. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/states.py +0 -0
  98. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/testing.py +0 -0
  99. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/urls.py +0 -0
  100. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/uuid7.py +0 -0
  101. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/version_checking.py +0 -0
  102. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/versioning.py +0 -0
  103. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/waiters.py +0 -0
  104. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/websockets.py +0 -0
  105. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/__init__.py +0 -0
  106. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/fetcher.py +0 -0
  107. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/generator.py +0 -0
  108. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/models.py +0 -0
  109. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/naming.py +0 -0
  110. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/renderer.py +0 -0
  111. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/schema_converter.py +0 -0
  112. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/templates/__init__.py +0 -0
  113. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  114. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/types.py +0 -0
  115. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/unions.py +0 -0
  116. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
  117. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
  118. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/agent.py +0 -0
  119. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/analytics/__init__.py +0 -0
  120. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/artifacts.py +0 -0
  121. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/assets/__init__.py +0 -0
  122. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/assets/core.py +0 -0
  123. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/assets/materialize.py +0 -0
  124. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/automations.py +0 -0
  125. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/AGENTS.md +0 -0
  126. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/__init__.py +0 -0
  127. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/abstract.py +0 -0
  128. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/core.py +0 -0
  129. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/fields.py +0 -0
  130. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/notifications.py +0 -0
  131. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/redis.py +0 -0
  132. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/system.py +0 -0
  133. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/webhook.py +0 -0
  134. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/__init__.py +0 -0
  135. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_file_collector.py +0 -0
  136. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_ignore_filter.py +0 -0
  137. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_path_resolver.py +0 -0
  138. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_zip_builder.py +0 -0
  139. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_zip_extractor.py +0 -0
  140. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/execute.py +0 -0
  141. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/cache_policies.py +0 -0
  142. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/AGENTS.md +0 -0
  143. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/__init__.py +0 -0
  144. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/attribution.py +0 -0
  145. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/base.py +0 -0
  146. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/cloud.py +0 -0
  147. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/collections.py +0 -0
  148. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/constants.py +0 -0
  149. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
  150. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  151. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  152. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  153. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
  154. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  155. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  156. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  157. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  158. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  159. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  160. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  161. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  162. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  163. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  164. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  165. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_events/client.py +0 -0
  166. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  167. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  168. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  169. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
  170. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  171. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
  172. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  173. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
  174. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  175. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  176. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/base.py +0 -0
  177. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/routes.py +0 -0
  178. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/__init__.py +0 -0
  179. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/actions.py +0 -0
  180. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/events.py +0 -0
  181. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/filters.py +0 -0
  182. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/objects.py +0 -0
  183. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/responses.py +0 -0
  184. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/schedules.py +0 -0
  185. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/sorting.py +0 -0
  186. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/worker_channel.py +0 -0
  187. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/subscriptions.py +0 -0
  188. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/types/__init__.py +0 -0
  189. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  190. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/utilities.py +0 -0
  191. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/AGENTS.md +0 -0
  192. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/__init__.py +0 -0
  193. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_events.py +0 -0
  194. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_leases.py +0 -0
  195. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_sync.py +0 -0
  196. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/asyncio.py +0 -0
  197. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/context.py +0 -0
  198. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/services.py +0 -0
  199. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/sync.py +0 -0
  200. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
  201. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  202. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
  203. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
  204. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/context.py +0 -0
  205. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/services.py +0 -0
  206. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
  207. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/context.py +0 -0
  208. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/AGENTS.md +0 -0
  209. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/__init__.py +0 -0
  210. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/base.py +0 -0
  211. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/deployments.py +0 -0
  212. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/flow_runs.py +0 -0
  213. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/runner.py +0 -0
  214. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/schedules.py +0 -0
  215. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
  216. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/core.py +0 -0
  217. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/pull.py +0 -0
  218. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/utility.py +0 -0
  219. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/docker/__init__.py +0 -0
  220. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/docker/_buildx.py +0 -0
  221. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/docker/docker_image.py +0 -0
  222. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/engine.py +0 -0
  223. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/AGENTS.md +0 -0
  224. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/__init__.py +0 -0
  225. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/actions.py +0 -0
  226. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/filters.py +0 -0
  227. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/related.py +0 -0
  228. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/__init__.py +0 -0
  229. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/automations.py +0 -0
  230. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  231. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/events.py +0 -0
  232. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/labelling.py +0 -0
  233. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/subscribers.py +0 -0
  234. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/utilities.py +0 -0
  235. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/worker.py +0 -0
  236. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/exceptions.py +0 -0
  237. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/flow_engine.py +0 -0
  238. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/flow_runs.py +0 -0
  239. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/flows.py +0 -0
  240. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/futures.py +0 -0
  241. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/__init__.py +0 -0
  242. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/base.py +0 -0
  243. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  244. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  245. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  246. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  247. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  248. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  249. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/input/__init__.py +0 -0
  250. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/input/actions.py +0 -0
  251. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/input/run_input.py +0 -0
  252. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/__init__.py +0 -0
  253. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/_filelock.py +0 -0
  254. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/filesystem.py +0 -0
  255. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/memory.py +0 -0
  256. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/protocol.py +0 -0
  257. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/AGENTS.md +0 -0
  258. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/__init__.py +0 -0
  259. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/clients.py +0 -0
  260. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/configuration.py +0 -0
  261. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/filters.py +0 -0
  262. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/formatters.py +0 -0
  263. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/handlers.py +0 -0
  264. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/highlighters.py +0 -0
  265. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/loggers.py +0 -0
  266. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/logging.yml +0 -0
  267. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/main.py +0 -0
  268. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/plugins.py +0 -0
  269. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/py.typed +0 -0
  270. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/results.py +0 -0
  271. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/AGENTS.md +0 -0
  272. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/__init__.py +0 -0
  273. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_cancel_finalizer.py +0 -0
  274. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_cancellation_manager.py +0 -0
  275. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_control_channel.py +0 -0
  276. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_deployment_registry.py +0 -0
  277. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_event_emitter.py +0 -0
  278. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_flow_resolver.py +0 -0
  279. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_flow_run_executor.py +0 -0
  280. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_hook_runner.py +0 -0
  281. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_limit_manager.py +0 -0
  282. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_process_manager.py +0 -0
  283. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  284. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_starter_bundle.py +0 -0
  285. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_starter_direct.py +0 -0
  286. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_starter_engine.py +0 -0
  287. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_state_proposer.py +0 -0
  288. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_workspace_resolver.py +0 -0
  289. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_workspace_starter.py +0 -0
  290. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/runner.py +0 -0
  291. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/server.py +0 -0
  292. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/storage.py +0 -0
  293. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/__init__.py +0 -0
  294. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/deployment.py +0 -0
  295. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/flow_run.py +0 -0
  296. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/task_run.py +0 -0
  297. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/schedules.py +0 -0
  298. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/serializers.py +0 -0
  299. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/__init__.py +0 -0
  300. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/_ui_static.py +0 -0
  301. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/admin.py +0 -0
  302. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/artifacts.py +0 -0
  303. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/automations.py +0 -0
  304. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/background_workers.py +0 -0
  305. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
  306. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_documents.py +0 -0
  307. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_schemas.py +0 -0
  308. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_types.py +0 -0
  309. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/clients.py +0 -0
  310. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/collections.py +0 -0
  311. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  312. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
  313. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  314. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/csrf_token.py +0 -0
  315. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/dependencies.py +0 -0
  316. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/deployments.py +0 -0
  317. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/events.py +0 -0
  318. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
  319. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/flow_runs.py +0 -0
  320. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/flows.py +0 -0
  321. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/logs.py +0 -0
  322. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/middleware.py +0 -0
  323. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/root.py +0 -0
  324. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/run_history.py +0 -0
  325. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/saved_searches.py +0 -0
  326. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/server.py +0 -0
  327. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  328. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/task_run_states.py +0 -0
  329. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/task_runs.py +0 -0
  330. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/task_workers.py +0 -0
  331. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/templates.py +0 -0
  332. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
  333. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
  334. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/flows.py +0 -0
  335. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
  336. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
  337. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/validation.py +0 -0
  338. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/variables.py +0 -0
  339. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/work_queues.py +0 -0
  340. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/workers.py +0 -0
  341. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/AGENTS.md +0 -0
  342. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/__init__.py +0 -0
  343. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/_types.py +0 -0
  344. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/base.py +0 -0
  345. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/constants.py +0 -0
  346. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/context.py +0 -0
  347. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/legacy.py +0 -0
  348. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/__init__.py +0 -0
  349. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/_defaults.py +0 -0
  350. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/api.py +0 -0
  351. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/cli.py +0 -0
  352. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/client.py +0 -0
  353. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/cloud.py +0 -0
  354. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/deployments.py +0 -0
  355. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/events.py +0 -0
  356. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/experiments.py +0 -0
  357. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/flows.py +0 -0
  358. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/internal.py +0 -0
  359. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/logging.py +0 -0
  360. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/plugins.py +0 -0
  361. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/results.py +0 -0
  362. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/root.py +0 -0
  363. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/runner.py +0 -0
  364. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
  365. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/api.py +0 -0
  366. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/concurrency.py +0 -0
  367. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/database.py +0 -0
  368. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
  369. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/docket.py +0 -0
  370. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
  371. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/events.py +0 -0
  372. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  373. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/logs.py +0 -0
  374. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/root.py +0 -0
  375. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/services.py +0 -0
  376. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
  377. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/ui.py +0 -0
  378. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/worker_channel.py +0 -0
  379. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/tasks.py +0 -0
  380. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/telemetry.py +0 -0
  381. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/testing.py +0 -0
  382. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/worker.py +0 -0
  383. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/profiles.py +0 -0
  384. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/profiles.toml +0 -0
  385. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/sources.py +0 -0
  386. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/states.py +0 -0
  387. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_engine.py +0 -0
  388. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_runners.py +0 -0
  389. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_runs.py +0 -0
  390. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_worker.py +0 -0
  391. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/tasks.py +0 -0
  392. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/telemetry/__init__.py +0 -0
  393. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
  394. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/transactions.py +0 -0
  395. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/__init__.py +0 -0
  396. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/_concurrency.py +0 -0
  397. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/_datetime.py +0 -0
  398. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/entrypoint.py +0 -0
  399. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/names.py +0 -0
  400. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/AGENTS.md +0 -0
  401. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/__init__.py +0 -0
  402. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/annotations.py +0 -0
  403. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  404. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  405. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/callables/AGENTS.md +0 -0
  406. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/callables/__init__.py +0 -0
  407. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/collections.py +0 -0
  408. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/compat.py +0 -0
  409. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/context.py +0 -0
  410. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/dispatch.py +0 -0
  411. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/dockerutils.py +0 -0
  412. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/engine/AGENTS.md +0 -0
  413. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/engine/__init__.py +0 -0
  414. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  415. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/filesystem/__init__.py +0 -0
  416. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/generics.py +0 -0
  417. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/hashing.py +0 -0
  418. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/importtools.py +0 -0
  419. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/math.py +0 -0
  420. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/names.py +0 -0
  421. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  422. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/processutils/__init__.py +0 -0
  423. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/pydantic.py +0 -0
  424. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/render_swagger.py +0 -0
  425. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  426. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  427. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  428. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
  429. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/services.py +0 -0
  430. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/slugify.py +0 -0
  431. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/templating/AGENTS.md +0 -0
  432. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/templating/__init__.py +0 -0
  433. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/text.py +0 -0
  434. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/timeout.py +0 -0
  435. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/urls.py +0 -0
  436. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/visualization.py +0 -0
  437. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/variables.py +0 -0
  438. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/AGENTS.md +0 -0
  439. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/__init__.py +0 -0
  440. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_cleanup.py +0 -0
  441. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_cleanup_handlers.py +0 -0
  442. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  443. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  444. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_state.py +0 -0
  445. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  446. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/base.py +0 -0
  447. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/block.py +0 -0
  448. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/cloud.py +0 -0
  449. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/process.py +0 -0
  450. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/server.py +0 -0
  451. {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.7.8.dev3
3
+ Version: 3.7.9.dev1
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.7.9.dev1"
3
+ __build_date__ = "2026-07-12 08:48:30.330243+00:00"
4
+ __git_commit__ = "0e7435055e18952aa8604dab78507b087a18defb"
5
+ __dirty__ = False
@@ -321,6 +321,7 @@ def normalize_rrule_string(
321
321
  rrule_string: str,
322
322
  *,
323
323
  now: Optional[datetime.datetime] = None,
324
+ timezone: Optional[str] = None,
324
325
  ) -> str:
325
326
  """Inject a `DTSTART` line into an rrule string if it doesn't already have one.
326
327
 
@@ -350,8 +351,16 @@ def normalize_rrule_string(
350
351
  datetimes, ~3 MB).
351
352
 
352
353
  Strings that already contain a `DTSTART` are returned unchanged.
354
+
355
+ The injected anchor is written as a floating (offset-less) `DTSTART`,
356
+ which `RRuleSchedule.to_rrule` later relabels with the schedule's
357
+ timezone. `timezone` is the schedule's IANA timezone (defaulting to
358
+ UTC); the recent anchor's wall-clock digits are computed in it so the
359
+ floating anchor lands on the intended local instant rather than being
360
+ shifted by the timezone's UTC offset (PrefectHQ/prefect#22455).
353
361
  """
354
362
  import dateutil.rrule
363
+ import dateutil.tz
355
364
 
356
365
  # Already anchored — leave it alone.
357
366
  if "DTSTART" in rrule_string.upper():
@@ -400,10 +409,22 @@ def normalize_rrule_string(
400
409
  unit_seconds = 1 if freq == dateutil.rrule.SECONDLY else 60
401
410
  period_seconds = unit_seconds * interval
402
411
 
412
+ # The injected `DTSTART` is serialized as floating (no offset/`Z`) and
413
+ # `RRuleSchedule.to_rrule` later relabels it with the schedule's timezone
414
+ # via `.replace(tzinfo=...)`, which keeps the wall-clock digits without
415
+ # converting the offset. The anchor's wall-clock digits must therefore be
416
+ # computed in the schedule's own timezone; computing them in UTC shifts
417
+ # every occurrence forward by the timezone's offset, suppressing runs on
418
+ # the deploy day (PrefectHQ/prefect#22455).
419
+ anchor_tz = dateutil.tz.gettz(timezone) if timezone else datetime.timezone.utc
420
+ if anchor_tz is None:
421
+ anchor_tz = datetime.timezone.utc
422
+
403
423
  if now is None:
404
- now = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
405
- elif now.tzinfo is not None:
406
- now = now.astimezone(datetime.timezone.utc).replace(tzinfo=None)
424
+ now = datetime.datetime.now(datetime.timezone.utc)
425
+ if now.tzinfo is None:
426
+ now = now.replace(tzinfo=datetime.timezone.utc)
427
+ now = now.astimezone(anchor_tz).replace(tzinfo=None)
407
428
 
408
429
  delta_seconds = (now - DEFAULT_RRULE_ANCHOR).total_seconds()
409
430
  if delta_seconds <= 0:
@@ -443,7 +464,9 @@ def normalize_schedule_rrule(schedule: _T) -> _T:
443
464
  rrule = getattr(schedule, "rrule", None)
444
465
  if not isinstance(rrule, str):
445
466
  return schedule
446
- normalized = normalize_rrule_string(rrule)
467
+ normalized = normalize_rrule_string(
468
+ rrule, timezone=getattr(schedule, "timezone", None)
469
+ )
447
470
  if normalized == rrule:
448
471
  return schedule
449
472
  return type(schedule)(rrule=normalized, timezone=schedule.timezone) # type: ignore[call-arg]
@@ -43,6 +43,51 @@ class AcquireConcurrencySlotTimeoutError(TimeoutError):
43
43
  logger: logging.Logger = get_logger("concurrency")
44
44
 
45
45
 
46
+ def _format_http_status_error(exc: httpx.HTTPStatusError) -> str:
47
+ """Format an HTTP status error from the server into a compact string.
48
+
49
+ Handles both Prefect API payloads (`exception_detail`) and raw FastAPI
50
+ payloads (`detail`), extracting Pydantic-style validation errors and
51
+ dropping the leading `body` location component.
52
+ """
53
+ status_code = exc.response.status_code
54
+ reason = exc.response.reason_phrase
55
+ status_text = f"{status_code} {reason}" if reason else str(status_code)
56
+
57
+ try:
58
+ body = exc.response.json()
59
+ except Exception:
60
+ body = None
61
+
62
+ messages: list[str] = []
63
+ if isinstance(body, dict):
64
+ errors = body.get("exception_detail") or body.get("detail")
65
+ if isinstance(errors, list):
66
+ for error in errors:
67
+ if not isinstance(error, dict):
68
+ continue
69
+ msg = error.get("msg")
70
+ if not isinstance(msg, str):
71
+ continue
72
+ loc = error.get("loc")
73
+ if isinstance(loc, (list, tuple)) and loc:
74
+ if loc[0] == "body":
75
+ loc = loc[1:]
76
+ field = ".".join(str(part) for part in loc)
77
+ else:
78
+ field = ""
79
+ if field:
80
+ messages.append(f"{field}: {msg}")
81
+ else:
82
+ messages.append(msg)
83
+ elif isinstance(errors, str):
84
+ messages.append(errors)
85
+
86
+ if messages:
87
+ return f"{status_text}: {'; '.join(messages)}"
88
+ return status_text
89
+
90
+
46
91
  async def aacquire_concurrency_slots(
47
92
  names: list[str],
48
93
  slots: int,
@@ -59,6 +104,11 @@ async def aacquire_concurrency_slots(
59
104
  raise AcquireConcurrencySlotTimeoutError(
60
105
  f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
61
106
  ) from timeout
107
+ except httpx.HTTPStatusError as exc:
108
+ raise ConcurrencySlotAcquisitionError(
109
+ f"Unable to acquire concurrency slots on {names!r}: "
110
+ f"{_format_http_status_error(exc)}"
111
+ ) from exc
62
112
  except Exception as exc:
63
113
  raise ConcurrencySlotAcquisitionError(
64
114
  f"Unable to acquire concurrency slots on {names!r}"
@@ -104,6 +154,11 @@ async def aacquire_concurrency_slots_with_lease(
104
154
  raise AcquireConcurrencySlotTimeoutError(
105
155
  f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
106
156
  ) from timeout
157
+ except httpx.HTTPStatusError as exc:
158
+ raise ConcurrencySlotAcquisitionError(
159
+ f"Unable to acquire concurrency slots on {names!r}: "
160
+ f"{_format_http_status_error(exc)}"
161
+ ) from exc
107
162
  except Exception as exc:
108
163
  raise ConcurrencySlotAcquisitionError(
109
164
  f"Unable to acquire concurrency slots on {names!r}"
@@ -436,8 +436,17 @@ class PrefectEventsClient(EventsClient):
436
436
  # Clear the unconfirmed events here, because they are going back through emit
437
437
  # and will be added again through the normal checkpointing process
438
438
  self._unconfirmed_events = []
439
- for event in events_to_resend:
440
- await self.emit(event)
439
+ try:
440
+ while events_to_resend:
441
+ event = events_to_resend.pop(0)
442
+ await self.emit(event)
443
+ except Exception:
444
+ # If a resend fails partway through (emit() has its own retry
445
+ # budget), restore the events that were never attempted so a later
446
+ # reconnect can retry them. The event whose emit() failed was
447
+ # already added back to the buffer by emit() itself.
448
+ self._unconfirmed_events.extend(events_to_resend)
449
+ raise
441
450
  logger.debug("Finished resending unconfirmed events.")
442
451
  self._start_checkpoint_task()
443
452
 
@@ -452,17 +461,44 @@ class PrefectEventsClient(EventsClient):
452
461
 
453
462
  async def _checkpoint_loop(self) -> None:
454
463
  """Periodically checkpoint unconfirmed events on a time interval,
455
- independent of the count-based checkpoint in _checkpoint."""
464
+ independent of the count-based checkpoint in _checkpoint.
465
+
466
+ If the connection has been lost (e.g. a server restart closed it),
467
+ reconnects and resends the unconfirmed events rather than leaving them
468
+ stranded until the next emit."""
456
469
  while True:
457
470
  await asyncio.sleep(self._checkpoint_interval)
458
- if self._websocket and self._unconfirmed_events:
459
- try:
471
+ if not self._unconfirmed_events:
472
+ continue
473
+ try:
474
+ if self._websocket:
460
475
  await self._force_checkpoint()
476
+ continue
477
+ # The connection was lost while events were still unconfirmed;
478
+ # reconnect to resend them rather than waiting for the next emit.
479
+ await self._reconnect()
480
+ except ConnectionClosed:
481
+ # The connection died since the last checkpoint; reconnect and
482
+ # resend the unconfirmed events. _reconnect() tears down the
483
+ # dead connection before connecting again.
484
+ try:
485
+ await self._reconnect()
461
486
  except Exception:
462
487
  logger.debug(
463
- "Time-based checkpoint failed, will retry next interval.",
488
+ "Reconnecting during time-based checkpoint failed, "
489
+ "will retry next interval.",
464
490
  exc_info=True,
465
491
  )
492
+ continue
493
+ except Exception:
494
+ logger.debug(
495
+ "Time-based checkpoint failed, will retry next interval.",
496
+ exc_info=True,
497
+ )
498
+ continue
499
+ # A successful _reconnect() resent the unconfirmed events and
500
+ # started a replacement checkpoint task, so this task is done.
501
+ return
466
502
 
467
503
  async def _force_checkpoint(self) -> None:
468
504
  """Checkpoint all unconfirmed events unconditionally."""
@@ -412,14 +412,54 @@ class RemoteFileSystem(WritableFileSystem, WritableDeploymentStorage):
412
412
 
413
413
  # Confirm that absolute paths are valid
414
414
  if scheme:
415
- if scheme != base_scheme:
415
+ if scheme.lower() != base_scheme.lower():
416
416
  raise ValueError(
417
417
  f"Path {path!r} with scheme {scheme!r} must use the same scheme as"
418
418
  f" the base path {base_scheme!r}."
419
419
  )
420
420
 
421
421
  if netloc:
422
- if (netloc != base_netloc) or not urlpath.startswith(base_urlpath):
422
+ if netloc != base_netloc:
423
+ raise ValueError(
424
+ f"Path {path!r} is outside of the base path {self.basepath!r}."
425
+ )
426
+
427
+ # Normalize the base path for containment checks so that sibling prefixes
428
+ # (e.g. base `/foo` vs path `/foobar`) are not treated as contained.
429
+ base_path = base_urlpath.rstrip("/")
430
+ base_output_path = base_path + "/" if base_path else "/"
431
+
432
+ if not urlpath:
433
+ urlpath = "/"
434
+
435
+ # Decode percent-encoded and backslash separators only for traversal
436
+ # checks. The containment check below uses the raw URL path so that
437
+ # prefix spoofs such as `pre%66ix` or `prefix%2Fchild` are rejected.
438
+ decoded_path = urllib.parse.unquote(urlpath).replace("\\", "/")
439
+ if any(segment == ".." for segment in decoded_path.split("/")):
440
+ raise ValueError(
441
+ f"Path {path!r} is outside of the base path {self.basepath!r}."
442
+ )
443
+
444
+ if urlpath == base_path or urlpath == base_output_path:
445
+ return urllib.parse.urlunsplit(
446
+ (base_scheme, base_netloc, base_output_path, "", "")
447
+ )
448
+
449
+ if (base_path and urlpath.startswith(base_path + "/")) or (
450
+ not base_path and urlpath.startswith("/")
451
+ ):
452
+ return urllib.parse.urlunsplit(
453
+ (base_scheme, base_netloc, urlpath, "", "")
454
+ )
455
+
456
+ raise ValueError(
457
+ f"Path {path!r} is outside of the base path {self.basepath!r}."
458
+ )
459
+
460
+ if scheme:
461
+ decoded_path = urllib.parse.unquote(urlpath).replace("\\", "/")
462
+ if any(segment == ".." for segment in decoded_path.split("/")):
423
463
  raise ValueError(
424
464
  f"Path {path!r} is outside of the base path {self.basepath!r}."
425
465
  )
@@ -143,7 +143,12 @@ class WorkerChannelTransport:
143
143
 
144
144
  status_code = self._status_code_from_exception(exc)
145
145
  if status_code is not None:
146
- if status_code in {401, 403}:
146
+ if status_code == 401:
147
+ return WorkerChannelTerminalError(
148
+ WorkerChannelCloseReason.AUTHENTICATION_FAILED.value,
149
+ "Worker channel setup was rejected by the server",
150
+ )
151
+ if status_code == 403:
147
152
  return WorkerChannelTerminalError(
148
153
  WorkerChannelCloseReason.AUTHORIZATION_FAILED.value,
149
154
  "Worker channel setup was rejected by the server",
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.7.8.dev3"
3
- __build_date__ = "2026-07-08 08:56:31.022641+00:00"
4
- __git_commit__ = "b2c95fd622d9ba86e5da2be0f7a63d4017f2a695"
5
- __dirty__ = False