prefect-client 2.20.4__tar.gz → 3.0.0__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 (384) hide show
  1. {prefect_client-2.20.4/src/prefect_client.egg-info → prefect-client-3.0.0}/PKG-INFO +21 -55
  2. {prefect_client-2.20.4 → prefect-client-3.0.0}/README.md +12 -12
  3. {prefect_client-2.20.4 → prefect-client-3.0.0}/requirements-client.txt +10 -14
  4. {prefect_client-2.20.4 → prefect-client-3.0.0}/requirements-dev.txt +14 -15
  5. {prefect_client-2.20.4 → prefect-client-3.0.0}/requirements.txt +2 -3
  6. {prefect_client-2.20.4 → prefect-client-3.0.0}/setup.cfg +5 -12
  7. {prefect_client-2.20.4 → prefect-client-3.0.0}/setup.py +3 -3
  8. prefect-client-3.0.0/src/prefect/__init__.py +118 -0
  9. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/compatibility/deprecated.py +6 -115
  10. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/compatibility/experimental.py +4 -79
  11. prefect-client-3.0.0/src/prefect/_internal/compatibility/migration.py +166 -0
  12. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/__init__.py +2 -2
  13. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/api.py +1 -35
  14. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/calls.py +0 -6
  15. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/cancellation.py +0 -3
  16. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/event_loop.py +0 -20
  17. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/inspection.py +3 -3
  18. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/primitives.py +1 -0
  19. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/services.py +23 -0
  20. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/threads.py +35 -0
  21. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/waiters.py +0 -28
  22. prefect-client-3.0.0/src/prefect/_internal/integrations.py +7 -0
  23. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/annotations/pendulum.py +2 -2
  24. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/v1_schema.py +21 -22
  25. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/v2_schema.py +0 -2
  26. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/v2_validated_func.py +18 -23
  27. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pytz.py +1 -1
  28. prefect-client-3.0.0/src/prefect/_internal/retries.py +61 -0
  29. prefect-client-3.0.0/src/prefect/_internal/schemas/bases.py +122 -0
  30. prefect-client-3.0.0/src/prefect/_internal/schemas/fields.py +28 -0
  31. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/schemas/validators.py +47 -233
  32. prefect-client-3.0.0/src/prefect/agent.py +6 -0
  33. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/artifacts.py +173 -14
  34. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/automations.py +39 -4
  35. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/blocks/abstract.py +1 -1
  36. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/blocks/core.py +405 -153
  37. prefect-client-3.0.0/src/prefect/blocks/fields.py +3 -0
  38. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/blocks/notifications.py +43 -28
  39. prefect-client-3.0.0/src/prefect/blocks/redis.py +168 -0
  40. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/blocks/system.py +67 -20
  41. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/blocks/webhook.py +2 -9
  42. prefect-client-3.0.0/src/prefect/cache_policies.py +239 -0
  43. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/__init__.py +4 -0
  44. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/base.py +33 -27
  45. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/cloud.py +65 -20
  46. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/collections.py +1 -1
  47. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/orchestration.py +650 -442
  48. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/actions.py +115 -100
  49. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/filters.py +46 -52
  50. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/objects.py +228 -178
  51. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/responses.py +18 -36
  52. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/schedules.py +55 -36
  53. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/sorting.py +2 -0
  54. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/subscriptions.py +8 -7
  55. prefect-client-3.0.0/src/prefect/client/types/flexible_schedule_list.py +11 -0
  56. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/utilities.py +9 -6
  57. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/concurrency/asyncio.py +60 -11
  58. prefect-client-3.0.0/src/prefect/concurrency/context.py +24 -0
  59. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/concurrency/events.py +2 -2
  60. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/concurrency/services.py +46 -16
  61. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/concurrency/sync.py +51 -7
  62. prefect-client-3.0.0/src/prefect/concurrency/v1/asyncio.py +143 -0
  63. prefect-client-3.0.0/src/prefect/concurrency/v1/context.py +27 -0
  64. prefect-client-3.0.0/src/prefect/concurrency/v1/events.py +61 -0
  65. prefect-client-3.0.0/src/prefect/concurrency/v1/services.py +116 -0
  66. prefect-client-3.0.0/src/prefect/concurrency/v1/sync.py +92 -0
  67. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/context.py +246 -149
  68. prefect-client-3.0.0/src/prefect/deployments/__init__.py +33 -0
  69. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/deployments/base.py +10 -15
  70. prefect-client-3.0.0/src/prefect/deployments/deployments.py +3 -0
  71. prefect-client-3.0.0/src/prefect/deployments/flow_runs.py +178 -0
  72. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/deployments/runner.py +72 -173
  73. prefect-client-3.0.0/src/prefect/deployments/schedules.py +56 -0
  74. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/deployments/steps/__init__.py +0 -1
  75. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/deployments/steps/core.py +7 -0
  76. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/deployments/steps/pull.py +15 -21
  77. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/deployments/steps/utility.py +2 -1
  78. prefect-client-3.0.0/src/prefect/docker/__init__.py +20 -0
  79. prefect-client-3.0.0/src/prefect/docker/docker_image.py +82 -0
  80. prefect-client-3.0.0/src/prefect/engine.py +75 -0
  81. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/actions.py +17 -23
  82. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/cli/automations.py +20 -7
  83. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/clients.py +142 -80
  84. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/filters.py +14 -18
  85. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/related.py +74 -75
  86. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/schemas/automations.py +55 -46
  87. prefect-client-3.0.0/src/prefect/events/schemas/deployment_triggers.py +105 -0
  88. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/schemas/events.py +46 -65
  89. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/schemas/labelling.py +10 -14
  90. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/utilities.py +4 -5
  91. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/worker.py +23 -8
  92. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/exceptions.py +15 -0
  93. prefect-client-3.0.0/src/prefect/filesystems.py +520 -0
  94. prefect-client-3.0.0/src/prefect/flow_engine.py +827 -0
  95. prefect-client-3.0.0/src/prefect/flow_runs.py +462 -0
  96. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/flows.py +470 -360
  97. prefect-client-3.0.0/src/prefect/futures.py +480 -0
  98. prefect-client-3.0.0/src/prefect/infrastructure/__init__.py +6 -0
  99. prefect-client-3.0.0/src/prefect/infrastructure/base.py +6 -0
  100. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/__init__.py +5 -3
  101. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/cloud_run.py +13 -8
  102. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/container_instance.py +14 -9
  103. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/ecs.py +10 -8
  104. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/modal.py +8 -5
  105. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/input/__init__.py +4 -0
  106. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/input/actions.py +2 -4
  107. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/input/run_input.py +9 -9
  108. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/formatters.py +2 -4
  109. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/handlers.py +9 -14
  110. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/loggers.py +5 -5
  111. prefect-client-3.0.0/src/prefect/main.py +72 -0
  112. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/plugins.py +2 -64
  113. prefect-client-3.0.0/src/prefect/profiles.toml +17 -0
  114. prefect-client-3.0.0/src/prefect/records/__init__.py +1 -0
  115. prefect-client-3.0.0/src/prefect/records/base.py +223 -0
  116. prefect-client-3.0.0/src/prefect/records/filesystem.py +207 -0
  117. prefect-client-3.0.0/src/prefect/records/memory.py +178 -0
  118. prefect-client-3.0.0/src/prefect/records/result_store.py +64 -0
  119. prefect-client-3.0.0/src/prefect/results.py +842 -0
  120. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runner/runner.py +117 -47
  121. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runner/server.py +32 -34
  122. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runner/storage.py +3 -12
  123. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runner/submit.py +2 -10
  124. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runner/utils.py +2 -2
  125. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runtime/__init__.py +1 -0
  126. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runtime/deployment.py +1 -0
  127. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runtime/flow_run.py +40 -5
  128. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runtime/task_run.py +1 -0
  129. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/serializers.py +28 -39
  130. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +5 -14
  131. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/settings.py +209 -332
  132. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/states.py +160 -63
  133. prefect-client-3.0.0/src/prefect/task_engine.py +1497 -0
  134. prefect-client-3.0.0/src/prefect/task_runners.py +461 -0
  135. prefect-client-3.0.0/src/prefect/task_runs.py +240 -0
  136. prefect-client-3.0.0/src/prefect/task_worker.py +463 -0
  137. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/tasks.py +684 -374
  138. prefect-client-3.0.0/src/prefect/transactions.py +410 -0
  139. prefect-client-3.0.0/src/prefect/types/__init__.py +98 -0
  140. prefect-client-3.0.0/src/prefect/types/entrypoint.py +13 -0
  141. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/annotations.py +4 -3
  142. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/asyncutils.py +227 -148
  143. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/callables.py +137 -45
  144. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/collections.py +134 -86
  145. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/dispatch.py +27 -14
  146. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/dockerutils.py +11 -4
  147. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/engine.py +186 -32
  148. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/filesystem.py +4 -5
  149. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/importtools.py +26 -27
  150. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/pydantic.py +128 -38
  151. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/schema_tools/hydration.py +18 -1
  152. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/schema_tools/validation.py +30 -0
  153. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/services.py +35 -9
  154. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/templating.py +12 -2
  155. prefect-client-3.0.0/src/prefect/utilities/timeout.py +49 -0
  156. prefect-client-3.0.0/src/prefect/utilities/urls.py +195 -0
  157. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/visualization.py +1 -0
  158. prefect-client-3.0.0/src/prefect/variables.py +133 -0
  159. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/workers/__init__.py +0 -1
  160. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/workers/base.py +237 -244
  161. prefect-client-3.0.0/src/prefect/workers/block.py +6 -0
  162. prefect-client-3.0.0/src/prefect/workers/cloud.py +6 -0
  163. prefect-client-3.0.0/src/prefect/workers/process.py +523 -0
  164. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/workers/server.py +29 -11
  165. {prefect_client-2.20.4 → prefect-client-3.0.0/src/prefect_client.egg-info}/PKG-INFO +21 -55
  166. prefect-client-3.0.0/src/prefect_client.egg-info/SOURCES.txt +210 -0
  167. prefect-client-3.0.0/src/prefect_client.egg-info/dependency_links.txt +1 -0
  168. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect_client.egg-info/requires.txt +8 -12
  169. prefect_client-2.20.4/src/prefect/__init__.py +0 -154
  170. prefect_client-2.20.4/src/prefect/_internal/pydantic/__init__.py +0 -46
  171. prefect_client-2.20.4/src/prefect/_internal/pydantic/_base_model.py +0 -51
  172. prefect_client-2.20.4/src/prefect/_internal/pydantic/_compat.py +0 -82
  173. prefect_client-2.20.4/src/prefect/_internal/pydantic/_flags.py +0 -20
  174. prefect_client-2.20.4/src/prefect/_internal/pydantic/_types.py +0 -8
  175. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -72
  176. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -150
  177. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -56
  178. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -55
  179. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -136
  180. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -112
  181. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -50
  182. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -29
  183. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -82
  184. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -80
  185. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -75
  186. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -68
  187. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -87
  188. prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -71
  189. prefect_client-2.20.4/src/prefect/_internal/schemas/bases.py +0 -254
  190. prefect_client-2.20.4/src/prefect/_internal/schemas/fields.py +0 -70
  191. prefect_client-2.20.4/src/prefect/_vendor/fastapi/__init__.py +0 -25
  192. prefect_client-2.20.4/src/prefect/_vendor/fastapi/applications.py +0 -946
  193. prefect_client-2.20.4/src/prefect/_vendor/fastapi/background.py +0 -3
  194. prefect_client-2.20.4/src/prefect/_vendor/fastapi/concurrency.py +0 -44
  195. prefect_client-2.20.4/src/prefect/_vendor/fastapi/datastructures.py +0 -58
  196. prefect_client-2.20.4/src/prefect/_vendor/fastapi/dependencies/models.py +0 -64
  197. prefect_client-2.20.4/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -877
  198. prefect_client-2.20.4/src/prefect/_vendor/fastapi/encoders.py +0 -177
  199. prefect_client-2.20.4/src/prefect/_vendor/fastapi/exception_handlers.py +0 -40
  200. prefect_client-2.20.4/src/prefect/_vendor/fastapi/exceptions.py +0 -46
  201. prefect_client-2.20.4/src/prefect/_vendor/fastapi/logger.py +0 -3
  202. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -1
  203. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -25
  204. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/cors.py +0 -3
  205. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -3
  206. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -3
  207. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -3
  208. prefect_client-2.20.4/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -3
  209. prefect_client-2.20.4/src/prefect/_vendor/fastapi/openapi/constants.py +0 -2
  210. prefect_client-2.20.4/src/prefect/_vendor/fastapi/openapi/docs.py +0 -203
  211. prefect_client-2.20.4/src/prefect/_vendor/fastapi/openapi/models.py +0 -480
  212. prefect_client-2.20.4/src/prefect/_vendor/fastapi/openapi/utils.py +0 -485
  213. prefect_client-2.20.4/src/prefect/_vendor/fastapi/param_functions.py +0 -340
  214. prefect_client-2.20.4/src/prefect/_vendor/fastapi/params.py +0 -453
  215. prefect_client-2.20.4/src/prefect/_vendor/fastapi/requests.py +0 -4
  216. prefect_client-2.20.4/src/prefect/_vendor/fastapi/responses.py +0 -40
  217. prefect_client-2.20.4/src/prefect/_vendor/fastapi/routing.py +0 -1331
  218. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/__init__.py +0 -15
  219. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/api_key.py +0 -98
  220. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/base.py +0 -6
  221. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/http.py +0 -172
  222. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/oauth2.py +0 -227
  223. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -34
  224. prefect_client-2.20.4/src/prefect/_vendor/fastapi/security/utils.py +0 -10
  225. prefect_client-2.20.4/src/prefect/_vendor/fastapi/staticfiles.py +0 -1
  226. prefect_client-2.20.4/src/prefect/_vendor/fastapi/templating.py +0 -3
  227. prefect_client-2.20.4/src/prefect/_vendor/fastapi/testclient.py +0 -1
  228. prefect_client-2.20.4/src/prefect/_vendor/fastapi/types.py +0 -3
  229. prefect_client-2.20.4/src/prefect/_vendor/fastapi/utils.py +0 -235
  230. prefect_client-2.20.4/src/prefect/_vendor/fastapi/websockets.py +0 -7
  231. prefect_client-2.20.4/src/prefect/_vendor/starlette/__init__.py +0 -1
  232. prefect_client-2.20.4/src/prefect/_vendor/starlette/_compat.py +0 -28
  233. prefect_client-2.20.4/src/prefect/_vendor/starlette/_exception_handler.py +0 -80
  234. prefect_client-2.20.4/src/prefect/_vendor/starlette/_utils.py +0 -88
  235. prefect_client-2.20.4/src/prefect/_vendor/starlette/applications.py +0 -261
  236. prefect_client-2.20.4/src/prefect/_vendor/starlette/authentication.py +0 -159
  237. prefect_client-2.20.4/src/prefect/_vendor/starlette/background.py +0 -43
  238. prefect_client-2.20.4/src/prefect/_vendor/starlette/concurrency.py +0 -59
  239. prefect_client-2.20.4/src/prefect/_vendor/starlette/config.py +0 -151
  240. prefect_client-2.20.4/src/prefect/_vendor/starlette/convertors.py +0 -87
  241. prefect_client-2.20.4/src/prefect/_vendor/starlette/datastructures.py +0 -707
  242. prefect_client-2.20.4/src/prefect/_vendor/starlette/endpoints.py +0 -130
  243. prefect_client-2.20.4/src/prefect/_vendor/starlette/exceptions.py +0 -60
  244. prefect_client-2.20.4/src/prefect/_vendor/starlette/formparsers.py +0 -276
  245. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/__init__.py +0 -17
  246. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/authentication.py +0 -52
  247. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/base.py +0 -220
  248. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/cors.py +0 -176
  249. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/errors.py +0 -265
  250. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -74
  251. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/gzip.py +0 -113
  252. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -19
  253. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/sessions.py +0 -82
  254. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -64
  255. prefect_client-2.20.4/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -147
  256. prefect_client-2.20.4/src/prefect/_vendor/starlette/py.typed +0 -0
  257. prefect_client-2.20.4/src/prefect/_vendor/starlette/requests.py +0 -328
  258. prefect_client-2.20.4/src/prefect/_vendor/starlette/responses.py +0 -347
  259. prefect_client-2.20.4/src/prefect/_vendor/starlette/routing.py +0 -933
  260. prefect_client-2.20.4/src/prefect/_vendor/starlette/schemas.py +0 -154
  261. prefect_client-2.20.4/src/prefect/_vendor/starlette/staticfiles.py +0 -248
  262. prefect_client-2.20.4/src/prefect/_vendor/starlette/status.py +0 -199
  263. prefect_client-2.20.4/src/prefect/_vendor/starlette/templating.py +0 -231
  264. prefect_client-2.20.4/src/prefect/_vendor/starlette/testclient.py +0 -804
  265. prefect_client-2.20.4/src/prefect/_vendor/starlette/types.py +0 -30
  266. prefect_client-2.20.4/src/prefect/_vendor/starlette/websockets.py +0 -193
  267. prefect_client-2.20.4/src/prefect/agent.py +0 -698
  268. prefect_client-2.20.4/src/prefect/blocks/fields.py +0 -58
  269. prefect_client-2.20.4/src/prefect/blocks/kubernetes.py +0 -119
  270. prefect_client-2.20.4/src/prefect/deployments/__init__.py +0 -18
  271. prefect_client-2.20.4/src/prefect/deployments/deployments.py +0 -1049
  272. prefect_client-2.20.4/src/prefect/deployments/schedules.py +0 -50
  273. prefect_client-2.20.4/src/prefect/deprecated/data_documents.py +0 -350
  274. prefect_client-2.20.4/src/prefect/deprecated/packaging/__init__.py +0 -12
  275. prefect_client-2.20.4/src/prefect/deprecated/packaging/base.py +0 -96
  276. prefect_client-2.20.4/src/prefect/deprecated/packaging/docker.py +0 -146
  277. prefect_client-2.20.4/src/prefect/deprecated/packaging/file.py +0 -92
  278. prefect_client-2.20.4/src/prefect/deprecated/packaging/orion.py +0 -80
  279. prefect_client-2.20.4/src/prefect/deprecated/packaging/serializers.py +0 -171
  280. prefect_client-2.20.4/src/prefect/engine.py +0 -2535
  281. prefect_client-2.20.4/src/prefect/events/cli/__init__.py +0 -0
  282. prefect_client-2.20.4/src/prefect/events/instrument.py +0 -135
  283. prefect_client-2.20.4/src/prefect/events/schemas/__init__.py +0 -5
  284. prefect_client-2.20.4/src/prefect/events/schemas/deployment_triggers.py +0 -295
  285. prefect_client-2.20.4/src/prefect/filesystems.py +0 -1019
  286. prefect_client-2.20.4/src/prefect/flow_runs.py +0 -90
  287. prefect_client-2.20.4/src/prefect/futures.py +0 -429
  288. prefect_client-2.20.4/src/prefect/infrastructure/__init__.py +0 -27
  289. prefect_client-2.20.4/src/prefect/infrastructure/base.py +0 -323
  290. prefect_client-2.20.4/src/prefect/infrastructure/container.py +0 -824
  291. prefect_client-2.20.4/src/prefect/infrastructure/kubernetes.py +0 -920
  292. prefect_client-2.20.4/src/prefect/infrastructure/process.py +0 -289
  293. prefect_client-2.20.4/src/prefect/manifests.py +0 -20
  294. prefect_client-2.20.4/src/prefect/new_flow_engine.py +0 -449
  295. prefect_client-2.20.4/src/prefect/new_task_engine.py +0 -423
  296. prefect_client-2.20.4/src/prefect/profiles.toml +0 -3
  297. prefect_client-2.20.4/src/prefect/py.typed +0 -0
  298. prefect_client-2.20.4/src/prefect/pydantic/__init__.py +0 -76
  299. prefect_client-2.20.4/src/prefect/pydantic/main.py +0 -39
  300. prefect_client-2.20.4/src/prefect/results.py +0 -769
  301. prefect_client-2.20.4/src/prefect/software/__init__.py +0 -2
  302. prefect_client-2.20.4/src/prefect/software/base.py +0 -50
  303. prefect_client-2.20.4/src/prefect/software/conda.py +0 -199
  304. prefect_client-2.20.4/src/prefect/software/pip.py +0 -122
  305. prefect_client-2.20.4/src/prefect/software/python.py +0 -52
  306. prefect_client-2.20.4/src/prefect/task_engine.py +0 -76
  307. prefect_client-2.20.4/src/prefect/task_runners.py +0 -365
  308. prefect_client-2.20.4/src/prefect/task_server.py +0 -322
  309. prefect_client-2.20.4/src/prefect/types/__init__.py +0 -112
  310. prefect_client-2.20.4/src/prefect/utilities/__init__.py +0 -0
  311. prefect_client-2.20.4/src/prefect/utilities/timeout.py +0 -34
  312. prefect_client-2.20.4/src/prefect/variables.py +0 -114
  313. prefect_client-2.20.4/src/prefect/workers/block.py +0 -227
  314. prefect_client-2.20.4/src/prefect/workers/process.py +0 -270
  315. prefect_client-2.20.4/src/prefect_client.egg-info/SOURCES.txt +0 -329
  316. prefect_client-2.20.4/tests/test_artifacts.py +0 -484
  317. prefect_client-2.20.4/tests/test_automations.py +0 -186
  318. prefect_client-2.20.4/tests/test_background_tasks.py +0 -401
  319. prefect_client-2.20.4/tests/test_context.py +0 -396
  320. prefect_client-2.20.4/tests/test_deployments.py +0 -1632
  321. prefect_client-2.20.4/tests/test_engine.py +0 -3417
  322. prefect_client-2.20.4/tests/test_exceptions.py +0 -139
  323. prefect_client-2.20.4/tests/test_filesystems.py +0 -782
  324. prefect_client-2.20.4/tests/test_flow_runs.py +0 -40
  325. prefect_client-2.20.4/tests/test_flows.py +0 -4430
  326. prefect_client-2.20.4/tests/test_flows_compat.py +0 -30
  327. prefect_client-2.20.4/tests/test_futures.py +0 -215
  328. prefect_client-2.20.4/tests/test_highlighters.py +0 -69
  329. prefect_client-2.20.4/tests/test_import_interceptor.py +0 -7
  330. prefect_client-2.20.4/tests/test_log_prints.py +0 -240
  331. prefect_client-2.20.4/tests/test_logging.py +0 -1586
  332. prefect_client-2.20.4/tests/test_new_flow_engine.py +0 -866
  333. prefect_client-2.20.4/tests/test_new_task_engine.py +0 -868
  334. prefect_client-2.20.4/tests/test_plugins.py +0 -259
  335. prefect_client-2.20.4/tests/test_serializers.py +0 -368
  336. prefect_client-2.20.4/tests/test_settings.py +0 -1062
  337. prefect_client-2.20.4/tests/test_states.py +0 -374
  338. prefect_client-2.20.4/tests/test_task_runners.py +0 -34
  339. prefect_client-2.20.4/tests/test_task_server.py +0 -551
  340. prefect_client-2.20.4/tests/test_tasks.py +0 -4304
  341. prefect_client-2.20.4/tests/test_variables.py +0 -94
  342. {prefect_client-2.20.4 → prefect-client-3.0.0}/LICENSE +0 -0
  343. {prefect_client-2.20.4 → prefect-client-3.0.0}/MANIFEST.in +0 -0
  344. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/.prefectignore +0 -0
  345. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/__init__.py +0 -0
  346. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/_logging.py +0 -0
  347. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/compatibility/__init__.py +0 -0
  348. /prefect_client-2.20.4/src/prefect_client.egg-info/dependency_links.txt → /prefect-client-3.0.0/src/prefect/_internal/pydantic/__init__.py +0 -0
  349. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  350. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/schemas.py +0 -0
  351. {prefect_client-2.20.4/src/prefect/_internal/pydantic/utilities → prefect-client-3.0.0/src/prefect/_internal/schemas}/__init__.py +0 -0
  352. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_internal/schemas/serializers.py +0 -0
  353. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/_version.py +0 -0
  354. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/blocks/__init__.py +0 -0
  355. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/constants.py +0 -0
  356. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/client/schemas/__init__.py +0 -0
  357. {prefect_client-2.20.4/src/prefect/_internal/schemas → prefect-client-3.0.0/src/prefect/client/types}/__init__.py +0 -0
  358. {prefect_client-2.20.4/src/prefect/_vendor → prefect-client-3.0.0/src/prefect/concurrency}/__init__.py +0 -0
  359. {prefect_client-2.20.4/src/prefect/_vendor/fastapi/dependencies → prefect-client-3.0.0/src/prefect/concurrency/v1}/__init__.py +0 -0
  360. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/events/__init__.py +0 -0
  361. {prefect_client-2.20.4/src/prefect/_vendor/fastapi/openapi → prefect-client-3.0.0/src/prefect/events/cli}/__init__.py +0 -0
  362. {prefect_client-2.20.4/src/prefect/concurrency → prefect-client-3.0.0/src/prefect/events/schemas}/__init__.py +0 -0
  363. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/__init__.py +0 -0
  364. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/configuration.py +0 -0
  365. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/filters.py +0 -0
  366. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/highlighters.py +0 -0
  367. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/logging/logging.yml +0 -0
  368. {prefect_client-2.20.4/src/prefect/_vendor/fastapi → prefect-client-3.0.0/src/prefect}/py.typed +0 -0
  369. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/runner/__init__.py +0 -0
  370. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  371. {prefect_client-2.20.4/src/prefect/deprecated → prefect-client-3.0.0/src/prefect/utilities}/__init__.py +0 -0
  372. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/compat.py +0 -0
  373. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/context.py +0 -0
  374. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/hashing.py +0 -0
  375. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/math.py +0 -0
  376. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/names.py +0 -0
  377. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/processutils.py +0 -0
  378. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/render_swagger.py +0 -0
  379. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  380. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/slugify.py +0 -0
  381. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/utilities/text.py +0 -0
  382. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect/workers/utilities.py +0 -0
  383. {prefect_client-2.20.4 → prefect-client-3.0.0}/src/prefect_client.egg-info/top_level.txt +0 -0
  384. {prefect_client-2.20.4 → prefect-client-3.0.0}/versioneer.py +0 -0
@@ -1,66 +1,30 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.20.4
3
+ Version: 3.0.0
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
7
7
  Author-email: help@prefect.io
8
- Project-URL: Changelog, https://github.com/PrefectHQ/prefect/blob/main/RELEASE-NOTES.md
8
+ License: UNKNOWN
9
+ Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
9
10
  Project-URL: Documentation, https://docs.prefect.io
10
11
  Project-URL: Source, https://github.com/PrefectHQ/prefect
11
12
  Project-URL: Tracker, https://github.com/PrefectHQ/prefect/issues
13
+ Platform: UNKNOWN
12
14
  Classifier: Natural Language :: English
13
15
  Classifier: Intended Audience :: Developers
14
16
  Classifier: Intended Audience :: System Administrators
15
17
  Classifier: License :: OSI Approved :: Apache Software License
16
18
  Classifier: Programming Language :: Python :: 3 :: Only
17
- Classifier: Programming Language :: Python :: 3.8
18
19
  Classifier: Programming Language :: Python :: 3.9
19
20
  Classifier: Programming Language :: Python :: 3.10
20
21
  Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
21
23
  Classifier: Topic :: Software Development :: Libraries
22
- Requires-Python: >=3.8
24
+ Requires-Python: >=3.9
23
25
  Description-Content-Type: text/markdown
24
- License-File: LICENSE
25
- Requires-Dist: anyio<5.0.0,>=4.4.0
26
- Requires-Dist: asgi-lifespan<3.0,>=1.0
27
- Requires-Dist: cachetools<6.0,>=5.3
28
- Requires-Dist: cloudpickle<4.0,>=2.0
29
- Requires-Dist: coolname<3.0.0,>=1.0.4
30
- Requires-Dist: croniter<3.0.0,>=1.0.12
31
- Requires-Dist: fsspec>=2022.5.0
32
- Requires-Dist: exceptiongroup>=1.2.1
33
- Requires-Dist: graphviz>=0.20.1
34
- Requires-Dist: griffe<2.0.0,>=0.49.0
35
- Requires-Dist: httpcore<2.0.0,>=1.0.5
36
- Requires-Dist: httpx[http2]!=0.23.2,>=0.23
37
- Requires-Dist: importlib_metadata>=4.4; python_version < "3.10"
38
- Requires-Dist: importlib-resources<6.5.0,>=6.1.3
39
- Requires-Dist: jsonpatch<2.0,>=1.32
40
- Requires-Dist: jsonschema<5.0.0,>=4.0.0
41
- Requires-Dist: orjson<4.0,>=3.7
42
- Requires-Dist: packaging<24.3,>=21.3
43
- Requires-Dist: pathspec>=0.8.0
44
- Requires-Dist: pendulum<3.0; python_version < "3.12"
45
- Requires-Dist: pendulum<4,>=3.0.0; python_version >= "3.12"
46
- Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.10.0
47
- Requires-Dist: pydantic_core<3.0.0,>=2.12.0
48
- Requires-Dist: python_dateutil<3.0.0,>=2.8.2
49
- Requires-Dist: python-slugify<9.0,>=5.0
50
- Requires-Dist: pyyaml<7.0.0,>=5.4.1
51
- Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
52
- Requires-Dist: rich<14.0,>=11.0
53
- Requires-Dist: ruamel.yaml>=0.17.0
54
- Requires-Dist: sniffio<2.0.0,>=1.3.0
55
- Requires-Dist: toml>=0.10.0
56
- Requires-Dist: typing_extensions<5.0.0,>=4.5.0
57
- Requires-Dist: ujson<6.0.0,>=5.8.0
58
- Requires-Dist: uvicorn!=0.29.0,>=0.14.0
59
- Requires-Dist: websockets<14.0,>=10.4
60
- Requires-Dist: itsdangerous
61
- Requires-Dist: python-multipart>=0.0.7
62
26
  Provides-Extra: notifications
63
- Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
27
+ License-File: LICENSE
64
28
 
65
29
  <p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
66
30
 
@@ -84,24 +48,24 @@ Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
84
48
 
85
49
  # prefect-client
86
50
 
87
- The `prefect-client` package is a minimal-installation of `prefect` which is designed for interacting with Prefect Cloud
88
- or remote any `prefect` server. It sheds some functionality and dependencies in exchange for a smaller installation size,
89
- making it ideal for use in lightweight or ephemeral environments. These characteristics make it ideal for use in lambdas
90
- or other resource-constrained environments.
51
+ The `prefect-client` package is a minimal-installation of `prefect` which is designed for interacting with Prefect Cloud
52
+ or remote any `prefect` server. It sheds some functionality and dependencies in exchange for a smaller installation size,
53
+ making it ideal for use in lightweight or ephemeral environments. These characteristics make it ideal for use in lambdas
54
+ or other resource-constrained environments.
91
55
 
92
56
 
93
57
  ## Getting started
94
58
 
95
- `prefect-client` shares the same installation requirements as prefect. To install, make sure you are on Python 3.8 or
59
+ `prefect-client` shares the same installation requirements as prefect. To install, make sure you are on Python 3.9 or
96
60
  later and run the following command:
97
61
 
98
62
  ```bash
99
63
  pip install prefect-client
100
64
  ```
101
65
 
102
- Next, ensure that your `prefect-client` has access to a remote `prefect` server by exporting the `PREFECT_API_KEY`
103
- (if using Prefect Cloud) and `PREFECT_API_URL` environment variables. Once those are set, use the package in your code as
104
- you would normally use `prefect`!
66
+ Next, ensure that your `prefect-client` has access to a remote `prefect` server by exporting the `PREFECT_API_KEY`
67
+ (if using Prefect Cloud) and `PREFECT_API_URL` environment variables. Once those are set, use the package in your code as
68
+ you would normally use `prefect`!
105
69
 
106
70
 
107
71
  For example, to remotely trigger a run a deployment:
@@ -150,10 +114,10 @@ query_api()
150
114
 
151
115
 
152
116
  ## Known limitations
153
- By design, `prefect-client` omits all CLI and server components. This means that the CLI is not available for use
154
- and attempts to access server objects will fail. Furthermore, some classes, methods, and objects may be available
155
- for import in `prefect-client` but may not be "runnable" if they tap into server-oriented functionality. If you
156
- encounter such a limitation, feel free to [open an issue](https://github.com/PrefectHQ/prefect/issues/new/choose)
117
+ By design, `prefect-client` omits all CLI and server components. This means that the CLI is not available for use
118
+ and attempts to access server objects will fail. Furthermore, some classes, methods, and objects may be available
119
+ for import in `prefect-client` but may not be "runnable" if they tap into server-oriented functionality. If you
120
+ encounter such a limitation, feel free to [open an issue](https://github.com/PrefectHQ/prefect/issues/new/choose)
157
121
  describing the functionality you are interested in using and we will do our best to make it available.
158
122
 
159
123
 
@@ -171,3 +135,5 @@ Prefect is made possible by the fastest growing community of thousands of friend
171
135
  See our [documentation on contributing to Prefect](https://docs.prefect.io/contributing/overview/).
172
136
 
173
137
  Thanks for being part of the mission to build a new kind of workflow system and, of course, **happy engineering!**
138
+
139
+
@@ -20,24 +20,24 @@
20
20
 
21
21
  # prefect-client
22
22
 
23
- The `prefect-client` package is a minimal-installation of `prefect` which is designed for interacting with Prefect Cloud
24
- or remote any `prefect` server. It sheds some functionality and dependencies in exchange for a smaller installation size,
25
- making it ideal for use in lightweight or ephemeral environments. These characteristics make it ideal for use in lambdas
26
- or other resource-constrained environments.
23
+ The `prefect-client` package is a minimal-installation of `prefect` which is designed for interacting with Prefect Cloud
24
+ or remote any `prefect` server. It sheds some functionality and dependencies in exchange for a smaller installation size,
25
+ making it ideal for use in lightweight or ephemeral environments. These characteristics make it ideal for use in lambdas
26
+ or other resource-constrained environments.
27
27
 
28
28
 
29
29
  ## Getting started
30
30
 
31
- `prefect-client` shares the same installation requirements as prefect. To install, make sure you are on Python 3.8 or
31
+ `prefect-client` shares the same installation requirements as prefect. To install, make sure you are on Python 3.9 or
32
32
  later and run the following command:
33
33
 
34
34
  ```bash
35
35
  pip install prefect-client
36
36
  ```
37
37
 
38
- Next, ensure that your `prefect-client` has access to a remote `prefect` server by exporting the `PREFECT_API_KEY`
39
- (if using Prefect Cloud) and `PREFECT_API_URL` environment variables. Once those are set, use the package in your code as
40
- you would normally use `prefect`!
38
+ Next, ensure that your `prefect-client` has access to a remote `prefect` server by exporting the `PREFECT_API_KEY`
39
+ (if using Prefect Cloud) and `PREFECT_API_URL` environment variables. Once those are set, use the package in your code as
40
+ you would normally use `prefect`!
41
41
 
42
42
 
43
43
  For example, to remotely trigger a run a deployment:
@@ -86,10 +86,10 @@ query_api()
86
86
 
87
87
 
88
88
  ## Known limitations
89
- By design, `prefect-client` omits all CLI and server components. This means that the CLI is not available for use
90
- and attempts to access server objects will fail. Furthermore, some classes, methods, and objects may be available
91
- for import in `prefect-client` but may not be "runnable" if they tap into server-oriented functionality. If you
92
- encounter such a limitation, feel free to [open an issue](https://github.com/PrefectHQ/prefect/issues/new/choose)
89
+ By design, `prefect-client` omits all CLI and server components. This means that the CLI is not available for use
90
+ and attempts to access server objects will fail. Furthermore, some classes, methods, and objects may be available
91
+ for import in `prefect-client` but may not be "runnable" if they tap into server-oriented functionality. If you
92
+ encounter such a limitation, feel free to [open an issue](https://github.com/PrefectHQ/prefect/issues/new/choose)
93
93
  describing the functionality you are interested in using and we will do our best to make it available.
94
94
 
95
95
 
@@ -3,26 +3,26 @@ asgi-lifespan >= 1.0, < 3.0
3
3
  cachetools >= 5.3, < 6.0
4
4
  cloudpickle >= 2.0, < 4.0
5
5
  coolname >= 1.0.4, < 3.0.0
6
- croniter >= 1.0.12, < 3.0.0
6
+ croniter >= 1.0.12, < 4.0.0
7
+ exceptiongroup >= 1.0.0
8
+ fastapi >= 0.111.0, < 1.0.0
7
9
  fsspec >= 2022.5.0
8
- exceptiongroup >= 1.2.1
9
10
  graphviz >= 0.20.1
10
11
  griffe >= 0.49.0, <2.0.0
11
12
  httpcore >=1.0.5, < 2.0.0
12
13
  httpx[http2] >= 0.23, != 0.23.2
13
14
  importlib_metadata >= 4.4; python_version < '3.10'
14
- importlib-resources >= 6.1.3, < 6.5.0
15
15
  jsonpatch >= 1.32, < 2.0
16
16
  jsonschema >= 4.0.0, < 5.0.0
17
17
  orjson >= 3.7, < 4.0
18
18
  packaging >= 21.3, < 24.3
19
19
  pathspec >= 0.8.0
20
- # https://github.com/PrefectHQ/prefect/issues/11619
21
- pendulum < 3.0; python_version < '3.12'
22
- pendulum >= 3.0.0, <4; python_version >= '3.12'
23
- # the version constraints for pydantic are merged with those from fastapi 0.103.2
24
- pydantic[email]>=1.10.0,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0
20
+ pendulum >= 3.0.0, <4
21
+ prometheus-client >= 0.20.0
22
+ pydantic >= 2.7, < 3.0.0
25
23
  pydantic_core >= 2.12.0, < 3.0.0
24
+ pydantic_extra_types >= 2.8.2, < 3.0.0
25
+ pydantic_settings
26
26
  python_dateutil >= 2.8.2, < 3.0.0
27
27
  python-slugify >= 5.0, < 9.0
28
28
  pyyaml >= 5.4.1, < 7.0.0
@@ -33,9 +33,5 @@ sniffio >=1.3.0, < 2.0.0
33
33
  toml >= 0.10.0
34
34
  typing_extensions >= 4.5.0, < 5.0.0
35
35
  ujson >= 5.8.0, < 6.0.0
36
- uvicorn >= 0.14.0, !=0.29.0
37
- websockets >= 10.4, < 14.0
38
-
39
- # additional dependencies of starlette, which we're currently vendoring
40
- itsdangerous
41
- python-multipart>=0.0.7
36
+ uvicorn >=0.14.0, !=0.29.0
37
+ websockets >= 10.4, < 14.0
@@ -1,34 +1,27 @@
1
1
  ruff
2
2
  cairosvg
3
3
  codespell>=2.2.6
4
- # Pin IPython to 8.12 when building on Python 3.8
5
- # https://github.com/ipython/ipython/blob/main/README.rst
6
- ipython == 8.12.*; python_version == '3.8'
7
- ipython; python_version > '3.8'
4
+ ipython
8
5
  jinja2
9
- mkdocs
10
- mkdocs-gen-files
11
- mkdocs-material
12
- mkdocstrings-python
13
- mike
14
- mock; python_version < '3.8'
15
6
  moto >= 5
16
7
  mypy >= 1.9.0
17
8
  numpy
18
9
  pillow
19
10
  pre-commit
20
11
  pluggy >= 1.4.0
21
- pytest > 7, < 9
12
+ pytest > 7, < 9
22
13
  pytest-asyncio >= 0.18.2, != 0.22.0, < 0.23.0 # Cannot override event loop in 0.23.0. See https://github.com/pytest-dev/pytest-asyncio/issues/706 for more details.
23
- pytest-cov
24
14
  pytest-benchmark
15
+ pytest-codspeed
16
+ pytest-cov
25
17
  pytest-env
26
18
  pytest-flakefinder
27
19
  pytest-timeout
28
- pytest-xdist < 3.4.0 # 3.5.0 introduces some flakiness. Need to investigate and resolve.
29
- pytkdocs >= 0.14.2
20
+ pytest-xdist >= 3.6.1
30
21
  pyyaml
31
- setuptools != 60.9.0; python_version < '3.8'
22
+ redis>=5.0.1
23
+ setuptools
24
+ vale
32
25
  vermin
33
26
  virtualenv
34
27
  watchfiles
@@ -37,3 +30,9 @@ respx
37
30
  # type stubs
38
31
  types-cachetools
39
32
  types-PyYAML
33
+
34
+ # documentation
35
+ mkdocs
36
+ mkdocs-material
37
+ mkdocstrings[python]
38
+ mkdocs-gen-files
@@ -2,7 +2,7 @@
2
2
 
3
3
  aiosqlite >= 0.17.0, < 1.0.0
4
4
  alembic >= 1.7.5, < 2.0.0
5
- apprise >= 1.8.0, < 2.0.0
5
+ apprise >= 1.1.0, < 2.0.0
6
6
  asyncpg >= 0.23, < 1.0.0
7
7
  click >= 8.0, < 8.2
8
8
  cryptography >= 36.0.1
@@ -12,8 +12,7 @@ graphviz >= 0.20.1
12
12
  jinja2 >= 3.0.0, < 4.0.0
13
13
  jinja2-humanize-extension >= 0.4.0
14
14
  humanize >= 4.9.0, < 5.0.0
15
- kubernetes >= 24.2.0, < 30.0.0
16
15
  pytz >= 2021.1, < 2025
17
16
  readchar >= 4.0.0, < 5.0.0
18
- sqlalchemy[asyncio] >= 1.4.22, != 1.4.33, < 3.0.0
17
+ sqlalchemy[asyncio] >= 2.0, < 3.0.0
19
18
  typer >= 0.12.0, != 0.12.2, < 0.13.0
@@ -1,4 +1,5 @@
1
1
  [tool:pytest]
2
+ testpaths = tests
2
3
  addopts = -rfEs
3
4
  norecursedirs = *.egg-info .git .mypy_cache node_modules .pytest_cache .vscode
4
5
  python_files =
@@ -18,15 +19,9 @@ asyncio_mode = auto
18
19
  timeout = 90
19
20
  filterwarnings =
20
21
  error
22
+
21
23
  ignore::DeprecationWarning:tornado.platform.asyncio.*
22
24
  ignore::DeprecationWarning:tornado.ioloop
23
- ignore:Support for class-based `config` is deprecated
24
- ignore:The `__fields__` attribute is deprecated
25
- ignore:The private method `_iter` will be removed
26
- ignore:The `__fields_set__` attribute is deprecated, use `model_fields_set` instead
27
- ignore:`__get_validators__` is deprecated and will be removed, use `__get_pydantic_core_schema__`
28
- ignore:The `dict` method is deprecated; use `model_dump` instead
29
- ignore:The `schema` method is deprecated; use `model_json_schema` instead
30
25
  ignore:Default value default=
31
26
  ignore:Implicitly cleaning up:ResourceWarning
32
27
  ignore::ResourceWarning:distributed.diskutils
@@ -40,7 +35,6 @@ filterwarnings =
40
35
  ignore:the imp module is deprecated:DeprecationWarning
41
36
  ignore:distutils Version classes are deprecated:DeprecationWarning
42
37
  ignore:The distutils package is deprecated:DeprecationWarning
43
- ignore:Use setlocale:DeprecationWarning
44
38
  ignore:Skipped unsupported reflection of expression-based index:sqlalchemy.exc.SAWarning
45
39
  ignore:The --rsyncdir command line argument and rsyncdirs config variable are deprecated.:DeprecationWarning
46
40
  ignore:Prefect will drop support for Python 3.7:FutureWarning
@@ -52,7 +46,6 @@ filterwarnings =
52
46
  ignore::ResourceWarning
53
47
  ignore::pytest.PytestUnraisableExceptionWarning
54
48
  ignore::pluggy.PluggyTeardownRaisedWarning
55
- ignore::prefect._internal.compatibility.deprecated.PrefectDeprecationWarning
56
49
 
57
50
  [mypy]
58
51
  plugins =
@@ -68,7 +61,7 @@ VCS = git
68
61
  style = pep440
69
62
  versionfile_source = src/prefect/_version.py
70
63
  versionfile_build = prefect/_version.py
71
- version_regex = ^(\d+\.\d+\.\d+)$
64
+ version_regex = ^(\d+\.\d+\.\d+(?:[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)*)?)$
72
65
  tag_prefix =
73
66
  parentdir_prefix =
74
67
 
@@ -89,8 +82,8 @@ backports =
89
82
  format = parsable
90
83
  eval_annotations = yes
91
84
  only_show_violations = yes
92
- targets = 3.8-
93
- exclusion_regex = ^src/prefect/_vendor/.*$|^src/prefect/utilities/compat\.py$
85
+ targets = 3.9-
86
+ exclusion_regex = ^src/prefect/_vendor/.*$|^src/prefect/utilities/compat\.py$|^tests/workers/test_process_worker.py$|^tests/test_background_tasks.py$|^src/integrations/.*/tests/.*$
94
87
 
95
88
  [egg_info]
96
89
  tag_build =
@@ -15,7 +15,7 @@ setup(
15
15
  author_email="help@prefect.io",
16
16
  url="https://www.prefect.io",
17
17
  project_urls={
18
- "Changelog": "https://github.com/PrefectHQ/prefect/blob/main/RELEASE-NOTES.md",
18
+ "Changelog": "https://github.com/PrefectHQ/prefect/releases",
19
19
  "Documentation": "https://docs.prefect.io",
20
20
  "Source": "https://github.com/PrefectHQ/prefect",
21
21
  "Tracker": "https://github.com/PrefectHQ/prefect/issues",
@@ -29,7 +29,7 @@ setup(
29
29
  package_dir={"": "src"},
30
30
  include_package_data=True,
31
31
  # Requirements
32
- python_requires=">=3.8",
32
+ python_requires=">=3.9",
33
33
  install_requires=install_requires,
34
34
  extras_require={"notifications": ["apprise>=1.1.0, <2.0.0"]},
35
35
  classifiers=[
@@ -38,10 +38,10 @@ setup(
38
38
  "Intended Audience :: System Administrators",
39
39
  "License :: OSI Approved :: Apache Software License",
40
40
  "Programming Language :: Python :: 3 :: Only",
41
- "Programming Language :: Python :: 3.8",
42
41
  "Programming Language :: Python :: 3.9",
43
42
  "Programming Language :: Python :: 3.10",
44
43
  "Programming Language :: Python :: 3.11",
44
+ "Programming Language :: Python :: 3.12",
45
45
  "Topic :: Software Development :: Libraries",
46
46
  ],
47
47
  )
@@ -0,0 +1,118 @@
1
+ # isort: skip_file
2
+
3
+ # Setup version and path constants
4
+
5
+ from . import _version
6
+ import importlib
7
+ import pathlib
8
+ from typing import TYPE_CHECKING, Any
9
+
10
+ __version_info__ = _version.get_versions()
11
+ __version__ = __version_info__["version"]
12
+
13
+ # The absolute path to this module
14
+ __module_path__ = pathlib.Path(__file__).parent
15
+ # The absolute path to the root of the repository, only valid for use during development
16
+ __development_base_path__ = __module_path__.parents[1]
17
+
18
+ # The absolute path to the built UI within the Python module, used by
19
+ # `prefect server start` to serve a dynamic build of the UI
20
+ __ui_static_subpath__ = __module_path__ / "server" / "ui_build"
21
+
22
+ # The absolute path to the built UI within the Python module
23
+ __ui_static_path__ = __module_path__ / "server" / "ui"
24
+
25
+ del _version, pathlib
26
+
27
+ if TYPE_CHECKING:
28
+ from .main import (
29
+ allow_failure,
30
+ flow,
31
+ Flow,
32
+ get_client,
33
+ get_run_logger,
34
+ State,
35
+ tags,
36
+ task,
37
+ Task,
38
+ Transaction,
39
+ unmapped,
40
+ serve,
41
+ deploy,
42
+ pause_flow_run,
43
+ resume_flow_run,
44
+ suspend_flow_run,
45
+ )
46
+
47
+ _slots: dict[str, Any] = {
48
+ "__version_info__": __version_info__,
49
+ "__version__": __version__,
50
+ "__module_path__": __module_path__,
51
+ "__development_base_path__": __development_base_path__,
52
+ "__ui_static_subpath__": __ui_static_subpath__,
53
+ "__ui_static_path__": __ui_static_path__,
54
+ }
55
+
56
+ _public_api: dict[str, tuple[str, str]] = {
57
+ "allow_failure": (__spec__.parent, ".main"),
58
+ "flow": (__spec__.parent, ".main"),
59
+ "Flow": (__spec__.parent, ".main"),
60
+ "get_client": (__spec__.parent, ".main"),
61
+ "get_run_logger": (__spec__.parent, ".main"),
62
+ "State": (__spec__.parent, ".main"),
63
+ "tags": (__spec__.parent, ".main"),
64
+ "task": (__spec__.parent, ".main"),
65
+ "Task": (__spec__.parent, ".main"),
66
+ "Transaction": (__spec__.parent, ".main"),
67
+ "unmapped": (__spec__.parent, ".main"),
68
+ "serve": (__spec__.parent, ".main"),
69
+ "deploy": (__spec__.parent, ".main"),
70
+ "pause_flow_run": (__spec__.parent, ".main"),
71
+ "resume_flow_run": (__spec__.parent, ".main"),
72
+ "suspend_flow_run": (__spec__.parent, ".main"),
73
+ }
74
+
75
+ # Declare API for type-checkers
76
+ __all__ = [
77
+ "allow_failure",
78
+ "flow",
79
+ "Flow",
80
+ "get_client",
81
+ "get_run_logger",
82
+ "State",
83
+ "tags",
84
+ "task",
85
+ "Task",
86
+ "Transaction",
87
+ "unmapped",
88
+ "serve",
89
+ "deploy",
90
+ "pause_flow_run",
91
+ "resume_flow_run",
92
+ "suspend_flow_run",
93
+ "__version_info__",
94
+ "__version__",
95
+ "__module_path__",
96
+ "__development_base_path__",
97
+ "__ui_static_subpath__",
98
+ "__ui_static_path__",
99
+ ]
100
+
101
+
102
+ def __getattr__(attr_name: str) -> object:
103
+ if attr_name in _slots:
104
+ return _slots[attr_name]
105
+
106
+ dynamic_attr = _public_api.get(attr_name)
107
+ if dynamic_attr is None:
108
+ return importlib.import_module(f".{attr_name}", package=__name__)
109
+
110
+ package, module_name = dynamic_attr
111
+
112
+ from importlib import import_module
113
+
114
+ if module_name == "__module__":
115
+ return import_module(f".{attr_name}", package=package)
116
+ else:
117
+ module = import_module(module_name, package=package)
118
+ return getattr(module, attr_name)
@@ -9,21 +9,14 @@ Deprecated items require a start or end date. If a start date is given, the end
9
9
  will be calculated 6 months later. Start and end dates are always in the format MMM YYYY
10
10
  e.g. Jan 2023.
11
11
  """
12
+
12
13
  import functools
13
14
  import sys
14
15
  import warnings
15
- from typing import Any, Callable, Dict, List, Optional, Type, TypeVar, Union
16
+ from typing import Any, Callable, List, Optional, Type, TypeVar
16
17
 
17
18
  import pendulum
18
-
19
- from prefect._internal.pydantic import HAS_PYDANTIC_V2
20
-
21
- if HAS_PYDANTIC_V2:
22
- from pydantic.v1 import BaseModel, Field, root_validator
23
- from pydantic.v1.schema import default_ref_template
24
- else:
25
- from pydantic import BaseModel, Field, root_validator
26
- from pydantic.schema import default_ref_template
19
+ from pydantic import BaseModel
27
20
 
28
21
  from prefect.utilities.callables import get_call_parameters
29
22
  from prefect.utilities.importtools import (
@@ -237,9 +230,10 @@ def deprecated_field(
237
230
 
238
231
  cls_init(__pydantic_self__, **data)
239
232
 
240
- field = __pydantic_self__.__fields__.get(name)
233
+ field = __pydantic_self__.model_fields.get(name)
241
234
  if field is not None:
242
- field.field_info.extra["deprecated"] = True
235
+ field.json_schema_extra = field.json_schema_extra or {}
236
+ field.json_schema_extra["deprecated"] = True
243
237
 
244
238
  # Patch the model's init method
245
239
  model_cls.__init__ = __init__
@@ -278,106 +272,3 @@ def register_renamed_module(old_name: str, new_name: str, start_date: str):
278
272
  DEPRECATED_MODULE_ALIASES.append(
279
273
  AliasedModuleDefinition(old_name, new_name, callback)
280
274
  )
281
-
282
-
283
- class DeprecatedInfraOverridesField(BaseModel):
284
- """
285
- A model mixin that handles the deprecated `infra_overrides` field.
286
-
287
- The `infra_overrides` field has been renamed to `job_variables`. This mixin maintains
288
- backwards compatibility with users of the `infra_overrides` field while presenting
289
- `job_variables` as the user-facing field.
290
-
291
- When we remove support for `infra_overrides`, we can remove this class as a parent of
292
- all schemas that use it, leaving them with only the `job_variables` field.
293
- """
294
-
295
- infra_overrides: Optional[Dict[str, Any]] = Field(
296
- default_factory=dict,
297
- description="Deprecated field. Use `job_variables` instead.",
298
- )
299
-
300
- @root_validator(pre=True)
301
- def _job_variables_from_infra_overrides(
302
- cls, values: Dict[str, Any]
303
- ) -> Dict[str, Any]:
304
- """
305
- Validate that only one of `infra_overrides` or `job_variables` is used
306
- and keep them in sync during init.
307
- """
308
- job_variables = values.get("job_variables")
309
- infra_overrides = values.get("infra_overrides")
310
-
311
- if job_variables is not None and infra_overrides is not None:
312
- if job_variables != infra_overrides:
313
- raise ValueError(
314
- "The `infra_overrides` field has been renamed to `job_variables`."
315
- "Use one of these fields, but not both."
316
- )
317
- return values
318
- elif job_variables is not None and infra_overrides is None:
319
- values["infra_overrides"] = job_variables
320
- elif job_variables is None and infra_overrides is not None:
321
- values["job_variables"] = infra_overrides
322
- return values
323
-
324
- def __setattr__(self, key: str, value: Any) -> None:
325
- """
326
- Override the default __setattr__ to ensure that setting `infra_overrides` or
327
- `job_variables` will update both fields.
328
- """
329
- if key == "infra_overrides" or key == "job_variables":
330
- updates = {"infra_overrides": value, "job_variables": value}
331
- self.__dict__.update(updates)
332
- return
333
- super().__setattr__(key, value)
334
-
335
- def dict(self, **kwargs) -> Dict[str, Any]:
336
- """
337
- Override the default dict method to ensure only `infra_overrides` is serialized.
338
- This preserves backwards compatibility for newer clients talking to older servers.
339
- """
340
- exclude: Union[set, Dict[str, Any]] = kwargs.pop("exclude", set())
341
- exclude_type = type(exclude)
342
-
343
- if exclude_type is set:
344
- exclude.add("job_variables")
345
- elif exclude_type is dict:
346
- exclude["job_variables"] = True
347
- else:
348
- exclude = {"job_variables"}
349
- kwargs["exclude"] = exclude
350
-
351
- return super().dict(**kwargs)
352
-
353
- @classmethod
354
- def schema(
355
- cls, by_alias: bool = True, ref_template: str = default_ref_template
356
- ) -> Dict[str, Any]:
357
- """
358
- Don't use the mixin docstring as the description if this class is missing a
359
- docstring.
360
- """
361
- schema = super().schema(by_alias=by_alias, ref_template=ref_template)
362
-
363
- if not cls.__doc__:
364
- schema.pop("description", None)
365
-
366
- return schema
367
-
368
-
369
- def handle_deprecated_infra_overrides_parameter(
370
- job_variables: Dict[str, Any], infra_overrides: Dict[str, Any]
371
- ) -> Optional[Dict[str, Any]]:
372
- if infra_overrides is not None and job_variables is not None:
373
- raise RuntimeError(
374
- "The `infra_overrides` argument has been renamed to `job_variables`."
375
- "Use one or the other, but not both."
376
- )
377
- elif infra_overrides is not None and job_variables is None:
378
- jv = infra_overrides
379
- elif job_variables is not None and infra_overrides is None:
380
- jv = job_variables
381
- else:
382
- jv = None
383
- return jv