prefect-client 3.9.1.dev1__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.dev1 → prefect_client-3.9.1.dev3}/PKG-INFO +4 -4
  2. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/pyproject.toml +3 -3
  3. {prefect_client-3.9.1.dev1 → 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.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/notifications.py +2 -4
  6. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/flow_engine.py +24 -2
  7. {prefect_client-3.9.1.dev1 → 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.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/server.py +1 -0
  10. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/types/_datetime.py +16 -3
  11. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/collections.py +34 -10
  12. prefect_client-3.9.1.dev1/src/prefect/_build_info.py +0 -5
  13. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/.gitignore +0 -0
  14. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/LICENSE +0 -0
  15. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/README.md +0 -0
  16. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/hatch_build.py +0 -0
  17. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/.prefectignore +0 -0
  18. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/__init__.py +0 -0
  19. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/__main__.py +0 -0
  20. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/__init__.py +0 -0
  21. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/_launchers.py +0 -0
  22. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/__init__.py +0 -0
  23. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/execute.py +0 -0
  24. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/__init__.py +0 -0
  25. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/apply.py +0 -0
  26. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  27. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/manager.py +0 -0
  28. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/spec.py +0 -0
  29. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/__init__.py +0 -0
  30. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/client.py +0 -0
  31. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/objects.py +0 -0
  32. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_flow_run_suspension.py +0 -0
  33. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/__init__.py +0 -0
  34. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/_logging.py +0 -0
  35. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/_observation_delivery.py +0 -0
  36. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/__init__.py +0 -0
  37. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  38. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/client.py +0 -0
  39. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/device_id.py +0 -0
  40. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/emit.py +0 -0
  41. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/enabled.py +0 -0
  42. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/events.py +0 -0
  43. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/milestones.py +0 -0
  44. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/notice.py +0 -0
  45. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/service.py +0 -0
  46. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/ast_utils.py +0 -0
  47. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/attempt_control.py +0 -0
  48. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/buildx.py +0 -0
  49. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/__init__.py +0 -0
  50. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  51. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/backports.py +0 -0
  52. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/blocks.py +0 -0
  53. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  54. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  55. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/migration.py +0 -0
  56. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/starlette.py +0 -0
  57. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/__init__.py +0 -0
  58. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/api.py +0 -0
  59. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/calls.py +0 -0
  60. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  61. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  62. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/inspection.py +0 -0
  63. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/primitives.py +0 -0
  64. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/services.py +0 -0
  65. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/threads.py +0 -0
  66. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/waiters.py +0 -0
  67. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/control_listener.py +0 -0
  68. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/deprecated.py +0 -0
  69. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/engine.py +0 -0
  70. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/git.py +0 -0
  71. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  72. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/installation.py +0 -0
  73. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/integrations.py +0 -0
  74. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/launchers.py +0 -0
  75. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/lazy.py +0 -0
  76. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/metrics.py +0 -0
  77. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observability.py +0 -0
  78. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observers.py +0 -0
  79. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/__init__.py +0 -0
  80. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/apply.py +0 -0
  81. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/collections.py +0 -0
  82. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  83. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/manager.py +0 -0
  84. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/spec.py +0 -0
  85. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/startup.py +0 -0
  86. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/__init__.py +0 -0
  87. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/schemas.py +0 -0
  88. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  89. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  90. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  91. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pytz.py +0 -0
  92. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/result_records.py +0 -0
  93. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/retries.py +0 -0
  94. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schema.py +0 -0
  95. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/__init__.py +0 -0
  96. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/_registry.py +0 -0
  97. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/bases.py +0 -0
  98. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/fields.py +0 -0
  99. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/serializers.py +0 -0
  100. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/validators.py +0 -0
  101. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  102. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/server_maintenance.py +0 -0
  103. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/states.py +0 -0
  104. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/testing.py +0 -0
  105. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/urls.py +0 -0
  106. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/uuid7.py +0 -0
  107. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/version_checking.py +0 -0
  108. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/versioning.py +0 -0
  109. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/waiters.py +0 -0
  110. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_internal/websockets.py +0 -0
  111. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/__init__.py +0 -0
  112. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/fetcher.py +0 -0
  113. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/generator.py +0 -0
  114. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/models.py +0 -0
  115. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/naming.py +0 -0
  116. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/renderer.py +0 -0
  117. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/schema_converter.py +0 -0
  118. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/__init__.py +0 -0
  119. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  120. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/types.py +0 -0
  121. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/unions.py +0 -0
  122. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_vendor/croniter/__init__.py +0 -0
  123. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/_vendor/croniter/croniter.py +0 -0
  124. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/agent.py +0 -0
  125. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/analytics/__init__.py +0 -0
  126. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/artifacts.py +0 -0
  127. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/assets/__init__.py +0 -0
  128. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/assets/core.py +0 -0
  129. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/assets/materialize.py +0 -0
  130. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/automations.py +0 -0
  131. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/AGENTS.md +0 -0
  132. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/__init__.py +0 -0
  133. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/abstract.py +0 -0
  134. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/core.py +0 -0
  135. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/fields.py +0 -0
  136. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/redis.py +0 -0
  137. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/system.py +0 -0
  138. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/blocks/webhook.py +0 -0
  139. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/__init__.py +0 -0
  140. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_file_collector.py +0 -0
  141. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_ignore_filter.py +0 -0
  142. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_path_resolver.py +0 -0
  143. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_zip_builder.py +0 -0
  144. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_zip_extractor.py +0 -0
  145. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/bundles/execute.py +0 -0
  146. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/cache_policies.py +0 -0
  147. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/AGENTS.md +0 -0
  148. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/__init__.py +0 -0
  149. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/attribution.py +0 -0
  150. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/base.py +0 -0
  151. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/cloud.py +0 -0
  152. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/collections.py +0 -0
  153. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/constants.py +0 -0
  154. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/__init__.py +0 -0
  155. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  156. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  157. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  158. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_automations/client.py +0 -0
  159. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  160. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  161. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  162. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  163. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  164. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  165. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  166. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  167. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  168. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  169. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  170. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_events/client.py +0 -0
  171. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  172. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  173. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  174. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flows/client.py +0 -0
  175. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  176. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_logs/client.py +0 -0
  177. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  178. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_variables/client.py +0 -0
  179. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  180. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  181. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/base.py +0 -0
  182. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/routes.py +0 -0
  183. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/__init__.py +0 -0
  184. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/actions.py +0 -0
  185. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/events.py +0 -0
  186. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/filters.py +0 -0
  187. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/objects.py +0 -0
  188. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/responses.py +0 -0
  189. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/schedules.py +0 -0
  190. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/sorting.py +0 -0
  191. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/worker_channel.py +0 -0
  192. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/subscriptions.py +0 -0
  193. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/types/__init__.py +0 -0
  194. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  195. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/client/utilities.py +0 -0
  196. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/AGENTS.md +0 -0
  197. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/__init__.py +0 -0
  198. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_asyncio.py +0 -0
  199. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_events.py +0 -0
  200. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_leases.py +0 -0
  201. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_sync.py +0 -0
  202. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/asyncio.py +0 -0
  203. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/context.py +0 -0
  204. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/services.py +0 -0
  205. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/sync.py +0 -0
  206. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/__init__.py +0 -0
  207. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  208. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/_events.py +0 -0
  209. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/asyncio.py +0 -0
  210. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/context.py +0 -0
  211. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/services.py +0 -0
  212. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/sync.py +0 -0
  213. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/context.py +0 -0
  214. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/AGENTS.md +0 -0
  215. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/__init__.py +0 -0
  216. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/base.py +0 -0
  217. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/deployments.py +0 -0
  218. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/flow_runs.py +0 -0
  219. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/runner.py +0 -0
  220. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/schedules.py +0 -0
  221. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/__init__.py +0 -0
  222. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/core.py +0 -0
  223. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/pull.py +0 -0
  224. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/utility.py +0 -0
  225. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/docker/__init__.py +0 -0
  226. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/docker/_buildx.py +0 -0
  227. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/docker/docker_image.py +0 -0
  228. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/engine.py +0 -0
  229. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/AGENTS.md +0 -0
  230. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/__init__.py +0 -0
  231. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/actions.py +0 -0
  232. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/clients.py +0 -0
  233. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/filters.py +0 -0
  234. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/related.py +0 -0
  235. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/__init__.py +0 -0
  236. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/automations.py +0 -0
  237. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  238. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/events.py +0 -0
  239. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/labelling.py +0 -0
  240. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/subscribers.py +0 -0
  241. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/utilities.py +0 -0
  242. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/events/worker.py +0 -0
  243. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/exceptions.py +0 -0
  244. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/filesystems.py +0 -0
  245. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/flow_runs.py +0 -0
  246. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/flows.py +0 -0
  247. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/futures.py +0 -0
  248. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/__init__.py +0 -0
  249. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/base.py +0 -0
  250. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  251. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  252. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  253. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  254. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  255. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  256. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/input/__init__.py +0 -0
  257. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/input/actions.py +0 -0
  258. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/input/run_input.py +0 -0
  259. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/locking/__init__.py +0 -0
  260. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/locking/_filelock.py +0 -0
  261. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/locking/filesystem.py +0 -0
  262. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/locking/memory.py +0 -0
  263. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/locking/protocol.py +0 -0
  264. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/AGENTS.md +0 -0
  265. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/__init__.py +0 -0
  266. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/clients.py +0 -0
  267. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/configuration.py +0 -0
  268. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/filters.py +0 -0
  269. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/formatters.py +0 -0
  270. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/handlers.py +0 -0
  271. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/highlighters.py +0 -0
  272. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/loggers.py +0 -0
  273. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/logging/logging.yml +0 -0
  274. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/main.py +0 -0
  275. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/plugins.py +0 -0
  276. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/py.typed +0 -0
  277. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/results.py +0 -0
  278. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/AGENTS.md +0 -0
  279. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/__init__.py +0 -0
  280. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_cancel_finalizer.py +0 -0
  281. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_cancellation_manager.py +0 -0
  282. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_control_channel.py +0 -0
  283. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_deployment_registry.py +0 -0
  284. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_event_emitter.py +0 -0
  285. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_flow_resolver.py +0 -0
  286. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_flow_run_executor.py +0 -0
  287. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_hook_runner.py +0 -0
  288. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_limit_manager.py +0 -0
  289. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_process_manager.py +0 -0
  290. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  291. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_bundle.py +0 -0
  292. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_direct.py +0 -0
  293. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_engine.py +0 -0
  294. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_state_proposer.py +0 -0
  295. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_uv_command.py +0 -0
  296. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_hook_runner.py +0 -0
  297. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_resolver.py +0 -0
  298. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_runtime.py +0 -0
  299. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
  300. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_starter.py +0 -0
  301. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_supervisor.py +0 -0
  302. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/runner.py +0 -0
  303. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/server.py +0 -0
  304. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runner/storage.py +0 -0
  305. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runtime/__init__.py +0 -0
  306. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runtime/deployment.py +0 -0
  307. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runtime/flow_run.py +0 -0
  308. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/runtime/task_run.py +0 -0
  309. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/schedules.py +0 -0
  310. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/serializers.py +0 -0
  311. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/_ui_static.py +0 -0
  312. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/admin.py +0 -0
  313. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/artifacts.py +0 -0
  314. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/automations.py +0 -0
  315. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/background_workers.py +0 -0
  316. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_capabilities.py +0 -0
  317. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_documents.py +0 -0
  318. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_schemas.py +0 -0
  319. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_types.py +0 -0
  320. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/clients.py +0 -0
  321. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/collections.py +0 -0
  322. {prefect_client-3.9.1.dev1 → 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.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/concurrency_limits.py +0 -0
  324. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  325. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/csrf_token.py +0 -0
  326. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/dependencies.py +0 -0
  327. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/deployments.py +0 -0
  328. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/events.py +0 -0
  329. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flow_run_states.py +0 -0
  330. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flow_runs.py +0 -0
  331. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flows.py +0 -0
  332. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/logs.py +0 -0
  333. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/middleware.py +0 -0
  334. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/root.py +0 -0
  335. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/run_history.py +0 -0
  336. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/saved_searches.py +0 -0
  337. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  338. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_run_states.py +0 -0
  339. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_runs.py +0 -0
  340. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_workers.py +0 -0
  341. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/templates.py +0 -0
  342. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/__init__.py +0 -0
  343. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/flow_runs.py +0 -0
  344. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/flows.py +0 -0
  345. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/schemas.py +0 -0
  346. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/task_runs.py +0 -0
  347. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/validation.py +0 -0
  348. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/variables.py +0 -0
  349. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/work_queues.py +0 -0
  350. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/server/api/workers.py +0 -0
  351. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/AGENTS.md +0 -0
  352. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/__init__.py +0 -0
  353. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/_types.py +0 -0
  354. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/base.py +0 -0
  355. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/constants.py +0 -0
  356. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/context.py +0 -0
  357. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/legacy.py +0 -0
  358. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/__init__.py +0 -0
  359. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/_defaults.py +0 -0
  360. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/api.py +0 -0
  361. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/cli.py +0 -0
  362. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/client.py +0 -0
  363. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/cloud.py +0 -0
  364. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/deployments.py +0 -0
  365. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/events.py +0 -0
  366. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/experiments.py +0 -0
  367. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/flows.py +0 -0
  368. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/internal.py +0 -0
  369. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/logging.py +0 -0
  370. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/plugins.py +0 -0
  371. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/results.py +0 -0
  372. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/root.py +0 -0
  373. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/runner.py +0 -0
  374. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/__init__.py +0 -0
  375. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/api.py +0 -0
  376. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/concurrency.py +0 -0
  377. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/database.py +0 -0
  378. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/deployments.py +0 -0
  379. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/docket.py +0 -0
  380. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/ephemeral.py +0 -0
  381. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/events.py +0 -0
  382. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  383. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/logs.py +0 -0
  384. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/root.py +0 -0
  385. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/services.py +0 -0
  386. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/tasks.py +0 -0
  387. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/ui.py +0 -0
  388. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/worker_channel.py +0 -0
  389. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/tasks.py +0 -0
  390. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/telemetry.py +0 -0
  391. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/testing.py +0 -0
  392. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/worker.py +0 -0
  393. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/profiles.py +0 -0
  394. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/profiles.toml +0 -0
  395. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/settings/sources.py +0 -0
  396. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/states.py +0 -0
  397. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/task_engine.py +0 -0
  398. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/task_runners.py +0 -0
  399. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/task_runs.py +0 -0
  400. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/task_worker.py +0 -0
  401. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/tasks.py +0 -0
  402. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/telemetry/__init__.py +0 -0
  403. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/telemetry/run_telemetry.py +0 -0
  404. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/transactions.py +0 -0
  405. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/types/__init__.py +0 -0
  406. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/types/_concurrency.py +0 -0
  407. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/types/_datetime_deprecations.py +0 -0
  408. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/types/entrypoint.py +0 -0
  409. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/types/names.py +0 -0
  410. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/AGENTS.md +0 -0
  411. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/__init__.py +0 -0
  412. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/annotations.py +0 -0
  413. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  414. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  415. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/callables/AGENTS.md +0 -0
  416. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/callables/__init__.py +0 -0
  417. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/compat.py +0 -0
  418. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/context.py +0 -0
  419. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/dispatch.py +0 -0
  420. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/dockerutils.py +0 -0
  421. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/engine/AGENTS.md +0 -0
  422. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/engine/__init__.py +0 -0
  423. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  424. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/filesystem/__init__.py +0 -0
  425. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/generics.py +0 -0
  426. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/hashing.py +0 -0
  427. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/importtools.py +0 -0
  428. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/math.py +0 -0
  429. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/names.py +0 -0
  430. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  431. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/processutils/__init__.py +0 -0
  432. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/pydantic.py +0 -0
  433. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/render_swagger.py +0 -0
  434. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  435. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  436. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  437. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/validation.py +0 -0
  438. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/services.py +0 -0
  439. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/slugify.py +0 -0
  440. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/templating/AGENTS.md +0 -0
  441. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/templating/__init__.py +0 -0
  442. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/text.py +0 -0
  443. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/timeout.py +0 -0
  444. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/urls.py +0 -0
  445. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/utilities/visualization.py +0 -0
  446. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/variables.py +0 -0
  447. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/AGENTS.md +0 -0
  448. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/__init__.py +0 -0
  449. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_cleanup.py +0 -0
  450. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_cleanup_handlers.py +0 -0
  451. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  452. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  453. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_state.py +0 -0
  454. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  455. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  456. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/base.py +0 -0
  457. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/block.py +0 -0
  458. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/cloud.py +0 -0
  459. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/process.py +0 -0
  460. {prefect_client-3.9.1.dev1 → prefect_client-3.9.1.dev3}/src/prefect/workers/server.py +0 -0
  461. {prefect_client-3.9.1.dev1 → 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.dev1
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,
@@ -810,8 +810,17 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
810
810
  )
811
811
  )
812
812
  raise_if_flow_run_suspension_requested()
813
- self.set_state(terminal_state)
814
813
  self._return_value = resolved_result
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()
@@ -1332,6 +1341,8 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
1332
1341
  self.handle_timeout(exc)
1333
1342
  except Exception as exc:
1334
1343
  self.logger.exception("Encountered exception during execution: %r", exc)
1344
+ if self.state.is_final() or self._return_value is not NotSet:
1345
+ raise
1335
1346
  self.handle_exception(exc)
1336
1347
 
1337
1348
  def call_flow_fn(self) -> Union[R, Coroutine[Any, Any, R]]:
@@ -1531,8 +1542,17 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
1531
1542
  write_result=should_persist_result(),
1532
1543
  )
1533
1544
  raise_if_flow_run_suspension_requested()
1534
- await self.set_state(terminal_state)
1535
1545
  self._return_value = resolved_result
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
1536
1556
 
1537
1557
  self._telemetry.end_span_on_success()
1538
1558
 
@@ -2075,6 +2095,8 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
2075
2095
  await self.handle_timeout(exc)
2076
2096
  except Exception as exc:
2077
2097
  self.logger.exception("Encountered exception during execution: %r", exc)
2098
+ if self.state.is_final() or self._return_value is not NotSet:
2099
+ raise
2078
2100
  await self.handle_exception(exc)
2079
2101
 
2080
2102
  async def call_flow_fn(self) -> Coroutine[Any, Any, R]:
@@ -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
  )
@@ -543,8 +544,10 @@ def visit_collection(
543
544
  model_instance = expr.model_construct(
544
545
  _fields_set=expr.model_fields_set, **updated_data
545
546
  )
546
- for private_attr in expr.__private_attributes__:
547
- setattr(model_instance, private_attr, getattr(expr, private_attr))
547
+ # Only copy private attributes that have values; unset
548
+ # private attributes are absent from `__pydantic_private__`
549
+ for private_attr, value in (expr.__pydantic_private__ or {}).items():
550
+ setattr(model_instance, private_attr, value)
548
551
  result = model_instance
549
552
 
550
553
  # Update the cache with the final transformed result
@@ -617,6 +620,21 @@ def distinct(
617
620
  yield item
618
621
 
619
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
+
620
638
  @overload
621
639
  def get_from_dict(
622
640
  dct: NestedDict[str, VT], keys: Union[str, list[str]], default: None = None
@@ -645,7 +663,9 @@ def get_from_dict(
645
663
  keys: The sequence of keys to use for access. Can be a
646
664
  dot-separated string or a list of keys. List indices can be included
647
665
  in the sequence as either integer keys or as string indices in square
648
- 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.
649
669
  default: The default value to return if the requested key path does not
650
670
  exist. Defaults to None.
651
671
 
@@ -658,6 +678,7 @@ def get_from_dict(
658
678
  get_from_dict({'a': {'b': {'c': [1, 2, 3, 4]}}}, 'a.b.c[1]') # 2
659
679
  get_from_dict({'a': {'b': [0, {'c': [1, 2]}]}}, ['a', 'b', 1, 'c', 1]) # 2
660
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
661
682
  ```
662
683
  """
663
684
  if isinstance(keys, str):
@@ -665,13 +686,16 @@ def get_from_dict(
665
686
  value = dct
666
687
  try:
667
688
  for key in keys:
668
- try:
669
- # Try to cast to int to handle list indices
670
- key = int(key)
671
- except ValueError:
672
- # If it's not an int, use the key as-is
673
- # for dict lookup
674
- 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
675
699
  value = value[key] # type: ignore
676
700
  return cast(VT, value)
677
701
  except (TypeError, KeyError, IndexError):
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.9.1.dev1"
3
- __build_date__ = "2026-10-22 08:19:36.634713+00:00"
4
- __git_commit__ = "7d1688ff034a89a47c900c0e2951c78ff1979f0d"
5
- __dirty__ = False