prefect-client 2.20.14__tar.gz → 2.20.16__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.14/src/prefect_client.egg-info → prefect_client-2.20.16}/PKG-INFO +1 -1
  2. {prefect_client-2.20.14 → prefect_client-2.20.16}/requirements.txt +1 -1
  3. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/orchestration.py +34 -2
  4. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/objects.py +3 -0
  5. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/flows.py +24 -7
  6. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/tasks.py +4 -0
  7. {prefect_client-2.20.14 → prefect_client-2.20.16/src/prefect_client.egg-info}/PKG-INFO +1 -1
  8. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_deployments.py +10 -5
  9. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_flows.py +17 -0
  10. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_tasks.py +15 -0
  11. {prefect_client-2.20.14 → prefect_client-2.20.16}/LICENSE +0 -0
  12. {prefect_client-2.20.14 → prefect_client-2.20.16}/MANIFEST.in +0 -0
  13. {prefect_client-2.20.14 → prefect_client-2.20.16}/README.md +0 -0
  14. {prefect_client-2.20.14 → prefect_client-2.20.16}/requirements-client.txt +0 -0
  15. {prefect_client-2.20.14 → prefect_client-2.20.16}/requirements-dev.txt +0 -0
  16. {prefect_client-2.20.14 → prefect_client-2.20.16}/setup.cfg +0 -0
  17. {prefect_client-2.20.14 → prefect_client-2.20.16}/setup.py +0 -0
  18. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/.prefectignore +0 -0
  19. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/__init__.py +0 -0
  20. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/__init__.py +0 -0
  21. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/_logging.py +0 -0
  22. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/__init__.py +0 -0
  23. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  24. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/compatibility/experimental.py +0 -0
  25. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/__init__.py +0 -0
  26. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/api.py +0 -0
  27. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/calls.py +0 -0
  28. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  29. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  30. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/inspection.py +0 -0
  31. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/primitives.py +0 -0
  32. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/services.py +0 -0
  33. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/threads.py +0 -0
  34. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/concurrency/waiters.py +0 -0
  35. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/integrations.py +0 -0
  36. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/__init__.py +0 -0
  37. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_base_model.py +0 -0
  38. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_compat.py +0 -0
  39. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_flags.py +0 -0
  40. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/_types.py +0 -0
  41. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  42. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
  43. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/schemas.py +0 -0
  44. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
  45. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
  46. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
  47. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
  48. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
  49. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
  50. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
  51. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
  52. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
  53. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
  54. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
  55. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
  56. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
  57. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
  58. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
  59. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  60. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  61. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  62. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/pytz.py +0 -0
  63. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/__init__.py +0 -0
  64. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/bases.py +0 -0
  65. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/fields.py +0 -0
  66. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/serializers.py +0 -0
  67. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_internal/schemas/validators.py +0 -0
  68. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/__init__.py +0 -0
  69. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/__init__.py +0 -0
  70. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/applications.py +0 -0
  71. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/background.py +0 -0
  72. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
  73. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
  74. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
  75. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
  76. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
  77. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/encoders.py +0 -0
  78. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
  79. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
  80. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/logger.py +0 -0
  81. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
  82. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
  83. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
  84. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
  85. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
  86. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
  87. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
  88. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
  89. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
  90. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
  91. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
  92. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
  93. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
  94. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/params.py +0 -0
  95. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/py.typed +0 -0
  96. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/requests.py +0 -0
  97. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/responses.py +0 -0
  98. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/routing.py +0 -0
  99. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
  100. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
  101. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/base.py +0 -0
  102. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/http.py +0 -0
  103. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
  104. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
  105. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
  106. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
  107. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/templating.py +0 -0
  108. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/testclient.py +0 -0
  109. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/types.py +0 -0
  110. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/utils.py +0 -0
  111. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/fastapi/websockets.py +0 -0
  112. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/__init__.py +0 -0
  113. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/_compat.py +0 -0
  114. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
  115. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/_utils.py +0 -0
  116. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/applications.py +0 -0
  117. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/authentication.py +0 -0
  118. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/background.py +0 -0
  119. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/concurrency.py +0 -0
  120. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/config.py +0 -0
  121. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/convertors.py +0 -0
  122. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/datastructures.py +0 -0
  123. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/endpoints.py +0 -0
  124. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/exceptions.py +0 -0
  125. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/formparsers.py +0 -0
  126. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
  127. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
  128. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
  129. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
  130. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
  131. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
  132. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
  133. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
  134. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
  135. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
  136. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
  137. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/py.typed +0 -0
  138. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/requests.py +0 -0
  139. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/responses.py +0 -0
  140. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/routing.py +0 -0
  141. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/schemas.py +0 -0
  142. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
  143. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/status.py +0 -0
  144. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/templating.py +0 -0
  145. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/testclient.py +0 -0
  146. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/types.py +0 -0
  147. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_vendor/starlette/websockets.py +0 -0
  148. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/_version.py +0 -0
  149. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/agent.py +0 -0
  150. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/artifacts.py +0 -0
  151. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/automations.py +0 -0
  152. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/__init__.py +0 -0
  153. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/abstract.py +0 -0
  154. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/core.py +0 -0
  155. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/fields.py +0 -0
  156. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/kubernetes.py +0 -0
  157. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/notifications.py +0 -0
  158. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/system.py +0 -0
  159. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/blocks/webhook.py +0 -0
  160. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/__init__.py +0 -0
  161. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/base.py +0 -0
  162. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/cloud.py +0 -0
  163. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/collections.py +0 -0
  164. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/constants.py +0 -0
  165. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/__init__.py +0 -0
  166. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/actions.py +0 -0
  167. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/filters.py +0 -0
  168. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/responses.py +0 -0
  169. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/schedules.py +0 -0
  170. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/schemas/sorting.py +0 -0
  171. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/subscriptions.py +0 -0
  172. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/client/utilities.py +0 -0
  173. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/__init__.py +0 -0
  174. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/asyncio.py +0 -0
  175. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/events.py +0 -0
  176. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/services.py +0 -0
  177. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/concurrency/sync.py +0 -0
  178. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/context.py +0 -0
  179. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/__init__.py +0 -0
  180. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/base.py +0 -0
  181. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/deployments.py +0 -0
  182. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/runner.py +0 -0
  183. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/schedules.py +0 -0
  184. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/__init__.py +0 -0
  185. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/core.py +0 -0
  186. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/pull.py +0 -0
  187. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deployments/steps/utility.py +0 -0
  188. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/__init__.py +0 -0
  189. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/data_documents.py +0 -0
  190. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/__init__.py +0 -0
  191. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/base.py +0 -0
  192. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/docker.py +0 -0
  193. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/file.py +0 -0
  194. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/orion.py +0 -0
  195. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/deprecated/packaging/serializers.py +0 -0
  196. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/engine.py +0 -0
  197. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/__init__.py +0 -0
  198. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/actions.py +0 -0
  199. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/cli/__init__.py +0 -0
  200. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/cli/automations.py +0 -0
  201. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/clients.py +0 -0
  202. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/filters.py +0 -0
  203. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/instrument.py +0 -0
  204. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/related.py +0 -0
  205. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/__init__.py +0 -0
  206. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/automations.py +0 -0
  207. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  208. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/events.py +0 -0
  209. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/schemas/labelling.py +0 -0
  210. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/utilities.py +0 -0
  211. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/events/worker.py +0 -0
  212. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/exceptions.py +0 -0
  213. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/filesystems.py +0 -0
  214. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/flow_runs.py +0 -0
  215. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/futures.py +0 -0
  216. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/__init__.py +0 -0
  217. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/base.py +0 -0
  218. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/container.py +0 -0
  219. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/kubernetes.py +0 -0
  220. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/process.py +0 -0
  221. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  222. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  223. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  224. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  225. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  226. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/input/__init__.py +0 -0
  227. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/input/actions.py +0 -0
  228. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/input/run_input.py +0 -0
  229. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/__init__.py +0 -0
  230. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/configuration.py +0 -0
  231. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/filters.py +0 -0
  232. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/formatters.py +0 -0
  233. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/handlers.py +0 -0
  234. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/highlighters.py +0 -0
  235. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/loggers.py +0 -0
  236. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/logging/logging.yml +0 -0
  237. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/manifests.py +0 -0
  238. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/new_flow_engine.py +0 -0
  239. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/new_task_engine.py +0 -0
  240. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/plugins.py +0 -0
  241. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/profiles.toml +0 -0
  242. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/py.typed +0 -0
  243. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/pydantic/__init__.py +0 -0
  244. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/pydantic/main.py +0 -0
  245. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/results.py +0 -0
  246. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/__init__.py +0 -0
  247. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/runner.py +0 -0
  248. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/server.py +0 -0
  249. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/storage.py +0 -0
  250. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/submit.py +0 -0
  251. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runner/utils.py +0 -0
  252. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/__init__.py +0 -0
  253. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/deployment.py +0 -0
  254. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/flow_run.py +0 -0
  255. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/runtime/task_run.py +0 -0
  256. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/serializers.py +0 -0
  257. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  258. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  259. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/settings.py +0 -0
  260. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/__init__.py +0 -0
  261. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/base.py +0 -0
  262. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/conda.py +0 -0
  263. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/pip.py +0 -0
  264. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/software/python.py +0 -0
  265. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/states.py +0 -0
  266. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/task_engine.py +0 -0
  267. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/task_runners.py +0 -0
  268. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/task_server.py +0 -0
  269. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/types/__init__.py +0 -0
  270. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/__init__.py +0 -0
  271. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/annotations.py +0 -0
  272. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/asyncutils.py +0 -0
  273. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/callables.py +0 -0
  274. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/collections.py +0 -0
  275. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/compat.py +0 -0
  276. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/context.py +0 -0
  277. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/dispatch.py +0 -0
  278. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/dockerutils.py +0 -0
  279. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/engine.py +0 -0
  280. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/filesystem.py +0 -0
  281. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/hashing.py +0 -0
  282. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/importtools.py +0 -0
  283. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/math.py +0 -0
  284. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/names.py +0 -0
  285. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/processutils.py +0 -0
  286. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/pydantic.py +0 -0
  287. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/render_swagger.py +0 -0
  288. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  289. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  290. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/schema_tools/validation.py +0 -0
  291. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/services.py +0 -0
  292. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/slugify.py +0 -0
  293. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/templating.py +0 -0
  294. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/text.py +0 -0
  295. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/timeout.py +0 -0
  296. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/urls.py +0 -0
  297. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/utilities/visualization.py +0 -0
  298. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/variables.py +0 -0
  299. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/__init__.py +0 -0
  300. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/base.py +0 -0
  301. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/block.py +0 -0
  302. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/process.py +0 -0
  303. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/server.py +0 -0
  304. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect/workers/utilities.py +0 -0
  305. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/SOURCES.txt +0 -0
  306. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/dependency_links.txt +0 -0
  307. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/requires.txt +0 -0
  308. {prefect_client-2.20.14 → prefect_client-2.20.16}/src/prefect_client.egg-info/top_level.txt +0 -0
  309. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_artifacts.py +0 -0
  310. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_automations.py +0 -0
  311. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_background_tasks.py +0 -0
  312. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_context.py +0 -0
  313. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_engine.py +0 -0
  314. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_exceptions.py +0 -0
  315. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_filesystems.py +0 -0
  316. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_flow_runs.py +0 -0
  317. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_flows_compat.py +0 -0
  318. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_futures.py +0 -0
  319. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_highlighters.py +0 -0
  320. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_import_interceptor.py +0 -0
  321. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_log_prints.py +0 -0
  322. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_logging.py +0 -0
  323. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_new_flow_engine.py +0 -0
  324. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_new_task_engine.py +0 -0
  325. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_plugins.py +0 -0
  326. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_serializers.py +0 -0
  327. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_settings.py +0 -0
  328. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_states.py +0 -0
  329. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_task_runners.py +0 -0
  330. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_task_server.py +0 -0
  331. {prefect_client-2.20.14 → prefect_client-2.20.16}/tests/test_variables.py +0 -0
  332. {prefect_client-2.20.14 → prefect_client-2.20.16}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.20.14
3
+ Version: 2.20.16
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -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):
@@ -10,6 +10,7 @@ import datetime
10
10
  import importlib.util
11
11
  import inspect
12
12
  import os
13
+ import sys
13
14
  import tempfile
14
15
  import warnings
15
16
  from functools import partial, update_wrapper
@@ -137,6 +138,16 @@ logger = get_logger("flows")
137
138
  if TYPE_CHECKING:
138
139
  from prefect.deployments.runner import FlexibleScheduleList, RunnerDeployment
139
140
 
141
+ # Handle Python 3.8 compatibility for GenericAlias
142
+ if sys.version_info >= (3, 9):
143
+ from types import GenericAlias # novermin
144
+
145
+ GENERIC_ALIAS = (GenericAlias,)
146
+ else:
147
+ from typing import _GenericAlias
148
+
149
+ GENERIC_ALIAS = (_GenericAlias,)
150
+
140
151
 
141
152
  @PrefectObjectRegistry.register_instances
142
153
  class Flow(Generic[P, R]):
@@ -530,18 +541,22 @@ class Flow(Generic[P, R]):
530
541
  is_v1_type(param.annotation) for param in sig.parameters.values()
531
542
  )
532
543
  has_v1_models = any(
533
- issubclass(param.annotation, V1BaseModel)
534
- if isinstance(param.annotation, type)
535
- else False
544
+ (
545
+ isinstance(param.annotation, type)
546
+ and not isinstance(param.annotation, GENERIC_ALIAS)
547
+ and issubclass(param.annotation, V1BaseModel)
548
+ )
536
549
  for param in sig.parameters.values()
537
550
  )
538
551
  has_v2_types = any(
539
552
  is_v2_type(param.annotation) for param in sig.parameters.values()
540
553
  )
541
554
  has_v2_models = any(
542
- issubclass(param.annotation, V2BaseModel)
543
- if isinstance(param.annotation, type)
544
- else False
555
+ (
556
+ isinstance(param.annotation, type)
557
+ and not isinstance(param.annotation, GENERIC_ALIAS)
558
+ and issubclass(param.annotation, V2BaseModel)
559
+ )
545
560
  for param in sig.parameters.values()
546
561
  )
547
562
 
@@ -1601,7 +1616,9 @@ flow.from_source = Flow.from_source
1601
1616
 
1602
1617
 
1603
1618
  def select_flow(
1604
- flows: Iterable[Flow], flow_name: str = None, from_message: str = None
1619
+ flows: Iterable[Flow],
1620
+ flow_name: Optional[str] = None,
1621
+ from_message: Optional[str] = None,
1605
1622
  ) -> Flow:
1606
1623
  """
1607
1624
  Select the only flow in an iterable or a flow specified by name.
@@ -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
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.20.14
3
+ Version: 2.20.16
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -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()
@@ -1517,6 +1517,23 @@ class TestFlowParameterTypes:
1517
1517
  "secret": SecretStr("my secret")
1518
1518
  }
1519
1519
 
1520
+ @pytest.mark.skipif(
1521
+ sys.version_info < (3, 9), reason="Python 3.9+ required for GenericAlias"
1522
+ )
1523
+ def test_flow_signature_can_contain_generic_type_hints(self):
1524
+ """Test that generic type hints like dict[str, str] work correctly
1525
+
1526
+ this is a regression test for https://github.com/PrefectHQ/prefect/issues/16105
1527
+ """
1528
+
1529
+ @flow
1530
+ def my_flow(param: dict[str, str]): # novermin
1531
+ return param
1532
+
1533
+ test_data = {"foo": "bar"}
1534
+ assert my_flow(test_data) == test_data
1535
+ assert my_flow.validate_parameters({"param": test_data}) == {"param": test_data}
1536
+
1520
1537
 
1521
1538
  class TestSubflowTaskInputs:
1522
1539
  async def test_subflow_with_one_upstream_task_future(self, prefect_client):
@@ -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