prefect-client 3.9.1.dev2__tar.gz → 3.9.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 (461) hide show
  1. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/PKG-INFO +4 -4
  2. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/pyproject.toml +3 -3
  3. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/AGENTS.md +1 -1
  4. prefect_client-3.9.1.dev3/src/prefect/_build_info.py +5 -0
  5. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/notifications.py +2 -4
  6. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/flow_engine.py +20 -2
  7. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/__init__.py +2 -0
  8. prefect_client-3.9.1.dev3/src/prefect/server/api/observed_states.py +32 -0
  9. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/server.py +1 -0
  10. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/_datetime.py +16 -3
  11. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/collections.py +30 -8
  12. prefect_client-3.9.1.dev2/src/prefect/_build_info.py +0 -5
  13. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/.gitignore +0 -0
  14. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/LICENSE +0 -0
  15. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/README.md +0 -0
  16. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/hatch_build.py +0 -0
  17. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/.prefectignore +0 -0
  18. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/__init__.py +0 -0
  19. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/__main__.py +0 -0
  20. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/__init__.py +0 -0
  21. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/_launchers.py +0 -0
  22. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/__init__.py +0 -0
  23. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/execute.py +0 -0
  24. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/__init__.py +0 -0
  25. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/apply.py +0 -0
  26. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  27. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/manager.py +0 -0
  28. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/spec.py +0 -0
  29. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/__init__.py +0 -0
  30. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/client.py +0 -0
  31. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/objects.py +0 -0
  32. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_flow_run_suspension.py +0 -0
  33. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/__init__.py +0 -0
  34. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/_logging.py +0 -0
  35. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/_observation_delivery.py +0 -0
  36. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/__init__.py +0 -0
  37. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  38. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/client.py +0 -0
  39. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/device_id.py +0 -0
  40. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/emit.py +0 -0
  41. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/enabled.py +0 -0
  42. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/events.py +0 -0
  43. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/milestones.py +0 -0
  44. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/notice.py +0 -0
  45. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/service.py +0 -0
  46. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/ast_utils.py +0 -0
  47. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/attempt_control.py +0 -0
  48. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/buildx.py +0 -0
  49. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/__init__.py +0 -0
  50. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  51. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/backports.py +0 -0
  52. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/blocks.py +0 -0
  53. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  54. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  55. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/migration.py +0 -0
  56. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/starlette.py +0 -0
  57. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/__init__.py +0 -0
  58. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/api.py +0 -0
  59. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/calls.py +0 -0
  60. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  61. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  62. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/inspection.py +0 -0
  63. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/primitives.py +0 -0
  64. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/services.py +0 -0
  65. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/threads.py +0 -0
  66. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/waiters.py +0 -0
  67. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/control_listener.py +0 -0
  68. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/deprecated.py +0 -0
  69. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/engine.py +0 -0
  70. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/git.py +0 -0
  71. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  72. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/installation.py +0 -0
  73. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/integrations.py +0 -0
  74. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/launchers.py +0 -0
  75. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/lazy.py +0 -0
  76. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/metrics.py +0 -0
  77. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observability.py +0 -0
  78. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observers.py +0 -0
  79. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/__init__.py +0 -0
  80. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/apply.py +0 -0
  81. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/collections.py +0 -0
  82. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  83. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/manager.py +0 -0
  84. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/spec.py +0 -0
  85. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/startup.py +0 -0
  86. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/__init__.py +0 -0
  87. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/schemas.py +0 -0
  88. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  89. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  90. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  91. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pytz.py +0 -0
  92. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/result_records.py +0 -0
  93. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/retries.py +0 -0
  94. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schema.py +0 -0
  95. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/__init__.py +0 -0
  96. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/_registry.py +0 -0
  97. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/bases.py +0 -0
  98. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/fields.py +0 -0
  99. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/serializers.py +0 -0
  100. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/validators.py +0 -0
  101. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  102. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/server_maintenance.py +0 -0
  103. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/states.py +0 -0
  104. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/testing.py +0 -0
  105. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/urls.py +0 -0
  106. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/uuid7.py +0 -0
  107. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/version_checking.py +0 -0
  108. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/versioning.py +0 -0
  109. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/waiters.py +0 -0
  110. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/websockets.py +0 -0
  111. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/__init__.py +0 -0
  112. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/fetcher.py +0 -0
  113. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/generator.py +0 -0
  114. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/models.py +0 -0
  115. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/naming.py +0 -0
  116. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/renderer.py +0 -0
  117. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/schema_converter.py +0 -0
  118. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/__init__.py +0 -0
  119. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  120. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/types.py +0 -0
  121. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/unions.py +0 -0
  122. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_vendor/croniter/__init__.py +0 -0
  123. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_vendor/croniter/croniter.py +0 -0
  124. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/agent.py +0 -0
  125. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/analytics/__init__.py +0 -0
  126. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/artifacts.py +0 -0
  127. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/assets/__init__.py +0 -0
  128. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/assets/core.py +0 -0
  129. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/assets/materialize.py +0 -0
  130. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/automations.py +0 -0
  131. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/AGENTS.md +0 -0
  132. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/__init__.py +0 -0
  133. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/abstract.py +0 -0
  134. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/core.py +0 -0
  135. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/fields.py +0 -0
  136. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/redis.py +0 -0
  137. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/system.py +0 -0
  138. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/webhook.py +0 -0
  139. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/__init__.py +0 -0
  140. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_file_collector.py +0 -0
  141. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_ignore_filter.py +0 -0
  142. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_path_resolver.py +0 -0
  143. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_zip_builder.py +0 -0
  144. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_zip_extractor.py +0 -0
  145. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/execute.py +0 -0
  146. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/cache_policies.py +0 -0
  147. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/AGENTS.md +0 -0
  148. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/__init__.py +0 -0
  149. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/attribution.py +0 -0
  150. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/base.py +0 -0
  151. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/cloud.py +0 -0
  152. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/collections.py +0 -0
  153. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/constants.py +0 -0
  154. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/__init__.py +0 -0
  155. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  156. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  157. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  158. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_automations/client.py +0 -0
  159. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  160. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  161. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  162. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  163. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  164. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  165. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  166. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  167. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  168. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  169. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  170. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_events/client.py +0 -0
  171. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  172. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  173. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  174. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flows/client.py +0 -0
  175. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  176. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_logs/client.py +0 -0
  177. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  178. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_variables/client.py +0 -0
  179. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  180. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  181. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/base.py +0 -0
  182. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/routes.py +0 -0
  183. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/__init__.py +0 -0
  184. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/actions.py +0 -0
  185. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/events.py +0 -0
  186. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/filters.py +0 -0
  187. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/objects.py +0 -0
  188. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/responses.py +0 -0
  189. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/schedules.py +0 -0
  190. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/sorting.py +0 -0
  191. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/worker_channel.py +0 -0
  192. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/subscriptions.py +0 -0
  193. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/types/__init__.py +0 -0
  194. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  195. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/utilities.py +0 -0
  196. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/AGENTS.md +0 -0
  197. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/__init__.py +0 -0
  198. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_asyncio.py +0 -0
  199. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_events.py +0 -0
  200. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_leases.py +0 -0
  201. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_sync.py +0 -0
  202. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/asyncio.py +0 -0
  203. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/context.py +0 -0
  204. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/services.py +0 -0
  205. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/sync.py +0 -0
  206. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/__init__.py +0 -0
  207. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  208. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/_events.py +0 -0
  209. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/asyncio.py +0 -0
  210. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/context.py +0 -0
  211. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/services.py +0 -0
  212. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/sync.py +0 -0
  213. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/context.py +0 -0
  214. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/AGENTS.md +0 -0
  215. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/__init__.py +0 -0
  216. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/base.py +0 -0
  217. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/deployments.py +0 -0
  218. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/flow_runs.py +0 -0
  219. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/runner.py +0 -0
  220. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/schedules.py +0 -0
  221. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/__init__.py +0 -0
  222. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/core.py +0 -0
  223. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/pull.py +0 -0
  224. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/utility.py +0 -0
  225. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/docker/__init__.py +0 -0
  226. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/docker/_buildx.py +0 -0
  227. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/docker/docker_image.py +0 -0
  228. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/engine.py +0 -0
  229. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/AGENTS.md +0 -0
  230. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/__init__.py +0 -0
  231. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/actions.py +0 -0
  232. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/clients.py +0 -0
  233. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/filters.py +0 -0
  234. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/related.py +0 -0
  235. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/__init__.py +0 -0
  236. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/automations.py +0 -0
  237. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  238. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/events.py +0 -0
  239. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/labelling.py +0 -0
  240. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/subscribers.py +0 -0
  241. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/utilities.py +0 -0
  242. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/worker.py +0 -0
  243. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/exceptions.py +0 -0
  244. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/filesystems.py +0 -0
  245. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/flow_runs.py +0 -0
  246. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/flows.py +0 -0
  247. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/futures.py +0 -0
  248. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/__init__.py +0 -0
  249. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/base.py +0 -0
  250. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  251. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  252. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  253. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  254. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  255. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  256. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/input/__init__.py +0 -0
  257. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/input/actions.py +0 -0
  258. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/input/run_input.py +0 -0
  259. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/__init__.py +0 -0
  260. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/_filelock.py +0 -0
  261. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/filesystem.py +0 -0
  262. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/memory.py +0 -0
  263. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/protocol.py +0 -0
  264. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/AGENTS.md +0 -0
  265. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/__init__.py +0 -0
  266. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/clients.py +0 -0
  267. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/configuration.py +0 -0
  268. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/filters.py +0 -0
  269. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/formatters.py +0 -0
  270. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/handlers.py +0 -0
  271. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/highlighters.py +0 -0
  272. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/loggers.py +0 -0
  273. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/logging.yml +0 -0
  274. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/main.py +0 -0
  275. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/plugins.py +0 -0
  276. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/py.typed +0 -0
  277. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/results.py +0 -0
  278. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/AGENTS.md +0 -0
  279. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/__init__.py +0 -0
  280. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_cancel_finalizer.py +0 -0
  281. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_cancellation_manager.py +0 -0
  282. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_control_channel.py +0 -0
  283. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_deployment_registry.py +0 -0
  284. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_event_emitter.py +0 -0
  285. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_flow_resolver.py +0 -0
  286. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_flow_run_executor.py +0 -0
  287. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_hook_runner.py +0 -0
  288. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_limit_manager.py +0 -0
  289. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_process_manager.py +0 -0
  290. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  291. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_bundle.py +0 -0
  292. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_direct.py +0 -0
  293. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_engine.py +0 -0
  294. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_state_proposer.py +0 -0
  295. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_uv_command.py +0 -0
  296. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_hook_runner.py +0 -0
  297. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_resolver.py +0 -0
  298. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_runtime.py +0 -0
  299. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
  300. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_starter.py +0 -0
  301. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_supervisor.py +0 -0
  302. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/runner.py +0 -0
  303. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/server.py +0 -0
  304. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/storage.py +0 -0
  305. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/__init__.py +0 -0
  306. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/deployment.py +0 -0
  307. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/flow_run.py +0 -0
  308. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/task_run.py +0 -0
  309. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/schedules.py +0 -0
  310. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/serializers.py +0 -0
  311. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/_ui_static.py +0 -0
  312. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/admin.py +0 -0
  313. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/artifacts.py +0 -0
  314. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/automations.py +0 -0
  315. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/background_workers.py +0 -0
  316. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_capabilities.py +0 -0
  317. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_documents.py +0 -0
  318. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_schemas.py +0 -0
  319. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_types.py +0 -0
  320. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/clients.py +0 -0
  321. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/collections.py +0 -0
  322. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  323. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/concurrency_limits.py +0 -0
  324. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  325. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/csrf_token.py +0 -0
  326. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/dependencies.py +0 -0
  327. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/deployments.py +0 -0
  328. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/events.py +0 -0
  329. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flow_run_states.py +0 -0
  330. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flow_runs.py +0 -0
  331. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flows.py +0 -0
  332. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/logs.py +0 -0
  333. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/middleware.py +0 -0
  334. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/root.py +0 -0
  335. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/run_history.py +0 -0
  336. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/saved_searches.py +0 -0
  337. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  338. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_run_states.py +0 -0
  339. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_runs.py +0 -0
  340. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_workers.py +0 -0
  341. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/templates.py +0 -0
  342. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/__init__.py +0 -0
  343. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/flow_runs.py +0 -0
  344. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/flows.py +0 -0
  345. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/schemas.py +0 -0
  346. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/task_runs.py +0 -0
  347. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/validation.py +0 -0
  348. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/variables.py +0 -0
  349. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/work_queues.py +0 -0
  350. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/workers.py +0 -0
  351. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/AGENTS.md +0 -0
  352. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/__init__.py +0 -0
  353. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/_types.py +0 -0
  354. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/base.py +0 -0
  355. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/constants.py +0 -0
  356. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/context.py +0 -0
  357. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/legacy.py +0 -0
  358. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/__init__.py +0 -0
  359. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/_defaults.py +0 -0
  360. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/api.py +0 -0
  361. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/cli.py +0 -0
  362. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/client.py +0 -0
  363. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/cloud.py +0 -0
  364. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/deployments.py +0 -0
  365. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/events.py +0 -0
  366. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/experiments.py +0 -0
  367. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/flows.py +0 -0
  368. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/internal.py +0 -0
  369. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/logging.py +0 -0
  370. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/plugins.py +0 -0
  371. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/results.py +0 -0
  372. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/root.py +0 -0
  373. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/runner.py +0 -0
  374. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/__init__.py +0 -0
  375. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/api.py +0 -0
  376. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/concurrency.py +0 -0
  377. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/database.py +0 -0
  378. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/deployments.py +0 -0
  379. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/docket.py +0 -0
  380. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/ephemeral.py +0 -0
  381. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/events.py +0 -0
  382. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  383. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/logs.py +0 -0
  384. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/root.py +0 -0
  385. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/services.py +0 -0
  386. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/tasks.py +0 -0
  387. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/ui.py +0 -0
  388. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/worker_channel.py +0 -0
  389. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/tasks.py +0 -0
  390. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/telemetry.py +0 -0
  391. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/testing.py +0 -0
  392. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/worker.py +0 -0
  393. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/profiles.py +0 -0
  394. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/profiles.toml +0 -0
  395. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/sources.py +0 -0
  396. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/states.py +0 -0
  397. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_engine.py +0 -0
  398. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_runners.py +0 -0
  399. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_runs.py +0 -0
  400. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_worker.py +0 -0
  401. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/tasks.py +0 -0
  402. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/telemetry/__init__.py +0 -0
  403. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/telemetry/run_telemetry.py +0 -0
  404. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/transactions.py +0 -0
  405. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/__init__.py +0 -0
  406. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/_concurrency.py +0 -0
  407. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/_datetime_deprecations.py +0 -0
  408. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/entrypoint.py +0 -0
  409. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/names.py +0 -0
  410. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/AGENTS.md +0 -0
  411. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/__init__.py +0 -0
  412. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/annotations.py +0 -0
  413. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  414. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  415. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/callables/AGENTS.md +0 -0
  416. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/callables/__init__.py +0 -0
  417. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/compat.py +0 -0
  418. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/context.py +0 -0
  419. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/dispatch.py +0 -0
  420. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/dockerutils.py +0 -0
  421. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/engine/AGENTS.md +0 -0
  422. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/engine/__init__.py +0 -0
  423. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  424. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/filesystem/__init__.py +0 -0
  425. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/generics.py +0 -0
  426. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/hashing.py +0 -0
  427. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/importtools.py +0 -0
  428. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/math.py +0 -0
  429. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/names.py +0 -0
  430. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  431. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/processutils/__init__.py +0 -0
  432. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/pydantic.py +0 -0
  433. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/render_swagger.py +0 -0
  434. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  435. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  436. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  437. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/validation.py +0 -0
  438. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/services.py +0 -0
  439. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/slugify.py +0 -0
  440. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/templating/AGENTS.md +0 -0
  441. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/templating/__init__.py +0 -0
  442. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/text.py +0 -0
  443. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/timeout.py +0 -0
  444. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/urls.py +0 -0
  445. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/visualization.py +0 -0
  446. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/variables.py +0 -0
  447. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/AGENTS.md +0 -0
  448. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/__init__.py +0 -0
  449. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_cleanup.py +0 -0
  450. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_cleanup_handlers.py +0 -0
  451. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  452. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  453. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_state.py +0 -0
  454. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  455. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  456. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/base.py +0 -0
  457. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/block.py +0 -0
  458. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/cloud.py +0 -0
  459. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/process.py +0 -0
  460. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/server.py +0 -0
  461. {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: prefect-client
3
- Version: 3.9.1.dev2
3
+ Version: 3.9.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
@@ -50,7 +50,7 @@ Requires-Dist: pydantic-core<3.0.0,>=2.12.0
50
50
  Requires-Dist: pydantic-extra-types<3.0.0,>=2.8.2
51
51
  Requires-Dist: pydantic-settings<3.0.0,>=2.9.1
52
52
  Requires-Dist: python-dateutil<3.0.0,>=2.8.2
53
- Requires-Dist: python-slugify<9.1,>=9
53
+ Requires-Dist: python-slugify<9.2,>=9
54
54
  Requires-Dist: pytz<2027,>=2021.1
55
55
  Requires-Dist: pyyaml<7.0.0,>=5.4.1
56
56
  Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
@@ -62,9 +62,9 @@ Requires-Dist: toml>=0.10.0
62
62
  Requires-Dist: typing-extensions<5.0.0,>=4.10.0
63
63
  Requires-Dist: uvicorn!=0.29.0,>=0.14.0
64
64
  Requires-Dist: websockets<17.0,>=15.0.1
65
- Requires-Dist: whenever<0.11.0,>=0.10.5; python_version >= '3.13'
65
+ Requires-Dist: whenever<0.12.0,>=0.10.5; python_version >= '3.13'
66
66
  Provides-Extra: notifications
67
- Requires-Dist: apprise<2.0.0,>=1.13.0; extra == 'notifications'
67
+ Requires-Dist: apprise<2.1.0,>=1.13.0; extra == 'notifications'
68
68
  Description-Content-Type: text/markdown
69
69
 
70
70
  <p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
@@ -55,7 +55,7 @@ dependencies = [
55
55
  "pydantic_extra_types>=2.8.2,<3.0.0",
56
56
  "pydantic_settings>=2.9.1,<3.0.0",
57
57
  "python-dateutil>=2.8.2,<3.0.0",
58
- "python-slugify>=9,<9.1",
58
+ "python-slugify>=9,<9.2",
59
59
  "pytz>=2021.1,<2027",
60
60
  "pyyaml>=5.4.1,<7.0.0",
61
61
  "rfc3339-validator>=0.1.4,<0.2.0",
@@ -67,7 +67,7 @@ dependencies = [
67
67
  "typing_extensions>=4.10.0,<5.0.0",
68
68
  "uvicorn>=0.14.0,!=0.29.0",
69
69
  "websockets>=15.0.1,<17.0",
70
- "whenever>=0.10.5,<0.11.0; python_version>='3.13'",
70
+ "whenever>=0.10.5,<0.12.0; python_version>='3.13'",
71
71
  ]
72
72
  [project.urls]
73
73
  Changelog = "https://github.com/PrefectHQ/prefect/releases"
@@ -75,7 +75,7 @@ Documentation = "https://docs.prefect.io"
75
75
  Source = "https://github.com/PrefectHQ/prefect"
76
76
  Tracker = "https://github.com/PrefectHQ/prefect/issues"
77
77
  [project.optional-dependencies]
78
- notifications = ["apprise>=1.13.0, <2.0.0"]
78
+ notifications = ["apprise>=1.13.0, <2.1.0"]
79
79
 
80
80
 
81
81
  [tool.hatch.version]
@@ -25,7 +25,7 @@ There is no formal public/private boundary beyond the `_` prefix convention. Mod
25
25
  - **Sync and async must stay in sync.** Both `flow_engine.py` and `task_engine.py` have sync and async paths. Any behavior change must be applied to both.
26
26
  - **Event and log WebSocket subscribers are parallel implementations.** `events/clients.py::PrefectEventSubscriber` and `logging/clients.py::PrefectLogsSubscriber` duplicate the same reconnect/backoff/dedup logic, including the `reconnect_on_clean_close` option (used by `events/subscribers.py::FlowRunSubscriber` so a clean disconnect doesn't hide a terminal event). Mirror any reconnection-behavior change across both.
27
27
  - **Flow run observers own their stream recovery.** `_internal/observers.py` observers create subscribers with `reconnection_attempts=0` and delegate polling fallback, reconnect backoff, and setup deadlines to `_internal/_observation_delivery.py::ObservationDelivery`. Subscribers close any socket left by a failed or cancelled `__aenter__`, since callers never exit a context that failed to enter.
28
- - **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences between whenever 0.7.x–0.9.x and ≥ 0.10.0. The `_WHENEVER_NEW_API` flag (True when whenever ≥ 0.10.0) guards version-specific code. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Avoid no-argument `datetime.datetime.now()` because it returns a tz-naive datetime that raises `TypeError` when compared to the tz-aware datetimes produced by `now()`. Explicitly timezone-aware stdlib calls such as `datetime.now(ZoneInfo("UTC"))` are allowed when needed to preserve timezone information. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Violations will silently break on whichever whenever version the helpers weren't written for.
28
+ - **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences across supported whenever releases. Version-specific code is guarded by feature-detection flags (`_WHENEVER_NEW_API` for ≥ 0.10.0, `_SYSTEM_TZ` for ≥ 0.11), not version checks. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Avoid no-argument `datetime.datetime.now()` because it returns a tz-naive datetime that raises `TypeError` when compared to the tz-aware datetimes produced by `now()`. Explicitly timezone-aware stdlib calls such as `datetime.now(ZoneInfo("UTC"))` are allowed when needed to preserve timezone information. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Likewise avoid `.assume_system_tz()`/`.to_system_tz()` (deprecated in 0.11; the warning fails tests under `filterwarnings = error`) — use `in_local_tz()` — and direct `DateTimeDelta` imports (removed in 0.11) — use the `Interval` alias. Violations will silently break on whichever whenever version the helpers weren't written for.
29
29
  - **Flow and task engines advance state differently.** The flow engine makes blocking API calls to the server to propose and advance states. The task engine emits `prefect.task_run.*` events (delivered via WebSockets) but advances state locally through `set_state` calls with polling/backoff — do not assume the two engines work the same way.
30
30
  - **Flow state transitions go through the server.** The flow engine proposes states to the server, which accepts or rejects them via orchestration rules. The task engine, by contrast, manages state transitions locally via `set_state` and emits `prefect.task_run.*` events — it does not propose states to the server.
31
31
  - **`ProcessPoolTaskRunner` requires picklable data across subprocess boundaries.** `PrefectFuture` objects are not picklable and cannot be passed to worker subprocesses. Any `wait_for` futures must be waited on in the parent process and converted to `State` objects before submission. The subprocess task engine handles `State` objects via `resolve_to_final_result`, which raises `UpstreamTaskError` for non-completed upstreams.
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.9.1.dev3"
3
+ __build_date__ = "2026-10-24 08:17:11.725751+00:00"
4
+ __git_commit__ = "f1f98c3f2468ef5af3992db9439a2ead26c9e27e"
5
+ __dirty__ = False
@@ -47,7 +47,7 @@ class AbstractAppriseNotificationBlock(NotificationBlock, ABC):
47
47
  )
48
48
 
49
49
  self._apprise_client = Apprise(asset=prefect_app_data)
50
- self._apprise_client.add(servers=url.get_secret_value()) # pyright: ignore[reportUnknownMemberType]
50
+ self._apprise_client.add(url.get_secret_value()) # pyright: ignore[reportUnknownMemberType]
51
51
 
52
52
  def block_initialization(self) -> None:
53
53
  self._start_apprise_client(getattr(self, "url"))
@@ -1115,9 +1115,7 @@ class SendgridEmail(AbstractAppriseNotificationBlock):
1115
1115
  """Update apprise client with current to_emails before sending."""
1116
1116
  if hasattr(self, "_apprise_client") and self._apprise_client:
1117
1117
  self._apprise_client.clear()
1118
- self._apprise_client.add(
1119
- servers=self._build_sendgrid_url().get_secret_value()
1120
- )
1118
+ self._apprise_client.add(self._build_sendgrid_url().get_secret_value())
1121
1119
 
1122
1120
  async def anotify(
1123
1121
  self,
@@ -811,7 +811,16 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
811
811
  )
812
812
  raise_if_flow_run_suspension_requested()
813
813
  self._return_value = resolved_result
814
- self.set_state(terminal_state)
814
+ state = self.set_state(terminal_state)
815
+ if terminal_state.is_failed() and state.is_scheduled():
816
+ self.logger.info(
817
+ f"Received non-final state {state.name!r} when proposing final"
818
+ f" state {terminal_state.name!r} and will attempt to run again..."
819
+ )
820
+ raise_if_flow_run_suspension_requested()
821
+ self._return_value = NotSet
822
+ self.set_state(Running())
823
+ return result
815
824
 
816
825
  link_state_to_flow_run_result(terminal_state, resolved_result)
817
826
  self._telemetry.end_span_on_success()
@@ -1534,7 +1543,16 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
1534
1543
  )
1535
1544
  raise_if_flow_run_suspension_requested()
1536
1545
  self._return_value = resolved_result
1537
- await self.set_state(terminal_state)
1546
+ state = await self.set_state(terminal_state)
1547
+ if terminal_state.is_failed() and state.is_scheduled():
1548
+ self.logger.info(
1549
+ f"Received non-final state {state.name!r} when proposing final"
1550
+ f" state {terminal_state.name!r} and will attempt to run again..."
1551
+ )
1552
+ raise_if_flow_run_suspension_requested()
1553
+ self._return_value = NotSet
1554
+ await self.set_state(Running())
1555
+ return result
1538
1556
 
1539
1557
  self._telemetry.end_span_on_success()
1540
1558
 
@@ -24,6 +24,7 @@ if TYPE_CHECKING:
24
24
  flows,
25
25
  logs,
26
26
  middleware,
27
+ observed_states,
27
28
  root,
28
29
  run_history,
29
30
  saved_searches,
@@ -58,6 +59,7 @@ __all__ = [
58
59
  "flows",
59
60
  "logs",
60
61
  "middleware",
62
+ "observed_states",
61
63
  "root",
62
64
  "run_history",
63
65
  "saved_searches",
@@ -0,0 +1,32 @@
1
+ """Routes for discovering observed state types and names."""
2
+
3
+ from typing import Annotated
4
+
5
+ from fastapi import Depends, Query
6
+
7
+ from prefect.server import models
8
+ from prefect.server.database import PrefectDBInterface, provide_database_interface
9
+ from prefect.server.schemas.observed_states import ObservedState, ObservedStateSort
10
+ from prefect.server.utilities.server import PrefectRouter
11
+
12
+ router: PrefectRouter = PrefectRouter(
13
+ prefix="/observed-states", tags=["Observed States"]
14
+ )
15
+
16
+
17
+ @router.get("")
18
+ async def read_observed_states(
19
+ db: Annotated[PrefectDBInterface, Depends(provide_database_interface)],
20
+ query: Annotated[str | None, Query(max_length=100)] = None,
21
+ order_by: ObservedStateSort = ObservedStateSort.LAST_SEEN_DESC,
22
+ limit: Annotated[int, Query(ge=1, le=200)] = 200,
23
+ ) -> list[ObservedState]:
24
+ """Discover exact state names and types from retained run transitions.
25
+
26
+ Search by case-insensitive name or type prefix. Timestamps describe retained
27
+ history; deleting runs can change them or remove a state from the results.
28
+ """
29
+ async with db.session_context() as session:
30
+ return await models.observed_states.read_observed_states(
31
+ session=session, query=query, order_by=order_by, limit=limit
32
+ )
@@ -105,6 +105,7 @@ API_ROUTERS = (
105
105
  api.task_runs.router,
106
106
  api.flow_run_states.router,
107
107
  api.task_run_states.router,
108
+ api.observed_states.router,
108
109
  api.deployments.router,
109
110
  api.saved_searches.router,
110
111
  api.logs.router,
@@ -14,7 +14,7 @@ from pydantic_core import core_schema as _core_schema
14
14
  from typing_extensions import TypeAlias
15
15
 
16
16
  if sys.version_info >= (3, 13):
17
- from whenever import DateTimeDelta
17
+ import whenever as _whenever
18
18
  from whenever import ZonedDateTime as _ZDTProbe
19
19
 
20
20
  # True on whenever >= 0.10.0, which introduced ZonedDateTime(stdlib_dt),
@@ -22,6 +22,9 @@ if sys.version_info >= (3, 13):
22
22
  _WHENEVER_NEW_API: bool = hasattr(_ZDTProbe, "to_stdlib")
23
23
  del _ZDTProbe
24
24
 
25
+ # SYSTEM_TZ replaces the system-timezone methods in whenever 0.11.
26
+ _SYSTEM_TZ = getattr(_whenever, "SYSTEM_TZ", None)
27
+
25
28
  class _DateTime(datetime.datetime):
26
29
  """`datetime.datetime` with a Pydantic schema that coerces naive to UTC.
27
30
 
@@ -57,6 +60,8 @@ if sys.version_info >= (3, 13):
57
60
 
58
61
  Interval: TypeAlias = Union[datetime.timedelta, ItemizedDelta]
59
62
  else:
63
+ from whenever import DateTimeDelta
64
+
60
65
  Interval: TypeAlias = Union[datetime.timedelta, DateTimeDelta]
61
66
  else:
62
67
  _WHENEVER_NEW_API = False
@@ -345,7 +350,12 @@ def travel_to(dt: Any):
345
350
  def in_local_tz(dt: datetime.datetime) -> datetime.datetime:
346
351
  if sys.version_info >= (3, 13):
347
352
  if dt.tzinfo is None:
348
- wdt = _whenever_pdt_from_py(dt).assume_system_tz()
353
+ pdt = _whenever_pdt_from_py(dt)
354
+ wdt = (
355
+ pdt.assume_tz(_SYSTEM_TZ)
356
+ if _SYSTEM_TZ is not None
357
+ else pdt.assume_system_tz()
358
+ )
349
359
  else:
350
360
  if not isinstance(dt.tzinfo, ZoneInfo):
351
361
  if key := getattr(dt.tzinfo, "key", None):
@@ -354,7 +364,10 @@ def in_local_tz(dt: datetime.datetime) -> datetime.datetime:
354
364
  utc_dt = dt.astimezone(datetime.timezone.utc)
355
365
  dt = utc_dt.replace(tzinfo=ZoneInfo("UTC"))
356
366
 
357
- wdt = _whenever_zdt_from_py(dt).to_system_tz()
367
+ zdt = _whenever_zdt_from_py(dt)
368
+ wdt = (
369
+ zdt.to_tz(_SYSTEM_TZ) if _SYSTEM_TZ is not None else zdt.to_system_tz()
370
+ )
358
371
 
359
372
  return _whenever_to_stdlib(wdt)
360
373
  else:
@@ -13,6 +13,7 @@ from collections.abc import (
13
13
  Hashable,
14
14
  Iterable,
15
15
  Iterator,
16
+ Mapping,
16
17
  Sequence,
17
18
  Set,
18
19
  )
@@ -619,6 +620,21 @@ def distinct(
619
620
  yield item
620
621
 
621
622
 
623
+ def _canonical_int_or_key(key: Any) -> Any:
624
+ """
625
+ Convert a string like `"1"` or `"-1"` to an int, leaving any other key
626
+ (including non-canonical forms like `"01"`) unchanged.
627
+ """
628
+ if isinstance(key, str):
629
+ try:
630
+ int_key = int(key)
631
+ except ValueError:
632
+ return key
633
+ if str(int_key) == key:
634
+ return int_key
635
+ return key
636
+
637
+
622
638
  @overload
623
639
  def get_from_dict(
624
640
  dct: NestedDict[str, VT], keys: Union[str, list[str]], default: None = None
@@ -647,7 +663,9 @@ def get_from_dict(
647
663
  keys: The sequence of keys to use for access. Can be a
648
664
  dot-separated string or a list of keys. List indices can be included
649
665
  in the sequence as either integer keys or as string indices in square
650
- brackets.
666
+ brackets. When indexing a dictionary, a string key is matched
667
+ exactly first and only falls back to the equivalent integer key
668
+ (e.g. `"1"` -> `1`) if no exact match exists.
651
669
  default: The default value to return if the requested key path does not
652
670
  exist. Defaults to None.
653
671
 
@@ -660,6 +678,7 @@ def get_from_dict(
660
678
  get_from_dict({'a': {'b': {'c': [1, 2, 3, 4]}}}, 'a.b.c[1]') # 2
661
679
  get_from_dict({'a': {'b': [0, {'c': [1, 2]}]}}, ['a', 'b', 1, 'c', 1]) # 2
662
680
  get_from_dict({'a': {'b': [0, {'c': [1, 2]}]}}, 'a.b.1.c.2', 'default') # 'default'
681
+ get_from_dict({'years': {'2026': 42}}, 'years.2026') # 42
663
682
  ```
664
683
  """
665
684
  if isinstance(keys, str):
@@ -667,13 +686,16 @@ def get_from_dict(
667
686
  value = dct
668
687
  try:
669
688
  for key in keys:
670
- try:
671
- # Try to cast to int to handle list indices
672
- key = int(key)
673
- except ValueError:
674
- # If it's not an int, use the key as-is
675
- # for dict lookup
676
- pass
689
+ if isinstance(value, Mapping):
690
+ # Prefer an exact match so numeric string keys like "2026" resolve
691
+ if key not in value:
692
+ key = _canonical_int_or_key(key)
693
+ else:
694
+ try:
695
+ # Try to cast to int to handle list indices
696
+ key = int(key)
697
+ except ValueError:
698
+ pass
677
699
  value = value[key] # type: ignore
678
700
  return cast(VT, value)
679
701
  except (TypeError, KeyError, IndexError):
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.9.1.dev2"
3
- __build_date__ = "2026-10-23 08:18:42.150927+00:00"
4
- __git_commit__ = "a0cb644eb9c937b5e78c957ea06c39d4f5c59093"
5
- __dirty__ = False