prefect-client 3.2.15.dev8__tar.gz → 3.2.16.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/PKG-INFO +6 -3
  2. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/pyproject.toml +5 -2
  3. prefect_client-3.2.16.dev1/src/prefect/_build_info.py +5 -0
  4. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/deprecated.py +28 -23
  5. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -14
  6. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/bases.py +6 -3
  7. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/validators.py +9 -2
  8. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/system.py +7 -6
  9. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/cache_policies.py +31 -2
  10. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/cloud.py +0 -1
  11. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/__init__.py +0 -1
  12. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -4
  13. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/objects.py +54 -25
  14. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/schedules.py +6 -5
  15. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/_asyncio.py +1 -12
  16. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/asyncio.py +0 -4
  17. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/services.py +1 -3
  18. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/sync.py +1 -6
  19. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/context.py +4 -1
  20. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/clients.py +3 -3
  21. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/filters.py +7 -2
  22. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/related.py +5 -3
  23. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/events.py +4 -4
  24. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/utilities.py +4 -3
  25. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/exceptions.py +1 -1
  26. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/flow_engine.py +2 -11
  27. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/futures.py +3 -12
  28. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/locking/filesystem.py +3 -2
  29. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/formatters.py +1 -1
  30. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/handlers.py +2 -2
  31. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/main.py +5 -5
  32. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/results.py +2 -1
  33. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/runner.py +5 -3
  34. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/server.py +2 -2
  35. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/flow_run.py +11 -6
  36. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/concurrency_limits_v2.py +12 -8
  37. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/deployments.py +4 -2
  38. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/flows.py +7 -2
  39. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/task_runs.py +3 -3
  40. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/states.py +10 -35
  41. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_engine.py +16 -9
  42. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_worker.py +6 -3
  43. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/tasks.py +5 -0
  44. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/bootstrap.py +3 -1
  45. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/instrumentation.py +13 -4
  46. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/logging.py +3 -1
  47. prefect_client-3.2.16.dev1/src/prefect/types/_datetime.py +238 -0
  48. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/collections.py +6 -12
  49. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/dockerutils.py +14 -5
  50. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/engine.py +3 -8
  51. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/base.py +15 -10
  52. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/server.py +0 -1
  53. prefect_client-3.2.15.dev8/src/prefect/_build_info.py +0 -5
  54. prefect_client-3.2.15.dev8/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -78
  55. prefect_client-3.2.15.dev8/src/prefect/types/_datetime.py +0 -125
  56. prefect_client-3.2.15.dev8/src/prefect/utilities/__init__.py +0 -0
  57. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/.gitignore +0 -0
  58. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/LICENSE +0 -0
  59. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/README.md +0 -0
  60. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/.prefectignore +0 -0
  61. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/__init__.py +0 -0
  62. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/__main__.py +0 -0
  63. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/__init__.py +0 -0
  64. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/bundles.py +0 -0
  65. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/lineage.py +0 -0
  66. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
  67. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/sla/client.py +0 -0
  68. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
  69. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/__init__.py +0 -0
  70. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/_logging.py +0 -0
  71. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
  72. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  73. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
  74. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
  75. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
  76. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
  77. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  78. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  79. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
  80. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
  81. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
  82. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
  83. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
  84. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/integrations.py +0 -0
  85. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
  86. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
  87. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  88. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  89. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pytz.py +0 -0
  90. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/retries.py +0 -0
  91. {prefect_client-3.2.15.dev8/src/prefect/_internal/pydantic/annotations → prefect_client-3.2.16.dev1/src/prefect/_internal/schemas}/__init__.py +0 -0
  92. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
  93. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
  94. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_result_records.py +0 -0
  95. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
  96. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
  97. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_waiters.py +0 -0
  98. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/agent.py +0 -0
  99. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/artifacts.py +0 -0
  100. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/automations.py +0 -0
  101. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/__init__.py +0 -0
  102. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/abstract.py +0 -0
  103. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/core.py +0 -0
  104. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/fields.py +0 -0
  105. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/notifications.py +0 -0
  106. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/redis.py +0 -0
  107. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/webhook.py +0 -0
  108. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/__init__.py +0 -0
  109. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/base.py +0 -0
  110. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/collections.py +0 -0
  111. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/constants.py +0 -0
  112. {prefect_client-3.2.15.dev8/src/prefect/_internal/schemas → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_artifacts}/__init__.py +0 -0
  113. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  114. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_artifacts → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_automations}/__init__.py +0 -0
  115. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
  116. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_automations → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_blocks_documents}/__init__.py +0 -0
  117. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  118. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_blocks_documents → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_blocks_schemas}/__init__.py +0 -0
  119. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  120. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_blocks_schemas → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_blocks_types}/__init__.py +0 -0
  121. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  122. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_blocks_types → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_concurrency_limits}/__init__.py +0 -0
  123. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_concurrency_limits → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_deployments}/__init__.py +0 -0
  124. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  125. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_deployments → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_flow_runs}/__init__.py +0 -0
  126. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  127. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_flow_runs → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_flows}/__init__.py +0 -0
  128. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
  129. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_flows → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_logs}/__init__.py +0 -0
  130. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
  131. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_logs → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_variables}/__init__.py +0 -0
  132. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
  133. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_variables → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_work_pools}/__init__.py +0 -0
  134. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  135. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/base.py +0 -0
  136. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/routes.py +0 -0
  137. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/__init__.py +0 -0
  138. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/actions.py +0 -0
  139. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/filters.py +0 -0
  140. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/responses.py +0 -0
  141. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/sorting.py +0 -0
  142. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/subscriptions.py +0 -0
  143. {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_work_pools → prefect_client-3.2.16.dev1/src/prefect/client/types}/__init__.py +0 -0
  144. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  145. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/utilities.py +0 -0
  146. {prefect_client-3.2.15.dev8/src/prefect/client/types → prefect_client-3.2.16.dev1/src/prefect/concurrency}/__init__.py +0 -0
  147. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/_events.py +0 -0
  148. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/context.py +0 -0
  149. {prefect_client-3.2.15.dev8/src/prefect/concurrency → prefect_client-3.2.16.dev1/src/prefect/concurrency/v1}/__init__.py +0 -0
  150. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  151. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
  152. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
  153. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/context.py +0 -0
  154. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/services.py +0 -0
  155. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
  156. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/__init__.py +0 -0
  157. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/base.py +0 -0
  158. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/deployments.py +0 -0
  159. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/flow_runs.py +0 -0
  160. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/runner.py +0 -0
  161. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/schedules.py +0 -0
  162. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
  163. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/core.py +0 -0
  164. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/pull.py +0 -0
  165. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/utility.py +0 -0
  166. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/docker/__init__.py +0 -0
  167. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/docker/docker_image.py +0 -0
  168. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/engine.py +0 -0
  169. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/__init__.py +0 -0
  170. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/actions.py +0 -0
  171. {prefect_client-3.2.15.dev8/src/prefect/concurrency/v1 → prefect_client-3.2.16.dev1/src/prefect/events/cli}/__init__.py +0 -0
  172. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/cli/automations.py +0 -0
  173. {prefect_client-3.2.15.dev8/src/prefect/events/cli → prefect_client-3.2.16.dev1/src/prefect/events/schemas}/__init__.py +0 -0
  174. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/automations.py +0 -0
  175. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  176. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/labelling.py +0 -0
  177. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/worker.py +0 -0
  178. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/filesystems.py +0 -0
  179. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/flow_runs.py +0 -0
  180. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/flows.py +0 -0
  181. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/__init__.py +0 -0
  182. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/base.py +0 -0
  183. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  184. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  185. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  186. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  187. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  188. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  189. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/input/__init__.py +0 -0
  190. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/input/actions.py +0 -0
  191. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/input/run_input.py +0 -0
  192. {prefect_client-3.2.15.dev8/src/prefect/events/schemas → prefect_client-3.2.16.dev1/src/prefect/locking}/__init__.py +0 -0
  193. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/locking/memory.py +0 -0
  194. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/locking/protocol.py +0 -0
  195. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/__init__.py +0 -0
  196. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/configuration.py +0 -0
  197. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/filters.py +0 -0
  198. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/highlighters.py +0 -0
  199. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/loggers.py +0 -0
  200. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/logging.yml +0 -0
  201. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/plugins.py +0 -0
  202. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/py.typed +0 -0
  203. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/__init__.py +0 -0
  204. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/storage.py +0 -0
  205. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/submit.py +0 -0
  206. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/utils.py +0 -0
  207. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/__init__.py +0 -0
  208. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/deployment.py +0 -0
  209. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/task_run.py +0 -0
  210. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/schedules.py +0 -0
  211. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/serializers.py +0 -0
  212. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/__init__.py +0 -0
  213. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/admin.py +0 -0
  214. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/artifacts.py +0 -0
  215. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/automations.py +0 -0
  216. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
  217. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_documents.py +0 -0
  218. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_schemas.py +0 -0
  219. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_types.py +0 -0
  220. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/clients.py +0 -0
  221. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/collections.py +0 -0
  222. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  223. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
  224. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/csrf_token.py +0 -0
  225. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/dependencies.py +0 -0
  226. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/events.py +0 -0
  227. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flow_run_notification_policies.py +0 -0
  228. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
  229. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flow_runs.py +0 -0
  230. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flows.py +0 -0
  231. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/logs.py +0 -0
  232. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/middleware.py +0 -0
  233. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/root.py +0 -0
  234. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/run_history.py +0 -0
  235. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/saved_searches.py +0 -0
  236. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/server.py +0 -0
  237. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  238. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/task_run_states.py +0 -0
  239. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/task_runs.py +0 -0
  240. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/task_workers.py +0 -0
  241. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/templates.py +0 -0
  242. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
  243. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
  244. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
  245. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/validation.py +0 -0
  246. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/variables.py +0 -0
  247. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/work_queues.py +0 -0
  248. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/workers.py +0 -0
  249. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/__init__.py +0 -0
  250. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/base.py +0 -0
  251. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/constants.py +0 -0
  252. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/context.py +0 -0
  253. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/legacy.py +0 -0
  254. {prefect_client-3.2.15.dev8/src/prefect/locking → prefect_client-3.2.16.dev1/src/prefect/settings/models}/__init__.py +0 -0
  255. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/api.py +0 -0
  256. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/cli.py +0 -0
  257. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/client.py +0 -0
  258. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/cloud.py +0 -0
  259. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/deployments.py +0 -0
  260. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/experiments.py +0 -0
  261. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/flows.py +0 -0
  262. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/internal.py +0 -0
  263. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/logging.py +0 -0
  264. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/results.py +0 -0
  265. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/root.py +0 -0
  266. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/runner.py +0 -0
  267. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
  268. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/api.py +0 -0
  269. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/database.py +0 -0
  270. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
  271. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
  272. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/events.py +0 -0
  273. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  274. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/root.py +0 -0
  275. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/services.py +0 -0
  276. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
  277. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/ui.py +0 -0
  278. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/tasks.py +0 -0
  279. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/testing.py +0 -0
  280. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/worker.py +0 -0
  281. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/profiles.py +0 -0
  282. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/profiles.toml +0 -0
  283. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/sources.py +0 -0
  284. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_runners.py +0 -0
  285. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_runs.py +0 -0
  286. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/__init__.py +0 -0
  287. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/processors.py +0 -0
  288. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
  289. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/services.py +0 -0
  290. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/transactions.py +0 -0
  291. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/types/__init__.py +0 -0
  292. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/types/entrypoint.py +0 -0
  293. {prefect_client-3.2.15.dev8/src/prefect/settings/models → prefect_client-3.2.16.dev1/src/prefect/utilities}/__init__.py +0 -0
  294. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/_deprecated.py +0 -0
  295. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/_engine.py +0 -0
  296. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/_git.py +0 -0
  297. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/annotations.py +0 -0
  298. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/asyncutils.py +0 -0
  299. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/callables.py +0 -0
  300. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/compat.py +0 -0
  301. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/context.py +0 -0
  302. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/dispatch.py +0 -0
  303. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/filesystem.py +0 -0
  304. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/generics.py +0 -0
  305. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/hashing.py +0 -0
  306. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/importtools.py +0 -0
  307. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/math.py +0 -0
  308. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/names.py +0 -0
  309. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/processutils.py +0 -0
  310. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/pydantic.py +0 -0
  311. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/render_swagger.py +0 -0
  312. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  313. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  314. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
  315. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/services.py +0 -0
  316. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/slugify.py +0 -0
  317. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/templating.py +0 -0
  318. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/text.py +0 -0
  319. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/timeout.py +0 -0
  320. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/urls.py +0 -0
  321. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/visualization.py +0 -0
  322. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/variables.py +0 -0
  323. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/__init__.py +0 -0
  324. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/block.py +0 -0
  325. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/cloud.py +0 -0
  326. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/process.py +0 -0
  327. {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.2.15.dev8
3
+ Version: 3.2.16.dev1
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -18,8 +18,9 @@ Classifier: Programming Language :: Python :: 3.9
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
21
22
  Classifier: Topic :: Software Development :: Libraries
22
- Requires-Python: >=3.9
23
+ Requires-Python: <3.14,>=3.9
23
24
  Requires-Dist: anyio<5.0.0,>=4.4.0
24
25
  Requires-Dist: asgi-lifespan<3.0,>=1.0
25
26
  Requires-Dist: cachetools<6.0,>=5.3
@@ -32,6 +33,7 @@ Requires-Dist: graphviz>=0.20.1
32
33
  Requires-Dist: griffe<2.0.0,>=0.49.0
33
34
  Requires-Dist: httpcore<2.0.0,>=1.0.5
34
35
  Requires-Dist: httpx[http2]!=0.23.2,>=0.23
36
+ Requires-Dist: humanize<5.0.0,>=4.9.0
35
37
  Requires-Dist: importlib-metadata>=4.4; python_version < '3.10'
36
38
  Requires-Dist: jsonpatch<2.0,>=1.32
37
39
  Requires-Dist: jsonschema<5.0.0,>=4.0.0
@@ -39,7 +41,7 @@ Requires-Dist: opentelemetry-api<2.0.0,>=1.27.0
39
41
  Requires-Dist: orjson<4.0,>=3.7
40
42
  Requires-Dist: packaging<24.3,>=21.3
41
43
  Requires-Dist: pathspec>=0.8.0
42
- Requires-Dist: pendulum<4,>=3.0.0
44
+ Requires-Dist: pendulum<4,>=3.0.0; python_version < '3.13'
43
45
  Requires-Dist: prometheus-client>=0.20.0
44
46
  Requires-Dist: pydantic!=2.10.0,<3.0.0,>=2.9
45
47
  Requires-Dist: pydantic-core<3.0.0,>=2.12.0
@@ -59,6 +61,7 @@ Requires-Dist: typing-extensions<5.0.0,>=4.10.0
59
61
  Requires-Dist: ujson<6.0.0,>=5.8.0
60
62
  Requires-Dist: uvicorn!=0.29.0,>=0.14.0
61
63
  Requires-Dist: websockets<16.0,>=13.0
64
+ Requires-Dist: whenever<0.8.0,>=0.7.3; python_version >= '3.13'
62
65
  Provides-Extra: notifications
63
66
  Requires-Dist: apprise<2.0.0,>=1.1.0; extra == 'notifications'
64
67
  Description-Content-Type: text/markdown
@@ -7,7 +7,7 @@ name = "prefect-client"
7
7
  dynamic = ["version"]
8
8
  description = "Workflow orchestration and management."
9
9
  readme = "README.md"
10
- requires-python = ">=3.9"
10
+ requires-python = ">=3.9,<3.14"
11
11
  license = { text = "Apache-2.0" }
12
12
  authors = [{ name = "Prefect Technologies, Inc.", email = "help@prefect.io" }]
13
13
  classifiers = [
@@ -20,6 +20,7 @@ classifiers = [
20
20
  "Programming Language :: Python :: 3.10",
21
21
  "Programming Language :: Python :: 3.11",
22
22
  "Programming Language :: Python :: 3.12",
23
+ "Programming Language :: Python :: 3.13",
23
24
  "Topic :: Software Development :: Libraries",
24
25
  ]
25
26
  dependencies = [
@@ -36,6 +37,7 @@ dependencies = [
36
37
  "griffe>=0.49.0,<2.0.0",
37
38
  "httpcore>=1.0.5,<2.0.0",
38
39
  "httpx[http2]>=0.23,!=0.23.2",
40
+ "humanize>=4.9.0,<5.0.0",
39
41
  "importlib_metadata>=4.4;python_version<'3.10'",
40
42
  "jsonpatch>=1.32,<2.0",
41
43
  "jsonschema>=4.0.0,<5.0.0",
@@ -43,7 +45,7 @@ dependencies = [
43
45
  "orjson>=3.7,<4.0",
44
46
  "packaging>=21.3,<24.3",
45
47
  "pathspec>=0.8.0",
46
- "pendulum>=3.0.0,<4",
48
+ "pendulum>=3.0.0,<4; python_version<'3.13'",
47
49
  "prometheus-client>=0.20.0",
48
50
  "pydantic>=2.9,<3.0.0,!=2.10.0",
49
51
  "pydantic_core>=2.12.0,<3.0.0",
@@ -63,6 +65,7 @@ dependencies = [
63
65
  "ujson>=5.8.0,<6.0.0",
64
66
  "uvicorn>=0.14.0,!=0.29.0",
65
67
  "websockets>=13.0,<16.0",
68
+ "whenever>=0.7.3,<0.8.0; python_version>='3.13'",
66
69
  ]
67
70
  [project.urls]
68
71
  Changelog = "https://github.com/PrefectHQ/prefect/releases"
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.2.16.dev1"
3
+ __build_date__ = "2025-03-29 08:07:01.586568+00:00"
4
+ __git_commit__ = "5ab6871feb6050dc7a712fd182d287b300e25dae"
5
+ __dirty__ = False
@@ -10,6 +10,7 @@ will be calculated 6 months later. Start and end dates are always in the format
10
10
  e.g. Jan 2023.
11
11
  """
12
12
 
13
+ import datetime
13
14
  import functools
14
15
  import sys
15
16
  import warnings
@@ -18,7 +19,7 @@ from typing import TYPE_CHECKING, Any, Callable, Optional, Union
18
19
  from pydantic import BaseModel
19
20
  from typing_extensions import ParamSpec, TypeAlias, TypeVar
20
21
 
21
- from prefect.types._datetime import DateTime, from_format
22
+ from prefect.types._datetime import now
22
23
  from prefect.utilities.callables import get_call_parameters
23
24
  from prefect.utilities.importtools import (
24
25
  AliasedModuleDefinition,
@@ -40,7 +41,7 @@ DEPRECATED_MOVED_WARNING = (
40
41
  "{name} has moved to {new_location}. It will not be available at the old import "
41
42
  "path after {end_date}. {help}"
42
43
  )
43
- DEPRECATED_DATEFMT = "MMM YYYY" # e.g. Feb 2023
44
+ HUMAN_DATEFMT = "%b %Y" # e.g. Feb 2023
44
45
  DEPRECATED_MODULE_ALIASES: list[AliasedModuleDefinition] = []
45
46
 
46
47
 
@@ -52,40 +53,42 @@ class PrefectDeprecationWarning(DeprecationWarning):
52
53
 
53
54
  def generate_deprecation_message(
54
55
  name: str,
55
- start_date: Optional[str] = None,
56
- end_date: Optional[str] = None,
56
+ start_date: Optional[datetime.datetime] = None,
57
+ end_date: Optional[datetime.datetime] = None,
57
58
  help: str = "",
58
59
  when: str = "",
59
60
  ) -> str:
60
- if not start_date and not end_date:
61
+ if start_date is not None and not isinstance(start_date, datetime.datetime):
62
+ raise ValueError("Must provide start_date as a datetime")
63
+
64
+ if end_date is not None and not isinstance(end_date, datetime.datetime):
65
+ raise ValueError("Must provide end_date as a datetime")
66
+
67
+ if start_date is None and end_date is None:
61
68
  raise ValueError(
62
69
  "A start date is required if an end date is not provided. Suggested start"
63
- f" date is {DateTime.now('UTC').format(DEPRECATED_DATEFMT)!r}"
70
+ f" date is {now('UTC').strftime(HUMAN_DATEFMT)}"
64
71
  )
65
72
 
66
- if not end_date:
73
+ if end_date is None:
67
74
  if TYPE_CHECKING:
68
75
  assert start_date is not None
69
- parsed_start_date = from_format(start_date, DEPRECATED_DATEFMT)
70
- parsed_end_date = parsed_start_date.add(months=6)
71
- end_date = parsed_end_date.format(DEPRECATED_DATEFMT)
72
- else:
73
- # Validate format
74
- from_format(end_date, DEPRECATED_DATEFMT)
76
+
77
+ end_date = start_date + datetime.timedelta(days=182.625)
75
78
 
76
79
  if when:
77
80
  when = " when " + when
78
81
 
79
82
  message = DEPRECATED_WARNING.format(
80
- name=name, when=when, end_date=end_date, help=help
83
+ name=name, when=when, end_date=end_date.strftime(HUMAN_DATEFMT), help=help
81
84
  )
82
85
  return message.rstrip()
83
86
 
84
87
 
85
88
  def deprecated_callable(
86
89
  *,
87
- start_date: Optional[str] = None,
88
- end_date: Optional[str] = None,
90
+ start_date: Optional[datetime.datetime] = None,
91
+ end_date: Optional[datetime.datetime] = None,
89
92
  stacklevel: int = 2,
90
93
  help: str = "",
91
94
  ) -> Callable[[Callable[P, R]], Callable[P, R]]:
@@ -109,8 +112,8 @@ def deprecated_callable(
109
112
 
110
113
  def deprecated_class(
111
114
  *,
112
- start_date: Optional[str] = None,
113
- end_date: Optional[str] = None,
115
+ start_date: Optional[datetime.datetime] = None,
116
+ end_date: Optional[datetime.datetime] = None,
114
117
  stacklevel: int = 2,
115
118
  help: str = "",
116
119
  ) -> Callable[[type[T]], type[T]]:
@@ -138,8 +141,8 @@ def deprecated_class(
138
141
  def deprecated_parameter(
139
142
  name: str,
140
143
  *,
141
- start_date: Optional[str] = None,
142
- end_date: Optional[str] = None,
144
+ start_date: Optional[datetime.datetime] = None,
145
+ end_date: Optional[datetime.datetime] = None,
143
146
  stacklevel: int = 2,
144
147
  help: str = "",
145
148
  when: Optional[Callable[[Any], bool]] = None,
@@ -194,8 +197,8 @@ JsonDict: TypeAlias = dict[str, JsonValue]
194
197
  def deprecated_field(
195
198
  name: str,
196
199
  *,
197
- start_date: Optional[str] = None,
198
- end_date: Optional[str] = None,
200
+ start_date: Optional[datetime.datetime] = None,
201
+ end_date: Optional[datetime.datetime] = None,
199
202
  when_message: str = "",
200
203
  help: str = "",
201
204
  when: Optional[Callable[[Any], bool]] = None,
@@ -276,7 +279,9 @@ def inject_renamed_module_alias_finder():
276
279
  sys.meta_path.insert(0, AliasedModuleFinder(DEPRECATED_MODULE_ALIASES))
277
280
 
278
281
 
279
- def register_renamed_module(old_name: str, new_name: str, start_date: str):
282
+ def register_renamed_module(
283
+ old_name: str, new_name: str, start_date: datetime.datetime
284
+ ):
280
285
  """
281
286
  Register a renamed module.
282
287
 
@@ -2,17 +2,11 @@ import inspect
2
2
  import typing
3
3
  import typing as t
4
4
 
5
- import pendulum
6
5
  import pydantic
7
6
  from pydantic import BaseModel as V2BaseModel
8
7
  from pydantic import ConfigDict, PydanticUndefinedAnnotation, create_model
9
8
  from pydantic.type_adapter import TypeAdapter
10
9
 
11
- from prefect._internal.pydantic.annotations.pendulum import (
12
- PydanticPendulumDateTimeType,
13
- PydanticPendulumDateType,
14
- PydanticPendulumDurationType,
15
- )
16
10
  from prefect._internal.pydantic.schemas import GenerateEmptySchemaForUserClasses
17
11
 
18
12
 
@@ -74,14 +68,6 @@ def process_v2_params(
74
68
 
75
69
  type_ = t.Any if param.annotation is inspect.Parameter.empty else param.annotation
76
70
 
77
- # Replace pendulum type annotations with our own so that they are pydantic compatible
78
- if type_ == pendulum.DateTime:
79
- type_ = PydanticPendulumDateTimeType
80
- if type_ == pendulum.Date:
81
- type_ = PydanticPendulumDateType
82
- if type_ == pendulum.Duration:
83
- type_ = PydanticPendulumDurationType
84
-
85
71
  field = pydantic.Field(
86
72
  default=... if param.default is param.empty else param.default,
87
73
  title=param.name,
@@ -10,7 +10,10 @@ from pydantic import BaseModel, ConfigDict, Field
10
10
  from rich.repr import RichReprResult
11
11
  from typing_extensions import Self
12
12
 
13
- from prefect.types._datetime import DateTime, create_datetime_instance
13
+ from prefect.types._datetime import (
14
+ DateTime,
15
+ human_friendly_diff,
16
+ )
14
17
  from prefect.utilities.generics import validate_list
15
18
 
16
19
  T = TypeVar("T")
@@ -72,9 +75,9 @@ class PrefectBaseModel(BaseModel):
72
75
  and name == "timestamp"
73
76
  and value
74
77
  ):
75
- value = create_datetime_instance(value).isoformat()
78
+ value = value.isoformat()
76
79
  elif isinstance(field.annotation, datetime.datetime) and value:
77
- value = create_datetime_instance(value).diff_for_humans()
80
+ value = human_friendly_diff(value)
78
81
 
79
82
  yield name, value, field.get_default()
80
83
 
@@ -8,6 +8,7 @@ This will be subject to consolidation and refactoring over the next few months.
8
8
 
9
9
  from __future__ import annotations
10
10
 
11
+ import datetime
11
12
  import os
12
13
  import re
13
14
  import urllib.parse
@@ -17,6 +18,7 @@ from copy import copy
17
18
  from pathlib import Path
18
19
  from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union, overload
19
20
  from uuid import UUID
21
+ from zoneinfo import ZoneInfo
20
22
 
21
23
  import jsonschema
22
24
 
@@ -282,8 +284,13 @@ def default_timezone(
282
284
 
283
285
  # anchor schedules
284
286
  elif "anchor_date" in values:
285
- anchor_date: DateTime = values["anchor_date"]
286
- tz = "UTC" if anchor_date.tz is None else anchor_date.tz.name
287
+ anchor_date: datetime.datetime = values["anchor_date"]
288
+ if isinstance(anchor_date.tzinfo, ZoneInfo):
289
+ tz = anchor_date.tzinfo.key
290
+ elif hasattr(anchor_date.tzinfo, "name"):
291
+ tz = anchor_date.tzinfo.name
292
+ else:
293
+ tz = "UTC"
287
294
  # sometimes anchor dates have "timezones" that are UTC offsets
288
295
  # like "-04:00". This happens when parsing ISO8601 strings.
289
296
  # In this case we, the correct inferred localization is "UTC".
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
+ from datetime import datetime
4
5
  from typing import Annotated, Any, Generic, TypeVar, Union
5
6
 
6
7
  from pydantic import (
@@ -26,8 +27,8 @@ T = TypeVar("T", bound=_SecretValueType)
26
27
 
27
28
 
28
29
  @deprecated_class(
29
- start_date="Jun 2024",
30
- end_date="Jun 2025",
30
+ start_date=datetime(2024, 6, 1),
31
+ end_date=datetime(2025, 6, 1),
31
32
  help="Use Variables to store json data instead.",
32
33
  )
33
34
  class JSON(Block):
@@ -55,8 +56,8 @@ class JSON(Block):
55
56
 
56
57
 
57
58
  @deprecated_class(
58
- start_date="Jun 2024",
59
- end_date="Jun 2025",
59
+ start_date=datetime(2024, 6, 1),
60
+ end_date=datetime(2025, 6, 1),
60
61
  help="Use Variables to store string data instead.",
61
62
  )
62
63
  class String(Block):
@@ -84,8 +85,8 @@ class String(Block):
84
85
 
85
86
 
86
87
  @deprecated_class(
87
- start_date="Jun 2024",
88
- end_date="Jun 2025",
88
+ start_date=datetime(2024, 6, 1),
89
+ end_date=datetime(2025, 6, 1),
89
90
  help="Use Variables to store datetime data instead.",
90
91
  )
91
92
  class DateTime(Block):
@@ -2,7 +2,15 @@ import inspect
2
2
  from copy import deepcopy
3
3
  from dataclasses import dataclass, field
4
4
  from pathlib import Path
5
- from typing import TYPE_CHECKING, Any, Callable, Dict, Literal, Optional, Union
5
+ from typing import (
6
+ TYPE_CHECKING,
7
+ Any,
8
+ Callable,
9
+ Dict,
10
+ Literal,
11
+ Optional,
12
+ Union,
13
+ )
6
14
 
7
15
  from typing_extensions import Self
8
16
 
@@ -15,6 +23,24 @@ if TYPE_CHECKING:
15
23
  from prefect.locking.protocol import LockManager
16
24
  from prefect.transactions import IsolationLevel
17
25
 
26
+ STABLE_TRANSFORMS: dict[type, Callable[[Any], Any]] = {}
27
+
28
+
29
+ def _register_stable_transforms() -> None:
30
+ """
31
+ Some inputs do not reliably produce deterministic byte strings when serialized via
32
+ `cloudpickle`. This utility registers stabilizing transformations of such types
33
+ so that cache keys that utilize them are deterministic across invocations.
34
+ """
35
+ try:
36
+ import pandas as pd
37
+
38
+ STABLE_TRANSFORMS[pd.DataFrame] = lambda df: [
39
+ df[col] for col in sorted(df.columns)
40
+ ]
41
+ except (ImportError, ModuleNotFoundError):
42
+ pass
43
+
18
44
 
19
45
  @dataclass
20
46
  class CachePolicy:
@@ -341,7 +367,8 @@ class Inputs(CachePolicy):
341
367
 
342
368
  for key, val in inputs.items():
343
369
  if key not in exclude:
344
- hashed_inputs[key] = val
370
+ transformer = STABLE_TRANSFORMS.get(type(val)) # type: ignore[reportUnknownMemberType]
371
+ hashed_inputs[key] = transformer(val) if transformer else val
345
372
 
346
373
  try:
347
374
  return hash_objects(hashed_inputs, raise_on_failure=True)
@@ -362,6 +389,8 @@ class Inputs(CachePolicy):
362
389
  return Inputs(exclude=self.exclude + [other])
363
390
 
364
391
 
392
+ _register_stable_transforms()
393
+
365
394
  INPUTS = Inputs()
366
395
  NONE = _None()
367
396
  NO_CACHE = _None()
@@ -7,7 +7,6 @@ import pydantic
7
7
  from starlette import status
8
8
  from typing_extensions import Self
9
9
 
10
- import prefect.context
11
10
  import prefect.settings
12
11
  from prefect.client.base import PrefectHttpxAsyncClient
13
12
  from prefect.client.schemas.objects import (
@@ -82,7 +82,6 @@ from prefect.client.orchestration._blocks_types.client import (
82
82
  import prefect
83
83
  import prefect.exceptions
84
84
  from prefect.logging.loggers import get_run_logger
85
- import prefect.settings
86
85
  import prefect.states
87
86
  from prefect.client.constants import SERVER_API_VERSION
88
87
  from prefect.client.schemas import FlowRun, OrchestrationResult, TaskRun
@@ -244,7 +244,6 @@ class ConcurrencyLimitClient(BaseClient):
244
244
  names: list[str],
245
245
  slots: int,
246
246
  mode: str,
247
- create_if_missing: bool | None = None,
248
247
  ) -> "Response":
249
248
  return self.request(
250
249
  "POST",
@@ -253,7 +252,6 @@ class ConcurrencyLimitClient(BaseClient):
253
252
  "names": names,
254
253
  "slots": slots,
255
254
  "mode": mode,
256
- "create_if_missing": create_if_missing if create_if_missing else False,
257
255
  },
258
256
  )
259
257
 
@@ -614,7 +612,6 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
614
612
  names: list[str],
615
613
  slots: int,
616
614
  mode: str,
617
- create_if_missing: bool | None = None,
618
615
  ) -> "Response":
619
616
  return await self.request(
620
617
  "POST",
@@ -623,7 +620,6 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
623
620
  "names": names,
624
621
  "slots": slots,
625
622
  "mode": mode,
626
- "create_if_missing": create_if_missing if create_if_missing else False,
627
623
  },
628
624
  )
629
625
 
@@ -32,7 +32,7 @@ from pydantic import (
32
32
  )
33
33
  from typing_extensions import Literal, Self, TypeVar
34
34
 
35
- from prefect._internal.compatibility import deprecated
35
+ from prefect._internal.compatibility.async_dispatch import async_dispatch
36
36
  from prefect._internal.compatibility.migration import getattr_migration
37
37
  from prefect._internal.schemas.bases import ObjectBaseModel, PrefectBaseModel
38
38
  from prefect._internal.schemas.fields import CreatedBy, UpdatedBy
@@ -60,7 +60,8 @@ from prefect.types import (
60
60
  PositiveInteger,
61
61
  StrictVariableValue,
62
62
  )
63
- from prefect.types._datetime import DateTime
63
+ from prefect.types._datetime import DateTime, now
64
+ from prefect.utilities.asyncutils import run_coro_as_sync
64
65
  from prefect.utilities.collections import AutoEnum, listrepr, visit_collection
65
66
  from prefect.utilities.names import generate_slug
66
67
  from prefect.utilities.pydantic import handle_secret_render
@@ -200,7 +201,7 @@ class State(ObjectBaseModel, Generic[R]):
200
201
 
201
202
  type: StateType
202
203
  name: Optional[str] = Field(default=None)
203
- timestamp: DateTime = Field(default_factory=lambda: DateTime.now("UTC"))
204
+ timestamp: datetime.datetime = Field(default_factory=lambda: now("UTC"))
204
205
  message: Optional[str] = Field(default=None, examples=["Run started"])
205
206
  state_details: StateDetails = Field(default_factory=StateDetails)
206
207
  data: Annotated[
@@ -211,11 +212,47 @@ class State(ObjectBaseModel, Generic[R]):
211
212
  Discriminator(data_discriminator),
212
213
  ] = Field(default=None)
213
214
 
215
+ @overload
216
+ async def aresult(
217
+ self: "State[R]",
218
+ raise_on_failure: Literal[True] = ...,
219
+ retry_result_failure: bool = ...,
220
+ ) -> R: ...
221
+
222
+ @overload
223
+ async def aresult(
224
+ self: "State[R]",
225
+ raise_on_failure: Literal[False] = False,
226
+ retry_result_failure: bool = ...,
227
+ ) -> Union[R, Exception]: ...
228
+
229
+ @overload
230
+ async def aresult(
231
+ self: "State[R]",
232
+ raise_on_failure: bool = ...,
233
+ retry_result_failure: bool = ...,
234
+ ) -> Union[R, Exception]: ...
235
+
236
+ async def aresult(
237
+ self,
238
+ raise_on_failure: bool = True,
239
+ retry_result_failure: bool = True,
240
+ ) -> Union[R, Exception]:
241
+ """
242
+ Retrieve the result attached to this state.
243
+ """
244
+ from prefect.states import get_state_result
245
+
246
+ return await get_state_result(
247
+ self,
248
+ raise_on_failure=raise_on_failure,
249
+ retry_result_failure=retry_result_failure,
250
+ )
251
+
214
252
  @overload
215
253
  def result(
216
254
  self: "State[R]",
217
255
  raise_on_failure: Literal[True] = ...,
218
- fetch: bool = ...,
219
256
  retry_result_failure: bool = ...,
220
257
  ) -> R: ...
221
258
 
@@ -223,7 +260,6 @@ class State(ObjectBaseModel, Generic[R]):
223
260
  def result(
224
261
  self: "State[R]",
225
262
  raise_on_failure: Literal[False] = False,
226
- fetch: bool = ...,
227
263
  retry_result_failure: bool = ...,
228
264
  ) -> Union[R, Exception]: ...
229
265
 
@@ -231,21 +267,13 @@ class State(ObjectBaseModel, Generic[R]):
231
267
  def result(
232
268
  self: "State[R]",
233
269
  raise_on_failure: bool = ...,
234
- fetch: bool = ...,
235
270
  retry_result_failure: bool = ...,
236
271
  ) -> Union[R, Exception]: ...
237
272
 
238
- @deprecated.deprecated_parameter(
239
- "fetch",
240
- when=lambda fetch: fetch is not True,
241
- start_date="Oct 2024",
242
- end_date="Jan 2025",
243
- help="Please ensure you are awaiting the call to `result()` when calling in an async context.",
244
- )
273
+ @async_dispatch(aresult)
245
274
  def result(
246
275
  self,
247
276
  raise_on_failure: bool = True,
248
- fetch: bool = True,
249
277
  retry_result_failure: bool = True,
250
278
  ) -> Union[R, Exception]:
251
279
  """
@@ -317,11 +345,12 @@ class State(ObjectBaseModel, Generic[R]):
317
345
  """
318
346
  from prefect.states import get_state_result
319
347
 
320
- return get_state_result(
321
- self,
322
- raise_on_failure=raise_on_failure,
323
- fetch=fetch,
324
- retry_result_failure=retry_result_failure,
348
+ return run_coro_as_sync(
349
+ get_state_result(
350
+ self,
351
+ raise_on_failure=raise_on_failure,
352
+ retry_result_failure=retry_result_failure,
353
+ )
325
354
  )
326
355
 
327
356
  @model_validator(mode="after")
@@ -338,7 +367,7 @@ class State(ObjectBaseModel, Generic[R]):
338
367
  def default_scheduled_start_time(self) -> Self:
339
368
  if self.type == StateType.SCHEDULED:
340
369
  if not self.state_details.scheduled_time:
341
- self.state_details.scheduled_time = DateTime.now("utc")
370
+ self.state_details.scheduled_time = now("UTC") # pyright: ignore[reportAttributeAccessIssue] DateTime is split into two types depending on Python version
342
371
  return self
343
372
 
344
373
  @model_validator(mode="after")
@@ -397,9 +426,9 @@ class State(ObjectBaseModel, Generic[R]):
397
426
  return self.model_copy(
398
427
  update={
399
428
  "id": uuid4(),
400
- "created": DateTime.now("utc"),
401
- "updated": DateTime.now("utc"),
402
- "timestamp": DateTime.now("utc"),
429
+ "created": now("UTC"),
430
+ "updated": now("UTC"),
431
+ "timestamp": now("UTC"),
403
432
  },
404
433
  **kwargs,
405
434
  )
@@ -1346,7 +1375,7 @@ class WorkQueueHealthPolicy(PrefectBaseModel):
1346
1375
  )
1347
1376
 
1348
1377
  def evaluate_health_status(
1349
- self, late_runs_count: int, last_polled: DateTime | None = None
1378
+ self, late_runs_count: int, last_polled: datetime.datetime | None = None
1350
1379
  ) -> bool:
1351
1380
  """
1352
1381
  Given empirical information about the state of the work queue, evaluate its health status.
@@ -1368,7 +1397,7 @@ class WorkQueueHealthPolicy(PrefectBaseModel):
1368
1397
  if self.maximum_seconds_since_last_polled is not None:
1369
1398
  if (
1370
1399
  last_polled is None
1371
- or DateTime.now("UTC").diff(last_polled).in_seconds()
1400
+ or (now("UTC") - last_polled).total_seconds()
1372
1401
  > self.maximum_seconds_since_last_polled
1373
1402
  ):
1374
1403
  healthy = False
@@ -4,6 +4,7 @@ Schedule schemas
4
4
 
5
5
  import datetime
6
6
  from typing import TYPE_CHECKING, Annotated, Any, ClassVar, Optional, Union
7
+ from zoneinfo import ZoneInfo
7
8
 
8
9
  import dateutil
9
10
  import dateutil.rrule
@@ -18,7 +19,7 @@ from prefect._internal.schemas.validators import (
18
19
  validate_cron_string,
19
20
  validate_rrule_string,
20
21
  )
21
- from prefect.types._datetime import Date, DateTime
22
+ from prefect.types._datetime import Date, DateTime, now
22
23
 
23
24
  MAX_ITERATIONS = 1000
24
25
  # approx. 1 years worth of RDATEs + buffer
@@ -74,8 +75,8 @@ class IntervalSchedule(PrefectBaseModel):
74
75
  model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
75
76
 
76
77
  interval: datetime.timedelta = Field(gt=datetime.timedelta(0))
77
- anchor_date: Annotated[DateTime, AfterValidator(default_anchor_date)] = Field(
78
- default_factory=lambda: DateTime.now("UTC"),
78
+ anchor_date: Annotated[DateTime, AfterValidator(default_anchor_date)] = Field( # pyright: ignore[reportAssignmentType] DateTime is split into two types depending on Python version
79
+ default_factory=lambda: now("UTC"),
79
80
  examples=["2020-01-01T00:00:00Z"],
80
81
  )
81
82
  timezone: Optional[str] = Field(default=None, examples=["America/New_York"])
@@ -209,7 +210,7 @@ class RRuleSchedule(PrefectBaseModel):
209
210
  return RRuleSchedule(rrule=str(rrule), timezone=timezone)
210
211
  rrules = _rrule(rrule)
211
212
  dtstarts = [dts for rr in rrules if (dts := _rrule_dt(rr)) is not None]
212
- unique_dstarts = set(DateTime.instance(d).in_tz("UTC") for d in dtstarts)
213
+ unique_dstarts = set(d.astimezone(ZoneInfo("UTC")) for d in dtstarts)
213
214
  unique_timezones = set(d.tzinfo for d in dtstarts if d.tzinfo is not None)
214
215
 
215
216
  if len(unique_timezones) > 1:
@@ -370,7 +371,7 @@ def construct_schedule(
370
371
  if isinstance(interval, (int, float)):
371
372
  interval = datetime.timedelta(seconds=interval)
372
373
  if not anchor_date:
373
- anchor_date = DateTime.now()
374
+ anchor_date = now()
374
375
  schedule = IntervalSchedule(
375
376
  interval=interval, anchor_date=anchor_date, timezone=timezone
376
377
  )