prefect-client 3.9.1.dev4__tar.gz → 3.9.1.dev6__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.dev4 → prefect_client-3.9.1.dev6}/PKG-INFO +4 -4
  2. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/README.md +2 -2
  3. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/pyproject.toml +1 -1
  4. prefect_client-3.9.1.dev6/src/prefect/_build_info.py +5 -0
  5. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/notice.py +1 -1
  6. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/migration.py +1 -1
  7. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/result_records.py +13 -9
  8. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/artifacts.py +1 -1
  9. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/notifications.py +10 -10
  10. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/system.py +1 -1
  11. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/webhook.py +1 -1
  12. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/cache_policies.py +22 -4
  13. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/__init__.py +1 -1
  14. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/__init__.py +2 -2
  15. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_work_pools/client.py +2 -0
  16. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/sorting.py +2 -0
  17. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/context.py +1 -1
  18. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/base.py +1 -1
  19. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/runner.py +5 -5
  20. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/steps/core.py +1 -1
  21. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/steps/pull.py +1 -1
  22. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/schemas/events.py +7 -0
  23. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/filesystems.py +3 -9
  24. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/artifacts.py +1 -1
  25. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/automations.py +1 -1
  26. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/block_capabilities.py +1 -1
  27. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/block_documents.py +1 -1
  28. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/block_schemas.py +1 -1
  29. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/block_types.py +1 -1
  30. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/clients.py +35 -2
  31. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +1 -1
  32. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/concurrency_limits.py +1 -1
  33. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/concurrency_limits_v2.py +1 -1
  34. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/deployments.py +1 -1
  35. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/events.py +1 -1
  36. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/flow_run_states.py +1 -1
  37. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/flow_runs.py +1 -1
  38. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/flows.py +1 -1
  39. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/logs.py +1 -1
  40. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/server.py +1 -1
  41. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/task_run_states.py +1 -1
  42. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/task_runs.py +1 -1
  43. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/task_workers.py +1 -1
  44. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/variables.py +1 -1
  45. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/work_queues.py +1 -1
  46. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/workers.py +2 -2
  47. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/task_engine.py +63 -7
  48. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/filesystem/__init__.py +50 -5
  49. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/templating/__init__.py +9 -3
  50. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/urls.py +14 -1
  51. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/process.py +2 -2
  52. prefect_client-3.9.1.dev4/src/prefect/_build_info.py +0 -5
  53. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/.gitignore +0 -0
  54. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/LICENSE +0 -0
  55. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/hatch_build.py +0 -0
  56. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/.prefectignore +0 -0
  57. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/AGENTS.md +0 -0
  58. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/__init__.py +0 -0
  59. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/__main__.py +0 -0
  60. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/__init__.py +0 -0
  61. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/_launchers.py +0 -0
  62. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/bundles/__init__.py +0 -0
  63. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/bundles/execute.py +0 -0
  64. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/plugins/__init__.py +0 -0
  65. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/plugins/apply.py +0 -0
  66. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
  67. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/plugins/manager.py +0 -0
  68. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/plugins/spec.py +0 -0
  69. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/sla/__init__.py +0 -0
  70. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/sla/client.py +0 -0
  71. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_experimental/sla/objects.py +0 -0
  72. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_flow_run_suspension.py +0 -0
  73. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/__init__.py +0 -0
  74. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/_logging.py +0 -0
  75. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/_observation_delivery.py +0 -0
  76. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/__init__.py +0 -0
  77. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/ci_detection.py +0 -0
  78. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/client.py +0 -0
  79. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/device_id.py +0 -0
  80. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/emit.py +0 -0
  81. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/enabled.py +0 -0
  82. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/events.py +0 -0
  83. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/milestones.py +0 -0
  84. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/analytics/service.py +0 -0
  85. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/ast_utils.py +0 -0
  86. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/attempt_control.py +0 -0
  87. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/buildx.py +0 -0
  88. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/__init__.py +0 -0
  89. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  90. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/backports.py +0 -0
  91. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/blocks.py +0 -0
  92. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  93. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
  94. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/compatibility/starlette.py +0 -0
  95. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/__init__.py +0 -0
  96. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/api.py +0 -0
  97. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/calls.py +0 -0
  98. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  99. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  100. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/inspection.py +0 -0
  101. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/primitives.py +0 -0
  102. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/services.py +0 -0
  103. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/threads.py +0 -0
  104. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/concurrency/waiters.py +0 -0
  105. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/control_listener.py +0 -0
  106. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/deprecated.py +0 -0
  107. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/engine.py +0 -0
  108. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/git.py +0 -0
  109. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
  110. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/installation.py +0 -0
  111. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/integrations.py +0 -0
  112. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/launchers.py +0 -0
  113. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/lazy.py +0 -0
  114. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/metrics.py +0 -0
  115. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/observability.py +0 -0
  116. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/observers.py +0 -0
  117. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/__init__.py +0 -0
  118. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/apply.py +0 -0
  119. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/collections.py +0 -0
  120. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/diagnostics.py +0 -0
  121. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/manager.py +0 -0
  122. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/spec.py +0 -0
  123. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/plugins/startup.py +0 -0
  124. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/pydantic/__init__.py +0 -0
  125. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/pydantic/schemas.py +0 -0
  126. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  127. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  128. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/pydantic/validated_func.py +0 -0
  129. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/pytz.py +0 -0
  130. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/retries.py +0 -0
  131. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schema.py +0 -0
  132. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schemas/__init__.py +0 -0
  133. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schemas/_registry.py +0 -0
  134. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schemas/bases.py +0 -0
  135. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schemas/fields.py +0 -0
  136. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schemas/serializers.py +0 -0
  137. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/schemas/validators.py +0 -0
  138. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
  139. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/server_maintenance.py +0 -0
  140. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/states.py +0 -0
  141. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/testing.py +0 -0
  142. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/urls.py +0 -0
  143. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/uuid7.py +0 -0
  144. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/version_checking.py +0 -0
  145. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/versioning.py +0 -0
  146. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/waiters.py +0 -0
  147. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_internal/websockets.py +0 -0
  148. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/__init__.py +0 -0
  149. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/fetcher.py +0 -0
  150. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/generator.py +0 -0
  151. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/models.py +0 -0
  152. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/naming.py +0 -0
  153. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/renderer.py +0 -0
  154. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/schema_converter.py +0 -0
  155. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/templates/__init__.py +0 -0
  156. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
  157. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/types.py +0 -0
  158. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_sdk/unions.py +0 -0
  159. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_vendor/croniter/__init__.py +0 -0
  160. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/_vendor/croniter/croniter.py +0 -0
  161. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/agent.py +0 -0
  162. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/analytics/__init__.py +0 -0
  163. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/assets/__init__.py +0 -0
  164. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/assets/core.py +0 -0
  165. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/assets/materialize.py +0 -0
  166. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/automations.py +0 -0
  167. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/AGENTS.md +0 -0
  168. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/__init__.py +0 -0
  169. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/abstract.py +0 -0
  170. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/core.py +0 -0
  171. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/fields.py +0 -0
  172. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/blocks/redis.py +0 -0
  173. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/__init__.py +0 -0
  174. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/_file_collector.py +0 -0
  175. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/_ignore_filter.py +0 -0
  176. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/_path_resolver.py +0 -0
  177. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/_zip_builder.py +0 -0
  178. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/_zip_extractor.py +0 -0
  179. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/bundles/execute.py +0 -0
  180. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/AGENTS.md +0 -0
  181. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/attribution.py +0 -0
  182. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/base.py +0 -0
  183. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/cloud.py +0 -0
  184. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/collections.py +0 -0
  185. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/constants.py +0 -0
  186. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  187. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  188. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  189. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_automations/client.py +0 -0
  190. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  191. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  192. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  193. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  194. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  195. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  196. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  197. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  198. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  199. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  200. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_events/__init__.py +0 -0
  201. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_events/client.py +0 -0
  202. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  203. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  204. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  205. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_flows/client.py +0 -0
  206. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  207. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_logs/client.py +0 -0
  208. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  209. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_variables/client.py +0 -0
  210. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  211. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/base.py +0 -0
  212. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/orchestration/routes.py +0 -0
  213. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/__init__.py +0 -0
  214. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/actions.py +0 -0
  215. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/events.py +0 -0
  216. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/filters.py +0 -0
  217. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/objects.py +0 -0
  218. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/responses.py +0 -0
  219. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/schedules.py +0 -0
  220. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/schemas/worker_channel.py +0 -0
  221. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/subscriptions.py +0 -0
  222. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/types/__init__.py +0 -0
  223. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  224. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/client/utilities.py +0 -0
  225. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/AGENTS.md +0 -0
  226. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/__init__.py +0 -0
  227. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/_asyncio.py +0 -0
  228. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/_events.py +0 -0
  229. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/_leases.py +0 -0
  230. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/_sync.py +0 -0
  231. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/asyncio.py +0 -0
  232. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/context.py +0 -0
  233. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/services.py +0 -0
  234. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/sync.py +0 -0
  235. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/__init__.py +0 -0
  236. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  237. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/_events.py +0 -0
  238. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/asyncio.py +0 -0
  239. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/context.py +0 -0
  240. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/services.py +0 -0
  241. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/concurrency/v1/sync.py +0 -0
  242. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/AGENTS.md +0 -0
  243. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/__init__.py +0 -0
  244. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/deployments.py +0 -0
  245. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/flow_runs.py +0 -0
  246. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/schedules.py +0 -0
  247. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/steps/__init__.py +0 -0
  248. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/deployments/steps/utility.py +0 -0
  249. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/docker/__init__.py +0 -0
  250. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/docker/_buildx.py +0 -0
  251. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/docker/docker_image.py +0 -0
  252. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/engine.py +0 -0
  253. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/AGENTS.md +0 -0
  254. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/__init__.py +0 -0
  255. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/actions.py +0 -0
  256. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/clients.py +0 -0
  257. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/filters.py +0 -0
  258. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/related.py +0 -0
  259. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/schemas/__init__.py +0 -0
  260. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/schemas/automations.py +0 -0
  261. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  262. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/schemas/labelling.py +0 -0
  263. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/subscribers.py +0 -0
  264. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/utilities.py +0 -0
  265. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/events/worker.py +0 -0
  266. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/exceptions.py +0 -0
  267. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/flow_engine.py +0 -0
  268. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/flow_runs.py +0 -0
  269. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/flows.py +0 -0
  270. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/futures.py +0 -0
  271. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/__init__.py +0 -0
  272. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/base.py +0 -0
  273. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  274. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  275. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  276. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  277. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  278. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  279. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/input/__init__.py +0 -0
  280. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/input/actions.py +0 -0
  281. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/input/run_input.py +0 -0
  282. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/locking/__init__.py +0 -0
  283. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/locking/_filelock.py +0 -0
  284. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/locking/filesystem.py +0 -0
  285. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/locking/memory.py +0 -0
  286. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/locking/protocol.py +0 -0
  287. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/AGENTS.md +0 -0
  288. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/__init__.py +0 -0
  289. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/clients.py +0 -0
  290. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/configuration.py +0 -0
  291. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/filters.py +0 -0
  292. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/formatters.py +0 -0
  293. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/handlers.py +0 -0
  294. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/highlighters.py +0 -0
  295. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/loggers.py +0 -0
  296. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/logging/logging.yml +0 -0
  297. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/main.py +0 -0
  298. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/plugins.py +0 -0
  299. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/py.typed +0 -0
  300. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/results.py +0 -0
  301. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/AGENTS.md +0 -0
  302. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/__init__.py +0 -0
  303. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_cancel_finalizer.py +0 -0
  304. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_cancellation_manager.py +0 -0
  305. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_control_channel.py +0 -0
  306. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_deployment_registry.py +0 -0
  307. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_event_emitter.py +0 -0
  308. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_flow_resolver.py +0 -0
  309. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_flow_run_executor.py +0 -0
  310. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_hook_runner.py +0 -0
  311. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_limit_manager.py +0 -0
  312. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_process_manager.py +0 -0
  313. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_scheduled_run_poller.py +0 -0
  314. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_starter_bundle.py +0 -0
  315. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_starter_direct.py +0 -0
  316. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_starter_engine.py +0 -0
  317. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_state_proposer.py +0 -0
  318. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_uv_command.py +0 -0
  319. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_workspace_hook_runner.py +0 -0
  320. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_workspace_resolver.py +0 -0
  321. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_workspace_runtime.py +0 -0
  322. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
  323. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_workspace_starter.py +0 -0
  324. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/_workspace_supervisor.py +0 -0
  325. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/runner.py +0 -0
  326. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/server.py +0 -0
  327. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runner/storage.py +0 -0
  328. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runtime/__init__.py +0 -0
  329. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runtime/deployment.py +0 -0
  330. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runtime/flow_run.py +0 -0
  331. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/runtime/task_run.py +0 -0
  332. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/schedules.py +0 -0
  333. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/serializers.py +0 -0
  334. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/__init__.py +0 -0
  335. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/_ui_static.py +0 -0
  336. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/admin.py +0 -0
  337. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/background_workers.py +0 -0
  338. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/collections.py +0 -0
  339. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/csrf_token.py +0 -0
  340. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/dependencies.py +0 -0
  341. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/middleware.py +0 -0
  342. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/observed_states.py +0 -0
  343. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/root.py +0 -0
  344. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/run_history.py +0 -0
  345. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/saved_searches.py +0 -0
  346. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  347. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/templates.py +0 -0
  348. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/ui/__init__.py +0 -0
  349. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/ui/flow_runs.py +0 -0
  350. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/ui/flows.py +0 -0
  351. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/ui/schemas.py +0 -0
  352. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/ui/task_runs.py +0 -0
  353. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/server/api/validation.py +0 -0
  354. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/AGENTS.md +0 -0
  355. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/__init__.py +0 -0
  356. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/_types.py +0 -0
  357. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/base.py +0 -0
  358. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/constants.py +0 -0
  359. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/context.py +0 -0
  360. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/legacy.py +0 -0
  361. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/__init__.py +0 -0
  362. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/_defaults.py +0 -0
  363. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/api.py +0 -0
  364. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/cli.py +0 -0
  365. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/client.py +0 -0
  366. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/cloud.py +0 -0
  367. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/deployments.py +0 -0
  368. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/events.py +0 -0
  369. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/experiments.py +0 -0
  370. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/flows.py +0 -0
  371. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/internal.py +0 -0
  372. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/logging.py +0 -0
  373. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/plugins.py +0 -0
  374. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/results.py +0 -0
  375. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/root.py +0 -0
  376. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/runner.py +0 -0
  377. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/__init__.py +0 -0
  378. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/api.py +0 -0
  379. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/concurrency.py +0 -0
  380. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/database.py +0 -0
  381. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/deployments.py +0 -0
  382. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/docket.py +0 -0
  383. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/ephemeral.py +0 -0
  384. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/events.py +0 -0
  385. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  386. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/logs.py +0 -0
  387. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/root.py +0 -0
  388. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/services.py +0 -0
  389. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/tasks.py +0 -0
  390. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/ui.py +0 -0
  391. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/server/worker_channel.py +0 -0
  392. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/tasks.py +0 -0
  393. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/telemetry.py +0 -0
  394. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/testing.py +0 -0
  395. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/models/worker.py +0 -0
  396. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/profiles.py +0 -0
  397. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/profiles.toml +0 -0
  398. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/settings/sources.py +0 -0
  399. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/states.py +0 -0
  400. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/task_runners.py +0 -0
  401. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/task_runs.py +0 -0
  402. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/task_worker.py +0 -0
  403. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/tasks.py +0 -0
  404. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/telemetry/__init__.py +0 -0
  405. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/telemetry/run_telemetry.py +0 -0
  406. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/transactions.py +0 -0
  407. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/types/__init__.py +0 -0
  408. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/types/_concurrency.py +0 -0
  409. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/types/_datetime.py +0 -0
  410. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/types/_datetime_deprecations.py +0 -0
  411. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/types/entrypoint.py +0 -0
  412. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/types/names.py +0 -0
  413. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/AGENTS.md +0 -0
  414. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/__init__.py +0 -0
  415. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/annotations.py +0 -0
  416. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
  417. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/asyncutils/__init__.py +0 -0
  418. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/callables/AGENTS.md +0 -0
  419. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/callables/__init__.py +0 -0
  420. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/collections.py +0 -0
  421. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/compat.py +0 -0
  422. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/context.py +0 -0
  423. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/dispatch.py +0 -0
  424. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/dockerutils.py +0 -0
  425. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/engine/AGENTS.md +0 -0
  426. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/engine/__init__.py +0 -0
  427. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
  428. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/generics.py +0 -0
  429. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/hashing.py +0 -0
  430. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/importtools.py +0 -0
  431. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/math.py +0 -0
  432. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/names.py +0 -0
  433. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/processutils/AGENTS.md +0 -0
  434. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/processutils/__init__.py +0 -0
  435. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/pydantic.py +0 -0
  436. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/render_swagger.py +0 -0
  437. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
  438. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  439. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  440. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/schema_tools/validation.py +0 -0
  441. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/services.py +0 -0
  442. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/slugify.py +0 -0
  443. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/templating/AGENTS.md +0 -0
  444. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/text.py +0 -0
  445. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/timeout.py +0 -0
  446. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/utilities/visualization.py +0 -0
  447. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/variables.py +0 -0
  448. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/AGENTS.md +0 -0
  449. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/__init__.py +0 -0
  450. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_cleanup.py +0 -0
  451. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_cleanup_handlers.py +0 -0
  452. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_worker_channel/__init__.py +0 -0
  453. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
  454. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_worker_channel/_state.py +0 -0
  455. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_worker_channel/_sync.py +0 -0
  456. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/_worker_channel/_transport.py +0 -0
  457. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/base.py +0 -0
  458. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/block.py +0 -0
  459. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/cloud.py +0 -0
  460. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/server.py +0 -0
  461. {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev6}/src/prefect/workers/utilities.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: prefect-client
3
- Version: 3.9.1.dev4
3
+ Version: 3.9.1.dev6
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
- Project-URL: Documentation, https://docs.prefect.io
6
+ Project-URL: Documentation, https://www.prefect.io/docs
7
7
  Project-URL: Source, https://github.com/PrefectHQ/prefect
8
8
  Project-URL: Tracker, https://github.com/PrefectHQ/prefect/issues
9
9
  Author-email: "Prefect Technologies, Inc." <help@prefect.io>
@@ -163,7 +163,7 @@ describing the functionality you are interested in using and we will do our best
163
163
  ## Next steps
164
164
 
165
165
  There's lots more you can do to orchestrate and observe your workflows with Prefect!
166
- Start with our [friendly tutorial](https://docs.prefect.io/tutorials) or explore the [core concepts of Prefect workflows](https://docs.prefect.io/concepts/).
166
+ Start with our [friendly tutorial](https://www.prefect.io/docs/tutorials) or explore the [core concepts of Prefect workflows](https://www.prefect.io/docs/concepts/).
167
167
 
168
168
  ## Join the community
169
169
 
@@ -173,6 +173,6 @@ All community forums, including code contributions, issue discussions, and Slack
173
173
 
174
174
  ## Contribute
175
175
 
176
- See our [documentation on contributing to Prefect](https://docs.prefect.io/contributing/overview/).
176
+ See our [documentation on contributing to Prefect](https://www.prefect.io/docs/contributing/overview/).
177
177
 
178
178
  Thanks for being part of the mission to build a new kind of workflow system and, of course, **happy engineering!**
@@ -94,7 +94,7 @@ describing the functionality you are interested in using and we will do our best
94
94
  ## Next steps
95
95
 
96
96
  There's lots more you can do to orchestrate and observe your workflows with Prefect!
97
- Start with our [friendly tutorial](https://docs.prefect.io/tutorials) or explore the [core concepts of Prefect workflows](https://docs.prefect.io/concepts/).
97
+ Start with our [friendly tutorial](https://www.prefect.io/docs/tutorials) or explore the [core concepts of Prefect workflows](https://www.prefect.io/docs/concepts/).
98
98
 
99
99
  ## Join the community
100
100
 
@@ -104,6 +104,6 @@ All community forums, including code contributions, issue discussions, and Slack
104
104
 
105
105
  ## Contribute
106
106
 
107
- See our [documentation on contributing to Prefect](https://docs.prefect.io/contributing/overview/).
107
+ See our [documentation on contributing to Prefect](https://www.prefect.io/docs/contributing/overview/).
108
108
 
109
109
  Thanks for being part of the mission to build a new kind of workflow system and, of course, **happy engineering!**
@@ -71,7 +71,7 @@ dependencies = [
71
71
  ]
72
72
  [project.urls]
73
73
  Changelog = "https://github.com/PrefectHQ/prefect/releases"
74
- Documentation = "https://docs.prefect.io"
74
+ Documentation = "https://www.prefect.io/docs"
75
75
  Source = "https://github.com/PrefectHQ/prefect"
76
76
  Tracker = "https://github.com/PrefectHQ/prefect/issues"
77
77
  [project.optional-dependencies]
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.9.1.dev6"
3
+ __build_date__ = "2026-10-28 08:14:48.771478+00:00"
4
+ __git_commit__ = "bdc282844dd7ad54b0734dcc48d0a597881591c0"
5
+ __dirty__ = False
@@ -14,7 +14,7 @@ from prefect.settings import get_current_settings
14
14
  NOTICE_TEXT = """
15
15
  Prefect collects anonymous usage data to improve the product.
16
16
  To opt out: set PREFECT_SERVER_ANALYTICS_ENABLED=false on the server, or DO_NOT_TRACK=1 in the client.
17
- Learn more: https://docs.prefect.io/concepts/telemetry
17
+ Learn more: https://www.prefect.io/docs/concepts/telemetry
18
18
  """
19
19
 
20
20
 
@@ -59,7 +59,7 @@ MOVED_IN_V3 = {
59
59
  "prefect.client:get_client": "prefect.client.orchestration:get_client",
60
60
  }
61
61
 
62
- upgrade_guide_msg = "Refer to the upgrade guide for more information: https://docs.prefect.io/v3/how-to-guides/migrate/upgrade-agents-to-workers."
62
+ upgrade_guide_msg = "Refer to the upgrade guide for more information: https://www.prefect.io/docs/v3/how-to-guides/migrate/upgrade-agents-to-workers."
63
63
 
64
64
  REMOVED_IN_V3 = {
65
65
  "prefect.client.schemas.objects:MinimalDeploymentSchedule": "Use `prefect.client.schemas.actions.DeploymentScheduleCreate` instead.",
@@ -37,6 +37,7 @@ if TYPE_CHECKING:
37
37
  ResultSerializer = Union[Serializer, str]
38
38
  LITERAL_TYPES: set[type] = {type(None), bool, UUID}
39
39
  R = TypeVar("R")
40
+ _LEGACY_RESULT_BLOB_KEYS = {"serializer", "data", "prefect_version", "expiration"}
40
41
 
41
42
 
42
43
  class ResultRecordMetadata(BaseModel):
@@ -173,16 +174,19 @@ class ResultRecord(BaseModel, Generic[R]):
173
174
  if isinstance(value, dict):
174
175
  if TYPE_CHECKING: # TODO: # isintance doesn't accept generic parameters
175
176
  value = cast(dict[str, Any], value)
176
- if "data" in value:
177
+ # Only coerce the exact legacy `PersistedResultBlob` shape so that raw
178
+ # JSON results that happen to contain a `data` key aren't misread
179
+ if (
180
+ {"data", "serializer"} <= value.keys() <= _LEGACY_RESULT_BLOB_KEYS
181
+ and isinstance(value["data"], str)
182
+ and isinstance(value["serializer"], dict)
183
+ ):
177
184
  value["result"] = value.pop("data")
178
- if "metadata" not in value:
179
- value["metadata"] = {}
180
- if "expiration" in value:
181
- value["metadata"]["expiration"] = value.pop("expiration")
182
- if "serializer" in value:
183
- value["metadata"]["serializer"] = value.pop("serializer")
184
- if "prefect_version" in value:
185
- value["metadata"]["prefect_version"] = value.pop("prefect_version")
185
+ value["metadata"] = {"serializer": value.pop("serializer")}
186
+ if "expiration" in value:
187
+ value["metadata"]["expiration"] = value.pop("expiration")
188
+ if "prefect_version" in value:
189
+ value["metadata"]["prefect_version"] = value.pop("prefect_version")
186
190
  return value
187
191
 
188
192
  def serialize_metadata(self) -> bytes:
@@ -34,7 +34,7 @@ logger: "logging.Logger" = get_logger("artifacts")
34
34
  class Artifact(ArtifactRequest):
35
35
  """
36
36
  An artifact is a piece of data that is created by a flow or task run.
37
- https://docs.prefect.io/latest/develop/artifacts
37
+ https://www.prefect.io/docs/latest/develop/artifacts
38
38
 
39
39
  Arguments:
40
40
  type: A string identifying the type of artifact.
@@ -104,7 +104,7 @@ class AppriseNotificationBlock(AbstractAppriseNotificationBlock, ABC):
104
104
  """
105
105
 
106
106
  _documentation_url = HttpUrl(
107
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
107
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
108
108
  )
109
109
  url: SecretStr = Field(
110
110
  default=...,
@@ -173,7 +173,7 @@ class SlackWebhook(AppriseNotificationBlock):
173
173
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/slack.png"
174
174
  )
175
175
  _documentation_url = HttpUrl(
176
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
176
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
177
177
  )
178
178
 
179
179
  url: SecretStr = Field(
@@ -270,7 +270,7 @@ class MicrosoftTeamsWebhook(AppriseNotificationBlock):
270
270
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/microsoft-teams.png"
271
271
  )
272
272
  _documentation_url = HttpUrl(
273
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
273
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
274
274
  )
275
275
 
276
276
  url: SecretStr = Field(
@@ -332,7 +332,7 @@ class PagerDutyWebHook(AbstractAppriseNotificationBlock):
332
332
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/pagerduty.png"
333
333
  )
334
334
  _documentation_url = HttpUrl(
335
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
335
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
336
336
  )
337
337
 
338
338
  # PagerDuty requires a valid severity level from its PAGERDUTY_SEVERITY_MAP
@@ -488,7 +488,7 @@ class TwilioSMS(AbstractAppriseNotificationBlock):
488
488
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/twilio.png"
489
489
  ) # noqa
490
490
  _documentation_url = HttpUrl(
491
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
491
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
492
492
  )
493
493
 
494
494
  account_sid: str = Field(
@@ -563,7 +563,7 @@ class OpsgenieWebhook(AbstractAppriseNotificationBlock):
563
563
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/opsgenie.png"
564
564
  )
565
565
  _documentation_url = HttpUrl(
566
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
566
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
567
567
  )
568
568
 
569
569
  apikey: SecretStr = Field(
@@ -688,7 +688,7 @@ class MattermostWebhook(AbstractAppriseNotificationBlock):
688
688
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/mattermost.png"
689
689
  )
690
690
  _documentation_url = HttpUrl(
691
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
691
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
692
692
  )
693
693
 
694
694
  hostname: str = Field(
@@ -790,7 +790,7 @@ class DiscordWebhook(AbstractAppriseNotificationBlock):
790
790
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/discord.png"
791
791
  )
792
792
  _documentation_url = HttpUrl(
793
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
793
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
794
794
  )
795
795
 
796
796
  webhook_id: SecretStr = Field(
@@ -895,7 +895,7 @@ class CustomWebhookNotificationBlock(NotificationBlock):
895
895
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/webhook.png"
896
896
  )
897
897
  _documentation_url = HttpUrl(
898
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
898
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
899
899
  )
900
900
 
901
901
  name: str = Field(title="Name", description="Name of the webhook.")
@@ -1065,7 +1065,7 @@ class SendgridEmail(AbstractAppriseNotificationBlock):
1065
1065
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/email.png"
1066
1066
  )
1067
1067
  _documentation_url = HttpUrl(
1068
- "https://docs.prefect.io/latest/automate/events/automations-triggers#sending-notifications-with-automations"
1068
+ "https://www.prefect.io/docs/latest/automate/events/automations-triggers#sending-notifications-with-automations"
1069
1069
  )
1070
1070
 
1071
1071
  api_key: SecretStr = Field(
@@ -47,7 +47,7 @@ class Secret(Block, Generic[T]):
47
47
  _logo_url = HttpUrl(
48
48
  "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/secret.png"
49
49
  )
50
- _documentation_url = HttpUrl("https://docs.prefect.io/latest/develop/blocks")
50
+ _documentation_url = HttpUrl("https://www.prefect.io/docs/latest/develop/blocks")
51
51
  _description = "A block that represents a secret value. The value stored in this block will be obfuscated when this block is viewed or edited in the UI."
52
52
 
53
53
  value: Union[SecretStr, PydanticSecret[T]] = Field(
@@ -33,7 +33,7 @@ class Webhook(Block):
33
33
  _block_type_name = "Webhook"
34
34
  _logo_url = "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/webhook.png" # type: ignore
35
35
  _documentation_url = HttpUrl(
36
- "https://docs.prefect.io/latest/automate/events/webhook-triggers"
36
+ "https://www.prefect.io/docs/latest/automate/events/webhook-triggers"
37
37
  )
38
38
 
39
39
  method: Literal["GET", "POST", "PUT", "PATCH", "DELETE"] = Field(
@@ -4,6 +4,7 @@ from copy import deepcopy
4
4
  from dataclasses import dataclass, field, replace
5
5
  from logging import Logger
6
6
  from pathlib import Path
7
+ from types import CodeType
7
8
  from typing import (
8
9
  TYPE_CHECKING,
9
10
  Any,
@@ -45,9 +46,10 @@ def _register_stable_transforms() -> None:
45
46
  if sys.modules.get("pandas") is not None:
46
47
  import pandas as pd # pyright: ignore
47
48
 
48
- STABLE_TRANSFORMS[pd.DataFrame] = lambda df: [ # pyright: ignore
49
- df[col] for col in sorted(df.columns)
50
- ]
49
+ STABLE_TRANSFORMS[pd.DataFrame] = lambda df: ( # pyright: ignore
50
+ list(df.columns),
51
+ [df.iloc[:, i] for i in range(len(df.columns))],
52
+ )
51
53
 
52
54
 
53
55
  @dataclass
@@ -282,6 +284,19 @@ class _None(CachePolicy):
282
284
  return other
283
285
 
284
286
 
287
+ def _normalize_code_location(code: CodeType) -> CodeType:
288
+ """Remove compilation locations, including those in nested code constants."""
289
+ return code.replace(
290
+ co_filename="",
291
+ co_firstlineno=1,
292
+ co_linetable=b"",
293
+ co_consts=tuple(
294
+ _normalize_code_location(const) if isinstance(const, CodeType) else const
295
+ for const in code.co_consts
296
+ ),
297
+ )
298
+
299
+
285
300
  @dataclass
286
301
  class TaskSource(CachePolicy):
287
302
  """
@@ -312,7 +327,10 @@ class TaskSource(CachePolicy):
312
327
  lines = inspect.getsource(task_ctx.task.fn.__class__)
313
328
  except OSError as exc:
314
329
  if "source code" in str(exc):
315
- lines = task_ctx.task.fn.__code__.co_code
330
+ return hash_objects(
331
+ _normalize_code_location(task_ctx.task.fn.__code__),
332
+ raise_on_failure=True,
333
+ )
316
334
  else:
317
335
  raise
318
336
 
@@ -1,5 +1,5 @@
1
1
  """
2
- Asynchronous client implementation for communicating with the [Prefect REST API](https://docs.prefect.io/v3/api-ref/rest-api/).
2
+ Asynchronous client implementation for communicating with the [Prefect REST API](https://www.prefect.io/docs/v3/api-ref/rest-api/).
3
3
 
4
4
  Explore the client by communicating with an in-memory webserver - no setup required:
5
5
 
@@ -296,7 +296,7 @@ class PrefectClient(
296
296
  EventAsyncClient,
297
297
  ):
298
298
  """
299
- An asynchronous client for interacting with the [Prefect REST API](https://docs.prefect.io/v3/api-ref/rest-api/).
299
+ An asynchronous client for interacting with the [Prefect REST API](https://www.prefect.io/docs/v3/api-ref/rest-api/).
300
300
 
301
301
  Args:
302
302
  api: the REST API URL or FastAPI application to connect to
@@ -1243,7 +1243,7 @@ class SyncPrefectClient(
1243
1243
  EventClient,
1244
1244
  ):
1245
1245
  """
1246
- A synchronous client for interacting with the [Prefect REST API](https://docs.prefect.io/v3/api-ref/rest-api/).
1246
+ A synchronous client for interacting with the [Prefect REST API](https://www.prefect.io/docs/v3/api-ref/rest-api/).
1247
1247
 
1248
1248
  Args:
1249
1249
  api: the REST API URL or FastAPI application to connect to
@@ -525,6 +525,8 @@ class WorkPoolAsyncClient(BaseAsyncClient):
525
525
  json=work_pool.model_dump(mode="json", exclude_unset=True),
526
526
  )
527
527
  except HTTPStatusError as e:
528
+ if e.response.status_code == 403 and "plan does not support" in str(e):
529
+ raise ObjectUnsupported(http_exc=e) from e
528
530
  if e.response.status_code == 409:
529
531
  if overwrite:
530
532
  existing_work_pool = await self.read_work_pool(
@@ -25,6 +25,8 @@ class TaskRunSort(AutoEnum):
25
25
  NAME_DESC = AutoEnum.auto()
26
26
  NEXT_SCHEDULED_START_TIME_ASC = AutoEnum.auto()
27
27
  END_TIME_DESC = AutoEnum.auto()
28
+ DURATION_DESC = AutoEnum.auto()
29
+ DURATION_ASC = AutoEnum.auto()
28
30
 
29
31
 
30
32
  class AutomationSort(AutoEnum):
@@ -3,7 +3,7 @@ Async and thread safe models for passing runtime context data.
3
3
 
4
4
  These contexts should never be directly mutated by the user.
5
5
 
6
- For more user-accessible information about the current run, see [`prefect.runtime`](https://docs.prefect.io/v3/api-ref/python/prefect-runtime-flow_run).
6
+ For more user-accessible information about the current run, see [`prefect.runtime`](https://www.prefect.io/docs/v3/api-ref/python/prefect-runtime-flow_run).
7
7
  """
8
8
 
9
9
  import asyncio
@@ -2,7 +2,7 @@
2
2
  Core primitives for managing Prefect deployments via `prefect deploy`, providing a minimally opinionated
3
3
  build system for managing flows and deployments.
4
4
 
5
- To get started, follow along with [the deployments tutorial](https://docs.prefect.io/v3/how-to-guides/deployments/create-deployments).
5
+ To get started, follow along with [the deployments tutorial](https://www.prefect.io/docs/v3/how-to-guides/deployments/create-deployments).
6
6
  """
7
7
 
8
8
  from __future__ import annotations
@@ -1126,7 +1126,7 @@ class RunnerDeployment(BaseModel):
1126
1126
  no_file_location_error = (
1127
1127
  "Flows defined interactively cannot be deployed. Check out the"
1128
1128
  " quickstart guide for help getting started:"
1129
- " https://docs.prefect.io/latest/get-started/quickstart"
1129
+ " https://www.prefect.io/docs/latest/get-started/quickstart"
1130
1130
  )
1131
1131
  ## first see if an entrypoint can be determined
1132
1132
  flow_file = getattr(flow, "__globals__", {}).get("__file__")
@@ -1671,14 +1671,14 @@ async def adeploy(
1671
1671
  " or specify a remote storage location for the flow with `.from_source`."
1672
1672
  " If you are attempting to deploy a flow to a local process work pool,"
1673
1673
  " consider using `flow.serve` instead. See the documentation for more"
1674
- " information: https://docs.prefect.io/latest/how-to-guides/deployments/run-flows-in-local-processes"
1674
+ " information: https://www.prefect.io/docs/latest/how-to-guides/deployments/run-flows-in-local-processes"
1675
1675
  )
1676
1676
  elif work_pool.type == "process" and not ignore_warnings:
1677
1677
  console.print(
1678
1678
  "Looks like you're deploying to a process work pool. If you're creating a"
1679
1679
  " deployment for local development, calling `.serve` on your flow is a great"
1680
1680
  " way to get started. See the documentation for more information:"
1681
- " https://docs.prefect.io/latest/how-to-guides/deployments/run-flows-in-local-processes "
1681
+ " https://www.prefect.io/docs/latest/how-to-guides/deployments/run-flows-in-local-processes "
1682
1682
  " Set `ignore_warnings=True` to suppress this message.",
1683
1683
  style="yellow",
1684
1684
  )
@@ -1912,14 +1912,14 @@ def deploy(
1912
1912
  " or specify a remote storage location for the flow with `.from_source`."
1913
1913
  " If you are attempting to deploy a flow to a local process work pool,"
1914
1914
  " consider using `flow.serve` instead. See the documentation for more"
1915
- " information: https://docs.prefect.io/latest/how-to-guides/deployments/run-flows-in-local-processes"
1915
+ " information: https://www.prefect.io/docs/latest/how-to-guides/deployments/run-flows-in-local-processes"
1916
1916
  )
1917
1917
  elif work_pool.type == "process" and not ignore_warnings:
1918
1918
  console.print(
1919
1919
  "Looks like you're deploying to a process work pool. If you're creating a"
1920
1920
  " deployment for local development, calling `.serve` on your flow is a great"
1921
1921
  " way to get started. See the documentation for more information:"
1922
- " https://docs.prefect.io/latest/how-to-guides/deployments/run-flows-in-local-processes "
1922
+ " https://www.prefect.io/docs/latest/how-to-guides/deployments/run-flows-in-local-processes "
1923
1923
  " Set `ignore_warnings=True` to suppress this message.",
1924
1924
  style="yellow",
1925
1925
  )
@@ -5,7 +5,7 @@ Deployment steps are YAML representations of Python functions along with their i
5
5
 
6
6
  Whenever a step is run, the following actions are taken:
7
7
 
8
- - The step's inputs and block / variable references are resolved (see [the `prefect deploy` documentation](https://docs.prefect.io/v3/how-to-guides/deployments/prefect-yaml#templating-options) for more details)
8
+ - The step's inputs and block / variable references are resolved (see [the `prefect deploy` documentation](https://www.prefect.io/docs/v3/how-to-guides/deployments/prefect-yaml#templating-options) for more details)
9
9
  - The step's function is imported; if it cannot be found, the `requires` keyword is used to install the necessary packages
10
10
  - The step's function is called with the resolved inputs
11
11
  - The step's output is returned and used to resolve inputs for subsequent steps
@@ -169,7 +169,7 @@ def git_clone(
169
169
  repository: https://github.com/org/repo.git
170
170
  access_token: "{{ prefect.blocks.secret.github-access-token }}" # Requires creation of a Secret block
171
171
  ```
172
- Note that you will need to [create a Secret block](https://docs.prefect.io/v3/concepts/blocks/#pre-registered-blocks) to store the
172
+ Note that you will need to [create a Secret block](https://www.prefect.io/docs/v3/concepts/blocks/#pre-registered-blocks) to store the
173
173
  value of your git credentials. You can also store a username/password combo or token prefix (e.g. `x-token-auth`)
174
174
  in your secret block. Refer to your git providers documentation for the correct authentication schema.
175
175
 
@@ -31,6 +31,7 @@ from prefect.logging import get_logger
31
31
  from prefect.settings import (
32
32
  PREFECT_EVENTS_MAXIMUM_LABELS_PER_RESOURCE,
33
33
  )
34
+ from prefect.utilities.urls import url_for
34
35
 
35
36
  from .labelling import Labelled
36
37
 
@@ -194,6 +195,12 @@ class ReceivedEvent(Event):
194
195
  description="When the event was received by Prefect Cloud",
195
196
  )
196
197
 
198
+ @property
199
+ def url(self) -> Optional[str]:
200
+ """Returns the UI URL for this event, allowing users to link to events
201
+ in automation templates without parsing date strings."""
202
+ return url_for(self, url_type="ui")
203
+
197
204
 
198
205
  def matches(expected: str, value: Optional[str]) -> bool:
199
206
  """Returns true if the given value matches the expected string, which may
@@ -86,9 +86,7 @@ class LocalFileSystem(WritableFileSystem, WritableDeploymentStorage):
86
86
 
87
87
  _block_type_name = "Local File System"
88
88
  _logo_url = "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/filesystem.png"
89
- _documentation_url = (
90
- "https://docs.prefect.io/latest/develop/results#specifying-a-default-filesystem"
91
- )
89
+ _documentation_url = "https://www.prefect.io/docs/latest/develop/results#specifying-a-default-filesystem"
92
90
 
93
91
  basepath: Optional[str] = Field(
94
92
  default=None, description="Default local path for this block to write to."
@@ -389,9 +387,7 @@ class RemoteFileSystem(WritableFileSystem, WritableDeploymentStorage):
389
387
 
390
388
  _block_type_name = "Remote File System"
391
389
  _logo_url = "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/filesystem.png"
392
- _documentation_url = (
393
- "https://docs.prefect.io/latest/develop/results#specifying-a-default-filesystem"
394
- )
390
+ _documentation_url = "https://www.prefect.io/docs/latest/develop/results#specifying-a-default-filesystem"
395
391
 
396
392
  basepath: str = Field(
397
393
  default=...,
@@ -708,9 +704,7 @@ class SMB(WritableFileSystem, WritableDeploymentStorage):
708
704
 
709
705
  _block_type_name = "SMB"
710
706
  _logo_url = "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/smb.png"
711
- _documentation_url = (
712
- "https://docs.prefect.io/latest/develop/results#specifying-a-default-filesystem"
713
- )
707
+ _documentation_url = "https://www.prefect.io/docs/latest/develop/results#specifying-a-default-filesystem"
714
708
 
715
709
  share_path: str = Field(
716
710
  default=...,
@@ -29,7 +29,7 @@ async def create_artifact(
29
29
  """
30
30
  Create an artifact.
31
31
 
32
- For more information, see https://docs.prefect.io/v3/concepts/artifacts.
32
+ For more information, see https://www.prefect.io/docs/v3/concepts/artifacts.
33
33
  """
34
34
  artifact = core.Artifact(**artifact.model_dump())
35
35
 
@@ -43,7 +43,7 @@ async def create_automation(
43
43
  """
44
44
  Create an automation.
45
45
 
46
- For more information, see https://docs.prefect.io/v3/concepts/automations.
46
+ For more information, see https://www.prefect.io/docs/v3/concepts/automations.
47
47
  """
48
48
  # reset any client-provided IDs on the provided triggers
49
49
  automation.trigger.reset_ids()
@@ -22,7 +22,7 @@ async def read_available_block_capabilities(
22
22
  """
23
23
  Get available block capabilities.
24
24
 
25
- For more information, see https://docs.prefect.io/v3/concepts/blocks.
25
+ For more information, see https://www.prefect.io/docs/v3/concepts/blocks.
26
26
  """
27
27
  async with db.session_context() as session:
28
28
  return await models.block_schemas.read_available_block_capabilities(
@@ -25,7 +25,7 @@ async def create_block_document(
25
25
  """
26
26
  Create a new block document.
27
27
 
28
- For more information, see https://docs.prefect.io/v3/concepts/blocks.
28
+ For more information, see https://www.prefect.io/docs/v3/concepts/blocks.
29
29
  """
30
30
  async with db.session_context(begin_transaction=True) as session:
31
31
  if block_document.name is not None:
@@ -33,7 +33,7 @@ async def create_block_schema(
33
33
  """
34
34
  Create a block schema.
35
35
 
36
- For more information, see https://docs.prefect.io/v3/concepts/blocks.
36
+ For more information, see https://www.prefect.io/docs/v3/concepts/blocks.
37
37
  """
38
38
  from prefect.blocks.core import Block
39
39
 
@@ -21,7 +21,7 @@ async def create_block_type(
21
21
  """
22
22
  Create a new block type.
23
23
 
24
- For more information, see https://docs.prefect.io/v3/concepts/blocks.
24
+ For more information, see https://www.prefect.io/docs/v3/concepts/blocks.
25
25
  """
26
26
  # API-created blocks cannot start with the word "Prefect"
27
27
  # as it is reserved for system use
@@ -1,13 +1,22 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import base64
4
- from typing import TYPE_CHECKING, Any, Dict, List, Optional
4
+ import contextvars
5
+ from contextlib import asynccontextmanager
6
+ from typing import (
7
+ TYPE_CHECKING,
8
+ Any,
9
+ AsyncIterator,
10
+ Dict,
11
+ List,
12
+ Optional,
13
+ )
5
14
  from urllib.parse import quote
6
15
  from uuid import UUID
7
16
 
8
17
  import httpx
9
18
  import pydantic
10
- from httpx import Response
19
+ from httpx import Request, Response
11
20
  from starlette import status
12
21
  from typing_extensions import Self
13
22
 
@@ -27,6 +36,29 @@ if TYPE_CHECKING:
27
36
  logger: "logging.Logger" = get_logger(__name__)
28
37
 
29
38
 
39
+ _request_scoped_headers: contextvars.ContextVar[Optional[Dict[str, str]]] = (
40
+ contextvars.ContextVar("_request_scoped_headers", default=None)
41
+ )
42
+
43
+
44
+ async def _apply_scoped_headers(request: Request) -> None:
45
+ extras = _request_scoped_headers.get()
46
+ if not extras:
47
+ return
48
+ for name, value in extras.items():
49
+ request.headers[name] = value
50
+
51
+
52
+ @asynccontextmanager
53
+ async def scoped_headers(headers: Dict[str, str]) -> AsyncIterator[None]:
54
+ """Attach headers to every request sent by a shared client in this scope."""
55
+ token = _request_scoped_headers.set(headers)
56
+ try:
57
+ yield
58
+ finally:
59
+ _request_scoped_headers.reset(token)
60
+
61
+
30
62
  class BaseClient:
31
63
  _http_client: PrefectHttpxAsyncClient
32
64
 
@@ -53,6 +85,7 @@ class BaseClient:
53
85
  base_url=f"http://prefect-in-memory{settings.server.api.base_path or '/api'}",
54
86
  enable_csrf_support=settings.server.api.csrf_protection_enabled,
55
87
  raise_on_all_errors=False,
88
+ event_hooks={"request": [_apply_scoped_headers]},
56
89
  )
57
90
 
58
91
  async def __aenter__(self) -> Self:
@@ -56,7 +56,7 @@
56
56
  },
57
57
  "description": "Execute flow runs as subprocesses on a worker. Works well for local execution when first getting started.",
58
58
  "display_name": "Process",
59
- "documentation_url": "https://docs.prefect.io/latest/api-ref/prefect/workers/process/",
59
+ "documentation_url": "https://www.prefect.io/docs/latest/api-ref/prefect/workers/process/",
60
60
  "install_command": "pip install prefect",
61
61
  "is_beta": false,
62
62
  "logo_url": "https://raw.githubusercontent.com/PrefectHQ/prefect/420d0d6a78bb6df1fc18bcf188fdad43c1d22ea9/assets/block-logos/process.png",
@@ -48,7 +48,7 @@ async def create_concurrency_limit(
48
48
  """
49
49
  Create a task run concurrency limit.
50
50
 
51
- For more information, see https://docs.prefect.io/v3/concepts/tag-based-concurrency-limits.
51
+ For more information, see https://www.prefect.io/docs/v3/concepts/tag-based-concurrency-limits.
52
52
  """
53
53
  # Always create V2 limits (no V1 record)
54
54
  v2_name = f"tag:{concurrency_limit.tag}"