prefect-client 2.20.15__tar.gz → 2.20.17__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 (332) hide show
  1. {prefect_client-2.20.15/src/prefect_client.egg-info → prefect_client-2.20.17}/PKG-INFO +14 -2
  2. {prefect_client-2.20.15 → prefect_client-2.20.17}/requirements.txt +1 -1
  3. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/orchestration.py +34 -2
  4. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/objects.py +3 -0
  5. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/settings.py +30 -0
  6. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/tasks.py +4 -0
  7. {prefect_client-2.20.15 → prefect_client-2.20.17/src/prefect_client.egg-info}/PKG-INFO +14 -2
  8. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_deployments.py +10 -5
  9. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_tasks.py +15 -0
  10. {prefect_client-2.20.15 → prefect_client-2.20.17}/LICENSE +0 -0
  11. {prefect_client-2.20.15 → prefect_client-2.20.17}/MANIFEST.in +0 -0
  12. {prefect_client-2.20.15 → prefect_client-2.20.17}/README.md +0 -0
  13. {prefect_client-2.20.15 → prefect_client-2.20.17}/requirements-client.txt +0 -0
  14. {prefect_client-2.20.15 → prefect_client-2.20.17}/requirements-dev.txt +0 -0
  15. {prefect_client-2.20.15 → prefect_client-2.20.17}/setup.cfg +0 -0
  16. {prefect_client-2.20.15 → prefect_client-2.20.17}/setup.py +0 -0
  17. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/.prefectignore +0 -0
  18. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/__init__.py +0 -0
  19. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/__init__.py +0 -0
  20. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/_logging.py +0 -0
  21. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/compatibility/__init__.py +0 -0
  22. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  23. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/compatibility/experimental.py +0 -0
  24. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/__init__.py +0 -0
  25. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/api.py +0 -0
  26. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/calls.py +0 -0
  27. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  28. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  29. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/inspection.py +0 -0
  30. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/primitives.py +0 -0
  31. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/services.py +0 -0
  32. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/threads.py +0 -0
  33. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/concurrency/waiters.py +0 -0
  34. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/integrations.py +0 -0
  35. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/__init__.py +0 -0
  36. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/_base_model.py +0 -0
  37. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/_compat.py +0 -0
  38. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/_flags.py +0 -0
  39. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/_types.py +0 -0
  40. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  41. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
  42. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/schemas.py +0 -0
  43. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
  44. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
  45. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
  46. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
  47. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
  48. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
  49. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
  50. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
  51. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
  52. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
  53. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
  54. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
  55. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
  56. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
  57. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
  58. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  59. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  60. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  61. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/pytz.py +0 -0
  62. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/schemas/__init__.py +0 -0
  63. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/schemas/bases.py +0 -0
  64. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/schemas/fields.py +0 -0
  65. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/schemas/serializers.py +0 -0
  66. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_internal/schemas/validators.py +0 -0
  67. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/__init__.py +0 -0
  68. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/__init__.py +0 -0
  69. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/applications.py +0 -0
  70. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/background.py +0 -0
  71. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
  72. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
  73. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
  74. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
  75. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
  76. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/encoders.py +0 -0
  77. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
  78. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
  79. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/logger.py +0 -0
  80. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
  81. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
  82. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
  83. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
  84. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
  85. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
  86. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
  87. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
  88. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
  89. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
  90. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
  91. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
  92. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
  93. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/params.py +0 -0
  94. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/py.typed +0 -0
  95. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/requests.py +0 -0
  96. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/responses.py +0 -0
  97. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/routing.py +0 -0
  98. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
  99. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
  100. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/base.py +0 -0
  101. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/http.py +0 -0
  102. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
  103. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
  104. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
  105. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
  106. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/templating.py +0 -0
  107. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/testclient.py +0 -0
  108. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/types.py +0 -0
  109. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/utils.py +0 -0
  110. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/fastapi/websockets.py +0 -0
  111. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/__init__.py +0 -0
  112. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/_compat.py +0 -0
  113. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
  114. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/_utils.py +0 -0
  115. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/applications.py +0 -0
  116. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/authentication.py +0 -0
  117. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/background.py +0 -0
  118. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/concurrency.py +0 -0
  119. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/config.py +0 -0
  120. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/convertors.py +0 -0
  121. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/datastructures.py +0 -0
  122. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/endpoints.py +0 -0
  123. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/exceptions.py +0 -0
  124. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/formparsers.py +0 -0
  125. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
  126. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
  127. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
  128. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
  129. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
  130. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
  131. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
  132. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
  133. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
  134. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
  135. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
  136. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/py.typed +0 -0
  137. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/requests.py +0 -0
  138. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/responses.py +0 -0
  139. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/routing.py +0 -0
  140. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/schemas.py +0 -0
  141. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
  142. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/status.py +0 -0
  143. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/templating.py +0 -0
  144. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/testclient.py +0 -0
  145. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/types.py +0 -0
  146. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_vendor/starlette/websockets.py +0 -0
  147. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/_version.py +0 -0
  148. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/agent.py +0 -0
  149. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/artifacts.py +0 -0
  150. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/automations.py +0 -0
  151. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/__init__.py +0 -0
  152. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/abstract.py +0 -0
  153. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/core.py +0 -0
  154. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/fields.py +0 -0
  155. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/kubernetes.py +0 -0
  156. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/notifications.py +0 -0
  157. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/system.py +0 -0
  158. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/blocks/webhook.py +0 -0
  159. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/__init__.py +0 -0
  160. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/base.py +0 -0
  161. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/cloud.py +0 -0
  162. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/collections.py +0 -0
  163. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/constants.py +0 -0
  164. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/__init__.py +0 -0
  165. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/actions.py +0 -0
  166. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/filters.py +0 -0
  167. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/responses.py +0 -0
  168. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/schedules.py +0 -0
  169. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/schemas/sorting.py +0 -0
  170. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/subscriptions.py +0 -0
  171. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/client/utilities.py +0 -0
  172. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/concurrency/__init__.py +0 -0
  173. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/concurrency/asyncio.py +0 -0
  174. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/concurrency/events.py +0 -0
  175. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/concurrency/services.py +0 -0
  176. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/concurrency/sync.py +0 -0
  177. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/context.py +0 -0
  178. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/__init__.py +0 -0
  179. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/base.py +0 -0
  180. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/deployments.py +0 -0
  181. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/runner.py +0 -0
  182. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/schedules.py +0 -0
  183. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/steps/__init__.py +0 -0
  184. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/steps/core.py +0 -0
  185. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/steps/pull.py +0 -0
  186. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deployments/steps/utility.py +0 -0
  187. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/__init__.py +0 -0
  188. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/data_documents.py +0 -0
  189. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/packaging/__init__.py +0 -0
  190. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/packaging/base.py +0 -0
  191. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/packaging/docker.py +0 -0
  192. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/packaging/file.py +0 -0
  193. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/packaging/orion.py +0 -0
  194. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/deprecated/packaging/serializers.py +0 -0
  195. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/engine.py +0 -0
  196. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/__init__.py +0 -0
  197. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/actions.py +0 -0
  198. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/cli/__init__.py +0 -0
  199. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/cli/automations.py +0 -0
  200. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/clients.py +0 -0
  201. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/filters.py +0 -0
  202. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/instrument.py +0 -0
  203. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/related.py +0 -0
  204. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/schemas/__init__.py +0 -0
  205. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/schemas/automations.py +0 -0
  206. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  207. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/schemas/events.py +0 -0
  208. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/schemas/labelling.py +0 -0
  209. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/utilities.py +0 -0
  210. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/events/worker.py +0 -0
  211. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/exceptions.py +0 -0
  212. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/filesystems.py +0 -0
  213. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/flow_runs.py +0 -0
  214. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/flows.py +0 -0
  215. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/futures.py +0 -0
  216. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/__init__.py +0 -0
  217. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/base.py +0 -0
  218. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/container.py +0 -0
  219. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/kubernetes.py +0 -0
  220. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/process.py +0 -0
  221. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  222. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  223. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  224. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  225. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  226. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/input/__init__.py +0 -0
  227. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/input/actions.py +0 -0
  228. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/input/run_input.py +0 -0
  229. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/__init__.py +0 -0
  230. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/configuration.py +0 -0
  231. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/filters.py +0 -0
  232. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/formatters.py +0 -0
  233. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/handlers.py +0 -0
  234. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/highlighters.py +0 -0
  235. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/loggers.py +0 -0
  236. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/logging/logging.yml +0 -0
  237. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/manifests.py +0 -0
  238. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/new_flow_engine.py +0 -0
  239. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/new_task_engine.py +0 -0
  240. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/plugins.py +0 -0
  241. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/profiles.toml +0 -0
  242. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/py.typed +0 -0
  243. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/pydantic/__init__.py +0 -0
  244. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/pydantic/main.py +0 -0
  245. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/results.py +0 -0
  246. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runner/__init__.py +0 -0
  247. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runner/runner.py +0 -0
  248. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runner/server.py +0 -0
  249. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runner/storage.py +0 -0
  250. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runner/submit.py +0 -0
  251. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runner/utils.py +0 -0
  252. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runtime/__init__.py +0 -0
  253. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runtime/deployment.py +0 -0
  254. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runtime/flow_run.py +0 -0
  255. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/runtime/task_run.py +0 -0
  256. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/serializers.py +0 -0
  257. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  258. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  259. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/software/__init__.py +0 -0
  260. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/software/base.py +0 -0
  261. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/software/conda.py +0 -0
  262. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/software/pip.py +0 -0
  263. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/software/python.py +0 -0
  264. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/states.py +0 -0
  265. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/task_engine.py +0 -0
  266. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/task_runners.py +0 -0
  267. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/task_server.py +0 -0
  268. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/types/__init__.py +0 -0
  269. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/__init__.py +0 -0
  270. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/annotations.py +0 -0
  271. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/asyncutils.py +0 -0
  272. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/callables.py +0 -0
  273. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/collections.py +0 -0
  274. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/compat.py +0 -0
  275. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/context.py +0 -0
  276. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/dispatch.py +0 -0
  277. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/dockerutils.py +0 -0
  278. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/engine.py +0 -0
  279. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/filesystem.py +0 -0
  280. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/hashing.py +0 -0
  281. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/importtools.py +0 -0
  282. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/math.py +0 -0
  283. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/names.py +0 -0
  284. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/processutils.py +0 -0
  285. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/pydantic.py +0 -0
  286. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/render_swagger.py +0 -0
  287. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  288. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  289. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/schema_tools/validation.py +0 -0
  290. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/services.py +0 -0
  291. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/slugify.py +0 -0
  292. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/templating.py +0 -0
  293. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/text.py +0 -0
  294. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/timeout.py +0 -0
  295. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/urls.py +0 -0
  296. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/utilities/visualization.py +0 -0
  297. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/variables.py +0 -0
  298. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/workers/__init__.py +0 -0
  299. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/workers/base.py +0 -0
  300. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/workers/block.py +0 -0
  301. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/workers/process.py +0 -0
  302. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/workers/server.py +0 -0
  303. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect/workers/utilities.py +0 -0
  304. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect_client.egg-info/SOURCES.txt +0 -0
  305. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect_client.egg-info/dependency_links.txt +0 -0
  306. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect_client.egg-info/requires.txt +0 -0
  307. {prefect_client-2.20.15 → prefect_client-2.20.17}/src/prefect_client.egg-info/top_level.txt +0 -0
  308. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_artifacts.py +0 -0
  309. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_automations.py +0 -0
  310. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_background_tasks.py +0 -0
  311. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_context.py +0 -0
  312. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_engine.py +0 -0
  313. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_exceptions.py +0 -0
  314. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_filesystems.py +0 -0
  315. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_flow_runs.py +0 -0
  316. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_flows.py +0 -0
  317. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_flows_compat.py +0 -0
  318. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_futures.py +0 -0
  319. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_highlighters.py +0 -0
  320. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_import_interceptor.py +0 -0
  321. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_log_prints.py +0 -0
  322. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_logging.py +0 -0
  323. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_new_flow_engine.py +0 -0
  324. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_new_task_engine.py +0 -0
  325. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_plugins.py +0 -0
  326. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_serializers.py +0 -0
  327. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_settings.py +0 -0
  328. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_states.py +0 -0
  329. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_task_runners.py +0 -0
  330. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_task_server.py +0 -0
  331. {prefect_client-2.20.15 → prefect_client-2.20.17}/tests/test_variables.py +0 -0
  332. {prefect_client-2.20.15 → prefect_client-2.20.17}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 2.20.15
3
+ Version: 2.20.17
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -61,6 +61,18 @@ Requires-Dist: itsdangerous
61
61
  Requires-Dist: python-multipart>=0.0.7
62
62
  Provides-Extra: notifications
63
63
  Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
64
+ Dynamic: author
65
+ Dynamic: author-email
66
+ Dynamic: classifier
67
+ Dynamic: description
68
+ Dynamic: description-content-type
69
+ Dynamic: home-page
70
+ Dynamic: license-file
71
+ Dynamic: project-url
72
+ Dynamic: provides-extra
73
+ Dynamic: requires-dist
74
+ Dynamic: requires-python
75
+ Dynamic: summary
64
76
 
65
77
  <p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
66
78
 
@@ -16,4 +16,4 @@ kubernetes >= 24.2.0, < 32.0.0
16
16
  pytz >= 2021.1, < 2025
17
17
  readchar >= 4.0.0, < 5.0.0
18
18
  sqlalchemy[asyncio] >= 1.4.22, != 1.4.33, < 2.0.36
19
- typer >= 0.12.0, != 0.12.2, < 0.14.0
19
+ typer >= 0.12.0, != 0.12.2, < 0.16.0
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  import datetime
3
+ import ssl
3
4
  import warnings
4
5
  from contextlib import AsyncExitStack
5
6
  from typing import (
@@ -275,12 +276,18 @@ class PrefectClient:
275
276
  httpx_settings.setdefault("headers", {})
276
277
 
277
278
  if PREFECT_API_TLS_INSECURE_SKIP_VERIFY:
278
- httpx_settings.setdefault("verify", False)
279
+ # Create an unverified context for insecure connections
280
+ ctx = ssl.create_default_context()
281
+ ctx.check_hostname = False
282
+ ctx.verify_mode = ssl.CERT_NONE
283
+ httpx_settings.setdefault("verify", ctx)
279
284
  else:
280
285
  cert_file = PREFECT_API_SSL_CERT_FILE.value()
281
286
  if not cert_file:
282
287
  cert_file = certifi.where()
283
- httpx_settings.setdefault("verify", cert_file)
288
+ # Create a verified context with the certificate file
289
+ ctx = ssl.create_default_context(cafile=cert_file)
290
+ httpx_settings.setdefault("verify", ctx)
284
291
 
285
292
  if api_version is None:
286
293
  api_version = SERVER_API_VERSION
@@ -492,6 +499,23 @@ class PrefectClient:
492
499
  response = await self._client.get(f"/flows/{flow_id}")
493
500
  return Flow.parse_obj(response.json())
494
501
 
502
+ async def delete_flow(self, flow_id: UUID) -> None:
503
+ """
504
+ Delete a flow by UUID.
505
+ Args:
506
+ flow_id: ID of the flow to be deleted
507
+ Raises:
508
+ prefect.exceptions.ObjectNotFound: If request returns 404
509
+ httpx.RequestError: If requests fails
510
+ """
511
+ try:
512
+ await self._client.delete(f"/flows/{flow_id}")
513
+ except httpx.HTTPStatusError as e:
514
+ if e.response.status_code == status.HTTP_404_NOT_FOUND:
515
+ raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
516
+ else:
517
+ raise
518
+
495
519
  async def read_flows(
496
520
  self,
497
521
  *,
@@ -3438,11 +3462,19 @@ class SyncPrefectClient:
3438
3462
 
3439
3463
  if PREFECT_API_TLS_INSECURE_SKIP_VERIFY:
3440
3464
  httpx_settings.setdefault("verify", False)
3465
+ # Create an unverified context for insecure connections
3466
+ ctx = ssl.create_default_context()
3467
+ ctx.check_hostname = False
3468
+ ctx.verify_mode = ssl.CERT_NONE
3469
+ httpx_settings.setdefault("verify", ctx)
3441
3470
  else:
3442
3471
  cert_file = PREFECT_API_SSL_CERT_FILE.value()
3443
3472
  if not cert_file:
3444
3473
  cert_file = certifi.where()
3445
3474
  httpx_settings.setdefault("verify", cert_file)
3475
+ # Create a verified context with the certificate file
3476
+ ctx = ssl.create_default_context(cafile=cert_file)
3477
+ httpx_settings.setdefault("verify", ctx)
3446
3478
 
3447
3479
  if api_version is None:
3448
3480
  api_version = SERVER_API_VERSION
@@ -410,6 +410,9 @@ class FlowRunPolicy(PrefectBaseModel):
410
410
  resuming: Optional[bool] = Field(
411
411
  default=False, description="Indicates if this run is resuming from a pause."
412
412
  )
413
+ retry_type: Optional[Literal["in_process", "reschedule"]] = Field(
414
+ default=None, description="The type of retry this run is undergoing."
415
+ )
413
416
 
414
417
  @root_validator
415
418
  def populate_deprecated_fields(cls, values):
@@ -1310,6 +1310,36 @@ compromise. Adjust this setting based on your specific security requirements
1310
1310
  and usage patterns.
1311
1311
  """
1312
1312
 
1313
+ PREFECT_SERVER_CORS_ALLOWED_ORIGINS = Setting(
1314
+ str,
1315
+ default="*",
1316
+ )
1317
+ """
1318
+ A comma-separated list of origins that are authorized to make cross-origin requests to the API.
1319
+
1320
+ By default, this is set to `*`, which allows requests from all origins.
1321
+ """
1322
+
1323
+ PREFECT_SERVER_CORS_ALLOWED_METHODS = Setting(
1324
+ str,
1325
+ default="*",
1326
+ )
1327
+ """
1328
+ A comma-separated list of methods that are authorized to make cross-origin requests to the API.
1329
+
1330
+ By default, this is set to `*`, which allows requests with all methods.
1331
+ """
1332
+
1333
+ PREFECT_SERVER_CORS_ALLOWED_HEADERS = Setting(
1334
+ str,
1335
+ default="*",
1336
+ )
1337
+ """
1338
+ A comma-separated list of headers that are authorized to make cross-origin requests to the API.
1339
+
1340
+ By default, this is set to `*`, which allows requests with all headers.
1341
+ """
1342
+
1313
1343
  PREFECT_UI_ENABLED = Setting(
1314
1344
  bool,
1315
1345
  default=True,
@@ -342,6 +342,10 @@ class Task(Generic[P, R]):
342
342
 
343
343
  if callable(retry_delay_seconds):
344
344
  self.retry_delay_seconds = retry_delay_seconds(retries)
345
+ elif not isinstance(retry_delay_seconds, (list, int, float, type(None))):
346
+ raise TypeError(
347
+ f"Invalid `retry_delay_seconds` provided; must be an int, float, list or callable. Received type {type(retry_delay_seconds)}"
348
+ )
345
349
  else:
346
350
  self.retry_delay_seconds = retry_delay_seconds
347
351
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 2.20.15
3
+ Version: 2.20.17
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -61,6 +61,18 @@ Requires-Dist: itsdangerous
61
61
  Requires-Dist: python-multipart>=0.0.7
62
62
  Provides-Extra: notifications
63
63
  Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
64
+ Dynamic: author
65
+ Dynamic: author-email
66
+ Dynamic: classifier
67
+ Dynamic: description
68
+ Dynamic: description-content-type
69
+ Dynamic: home-page
70
+ Dynamic: license-file
71
+ Dynamic: project-url
72
+ Dynamic: provides-extra
73
+ Dynamic: requires-dist
74
+ Dynamic: requires-python
75
+ Dynamic: summary
64
76
 
65
77
  <p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
66
78
 
@@ -937,7 +937,7 @@ class TestDeploymentApply:
937
937
  ):
938
938
  assert get_client().server_type.supports_automations()
939
939
 
940
- with respx.mock(base_url=PREFECT_API_URL.value()) as router:
940
+ with respx.mock(base_url=PREFECT_API_URL.value(), using="httpx") as router:
941
941
  router.post("/flows/").mock(
942
942
  return_value=httpx.Response(201, json={"id": str(uuid4())})
943
943
  )
@@ -989,7 +989,7 @@ class TestDeploymentApply:
989
989
  ):
990
990
  assert get_client().server_type.supports_automations()
991
991
 
992
- with respx.mock(base_url=PREFECT_API_URL.value()) as router:
992
+ with respx.mock(base_url=PREFECT_API_URL.value(), using="httpx") as router:
993
993
  router.post("/flows/").mock(
994
994
  return_value=httpx.Response(201, json={"id": str(uuid4())})
995
995
  )
@@ -1036,7 +1036,8 @@ class TestDeploymentApply:
1036
1036
  assert not get_client().server_type.supports_automations()
1037
1037
 
1038
1038
  with respx.mock(
1039
- base_url=PREFECT_API_URL.value(), assert_all_called=False
1039
+ assert_all_mocked=False,
1040
+ assert_all_called=False,
1040
1041
  ) as router:
1041
1042
  router.post("/flows/").mock(
1042
1043
  return_value=httpx.Response(201, json={"id": str(uuid4())})
@@ -1084,7 +1085,7 @@ class TestDeploymentApply:
1084
1085
  }
1085
1086
 
1086
1087
  with temporary_settings(updates=updates):
1087
- with respx.mock(base_url=PREFECT_API_URL.value()) as router:
1088
+ with respx.mock(base_url=PREFECT_API_URL.value(), using="httpx") as router:
1088
1089
  router.post("/flows/").mock(
1089
1090
  return_value=httpx.Response(201, json={"id": str(uuid4())})
1090
1091
  )
@@ -1169,6 +1170,7 @@ class TestRunDeployment:
1169
1170
  with respx.mock(
1170
1171
  base_url=PREFECT_API_URL.value(),
1171
1172
  assert_all_mocked=True,
1173
+ using="httpx",
1172
1174
  ) as router:
1173
1175
  poll_responses = [
1174
1176
  Response(
@@ -1217,6 +1219,7 @@ class TestRunDeployment:
1217
1219
  async with respx.mock(
1218
1220
  base_url=PREFECT_API_URL.value(),
1219
1221
  assert_all_mocked=True,
1222
+ using="httpx",
1220
1223
  ) as router:
1221
1224
  poll_responses = [
1222
1225
  Response(
@@ -1330,7 +1333,7 @@ class TestRunDeployment:
1330
1333
  }
1331
1334
 
1332
1335
  with respx.mock(
1333
- base_url=PREFECT_API_URL.value(), assert_all_mocked=True
1336
+ base_url=PREFECT_API_URL.value(), assert_all_mocked=True, using="httpx"
1334
1337
  ) as router:
1335
1338
  router.get("/csrf-token", params={"client": mock.ANY}).pass_through()
1336
1339
  router.get(f"/deployments/name/{d.flow_name}/{d.name}").pass_through()
@@ -1365,6 +1368,7 @@ class TestRunDeployment:
1365
1368
  base_url=PREFECT_API_URL.value(),
1366
1369
  assert_all_mocked=True,
1367
1370
  assert_all_called=False,
1371
+ using="httpx",
1368
1372
  ) as router:
1369
1373
  router.get("/csrf-token", params={"client": mock.ANY}).pass_through()
1370
1374
  router.get(f"/deployments/name/{d.flow_name}/{d.name}").pass_through()
@@ -1410,6 +1414,7 @@ class TestRunDeployment:
1410
1414
  base_url=PREFECT_API_URL.value(),
1411
1415
  assert_all_mocked=True,
1412
1416
  assert_all_called=False,
1417
+ using="httpx",
1413
1418
  ) as router:
1414
1419
  router.get("/csrf-token", params={"client": mock.ANY}).pass_through()
1415
1420
  router.get(f"/deployments/name/{d.flow_name}/{d.name}").pass_through()
@@ -3381,6 +3381,21 @@ class TestTaskMap:
3381
3381
 
3382
3382
 
3383
3383
  class TestTaskConstructorValidation:
3384
+ async def test_task_cannot_configure_poorly_typed_retry_delay(self):
3385
+ with pytest.raises(TypeError, match="Invalid"):
3386
+
3387
+ @task(retries=42, retry_delay_seconds=dict(x=4))
3388
+ async def insanity():
3389
+ raise RuntimeError("try again!")
3390
+
3391
+ with pytest.raises(TypeError, match="Invalid"):
3392
+
3393
+ @task(retries=42, retry_delay_seconds=2)
3394
+ async def sanity():
3395
+ raise RuntimeError("try again!")
3396
+
3397
+ more_insanity = sanity.with_options(retry_delay_seconds=dict(x=4)) # noqa: F841
3398
+
3384
3399
  async def test_task_cannot_configure_too_many_custom_retry_delays(self):
3385
3400
  with pytest.raises(ValueError, match="Can not configure more"):
3386
3401