prefect-client 2.20.2__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 (385) hide show
  1. {prefect_client-2.20.2/src/prefect_client.egg-info → prefect-client-3.0.0}/PKG-INFO +21 -55
  2. {prefect_client-2.20.2 → prefect-client-3.0.0}/README.md +12 -12
  3. {prefect_client-2.20.2 → prefect-client-3.0.0}/requirements-client.txt +11 -15
  4. prefect-client-3.0.0/requirements-dev.txt +38 -0
  5. {prefect_client-2.20.2 → prefect-client-3.0.0}/requirements.txt +6 -8
  6. {prefect_client-2.20.2 → prefect-client-3.0.0}/setup.cfg +5 -12
  7. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/_internal/compatibility/deprecated.py +6 -115
  10. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/__init__.py +2 -2
  13. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/api.py +1 -35
  14. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/calls.py +0 -6
  15. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/cancellation.py +0 -3
  16. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/event_loop.py +0 -20
  17. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/inspection.py +3 -3
  18. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/primitives.py +1 -0
  19. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/services.py +23 -0
  20. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/concurrency/threads.py +35 -0
  21. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/annotations/pendulum.py +2 -2
  24. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/v1_schema.py +21 -22
  25. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/v2_schema.py +0 -2
  26. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/v2_validated_func.py +18 -23
  27. {prefect_client-2.20.2 → 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.2 → 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.2 → prefect-client-3.0.0}/src/prefect/artifacts.py +173 -14
  34. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/automations.py +39 -4
  35. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/blocks/abstract.py +1 -1
  36. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/blocks/core.py +423 -164
  37. prefect-client-3.0.0/src/prefect/blocks/fields.py +3 -0
  38. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/blocks/system.py +67 -20
  41. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/client/__init__.py +4 -0
  44. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/base.py +33 -27
  45. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/cloud.py +65 -20
  46. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/collections.py +1 -1
  47. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/orchestration.py +667 -440
  48. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/actions.py +115 -100
  49. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/filters.py +46 -52
  50. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/objects.py +228 -178
  51. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/responses.py +18 -36
  52. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/schedules.py +55 -36
  53. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/sorting.py +2 -0
  54. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/client/utilities.py +9 -6
  57. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/concurrency/events.py +2 -2
  60. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/concurrency/services.py +46 -16
  61. {prefect_client-2.20.2 → 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.2 → 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.2 → 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.2 → 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.2 → prefect-client-3.0.0}/src/prefect/deployments/steps/__init__.py +0 -1
  75. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/deployments/steps/core.py +7 -0
  76. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/deployments/steps/pull.py +15 -21
  77. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/events/actions.py +17 -23
  82. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/cli/automations.py +20 -7
  83. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/clients.py +142 -80
  84. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/filters.py +14 -18
  85. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/related.py +74 -75
  86. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/events/schemas/events.py +46 -65
  89. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/schemas/labelling.py +10 -14
  90. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/utilities.py +4 -5
  91. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/worker.py +23 -8
  92. {prefect_client-2.20.2 → 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.2 → 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.2 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/__init__.py +5 -3
  101. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/cloud_run.py +13 -8
  102. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/container_instance.py +14 -9
  103. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/ecs.py +10 -8
  104. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/infrastructure/provisioners/modal.py +8 -5
  105. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/input/__init__.py +4 -0
  106. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/input/actions.py +2 -4
  107. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/input/run_input.py +9 -9
  108. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/formatters.py +2 -4
  109. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/handlers.py +9 -14
  110. {prefect_client-2.20.2 → 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.2 → 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.2 → prefect-client-3.0.0}/src/prefect/runner/runner.py +124 -51
  121. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runner/server.py +32 -34
  122. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runner/storage.py +3 -12
  123. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runner/submit.py +2 -10
  124. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runner/utils.py +2 -2
  125. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runtime/__init__.py +1 -0
  126. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runtime/deployment.py +1 -0
  127. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runtime/flow_run.py +40 -5
  128. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runtime/task_run.py +1 -0
  129. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/serializers.py +28 -39
  130. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +5 -14
  131. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/settings.py +209 -332
  132. {prefect_client-2.20.2 → 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.2 → 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.2 → prefect-client-3.0.0}/src/prefect/utilities/annotations.py +4 -3
  142. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/asyncutils.py +227 -148
  143. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/callables.py +138 -48
  144. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/collections.py +134 -86
  145. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/dispatch.py +27 -14
  146. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/dockerutils.py +11 -4
  147. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/engine.py +186 -32
  148. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/filesystem.py +4 -5
  149. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/importtools.py +26 -27
  150. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/pydantic.py +128 -38
  151. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/schema_tools/hydration.py +18 -1
  152. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/schema_tools/validation.py +30 -0
  153. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/services.py +35 -9
  154. {prefect_client-2.20.2 → 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.2 → 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.2 → prefect-client-3.0.0}/src/prefect/workers/__init__.py +0 -1
  160. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect/workers/server.py +29 -11
  165. {prefect_client-2.20.2 → 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.2 → prefect-client-3.0.0}/src/prefect_client.egg-info/requires.txt +10 -14
  169. prefect_client-2.20.2/requirements-dev.txt +0 -41
  170. prefect_client-2.20.2/src/prefect/__init__.py +0 -154
  171. prefect_client-2.20.2/src/prefect/_internal/pydantic/__init__.py +0 -46
  172. prefect_client-2.20.2/src/prefect/_internal/pydantic/_base_model.py +0 -51
  173. prefect_client-2.20.2/src/prefect/_internal/pydantic/_compat.py +0 -82
  174. prefect_client-2.20.2/src/prefect/_internal/pydantic/_flags.py +0 -20
  175. prefect_client-2.20.2/src/prefect/_internal/pydantic/_types.py +0 -8
  176. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -72
  177. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -150
  178. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -56
  179. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -55
  180. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -136
  181. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -112
  182. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -50
  183. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -29
  184. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -82
  185. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -80
  186. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -75
  187. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -68
  188. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -87
  189. prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -71
  190. prefect_client-2.20.2/src/prefect/_internal/schemas/bases.py +0 -254
  191. prefect_client-2.20.2/src/prefect/_internal/schemas/fields.py +0 -70
  192. prefect_client-2.20.2/src/prefect/_vendor/fastapi/__init__.py +0 -25
  193. prefect_client-2.20.2/src/prefect/_vendor/fastapi/applications.py +0 -946
  194. prefect_client-2.20.2/src/prefect/_vendor/fastapi/background.py +0 -3
  195. prefect_client-2.20.2/src/prefect/_vendor/fastapi/concurrency.py +0 -44
  196. prefect_client-2.20.2/src/prefect/_vendor/fastapi/datastructures.py +0 -58
  197. prefect_client-2.20.2/src/prefect/_vendor/fastapi/dependencies/models.py +0 -64
  198. prefect_client-2.20.2/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -877
  199. prefect_client-2.20.2/src/prefect/_vendor/fastapi/encoders.py +0 -177
  200. prefect_client-2.20.2/src/prefect/_vendor/fastapi/exception_handlers.py +0 -40
  201. prefect_client-2.20.2/src/prefect/_vendor/fastapi/exceptions.py +0 -46
  202. prefect_client-2.20.2/src/prefect/_vendor/fastapi/logger.py +0 -3
  203. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -1
  204. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -25
  205. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/cors.py +0 -3
  206. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -3
  207. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -3
  208. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -3
  209. prefect_client-2.20.2/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -3
  210. prefect_client-2.20.2/src/prefect/_vendor/fastapi/openapi/constants.py +0 -2
  211. prefect_client-2.20.2/src/prefect/_vendor/fastapi/openapi/docs.py +0 -203
  212. prefect_client-2.20.2/src/prefect/_vendor/fastapi/openapi/models.py +0 -480
  213. prefect_client-2.20.2/src/prefect/_vendor/fastapi/openapi/utils.py +0 -485
  214. prefect_client-2.20.2/src/prefect/_vendor/fastapi/param_functions.py +0 -340
  215. prefect_client-2.20.2/src/prefect/_vendor/fastapi/params.py +0 -453
  216. prefect_client-2.20.2/src/prefect/_vendor/fastapi/requests.py +0 -4
  217. prefect_client-2.20.2/src/prefect/_vendor/fastapi/responses.py +0 -40
  218. prefect_client-2.20.2/src/prefect/_vendor/fastapi/routing.py +0 -1331
  219. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/__init__.py +0 -15
  220. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/api_key.py +0 -98
  221. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/base.py +0 -6
  222. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/http.py +0 -172
  223. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/oauth2.py +0 -227
  224. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -34
  225. prefect_client-2.20.2/src/prefect/_vendor/fastapi/security/utils.py +0 -10
  226. prefect_client-2.20.2/src/prefect/_vendor/fastapi/staticfiles.py +0 -1
  227. prefect_client-2.20.2/src/prefect/_vendor/fastapi/templating.py +0 -3
  228. prefect_client-2.20.2/src/prefect/_vendor/fastapi/testclient.py +0 -1
  229. prefect_client-2.20.2/src/prefect/_vendor/fastapi/types.py +0 -3
  230. prefect_client-2.20.2/src/prefect/_vendor/fastapi/utils.py +0 -235
  231. prefect_client-2.20.2/src/prefect/_vendor/fastapi/websockets.py +0 -7
  232. prefect_client-2.20.2/src/prefect/_vendor/starlette/__init__.py +0 -1
  233. prefect_client-2.20.2/src/prefect/_vendor/starlette/_compat.py +0 -28
  234. prefect_client-2.20.2/src/prefect/_vendor/starlette/_exception_handler.py +0 -80
  235. prefect_client-2.20.2/src/prefect/_vendor/starlette/_utils.py +0 -88
  236. prefect_client-2.20.2/src/prefect/_vendor/starlette/applications.py +0 -261
  237. prefect_client-2.20.2/src/prefect/_vendor/starlette/authentication.py +0 -159
  238. prefect_client-2.20.2/src/prefect/_vendor/starlette/background.py +0 -43
  239. prefect_client-2.20.2/src/prefect/_vendor/starlette/concurrency.py +0 -59
  240. prefect_client-2.20.2/src/prefect/_vendor/starlette/config.py +0 -151
  241. prefect_client-2.20.2/src/prefect/_vendor/starlette/convertors.py +0 -87
  242. prefect_client-2.20.2/src/prefect/_vendor/starlette/datastructures.py +0 -707
  243. prefect_client-2.20.2/src/prefect/_vendor/starlette/endpoints.py +0 -130
  244. prefect_client-2.20.2/src/prefect/_vendor/starlette/exceptions.py +0 -60
  245. prefect_client-2.20.2/src/prefect/_vendor/starlette/formparsers.py +0 -276
  246. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/__init__.py +0 -17
  247. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/authentication.py +0 -52
  248. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/base.py +0 -220
  249. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/cors.py +0 -176
  250. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/errors.py +0 -265
  251. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -74
  252. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/gzip.py +0 -113
  253. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -19
  254. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/sessions.py +0 -82
  255. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -64
  256. prefect_client-2.20.2/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -147
  257. prefect_client-2.20.2/src/prefect/_vendor/starlette/py.typed +0 -0
  258. prefect_client-2.20.2/src/prefect/_vendor/starlette/requests.py +0 -328
  259. prefect_client-2.20.2/src/prefect/_vendor/starlette/responses.py +0 -347
  260. prefect_client-2.20.2/src/prefect/_vendor/starlette/routing.py +0 -933
  261. prefect_client-2.20.2/src/prefect/_vendor/starlette/schemas.py +0 -154
  262. prefect_client-2.20.2/src/prefect/_vendor/starlette/staticfiles.py +0 -248
  263. prefect_client-2.20.2/src/prefect/_vendor/starlette/status.py +0 -199
  264. prefect_client-2.20.2/src/prefect/_vendor/starlette/templating.py +0 -231
  265. prefect_client-2.20.2/src/prefect/_vendor/starlette/testclient.py +0 -804
  266. prefect_client-2.20.2/src/prefect/_vendor/starlette/types.py +0 -30
  267. prefect_client-2.20.2/src/prefect/_vendor/starlette/websockets.py +0 -193
  268. prefect_client-2.20.2/src/prefect/agent.py +0 -698
  269. prefect_client-2.20.2/src/prefect/blocks/fields.py +0 -58
  270. prefect_client-2.20.2/src/prefect/blocks/kubernetes.py +0 -119
  271. prefect_client-2.20.2/src/prefect/deployments/__init__.py +0 -18
  272. prefect_client-2.20.2/src/prefect/deployments/deployments.py +0 -1049
  273. prefect_client-2.20.2/src/prefect/deployments/schedules.py +0 -50
  274. prefect_client-2.20.2/src/prefect/deprecated/data_documents.py +0 -350
  275. prefect_client-2.20.2/src/prefect/deprecated/packaging/__init__.py +0 -12
  276. prefect_client-2.20.2/src/prefect/deprecated/packaging/base.py +0 -96
  277. prefect_client-2.20.2/src/prefect/deprecated/packaging/docker.py +0 -146
  278. prefect_client-2.20.2/src/prefect/deprecated/packaging/file.py +0 -92
  279. prefect_client-2.20.2/src/prefect/deprecated/packaging/orion.py +0 -80
  280. prefect_client-2.20.2/src/prefect/deprecated/packaging/serializers.py +0 -171
  281. prefect_client-2.20.2/src/prefect/engine.py +0 -2526
  282. prefect_client-2.20.2/src/prefect/events/cli/__init__.py +0 -0
  283. prefect_client-2.20.2/src/prefect/events/instrument.py +0 -135
  284. prefect_client-2.20.2/src/prefect/events/schemas/__init__.py +0 -5
  285. prefect_client-2.20.2/src/prefect/events/schemas/deployment_triggers.py +0 -295
  286. prefect_client-2.20.2/src/prefect/filesystems.py +0 -1019
  287. prefect_client-2.20.2/src/prefect/flow_runs.py +0 -90
  288. prefect_client-2.20.2/src/prefect/futures.py +0 -429
  289. prefect_client-2.20.2/src/prefect/infrastructure/__init__.py +0 -27
  290. prefect_client-2.20.2/src/prefect/infrastructure/base.py +0 -323
  291. prefect_client-2.20.2/src/prefect/infrastructure/container.py +0 -824
  292. prefect_client-2.20.2/src/prefect/infrastructure/kubernetes.py +0 -920
  293. prefect_client-2.20.2/src/prefect/infrastructure/process.py +0 -289
  294. prefect_client-2.20.2/src/prefect/manifests.py +0 -20
  295. prefect_client-2.20.2/src/prefect/new_flow_engine.py +0 -449
  296. prefect_client-2.20.2/src/prefect/new_task_engine.py +0 -423
  297. prefect_client-2.20.2/src/prefect/profiles.toml +0 -3
  298. prefect_client-2.20.2/src/prefect/py.typed +0 -0
  299. prefect_client-2.20.2/src/prefect/pydantic/__init__.py +0 -76
  300. prefect_client-2.20.2/src/prefect/pydantic/main.py +0 -39
  301. prefect_client-2.20.2/src/prefect/results.py +0 -769
  302. prefect_client-2.20.2/src/prefect/software/__init__.py +0 -2
  303. prefect_client-2.20.2/src/prefect/software/base.py +0 -50
  304. prefect_client-2.20.2/src/prefect/software/conda.py +0 -199
  305. prefect_client-2.20.2/src/prefect/software/pip.py +0 -122
  306. prefect_client-2.20.2/src/prefect/software/python.py +0 -52
  307. prefect_client-2.20.2/src/prefect/task_engine.py +0 -76
  308. prefect_client-2.20.2/src/prefect/task_runners.py +0 -365
  309. prefect_client-2.20.2/src/prefect/task_server.py +0 -322
  310. prefect_client-2.20.2/src/prefect/types/__init__.py +0 -112
  311. prefect_client-2.20.2/src/prefect/utilities/__init__.py +0 -0
  312. prefect_client-2.20.2/src/prefect/utilities/timeout.py +0 -34
  313. prefect_client-2.20.2/src/prefect/variables.py +0 -114
  314. prefect_client-2.20.2/src/prefect/workers/block.py +0 -227
  315. prefect_client-2.20.2/src/prefect/workers/process.py +0 -270
  316. prefect_client-2.20.2/src/prefect_client.egg-info/SOURCES.txt +0 -329
  317. prefect_client-2.20.2/tests/test_artifacts.py +0 -484
  318. prefect_client-2.20.2/tests/test_automations.py +0 -186
  319. prefect_client-2.20.2/tests/test_background_tasks.py +0 -401
  320. prefect_client-2.20.2/tests/test_context.py +0 -396
  321. prefect_client-2.20.2/tests/test_deployments.py +0 -1632
  322. prefect_client-2.20.2/tests/test_engine.py +0 -3417
  323. prefect_client-2.20.2/tests/test_exceptions.py +0 -139
  324. prefect_client-2.20.2/tests/test_filesystems.py +0 -782
  325. prefect_client-2.20.2/tests/test_flow_runs.py +0 -40
  326. prefect_client-2.20.2/tests/test_flows.py +0 -4416
  327. prefect_client-2.20.2/tests/test_flows_compat.py +0 -30
  328. prefect_client-2.20.2/tests/test_futures.py +0 -215
  329. prefect_client-2.20.2/tests/test_highlighters.py +0 -69
  330. prefect_client-2.20.2/tests/test_import_interceptor.py +0 -7
  331. prefect_client-2.20.2/tests/test_log_prints.py +0 -240
  332. prefect_client-2.20.2/tests/test_logging.py +0 -1586
  333. prefect_client-2.20.2/tests/test_new_flow_engine.py +0 -866
  334. prefect_client-2.20.2/tests/test_new_task_engine.py +0 -868
  335. prefect_client-2.20.2/tests/test_plugins.py +0 -259
  336. prefect_client-2.20.2/tests/test_serializers.py +0 -368
  337. prefect_client-2.20.2/tests/test_settings.py +0 -1062
  338. prefect_client-2.20.2/tests/test_states.py +0 -374
  339. prefect_client-2.20.2/tests/test_task_runners.py +0 -34
  340. prefect_client-2.20.2/tests/test_task_server.py +0 -551
  341. prefect_client-2.20.2/tests/test_tasks.py +0 -4304
  342. prefect_client-2.20.2/tests/test_variables.py +0 -94
  343. {prefect_client-2.20.2 → prefect-client-3.0.0}/LICENSE +0 -0
  344. {prefect_client-2.20.2 → prefect-client-3.0.0}/MANIFEST.in +0 -0
  345. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/.prefectignore +0 -0
  346. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/__init__.py +0 -0
  347. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/_logging.py +0 -0
  348. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/compatibility/__init__.py +0 -0
  349. /prefect_client-2.20.2/src/prefect_client.egg-info/dependency_links.txt → /prefect-client-3.0.0/src/prefect/_internal/pydantic/__init__.py +0 -0
  350. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  351. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/pydantic/schemas.py +0 -0
  352. {prefect_client-2.20.2/src/prefect/_internal/pydantic/utilities → prefect-client-3.0.0/src/prefect/_internal/schemas}/__init__.py +0 -0
  353. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_internal/schemas/serializers.py +0 -0
  354. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/_version.py +0 -0
  355. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/blocks/__init__.py +0 -0
  356. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/constants.py +0 -0
  357. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/client/schemas/__init__.py +0 -0
  358. {prefect_client-2.20.2/src/prefect/_internal/schemas → prefect-client-3.0.0/src/prefect/client/types}/__init__.py +0 -0
  359. {prefect_client-2.20.2/src/prefect/_vendor → prefect-client-3.0.0/src/prefect/concurrency}/__init__.py +0 -0
  360. {prefect_client-2.20.2/src/prefect/_vendor/fastapi/dependencies → prefect-client-3.0.0/src/prefect/concurrency/v1}/__init__.py +0 -0
  361. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/events/__init__.py +0 -0
  362. {prefect_client-2.20.2/src/prefect/_vendor/fastapi/openapi → prefect-client-3.0.0/src/prefect/events/cli}/__init__.py +0 -0
  363. {prefect_client-2.20.2/src/prefect/concurrency → prefect-client-3.0.0/src/prefect/events/schemas}/__init__.py +0 -0
  364. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/__init__.py +0 -0
  365. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/configuration.py +0 -0
  366. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/filters.py +0 -0
  367. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/highlighters.py +0 -0
  368. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/logging/logging.yml +0 -0
  369. {prefect_client-2.20.2/src/prefect/_vendor/fastapi → prefect-client-3.0.0/src/prefect}/py.typed +0 -0
  370. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/runner/__init__.py +0 -0
  371. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  372. {prefect_client-2.20.2/src/prefect/deprecated → prefect-client-3.0.0/src/prefect/utilities}/__init__.py +0 -0
  373. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/compat.py +0 -0
  374. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/context.py +0 -0
  375. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/hashing.py +0 -0
  376. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/math.py +0 -0
  377. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/names.py +0 -0
  378. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/processutils.py +0 -0
  379. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/render_swagger.py +0 -0
  380. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  381. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/slugify.py +0 -0
  382. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/utilities/text.py +0 -0
  383. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect/workers/utilities.py +0 -0
  384. {prefect_client-2.20.2 → prefect-client-3.0.0}/src/prefect_client.egg-info/top_level.txt +0 -0
  385. {prefect_client-2.20.2 → 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.2
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<0.48.0,>=0.20.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.2.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<13.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
- griffe >= 0.20.0, <0.48.0
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.2.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, < 13.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
@@ -0,0 +1,38 @@
1
+ ruff
2
+ cairosvg
3
+ codespell>=2.2.6
4
+ ipython
5
+ jinja2
6
+ moto >= 5
7
+ mypy >= 1.9.0
8
+ numpy
9
+ pillow
10
+ pre-commit
11
+ pluggy >= 1.4.0
12
+ pytest > 7, < 9
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.
14
+ pytest-benchmark
15
+ pytest-codspeed
16
+ pytest-cov
17
+ pytest-env
18
+ pytest-flakefinder
19
+ pytest-timeout
20
+ pytest-xdist >= 3.6.1
21
+ pyyaml
22
+ redis>=5.0.1
23
+ setuptools
24
+ vale
25
+ vermin
26
+ virtualenv
27
+ watchfiles
28
+ respx
29
+
30
+ # type stubs
31
+ types-cachetools
32
+ types-PyYAML
33
+
34
+ # documentation
35
+ mkdocs
36
+ mkdocs-material
37
+ mkdocstrings[python]
38
+ mkdocs-gen-files
@@ -1,20 +1,18 @@
1
1
  -r requirements-client.txt
2
2
 
3
- aiosqlite >= 0.17.0
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
6
- asyncpg >= 0.23
5
+ apprise >= 1.1.0, < 2.0.0
6
+ asyncpg >= 0.23, < 1.0.0
7
7
  click >= 8.0, < 8.2
8
8
  cryptography >= 36.0.1
9
9
  dateparser >= 1.1.1, < 2.0.0
10
- docker >= 4.0
10
+ docker >= 4.0, < 8.0
11
11
  graphviz >= 0.20.1
12
- griffe >= 0.20.0, <0.48.0
13
12
  jinja2 >= 3.0.0, < 4.0.0
14
13
  jinja2-humanize-extension >= 0.4.0
15
- humanize >= 4.9.0
16
- kubernetes >= 24.2.0, < 30.0.0
14
+ humanize >= 4.9.0, < 5.0.0
17
15
  pytz >= 2021.1, < 2025
18
16
  readchar >= 4.0.0, < 5.0.0
19
- sqlalchemy[asyncio] >= 1.4.22, != 1.4.33, < 3.0.0
17
+ sqlalchemy[asyncio] >= 2.0, < 3.0.0
20
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