prefect-client 3.3.7.dev1__tar.gz → 3.3.8.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 (328) hide show
  1. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/PKG-INFO +1 -1
  2. prefect_client-3.3.8.dev1/src/prefect/_build_info.py +5 -0
  3. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/bundles/execute.py +6 -13
  4. prefect_client-3.3.8.dev1/src/prefect/_versioning.py +438 -0
  5. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/flow_runs.py +4 -1
  6. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/types/_datetime.py +26 -15
  7. prefect_client-3.3.7.dev1/src/prefect/_build_info.py +0 -5
  8. prefect_client-3.3.7.dev1/src/prefect/_versioning.py +0 -180
  9. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/.gitignore +0 -0
  10. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/LICENSE +0 -0
  11. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/README.md +0 -0
  12. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/pyproject.toml +0 -0
  13. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/.prefectignore +0 -0
  14. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/__init__.py +0 -0
  15. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/__main__.py +0 -0
  16. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/__init__.py +0 -0
  17. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/bundles/__init__.py +0 -0
  18. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/lineage.py +0 -0
  19. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
  20. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/client.py +0 -0
  21. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
  22. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/__init__.py +0 -0
  23. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/_logging.py +0 -0
  24. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
  25. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
  26. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  27. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
  28. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
  29. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
  30. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
  31. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  32. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  33. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
  34. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
  35. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
  36. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
  37. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
  38. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/integrations.py +0 -0
  39. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
  40. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
  41. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  42. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  43. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  44. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/pytz.py +0 -0
  45. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/retries.py +0 -0
  46. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
  47. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
  48. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
  49. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
  50. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_internal/schemas/validators.py +0 -0
  51. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_result_records.py +0 -0
  52. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
  53. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
  54. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/_waiters.py +0 -0
  55. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/agent.py +0 -0
  56. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/artifacts.py +0 -0
  57. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/automations.py +0 -0
  58. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/__init__.py +0 -0
  59. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/abstract.py +0 -0
  60. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/core.py +0 -0
  61. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/fields.py +0 -0
  62. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/notifications.py +0 -0
  63. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/redis.py +0 -0
  64. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/system.py +0 -0
  65. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/blocks/webhook.py +0 -0
  66. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/cache_policies.py +0 -0
  67. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/__init__.py +0 -0
  68. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/base.py +0 -0
  69. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/cloud.py +0 -0
  70. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/collections.py +0 -0
  71. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/constants.py +0 -0
  72. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
  73. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
  74. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
  75. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
  76. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
  77. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
  78. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
  79. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
  80. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
  81. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
  82. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
  83. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
  84. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
  85. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
  86. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
  87. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
  88. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
  89. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
  90. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
  91. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
  92. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
  93. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
  94. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
  95. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
  96. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
  97. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/base.py +0 -0
  98. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/orchestration/routes.py +0 -0
  99. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/__init__.py +0 -0
  100. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/actions.py +0 -0
  101. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/filters.py +0 -0
  102. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/objects.py +0 -0
  103. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/responses.py +0 -0
  104. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/schedules.py +0 -0
  105. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/schemas/sorting.py +0 -0
  106. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/subscriptions.py +0 -0
  107. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/types/__init__.py +0 -0
  108. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
  109. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/client/utilities.py +0 -0
  110. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/__init__.py +0 -0
  111. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/_asyncio.py +0 -0
  112. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/_events.py +0 -0
  113. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/asyncio.py +0 -0
  114. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/context.py +0 -0
  115. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/services.py +0 -0
  116. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/sync.py +0 -0
  117. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
  118. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
  119. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
  120. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
  121. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/context.py +0 -0
  122. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/services.py +0 -0
  123. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
  124. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/context.py +0 -0
  125. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/__init__.py +0 -0
  126. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/base.py +0 -0
  127. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/deployments.py +0 -0
  128. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/flow_runs.py +0 -0
  129. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/runner.py +0 -0
  130. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/schedules.py +0 -0
  131. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
  132. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/core.py +0 -0
  133. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/pull.py +0 -0
  134. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/deployments/steps/utility.py +0 -0
  135. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/docker/__init__.py +0 -0
  136. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/docker/docker_image.py +0 -0
  137. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/engine.py +0 -0
  138. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/__init__.py +0 -0
  139. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/actions.py +0 -0
  140. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/cli/__init__.py +0 -0
  141. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/cli/automations.py +0 -0
  142. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/clients.py +0 -0
  143. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/filters.py +0 -0
  144. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/related.py +0 -0
  145. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/__init__.py +0 -0
  146. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/automations.py +0 -0
  147. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  148. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/events.py +0 -0
  149. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/schemas/labelling.py +0 -0
  150. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/utilities.py +0 -0
  151. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/events/worker.py +0 -0
  152. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/exceptions.py +0 -0
  153. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/filesystems.py +0 -0
  154. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/flow_engine.py +0 -0
  155. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/flows.py +0 -0
  156. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/futures.py +0 -0
  157. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/__init__.py +0 -0
  158. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/base.py +0 -0
  159. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  160. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  161. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
  162. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  163. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  164. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  165. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/input/__init__.py +0 -0
  166. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/input/actions.py +0 -0
  167. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/input/run_input.py +0 -0
  168. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/locking/__init__.py +0 -0
  169. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/locking/filesystem.py +0 -0
  170. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/locking/memory.py +0 -0
  171. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/locking/protocol.py +0 -0
  172. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/__init__.py +0 -0
  173. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/configuration.py +0 -0
  174. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/filters.py +0 -0
  175. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/formatters.py +0 -0
  176. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/handlers.py +0 -0
  177. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/highlighters.py +0 -0
  178. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/loggers.py +0 -0
  179. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/logging/logging.yml +0 -0
  180. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/main.py +0 -0
  181. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/plugins.py +0 -0
  182. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/py.typed +0 -0
  183. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/results.py +0 -0
  184. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runner/__init__.py +0 -0
  185. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runner/runner.py +0 -0
  186. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runner/server.py +0 -0
  187. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runner/storage.py +0 -0
  188. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runner/submit.py +0 -0
  189. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runner/utils.py +0 -0
  190. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runtime/__init__.py +0 -0
  191. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runtime/deployment.py +0 -0
  192. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runtime/flow_run.py +0 -0
  193. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/runtime/task_run.py +0 -0
  194. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/schedules.py +0 -0
  195. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/serializers.py +0 -0
  196. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/__init__.py +0 -0
  197. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/admin.py +0 -0
  198. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/artifacts.py +0 -0
  199. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/automations.py +0 -0
  200. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
  201. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_documents.py +0 -0
  202. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_schemas.py +0 -0
  203. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/block_types.py +0 -0
  204. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/clients.py +0 -0
  205. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/collections.py +0 -0
  206. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  207. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
  208. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
  209. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/csrf_token.py +0 -0
  210. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/dependencies.py +0 -0
  211. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/deployments.py +0 -0
  212. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/events.py +0 -0
  213. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flow_run_notification_policies.py +0 -0
  214. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
  215. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flow_runs.py +0 -0
  216. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/flows.py +0 -0
  217. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/logs.py +0 -0
  218. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/middleware.py +0 -0
  219. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/root.py +0 -0
  220. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/run_history.py +0 -0
  221. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/saved_searches.py +0 -0
  222. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/server.py +0 -0
  223. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  224. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/task_run_states.py +0 -0
  225. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/task_runs.py +0 -0
  226. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/task_workers.py +0 -0
  227. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/templates.py +0 -0
  228. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
  229. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
  230. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/flows.py +0 -0
  231. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
  232. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
  233. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/validation.py +0 -0
  234. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/variables.py +0 -0
  235. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/work_queues.py +0 -0
  236. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/server/api/workers.py +0 -0
  237. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/__init__.py +0 -0
  238. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/base.py +0 -0
  239. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/constants.py +0 -0
  240. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/context.py +0 -0
  241. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/legacy.py +0 -0
  242. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/__init__.py +0 -0
  243. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/api.py +0 -0
  244. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/cli.py +0 -0
  245. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/client.py +0 -0
  246. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/cloud.py +0 -0
  247. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/deployments.py +0 -0
  248. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/experiments.py +0 -0
  249. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/flows.py +0 -0
  250. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/internal.py +0 -0
  251. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/logging.py +0 -0
  252. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/results.py +0 -0
  253. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/root.py +0 -0
  254. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/runner.py +0 -0
  255. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
  256. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/api.py +0 -0
  257. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/database.py +0 -0
  258. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
  259. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
  260. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/events.py +0 -0
  261. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
  262. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/root.py +0 -0
  263. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/services.py +0 -0
  264. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
  265. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/server/ui.py +0 -0
  266. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/tasks.py +0 -0
  267. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/testing.py +0 -0
  268. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/models/worker.py +0 -0
  269. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/profiles.py +0 -0
  270. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/profiles.toml +0 -0
  271. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/settings/sources.py +0 -0
  272. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/states.py +0 -0
  273. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/task_engine.py +0 -0
  274. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/task_runners.py +0 -0
  275. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/task_runs.py +0 -0
  276. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/task_worker.py +0 -0
  277. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/tasks.py +0 -0
  278. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/__init__.py +0 -0
  279. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/bootstrap.py +0 -0
  280. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/instrumentation.py +0 -0
  281. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/logging.py +0 -0
  282. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/processors.py +0 -0
  283. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
  284. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/telemetry/services.py +0 -0
  285. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/transactions.py +0 -0
  286. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/types/__init__.py +0 -0
  287. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/types/entrypoint.py +0 -0
  288. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/__init__.py +0 -0
  289. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_ast.py +0 -0
  290. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_deprecated.py +0 -0
  291. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_engine.py +0 -0
  292. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/_git.py +0 -0
  293. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/annotations.py +0 -0
  294. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/asyncutils.py +0 -0
  295. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/callables.py +0 -0
  296. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/collections.py +0 -0
  297. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/compat.py +0 -0
  298. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/context.py +0 -0
  299. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/dispatch.py +0 -0
  300. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/dockerutils.py +0 -0
  301. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/engine.py +0 -0
  302. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/filesystem.py +0 -0
  303. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/generics.py +0 -0
  304. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/hashing.py +0 -0
  305. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/importtools.py +0 -0
  306. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/math.py +0 -0
  307. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/names.py +0 -0
  308. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/processutils.py +0 -0
  309. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/pydantic.py +0 -0
  310. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/render_swagger.py +0 -0
  311. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  312. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  313. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
  314. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/services.py +0 -0
  315. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/slugify.py +0 -0
  316. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/templating.py +0 -0
  317. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/text.py +0 -0
  318. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/timeout.py +0 -0
  319. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/urls.py +0 -0
  320. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/utilities/visualization.py +0 -0
  321. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/variables.py +0 -0
  322. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/workers/__init__.py +0 -0
  323. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/workers/base.py +0 -0
  324. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/workers/block.py +0 -0
  325. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/workers/cloud.py +0 -0
  326. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/workers/process.py +0 -0
  327. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.dev1}/src/prefect/workers/server.py +0 -0
  328. {prefect_client-3.3.7.dev1 → prefect_client-3.3.8.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.3.7.dev1
3
+ Version: 3.3.8.dev1
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -0,0 +1,5 @@
1
+ # Generated by versioningit
2
+ __version__ = "3.3.8.dev1"
3
+ __build_date__ = "2025-04-29 08:08:59.733773+00:00"
4
+ __git_commit__ = "f517be0bbfa10a7fdd2b715048061f33ed0fbac9"
5
+ __dirty__ = False
@@ -1,6 +1,5 @@
1
1
  import json
2
-
3
- import typer
2
+ import sys
4
3
 
5
4
  from prefect.utilities.asyncutils import run_coro_as_sync
6
5
 
@@ -20,15 +19,9 @@ def execute_bundle_from_file(key: str):
20
19
  run_coro_as_sync(Runner().execute_bundle(bundle))
21
20
 
22
21
 
23
- def _execute_bundle_from_file(key: str = typer.Option(...)):
24
- """
25
- Loads a bundle from a file and executes it.
26
-
27
- Args:
28
- key: The key of the bundle to execute.
29
- """
30
- execute_bundle_from_file(key)
31
-
32
-
33
22
  if __name__ == "__main__":
34
- typer.run(_execute_bundle_from_file)
23
+ if len(sys.argv) < 3 and sys.argv[1] != "--key":
24
+ print("Please provide a key representing a path to a bundle")
25
+ sys.exit(1)
26
+ key = sys.argv[2]
27
+ execute_bundle_from_file(key)
@@ -0,0 +1,438 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ from enum import Enum
5
+ from typing import Any, Callable, Coroutine, Dict, Literal, Optional
6
+ from urllib.parse import urlparse
7
+
8
+ from anyio import run_process
9
+ from pydantic import Field
10
+
11
+ from prefect.client.schemas.objects import VersionInfo
12
+
13
+
14
+ async def get_commit_message_first_line() -> str:
15
+ result = await run_process(["git", "log", "-1", "--pretty=%B"])
16
+ return result.stdout.decode().strip().splitlines()[0]
17
+
18
+
19
+ class SimpleVersionInfo(VersionInfo):
20
+ type: Literal["prefect:simple"] = "prefect:simple"
21
+ version: str = Field(default="")
22
+ branch: Optional[str] = Field(default=None)
23
+ url: Optional[str] = Field(default=None)
24
+
25
+
26
+ class GithubVersionInfo(VersionInfo):
27
+ type: Literal["vcs:github"] = "vcs:github"
28
+ version: str
29
+ commit_sha: str
30
+ message: str
31
+ branch: str
32
+ repository: str
33
+ url: str
34
+
35
+
36
+ class GitlabVersionInfo(VersionInfo):
37
+ type: Literal["vcs:gitlab"] = "vcs:gitlab"
38
+ version: str
39
+ commit_sha: str
40
+ message: str
41
+ branch: str
42
+ repository: str
43
+ url: str
44
+
45
+
46
+ class BitbucketVersionInfo(VersionInfo):
47
+ type: Literal["vcs:bitbucket"] = "vcs:bitbucket"
48
+ version: str
49
+ commit_sha: str
50
+ message: str
51
+ branch: str
52
+ repository: str
53
+ url: str
54
+
55
+
56
+ class AzureDevopsVersionInfo(VersionInfo):
57
+ type: Literal["vcs:azuredevops"] = "vcs:azuredevops"
58
+ version: str
59
+ commit_sha: str
60
+ message: str
61
+ branch: str
62
+ repository: str
63
+ url: str
64
+
65
+
66
+ class GitVersionInfo(VersionInfo):
67
+ type: Literal["vcs:git"] = "vcs:git"
68
+ version: str
69
+ commit_sha: str
70
+ message: str
71
+ branch: str
72
+ repository: str
73
+ url: str
74
+
75
+
76
+ async def get_github_version_info(
77
+ commit_sha: Optional[str] = None,
78
+ message: Optional[str] = None,
79
+ branch: Optional[str] = None,
80
+ repository: Optional[str] = None,
81
+ url: Optional[str] = None,
82
+ ) -> GithubVersionInfo:
83
+ """Create a GithubVersionInfo object from provided values or environment variables.
84
+
85
+ Args:
86
+ commit_sha: The commit SHA, falls back to GITHUB_SHA env var
87
+ message: The commit message, falls back to git log -1 --pretty=%B
88
+ branch: The git branch, falls back to GITHUB_REF_NAME env var
89
+ repository: The repository name, falls back to GITHUB_REPOSITORY env var
90
+ url: The repository URL, constructed from GITHUB_SERVER_URL/GITHUB_REPOSITORY/tree/GITHUB_SHA if not provided
91
+
92
+ Returns:
93
+ A GithubVersionInfo
94
+
95
+ Raises:
96
+ ValueError: If any required fields cannot be determined
97
+ """
98
+ try:
99
+ commit_sha = commit_sha or os.getenv("GITHUB_SHA")
100
+ branch = branch or os.getenv("GITHUB_REF_NAME")
101
+ repository = repository or os.getenv("GITHUB_REPOSITORY")
102
+ url = url or f"{os.getenv('GITHUB_SERVER_URL')}/{repository}/tree/{commit_sha}"
103
+
104
+ if not message:
105
+ message = await get_commit_message_first_line()
106
+
107
+ if not commit_sha:
108
+ raise ValueError(
109
+ "commit_sha is required - must be provided or set in GITHUB_SHA"
110
+ )
111
+ if not branch:
112
+ raise ValueError(
113
+ "branch is required - must be provided or set in GITHUB_REF_NAME"
114
+ )
115
+ if not repository:
116
+ raise ValueError(
117
+ "repository is required - must be provided or set in GITHUB_REPOSITORY"
118
+ )
119
+
120
+ except Exception as e:
121
+ raise ValueError(
122
+ f"Error getting git version info: {e}. You may not be in a Github repository."
123
+ )
124
+
125
+ return GithubVersionInfo(
126
+ type="vcs:github",
127
+ version=commit_sha[:8],
128
+ commit_sha=commit_sha,
129
+ message=message,
130
+ branch=branch,
131
+ repository=repository,
132
+ url=url,
133
+ )
134
+
135
+
136
+ async def get_gitlab_version_info(
137
+ commit_sha: Optional[str] = None,
138
+ message: Optional[str] = None,
139
+ branch: Optional[str] = None,
140
+ repository: Optional[str] = None,
141
+ url: Optional[str] = None,
142
+ ) -> GitlabVersionInfo:
143
+ """Create a GitlabVersionInfo object from provided values or environment variables.
144
+
145
+ Args:
146
+ commit_sha: The commit SHA, falls back to CI_COMMIT_SHA env var
147
+ message: The commit message, falls back to git log -1 --pretty=%B
148
+ branch: The git branch, falls back to CI_COMMIT_REF_NAME env var
149
+ repository: The repository name, falls back to CI_PROJECT_NAME env var
150
+ url: The repository URL, constructed from CI_PROJECT_URL/-/tree/CI_COMMIT_SHA if not provided
151
+
152
+ Returns:
153
+ A GitlabVersionInfo
154
+
155
+ Raises:
156
+ ValueError: If any required fields cannot be determined
157
+ """
158
+ try:
159
+ commit_sha = commit_sha or os.getenv("CI_COMMIT_SHA")
160
+ branch = branch or os.getenv("CI_COMMIT_REF_NAME")
161
+ repository = repository or os.getenv("CI_PROJECT_NAME")
162
+ url = url or f"{os.getenv('CI_PROJECT_URL')}/-/tree/{commit_sha}"
163
+
164
+ if not message:
165
+ message = await get_commit_message_first_line()
166
+
167
+ if not commit_sha:
168
+ raise ValueError(
169
+ "commit_sha is required - must be provided or set in CI_COMMIT_SHA"
170
+ )
171
+ if not branch:
172
+ raise ValueError(
173
+ "branch is required - must be provided or set in CI_COMMIT_REF_NAME"
174
+ )
175
+ if not repository:
176
+ raise ValueError(
177
+ "repository is required - must be provided or set in CI_PROJECT_NAME"
178
+ )
179
+ if not url:
180
+ raise ValueError(
181
+ "url is required - must be provided or set in CI_PROJECT_URL"
182
+ )
183
+
184
+ except Exception as e:
185
+ raise ValueError(
186
+ f"Error getting git version info: {e}. You may not be in a Gitlab repository."
187
+ )
188
+
189
+ return GitlabVersionInfo(
190
+ type="vcs:gitlab",
191
+ version=commit_sha[:8],
192
+ commit_sha=commit_sha,
193
+ message=message,
194
+ branch=branch,
195
+ repository=repository,
196
+ url=url,
197
+ )
198
+
199
+
200
+ async def get_bitbucket_version_info(
201
+ commit_sha: Optional[str] = None,
202
+ message: Optional[str] = None,
203
+ branch: Optional[str] = None,
204
+ repository: Optional[str] = None,
205
+ url: Optional[str] = None,
206
+ ) -> BitbucketVersionInfo:
207
+ """Create a BitbucketVersionInfo object from provided values or environment variables.
208
+
209
+ Args:
210
+ commit_sha: The commit SHA, falls back to BITBUCKET_COMMIT env var
211
+ message: The commit message, falls back to git log -1 --pretty=%B
212
+ branch: The git branch, falls back to BITBUCKET_BRANCH env var
213
+ repository: The repository name, falls back to BITBUCKET_REPO_SLUG env var
214
+ url: The repository URL, constructed from BITBUCKET_GIT_HTTP_ORIGIN/BITBUCKET_REPO_SLUG/src/BITBUCKET_COMMIT if not provided
215
+
216
+ Returns:
217
+ A BitbucketVersionInfo
218
+
219
+ Raises:
220
+ ValueError: If any required fields cannot be determined
221
+ """
222
+ try:
223
+ commit_sha = commit_sha or os.getenv("BITBUCKET_COMMIT")
224
+ branch = branch or os.getenv("BITBUCKET_BRANCH")
225
+ repository = repository or os.getenv("BITBUCKET_REPO_SLUG")
226
+ url = url or f"{os.getenv('BITBUCKET_GIT_HTTP_ORIGIN')}/src/{commit_sha}"
227
+
228
+ if not message:
229
+ message = await get_commit_message_first_line()
230
+
231
+ if not commit_sha:
232
+ raise ValueError(
233
+ "commit_sha is required - must be provided or set in BITBUCKET_COMMIT"
234
+ )
235
+ if not branch:
236
+ raise ValueError(
237
+ "branch is required - must be provided or set in BITBUCKET_BRANCH"
238
+ )
239
+ if not repository:
240
+ raise ValueError(
241
+ "repository is required - must be provided or set in BITBUCKET_REPO_SLUG"
242
+ )
243
+ if not url:
244
+ raise ValueError(
245
+ "url is required - must be provided or set in BITBUCKET_GIT_HTTP_ORIGIN"
246
+ )
247
+
248
+ except Exception as e:
249
+ raise ValueError(
250
+ f"Error getting git version info: {e}. You may not be in a Bitbucket repository."
251
+ )
252
+
253
+ return BitbucketVersionInfo(
254
+ type="vcs:bitbucket",
255
+ version=commit_sha[:8],
256
+ commit_sha=commit_sha,
257
+ message=message,
258
+ branch=branch,
259
+ repository=repository,
260
+ url=url,
261
+ )
262
+
263
+
264
+ async def get_azuredevops_version_info(
265
+ commit_sha: Optional[str] = None,
266
+ message: Optional[str] = None,
267
+ branch: Optional[str] = None,
268
+ repository: Optional[str] = None,
269
+ url: Optional[str] = None,
270
+ ) -> AzureDevopsVersionInfo:
271
+ """Create an AzureDevopsVersionInfo object from provided values or environment variables.
272
+
273
+ Args:
274
+ commit_sha: The commit SHA, falls back to BUILD_SOURCEVERSION env var
275
+ message: The commit message, falls back to git log -1 --pretty=%B
276
+ branch: The git branch, falls back to BUILD_SOURCEBRANCHNAME env var
277
+ repository: The repository name, falls back to BUILD_REPOSITORY_NAME env var
278
+ url: The repository URL, constructed from BUILD_REPOSITORY_URI?version=GCBUILD_SOURCEVERSION if not provided
279
+
280
+ Returns:
281
+ An AzureDevopsVersionInfo
282
+
283
+ Raises:
284
+ ValueError: If any required fields cannot be determined
285
+ """
286
+ try:
287
+ commit_sha = commit_sha or os.getenv("BUILD_SOURCEVERSION")
288
+ branch = branch or os.getenv("BUILD_SOURCEBRANCHNAME")
289
+ repository = repository or os.getenv("BUILD_REPOSITORY_NAME")
290
+ url = url or f"{os.getenv('BUILD_REPOSITORY_URI')}?version=GC{commit_sha}"
291
+
292
+ if not message:
293
+ message = await get_commit_message_first_line()
294
+
295
+ if not commit_sha:
296
+ raise ValueError(
297
+ "commit_sha is required - must be provided or set in BUILD_SOURCEVERSION"
298
+ )
299
+ if not branch:
300
+ raise ValueError(
301
+ "branch is required - must be provided or set in BUILD_SOURCEBRANCHNAME"
302
+ )
303
+ if not repository:
304
+ raise ValueError(
305
+ "repository is required - must be provided or set in BUILD_REPOSITORY_NAME"
306
+ )
307
+ if not url:
308
+ raise ValueError(
309
+ "url is required - must be provided or set in BUILD_REPOSITORY_URI"
310
+ )
311
+
312
+ except Exception as e:
313
+ raise ValueError(
314
+ f"Error getting git version info: {e}. You may not be in an Azure DevOps repository."
315
+ )
316
+
317
+ return AzureDevopsVersionInfo(
318
+ type="vcs:azuredevops",
319
+ version=commit_sha[:8],
320
+ commit_sha=commit_sha,
321
+ message=message,
322
+ branch=branch,
323
+ repository=repository,
324
+ url=url,
325
+ )
326
+
327
+
328
+ async def get_git_version_info(
329
+ commit_sha: Optional[str] = None,
330
+ message: Optional[str] = None,
331
+ branch: Optional[str] = None,
332
+ url: Optional[str] = None,
333
+ repository: Optional[str] = None,
334
+ ) -> GitVersionInfo:
335
+ try:
336
+ if not commit_sha:
337
+ # Run git command and get stdout
338
+ result = await run_process(["git", "rev-parse", "HEAD"])
339
+ # Decode bytes to string and strip whitespace
340
+ commit_sha = result.stdout.decode().strip()
341
+
342
+ if not branch:
343
+ result = await run_process(["git", "rev-parse", "--abbrev-ref", "HEAD"])
344
+ branch = result.stdout.decode().strip()
345
+
346
+ if not repository:
347
+ result = await run_process(["git", "config", "--get", "remote.origin.url"])
348
+ remote_url = result.stdout.decode().strip()
349
+
350
+ # Extract just the repository name (last part of the path)
351
+ repo_url = urlparse(remote_url)
352
+ repository = repo_url.path.strip("/")
353
+ if repository.endswith(".git"):
354
+ repository = repository[:-4]
355
+
356
+ if not message:
357
+ message = await get_commit_message_first_line()
358
+
359
+ if not url and repository:
360
+ # Use the full remote URL as the URL
361
+ result = await run_process(["git", "config", "--get", "remote.origin.url"])
362
+ url = result.stdout.decode().strip()
363
+ except Exception as e:
364
+ raise ValueError(
365
+ f"Error getting git version info: {e}. You may not be in a git repository."
366
+ )
367
+
368
+ if not url:
369
+ raise ValueError("Could not determine git repository URL")
370
+
371
+ return GitVersionInfo(
372
+ type="vcs:git",
373
+ version=commit_sha[:8],
374
+ branch=branch,
375
+ url=url,
376
+ repository=repository,
377
+ commit_sha=commit_sha,
378
+ message=message,
379
+ )
380
+
381
+
382
+ class VersionType(str, Enum):
383
+ SIMPLE = "prefect:simple"
384
+ GITHUB = "vcs:github"
385
+ GITLAB = "vcs:gitlab"
386
+ BITBUCKET = "vcs:bitbucket"
387
+ AZUREDEVOPS = "vcs:azuredevops"
388
+ GIT = "vcs:git"
389
+
390
+
391
+ async def get_inferred_version_info(
392
+ version_type: Optional[str] = None,
393
+ ) -> VersionInfo | None:
394
+ """
395
+ Attempts to infer version information from the environment.
396
+
397
+ Args:
398
+ version_type: Optional type of version info to get. If provided, only that
399
+ type will be attempted.
400
+
401
+ Returns:
402
+ VersionInfo: The inferred version information
403
+
404
+ Raises:
405
+ ValueError: If unable to infer version info from any source
406
+ """
407
+ # Map version types to their getter functions
408
+ type_to_getter: Dict[str, Callable[..., Coroutine[Any, Any, Any]]] = {
409
+ VersionType.GITHUB: get_github_version_info,
410
+ VersionType.GITLAB: get_gitlab_version_info,
411
+ VersionType.BITBUCKET: get_bitbucket_version_info,
412
+ VersionType.AZUREDEVOPS: get_azuredevops_version_info,
413
+ VersionType.GIT: get_git_version_info,
414
+ }
415
+
416
+ # Default order of getters to try
417
+ default_getters = [
418
+ get_github_version_info,
419
+ get_gitlab_version_info,
420
+ get_bitbucket_version_info,
421
+ get_azuredevops_version_info,
422
+ get_git_version_info,
423
+ ]
424
+
425
+ if version_type:
426
+ if version_type not in type_to_getter:
427
+ raise ValueError(f"Unknown version type: {version_type}")
428
+ getters = [type_to_getter[version_type]]
429
+ else:
430
+ getters = default_getters
431
+
432
+ for getter in getters:
433
+ try:
434
+ return await getter()
435
+ except ValueError:
436
+ continue
437
+
438
+ return None
@@ -141,7 +141,10 @@ async def wait_for_flow_run(
141
141
  return flow_run
142
142
 
143
143
  async for event in subscriber:
144
- state_type = StateType(event.resource["prefect.state-type"])
144
+ if not (state_type := event.resource.get("prefect.state-type")):
145
+ logger.debug(f"Received {event.event!r} event")
146
+ continue
147
+ state_type = StateType(state_type)
145
148
  state = State(type=state_type)
146
149
 
147
150
  if log_states:
@@ -5,7 +5,7 @@ import sys
5
5
  from contextlib import contextmanager
6
6
  from typing import Any, cast
7
7
  from unittest import mock
8
- from zoneinfo import ZoneInfo, available_timezones
8
+ from zoneinfo import ZoneInfo, ZoneInfoNotFoundError, available_timezones
9
9
 
10
10
  import humanize
11
11
  from dateutil.parser import parse
@@ -76,27 +76,38 @@ def human_friendly_diff(
76
76
  if dt is None:
77
77
  return ""
78
78
 
79
- # Handle naive datetimes consistently across Python versions
80
- if dt.tzinfo is None:
81
- local_tz = datetime.datetime.now().astimezone().tzinfo
82
- dt = dt.replace(tzinfo=local_tz).astimezone(ZoneInfo("UTC"))
83
- elif hasattr(dt.tzinfo, "name"):
84
- dt = dt.replace(tzinfo=ZoneInfo(getattr(dt.tzinfo, "name")))
79
+ def _normalize(ts: datetime.datetime) -> datetime.datetime:
80
+ """Return *ts* with a valid ZoneInfo; fall back to UTC if needed."""
81
+ if ts.tzinfo is None:
82
+ local_tz = datetime.datetime.now().astimezone().tzinfo
83
+ return ts.replace(tzinfo=local_tz).astimezone(ZoneInfo("UTC"))
84
+
85
+ if isinstance(ts.tzinfo, ZoneInfo):
86
+ return ts # already valid
87
+
88
+ if tz_name := getattr(ts.tzinfo, "name", None):
89
+ try:
90
+ return ts.replace(tzinfo=ZoneInfo(tz_name))
91
+ except ZoneInfoNotFoundError:
92
+ pass
93
+
94
+ return ts.astimezone(ZoneInfo("UTC"))
95
+
96
+ dt = _normalize(dt)
85
97
 
86
- # Handle other parameter if provided
87
98
  if other is not None:
88
- if other.tzinfo is None:
89
- local_tz = datetime.datetime.now().astimezone().tzinfo
90
- other = other.replace(tzinfo=local_tz).astimezone(ZoneInfo("UTC"))
91
- elif hasattr(other.tzinfo, "name"):
92
- other = other.replace(tzinfo=ZoneInfo(getattr(other.tzinfo, "name")))
99
+ other = _normalize(other)
93
100
 
94
101
  if sys.version_info >= (3, 13):
102
+ # humanize expects ZoneInfo or None
95
103
  return humanize.naturaltime(dt, when=other)
96
104
 
97
- return DateTime.instance(dt).diff_for_humans(
98
- other=DateTime.instance(other) if other else None
105
+ # Ensure consistency for pendulum path by using UTC
106
+ pendulum_dt = DateTime.instance(dt.astimezone(ZoneInfo("UTC")))
107
+ pendulum_other = (
108
+ DateTime.instance(other.astimezone(ZoneInfo("UTC"))) if other else None
99
109
  )
110
+ return pendulum_dt.diff_for_humans(other=pendulum_other)
100
111
 
101
112
 
102
113
  def now(
@@ -1,5 +0,0 @@
1
- # Generated by versioningit
2
- __version__ = "3.3.7.dev1"
3
- __build_date__ = "2025-04-26 08:07:02.330443+00:00"
4
- __git_commit__ = "cd10dc7dbb1bf043aeec4d2b21cd3e68742f474a"
5
- __dirty__ = False