prefect-client 2.20.2__py3-none-any.whl → 3.0.0__py3-none-any.whl

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 (288) hide show
  1. prefect/__init__.py +74 -110
  2. prefect/_internal/compatibility/deprecated.py +6 -115
  3. prefect/_internal/compatibility/experimental.py +4 -79
  4. prefect/_internal/compatibility/migration.py +166 -0
  5. prefect/_internal/concurrency/__init__.py +2 -2
  6. prefect/_internal/concurrency/api.py +1 -35
  7. prefect/_internal/concurrency/calls.py +0 -6
  8. prefect/_internal/concurrency/cancellation.py +0 -3
  9. prefect/_internal/concurrency/event_loop.py +0 -20
  10. prefect/_internal/concurrency/inspection.py +3 -3
  11. prefect/_internal/concurrency/primitives.py +1 -0
  12. prefect/_internal/concurrency/services.py +23 -0
  13. prefect/_internal/concurrency/threads.py +35 -0
  14. prefect/_internal/concurrency/waiters.py +0 -28
  15. prefect/_internal/integrations.py +7 -0
  16. prefect/_internal/pydantic/__init__.py +0 -45
  17. prefect/_internal/pydantic/annotations/pendulum.py +2 -2
  18. prefect/_internal/pydantic/v1_schema.py +21 -22
  19. prefect/_internal/pydantic/v2_schema.py +0 -2
  20. prefect/_internal/pydantic/v2_validated_func.py +18 -23
  21. prefect/_internal/pytz.py +1 -1
  22. prefect/_internal/retries.py +61 -0
  23. prefect/_internal/schemas/bases.py +45 -177
  24. prefect/_internal/schemas/fields.py +1 -43
  25. prefect/_internal/schemas/validators.py +47 -233
  26. prefect/agent.py +3 -695
  27. prefect/artifacts.py +173 -14
  28. prefect/automations.py +39 -4
  29. prefect/blocks/abstract.py +1 -1
  30. prefect/blocks/core.py +423 -164
  31. prefect/blocks/fields.py +2 -57
  32. prefect/blocks/notifications.py +43 -28
  33. prefect/blocks/redis.py +168 -0
  34. prefect/blocks/system.py +67 -20
  35. prefect/blocks/webhook.py +2 -9
  36. prefect/cache_policies.py +239 -0
  37. prefect/client/__init__.py +4 -0
  38. prefect/client/base.py +33 -27
  39. prefect/client/cloud.py +65 -20
  40. prefect/client/collections.py +1 -1
  41. prefect/client/orchestration.py +667 -440
  42. prefect/client/schemas/actions.py +115 -100
  43. prefect/client/schemas/filters.py +46 -52
  44. prefect/client/schemas/objects.py +228 -178
  45. prefect/client/schemas/responses.py +18 -36
  46. prefect/client/schemas/schedules.py +55 -36
  47. prefect/client/schemas/sorting.py +2 -0
  48. prefect/client/subscriptions.py +8 -7
  49. prefect/client/types/flexible_schedule_list.py +11 -0
  50. prefect/client/utilities.py +9 -6
  51. prefect/concurrency/asyncio.py +60 -11
  52. prefect/concurrency/context.py +24 -0
  53. prefect/concurrency/events.py +2 -2
  54. prefect/concurrency/services.py +46 -16
  55. prefect/concurrency/sync.py +51 -7
  56. prefect/concurrency/v1/asyncio.py +143 -0
  57. prefect/concurrency/v1/context.py +27 -0
  58. prefect/concurrency/v1/events.py +61 -0
  59. prefect/concurrency/v1/services.py +116 -0
  60. prefect/concurrency/v1/sync.py +92 -0
  61. prefect/context.py +246 -149
  62. prefect/deployments/__init__.py +33 -18
  63. prefect/deployments/base.py +10 -15
  64. prefect/deployments/deployments.py +2 -1048
  65. prefect/deployments/flow_runs.py +178 -0
  66. prefect/deployments/runner.py +72 -173
  67. prefect/deployments/schedules.py +31 -25
  68. prefect/deployments/steps/__init__.py +0 -1
  69. prefect/deployments/steps/core.py +7 -0
  70. prefect/deployments/steps/pull.py +15 -21
  71. prefect/deployments/steps/utility.py +2 -1
  72. prefect/docker/__init__.py +20 -0
  73. prefect/docker/docker_image.py +82 -0
  74. prefect/engine.py +15 -2466
  75. prefect/events/actions.py +17 -23
  76. prefect/events/cli/automations.py +20 -7
  77. prefect/events/clients.py +142 -80
  78. prefect/events/filters.py +14 -18
  79. prefect/events/related.py +74 -75
  80. prefect/events/schemas/__init__.py +0 -5
  81. prefect/events/schemas/automations.py +55 -46
  82. prefect/events/schemas/deployment_triggers.py +7 -197
  83. prefect/events/schemas/events.py +46 -65
  84. prefect/events/schemas/labelling.py +10 -14
  85. prefect/events/utilities.py +4 -5
  86. prefect/events/worker.py +23 -8
  87. prefect/exceptions.py +15 -0
  88. prefect/filesystems.py +30 -529
  89. prefect/flow_engine.py +827 -0
  90. prefect/flow_runs.py +379 -7
  91. prefect/flows.py +470 -360
  92. prefect/futures.py +382 -331
  93. prefect/infrastructure/__init__.py +5 -26
  94. prefect/infrastructure/base.py +3 -320
  95. prefect/infrastructure/provisioners/__init__.py +5 -3
  96. prefect/infrastructure/provisioners/cloud_run.py +13 -8
  97. prefect/infrastructure/provisioners/container_instance.py +14 -9
  98. prefect/infrastructure/provisioners/ecs.py +10 -8
  99. prefect/infrastructure/provisioners/modal.py +8 -5
  100. prefect/input/__init__.py +4 -0
  101. prefect/input/actions.py +2 -4
  102. prefect/input/run_input.py +9 -9
  103. prefect/logging/formatters.py +2 -4
  104. prefect/logging/handlers.py +9 -14
  105. prefect/logging/loggers.py +5 -5
  106. prefect/main.py +72 -0
  107. prefect/plugins.py +2 -64
  108. prefect/profiles.toml +16 -2
  109. prefect/records/__init__.py +1 -0
  110. prefect/records/base.py +223 -0
  111. prefect/records/filesystem.py +207 -0
  112. prefect/records/memory.py +178 -0
  113. prefect/records/result_store.py +64 -0
  114. prefect/results.py +577 -504
  115. prefect/runner/runner.py +124 -51
  116. prefect/runner/server.py +32 -34
  117. prefect/runner/storage.py +3 -12
  118. prefect/runner/submit.py +2 -10
  119. prefect/runner/utils.py +2 -2
  120. prefect/runtime/__init__.py +1 -0
  121. prefect/runtime/deployment.py +1 -0
  122. prefect/runtime/flow_run.py +40 -5
  123. prefect/runtime/task_run.py +1 -0
  124. prefect/serializers.py +28 -39
  125. prefect/server/api/collections_data/views/aggregate-worker-metadata.json +5 -14
  126. prefect/settings.py +209 -332
  127. prefect/states.py +160 -63
  128. prefect/task_engine.py +1478 -57
  129. prefect/task_runners.py +383 -287
  130. prefect/task_runs.py +240 -0
  131. prefect/task_worker.py +463 -0
  132. prefect/tasks.py +684 -374
  133. prefect/transactions.py +410 -0
  134. prefect/types/__init__.py +72 -86
  135. prefect/types/entrypoint.py +13 -0
  136. prefect/utilities/annotations.py +4 -3
  137. prefect/utilities/asyncutils.py +227 -148
  138. prefect/utilities/callables.py +138 -48
  139. prefect/utilities/collections.py +134 -86
  140. prefect/utilities/dispatch.py +27 -14
  141. prefect/utilities/dockerutils.py +11 -4
  142. prefect/utilities/engine.py +186 -32
  143. prefect/utilities/filesystem.py +4 -5
  144. prefect/utilities/importtools.py +26 -27
  145. prefect/utilities/pydantic.py +128 -38
  146. prefect/utilities/schema_tools/hydration.py +18 -1
  147. prefect/utilities/schema_tools/validation.py +30 -0
  148. prefect/utilities/services.py +35 -9
  149. prefect/utilities/templating.py +12 -2
  150. prefect/utilities/timeout.py +20 -5
  151. prefect/utilities/urls.py +195 -0
  152. prefect/utilities/visualization.py +1 -0
  153. prefect/variables.py +78 -59
  154. prefect/workers/__init__.py +0 -1
  155. prefect/workers/base.py +237 -244
  156. prefect/workers/block.py +5 -226
  157. prefect/workers/cloud.py +6 -0
  158. prefect/workers/process.py +265 -12
  159. prefect/workers/server.py +29 -11
  160. {prefect_client-2.20.2.dist-info → prefect_client-3.0.0.dist-info}/METADATA +30 -26
  161. prefect_client-3.0.0.dist-info/RECORD +201 -0
  162. {prefect_client-2.20.2.dist-info → prefect_client-3.0.0.dist-info}/WHEEL +1 -1
  163. prefect/_internal/pydantic/_base_model.py +0 -51
  164. prefect/_internal/pydantic/_compat.py +0 -82
  165. prefect/_internal/pydantic/_flags.py +0 -20
  166. prefect/_internal/pydantic/_types.py +0 -8
  167. prefect/_internal/pydantic/utilities/config_dict.py +0 -72
  168. prefect/_internal/pydantic/utilities/field_validator.py +0 -150
  169. prefect/_internal/pydantic/utilities/model_construct.py +0 -56
  170. prefect/_internal/pydantic/utilities/model_copy.py +0 -55
  171. prefect/_internal/pydantic/utilities/model_dump.py +0 -136
  172. prefect/_internal/pydantic/utilities/model_dump_json.py +0 -112
  173. prefect/_internal/pydantic/utilities/model_fields.py +0 -50
  174. prefect/_internal/pydantic/utilities/model_fields_set.py +0 -29
  175. prefect/_internal/pydantic/utilities/model_json_schema.py +0 -82
  176. prefect/_internal/pydantic/utilities/model_rebuild.py +0 -80
  177. prefect/_internal/pydantic/utilities/model_validate.py +0 -75
  178. prefect/_internal/pydantic/utilities/model_validate_json.py +0 -68
  179. prefect/_internal/pydantic/utilities/model_validator.py +0 -87
  180. prefect/_internal/pydantic/utilities/type_adapter.py +0 -71
  181. prefect/_vendor/fastapi/__init__.py +0 -25
  182. prefect/_vendor/fastapi/applications.py +0 -946
  183. prefect/_vendor/fastapi/background.py +0 -3
  184. prefect/_vendor/fastapi/concurrency.py +0 -44
  185. prefect/_vendor/fastapi/datastructures.py +0 -58
  186. prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
  187. prefect/_vendor/fastapi/dependencies/models.py +0 -64
  188. prefect/_vendor/fastapi/dependencies/utils.py +0 -877
  189. prefect/_vendor/fastapi/encoders.py +0 -177
  190. prefect/_vendor/fastapi/exception_handlers.py +0 -40
  191. prefect/_vendor/fastapi/exceptions.py +0 -46
  192. prefect/_vendor/fastapi/logger.py +0 -3
  193. prefect/_vendor/fastapi/middleware/__init__.py +0 -1
  194. prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -25
  195. prefect/_vendor/fastapi/middleware/cors.py +0 -3
  196. prefect/_vendor/fastapi/middleware/gzip.py +0 -3
  197. prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -3
  198. prefect/_vendor/fastapi/middleware/trustedhost.py +0 -3
  199. prefect/_vendor/fastapi/middleware/wsgi.py +0 -3
  200. prefect/_vendor/fastapi/openapi/__init__.py +0 -0
  201. prefect/_vendor/fastapi/openapi/constants.py +0 -2
  202. prefect/_vendor/fastapi/openapi/docs.py +0 -203
  203. prefect/_vendor/fastapi/openapi/models.py +0 -480
  204. prefect/_vendor/fastapi/openapi/utils.py +0 -485
  205. prefect/_vendor/fastapi/param_functions.py +0 -340
  206. prefect/_vendor/fastapi/params.py +0 -453
  207. prefect/_vendor/fastapi/py.typed +0 -0
  208. prefect/_vendor/fastapi/requests.py +0 -4
  209. prefect/_vendor/fastapi/responses.py +0 -40
  210. prefect/_vendor/fastapi/routing.py +0 -1331
  211. prefect/_vendor/fastapi/security/__init__.py +0 -15
  212. prefect/_vendor/fastapi/security/api_key.py +0 -98
  213. prefect/_vendor/fastapi/security/base.py +0 -6
  214. prefect/_vendor/fastapi/security/http.py +0 -172
  215. prefect/_vendor/fastapi/security/oauth2.py +0 -227
  216. prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -34
  217. prefect/_vendor/fastapi/security/utils.py +0 -10
  218. prefect/_vendor/fastapi/staticfiles.py +0 -1
  219. prefect/_vendor/fastapi/templating.py +0 -3
  220. prefect/_vendor/fastapi/testclient.py +0 -1
  221. prefect/_vendor/fastapi/types.py +0 -3
  222. prefect/_vendor/fastapi/utils.py +0 -235
  223. prefect/_vendor/fastapi/websockets.py +0 -7
  224. prefect/_vendor/starlette/__init__.py +0 -1
  225. prefect/_vendor/starlette/_compat.py +0 -28
  226. prefect/_vendor/starlette/_exception_handler.py +0 -80
  227. prefect/_vendor/starlette/_utils.py +0 -88
  228. prefect/_vendor/starlette/applications.py +0 -261
  229. prefect/_vendor/starlette/authentication.py +0 -159
  230. prefect/_vendor/starlette/background.py +0 -43
  231. prefect/_vendor/starlette/concurrency.py +0 -59
  232. prefect/_vendor/starlette/config.py +0 -151
  233. prefect/_vendor/starlette/convertors.py +0 -87
  234. prefect/_vendor/starlette/datastructures.py +0 -707
  235. prefect/_vendor/starlette/endpoints.py +0 -130
  236. prefect/_vendor/starlette/exceptions.py +0 -60
  237. prefect/_vendor/starlette/formparsers.py +0 -276
  238. prefect/_vendor/starlette/middleware/__init__.py +0 -17
  239. prefect/_vendor/starlette/middleware/authentication.py +0 -52
  240. prefect/_vendor/starlette/middleware/base.py +0 -220
  241. prefect/_vendor/starlette/middleware/cors.py +0 -176
  242. prefect/_vendor/starlette/middleware/errors.py +0 -265
  243. prefect/_vendor/starlette/middleware/exceptions.py +0 -74
  244. prefect/_vendor/starlette/middleware/gzip.py +0 -113
  245. prefect/_vendor/starlette/middleware/httpsredirect.py +0 -19
  246. prefect/_vendor/starlette/middleware/sessions.py +0 -82
  247. prefect/_vendor/starlette/middleware/trustedhost.py +0 -64
  248. prefect/_vendor/starlette/middleware/wsgi.py +0 -147
  249. prefect/_vendor/starlette/py.typed +0 -0
  250. prefect/_vendor/starlette/requests.py +0 -328
  251. prefect/_vendor/starlette/responses.py +0 -347
  252. prefect/_vendor/starlette/routing.py +0 -933
  253. prefect/_vendor/starlette/schemas.py +0 -154
  254. prefect/_vendor/starlette/staticfiles.py +0 -248
  255. prefect/_vendor/starlette/status.py +0 -199
  256. prefect/_vendor/starlette/templating.py +0 -231
  257. prefect/_vendor/starlette/testclient.py +0 -804
  258. prefect/_vendor/starlette/types.py +0 -30
  259. prefect/_vendor/starlette/websockets.py +0 -193
  260. prefect/blocks/kubernetes.py +0 -119
  261. prefect/deprecated/__init__.py +0 -0
  262. prefect/deprecated/data_documents.py +0 -350
  263. prefect/deprecated/packaging/__init__.py +0 -12
  264. prefect/deprecated/packaging/base.py +0 -96
  265. prefect/deprecated/packaging/docker.py +0 -146
  266. prefect/deprecated/packaging/file.py +0 -92
  267. prefect/deprecated/packaging/orion.py +0 -80
  268. prefect/deprecated/packaging/serializers.py +0 -171
  269. prefect/events/instrument.py +0 -135
  270. prefect/infrastructure/container.py +0 -824
  271. prefect/infrastructure/kubernetes.py +0 -920
  272. prefect/infrastructure/process.py +0 -289
  273. prefect/manifests.py +0 -20
  274. prefect/new_flow_engine.py +0 -449
  275. prefect/new_task_engine.py +0 -423
  276. prefect/pydantic/__init__.py +0 -76
  277. prefect/pydantic/main.py +0 -39
  278. prefect/software/__init__.py +0 -2
  279. prefect/software/base.py +0 -50
  280. prefect/software/conda.py +0 -199
  281. prefect/software/pip.py +0 -122
  282. prefect/software/python.py +0 -52
  283. prefect/task_server.py +0 -322
  284. prefect_client-2.20.2.dist-info/RECORD +0 -294
  285. /prefect/{_internal/pydantic/utilities → client/types}/__init__.py +0 -0
  286. /prefect/{_vendor → concurrency/v1}/__init__.py +0 -0
  287. {prefect_client-2.20.2.dist-info → prefect_client-3.0.0.dist-info}/LICENSE +0 -0
  288. {prefect_client-2.20.2.dist-info → prefect_client-3.0.0.dist-info}/top_level.txt +0 -0
@@ -1,453 +0,0 @@
1
- import warnings
2
- from enum import Enum
3
- from typing import Any, Callable, List, Optional, Sequence
4
-
5
- from prefect._internal.pydantic import HAS_PYDANTIC_V2
6
-
7
- if HAS_PYDANTIC_V2:
8
- from pydantic.v1.fields import FieldInfo, Undefined
9
- else:
10
- from pydantic.fields import FieldInfo, Undefined
11
-
12
- from typing_extensions import Annotated, deprecated
13
-
14
-
15
- class ParamTypes(Enum):
16
- query = "query"
17
- header = "header"
18
- path = "path"
19
- cookie = "cookie"
20
-
21
-
22
- class Param(FieldInfo):
23
- in_: ParamTypes
24
-
25
- def __init__(
26
- self,
27
- default: Any = Undefined,
28
- *,
29
- alias: Optional[str] = None,
30
- title: Optional[str] = None,
31
- description: Optional[str] = None,
32
- gt: Optional[float] = None,
33
- ge: Optional[float] = None,
34
- lt: Optional[float] = None,
35
- le: Optional[float] = None,
36
- min_length: Optional[int] = None,
37
- max_length: Optional[int] = None,
38
- regex: Optional[str] = None,
39
- examples: Optional[List[Any]] = None,
40
- example: Annotated[
41
- Optional[Any],
42
- deprecated(
43
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
44
- "although still supported. Use examples instead."
45
- ),
46
- ] = Undefined,
47
- deprecated: Optional[bool] = None,
48
- include_in_schema: bool = True,
49
- **extra: Any,
50
- ):
51
- self.deprecated = deprecated
52
- if example is not Undefined:
53
- warnings.warn(
54
- "`example` has been depreacated, please use `examples` instead",
55
- category=DeprecationWarning,
56
- stacklevel=1,
57
- )
58
- self.example = example
59
- self.include_in_schema = include_in_schema
60
- extra_kwargs = {**extra}
61
- if examples:
62
- extra_kwargs["examples"] = examples
63
- super().__init__(
64
- default=default,
65
- alias=alias,
66
- title=title,
67
- description=description,
68
- gt=gt,
69
- ge=ge,
70
- lt=lt,
71
- le=le,
72
- min_length=min_length,
73
- max_length=max_length,
74
- regex=regex,
75
- **extra_kwargs,
76
- )
77
-
78
- def __repr__(self) -> str:
79
- return f"{self.__class__.__name__}({self.default})"
80
-
81
-
82
- class Path(Param):
83
- in_ = ParamTypes.path
84
-
85
- def __init__(
86
- self,
87
- default: Any = ...,
88
- *,
89
- alias: Optional[str] = None,
90
- title: Optional[str] = None,
91
- description: Optional[str] = None,
92
- gt: Optional[float] = None,
93
- ge: Optional[float] = None,
94
- lt: Optional[float] = None,
95
- le: Optional[float] = None,
96
- min_length: Optional[int] = None,
97
- max_length: Optional[int] = None,
98
- regex: Optional[str] = None,
99
- examples: Optional[List[Any]] = None,
100
- example: Annotated[
101
- Optional[Any],
102
- deprecated(
103
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
104
- "although still supported. Use examples instead."
105
- ),
106
- ] = Undefined,
107
- deprecated: Optional[bool] = None,
108
- include_in_schema: bool = True,
109
- **extra: Any,
110
- ):
111
- assert default is ..., "Path parameters cannot have a default value"
112
- self.in_ = self.in_
113
- super().__init__(
114
- default=default,
115
- alias=alias,
116
- title=title,
117
- description=description,
118
- gt=gt,
119
- ge=ge,
120
- lt=lt,
121
- le=le,
122
- min_length=min_length,
123
- max_length=max_length,
124
- regex=regex,
125
- deprecated=deprecated,
126
- example=example,
127
- examples=examples,
128
- include_in_schema=include_in_schema,
129
- **extra,
130
- )
131
-
132
-
133
- class Query(Param):
134
- in_ = ParamTypes.query
135
-
136
- def __init__(
137
- self,
138
- default: Any = Undefined,
139
- *,
140
- alias: Optional[str] = None,
141
- title: Optional[str] = None,
142
- description: Optional[str] = None,
143
- gt: Optional[float] = None,
144
- ge: Optional[float] = None,
145
- lt: Optional[float] = None,
146
- le: Optional[float] = None,
147
- min_length: Optional[int] = None,
148
- max_length: Optional[int] = None,
149
- regex: Optional[str] = None,
150
- examples: Optional[List[Any]] = None,
151
- example: Annotated[
152
- Optional[Any],
153
- deprecated(
154
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
155
- "although still supported. Use examples instead."
156
- ),
157
- ] = Undefined,
158
- deprecated: Optional[bool] = None,
159
- include_in_schema: bool = True,
160
- **extra: Any,
161
- ):
162
- super().__init__(
163
- default=default,
164
- alias=alias,
165
- title=title,
166
- description=description,
167
- gt=gt,
168
- ge=ge,
169
- lt=lt,
170
- le=le,
171
- min_length=min_length,
172
- max_length=max_length,
173
- regex=regex,
174
- deprecated=deprecated,
175
- example=example,
176
- examples=examples,
177
- include_in_schema=include_in_schema,
178
- **extra,
179
- )
180
-
181
-
182
- class Header(Param):
183
- in_ = ParamTypes.header
184
-
185
- def __init__(
186
- self,
187
- default: Any = Undefined,
188
- *,
189
- alias: Optional[str] = None,
190
- convert_underscores: bool = True,
191
- title: Optional[str] = None,
192
- description: Optional[str] = None,
193
- gt: Optional[float] = None,
194
- ge: Optional[float] = None,
195
- lt: Optional[float] = None,
196
- le: Optional[float] = None,
197
- min_length: Optional[int] = None,
198
- max_length: Optional[int] = None,
199
- regex: Optional[str] = None,
200
- examples: Optional[List[Any]] = None,
201
- example: Annotated[
202
- Optional[Any],
203
- deprecated(
204
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
205
- "although still supported. Use examples instead."
206
- ),
207
- ] = Undefined,
208
- deprecated: Optional[bool] = None,
209
- include_in_schema: bool = True,
210
- **extra: Any,
211
- ):
212
- self.convert_underscores = convert_underscores
213
- super().__init__(
214
- default=default,
215
- alias=alias,
216
- title=title,
217
- description=description,
218
- gt=gt,
219
- ge=ge,
220
- lt=lt,
221
- le=le,
222
- min_length=min_length,
223
- max_length=max_length,
224
- regex=regex,
225
- deprecated=deprecated,
226
- example=example,
227
- examples=examples,
228
- include_in_schema=include_in_schema,
229
- **extra,
230
- )
231
-
232
-
233
- class Cookie(Param):
234
- in_ = ParamTypes.cookie
235
-
236
- def __init__(
237
- self,
238
- default: Any = Undefined,
239
- *,
240
- alias: Optional[str] = None,
241
- title: Optional[str] = None,
242
- description: Optional[str] = None,
243
- gt: Optional[float] = None,
244
- ge: Optional[float] = None,
245
- lt: Optional[float] = None,
246
- le: Optional[float] = None,
247
- min_length: Optional[int] = None,
248
- max_length: Optional[int] = None,
249
- regex: Optional[str] = None,
250
- examples: Optional[List[Any]] = None,
251
- example: Annotated[
252
- Optional[Any],
253
- deprecated(
254
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
255
- "although still supported. Use examples instead."
256
- ),
257
- ] = Undefined,
258
- deprecated: Optional[bool] = None,
259
- include_in_schema: bool = True,
260
- **extra: Any,
261
- ):
262
- super().__init__(
263
- default=default,
264
- alias=alias,
265
- title=title,
266
- description=description,
267
- gt=gt,
268
- ge=ge,
269
- lt=lt,
270
- le=le,
271
- min_length=min_length,
272
- max_length=max_length,
273
- regex=regex,
274
- deprecated=deprecated,
275
- example=example,
276
- examples=examples,
277
- include_in_schema=include_in_schema,
278
- **extra,
279
- )
280
-
281
-
282
- class Body(FieldInfo):
283
- def __init__(
284
- self,
285
- default: Any = Undefined,
286
- *,
287
- embed: bool = False,
288
- media_type: str = "application/json",
289
- alias: Optional[str] = None,
290
- title: Optional[str] = None,
291
- description: Optional[str] = None,
292
- gt: Optional[float] = None,
293
- ge: Optional[float] = None,
294
- lt: Optional[float] = None,
295
- le: Optional[float] = None,
296
- min_length: Optional[int] = None,
297
- max_length: Optional[int] = None,
298
- regex: Optional[str] = None,
299
- examples: Optional[List[Any]] = None,
300
- example: Annotated[
301
- Optional[Any],
302
- deprecated(
303
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
304
- "although still supported. Use examples instead."
305
- ),
306
- ] = Undefined,
307
- **extra: Any,
308
- ):
309
- self.embed = embed
310
- self.media_type = media_type
311
- if example is not Undefined:
312
- warnings.warn(
313
- "`example` has been depreacated, please use `examples` instead",
314
- category=DeprecationWarning,
315
- stacklevel=1,
316
- )
317
- self.example = example
318
- extra_kwargs = {**extra}
319
- if examples is not None:
320
- extra_kwargs["examples"] = examples
321
- super().__init__(
322
- default=default,
323
- alias=alias,
324
- title=title,
325
- description=description,
326
- gt=gt,
327
- ge=ge,
328
- lt=lt,
329
- le=le,
330
- min_length=min_length,
331
- max_length=max_length,
332
- regex=regex,
333
- **extra_kwargs,
334
- )
335
-
336
- def __repr__(self) -> str:
337
- return f"{self.__class__.__name__}({self.default})"
338
-
339
-
340
- class Form(Body):
341
- def __init__(
342
- self,
343
- default: Any = Undefined,
344
- *,
345
- media_type: str = "application/x-www-form-urlencoded",
346
- alias: Optional[str] = None,
347
- title: Optional[str] = None,
348
- description: Optional[str] = None,
349
- gt: Optional[float] = None,
350
- ge: Optional[float] = None,
351
- lt: Optional[float] = None,
352
- le: Optional[float] = None,
353
- min_length: Optional[int] = None,
354
- max_length: Optional[int] = None,
355
- regex: Optional[str] = None,
356
- examples: Optional[List[Any]] = None,
357
- example: Annotated[
358
- Optional[Any],
359
- deprecated(
360
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
361
- "although still supported. Use examples instead."
362
- ),
363
- ] = Undefined,
364
- **extra: Any,
365
- ):
366
- super().__init__(
367
- default=default,
368
- embed=True,
369
- media_type=media_type,
370
- alias=alias,
371
- title=title,
372
- description=description,
373
- gt=gt,
374
- ge=ge,
375
- lt=lt,
376
- le=le,
377
- min_length=min_length,
378
- max_length=max_length,
379
- regex=regex,
380
- example=example,
381
- examples=examples,
382
- **extra,
383
- )
384
-
385
-
386
- class File(Form):
387
- def __init__(
388
- self,
389
- default: Any = Undefined,
390
- *,
391
- media_type: str = "multipart/form-data",
392
- alias: Optional[str] = None,
393
- title: Optional[str] = None,
394
- description: Optional[str] = None,
395
- gt: Optional[float] = None,
396
- ge: Optional[float] = None,
397
- lt: Optional[float] = None,
398
- le: Optional[float] = None,
399
- min_length: Optional[int] = None,
400
- max_length: Optional[int] = None,
401
- regex: Optional[str] = None,
402
- examples: Optional[List[Any]] = None,
403
- example: Annotated[
404
- Optional[Any],
405
- deprecated(
406
- "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
407
- "although still supported. Use examples instead."
408
- ),
409
- ] = Undefined,
410
- **extra: Any,
411
- ):
412
- super().__init__(
413
- default=default,
414
- media_type=media_type,
415
- alias=alias,
416
- title=title,
417
- description=description,
418
- gt=gt,
419
- ge=ge,
420
- lt=lt,
421
- le=le,
422
- min_length=min_length,
423
- max_length=max_length,
424
- regex=regex,
425
- example=example,
426
- examples=examples,
427
- **extra,
428
- )
429
-
430
-
431
- class Depends:
432
- def __init__(
433
- self, dependency: Optional[Callable[..., Any]] = None, *, use_cache: bool = True
434
- ):
435
- self.dependency = dependency
436
- self.use_cache = use_cache
437
-
438
- def __repr__(self) -> str:
439
- attr = getattr(self.dependency, "__name__", type(self.dependency).__name__)
440
- cache = "" if self.use_cache else ", use_cache=False"
441
- return f"{self.__class__.__name__}({attr}{cache})"
442
-
443
-
444
- class Security(Depends):
445
- def __init__(
446
- self,
447
- dependency: Optional[Callable[..., Any]] = None,
448
- *,
449
- scopes: Optional[Sequence[str]] = None,
450
- use_cache: bool = True,
451
- ):
452
- super().__init__(dependency=dependency, use_cache=use_cache)
453
- self.scopes = scopes or []
File without changes
@@ -1,4 +0,0 @@
1
- from prefect._vendor.starlette.requests import (
2
- HTTPConnection as HTTPConnection, # noqa: F401
3
- )
4
- from prefect._vendor.starlette.requests import Request as Request # noqa: F401
@@ -1,40 +0,0 @@
1
- from typing import Any
2
-
3
- from prefect._vendor.starlette.responses import FileResponse as FileResponse # noqa
4
- from prefect._vendor.starlette.responses import HTMLResponse as HTMLResponse # noqa
5
- from prefect._vendor.starlette.responses import JSONResponse as JSONResponse # noqa
6
- from prefect._vendor.starlette.responses import (
7
- PlainTextResponse as PlainTextResponse, # noqa
8
- )
9
- from prefect._vendor.starlette.responses import (
10
- RedirectResponse as RedirectResponse, # noqa
11
- )
12
- from prefect._vendor.starlette.responses import Response as Response # noqa
13
- from prefect._vendor.starlette.responses import (
14
- StreamingResponse as StreamingResponse, # noqa
15
- )
16
-
17
- try:
18
- import ujson
19
- except ImportError: # pragma: nocover
20
- ujson = None # type: ignore
21
-
22
-
23
- try:
24
- import orjson
25
- except ImportError: # pragma: nocover
26
- orjson = None # type: ignore
27
-
28
-
29
- class UJSONResponse(JSONResponse):
30
- def render(self, content: Any) -> bytes:
31
- assert ujson is not None, "ujson must be installed to use UJSONResponse"
32
- return ujson.dumps(content, ensure_ascii=False).encode("utf-8")
33
-
34
-
35
- class ORJSONResponse(JSONResponse):
36
- def render(self, content: Any) -> bytes:
37
- assert orjson is not None, "orjson must be installed to use ORJSONResponse"
38
- return orjson.dumps(
39
- content, option=orjson.OPT_NON_STR_KEYS | orjson.OPT_SERIALIZE_NUMPY
40
- )