Coverage for fastapi/temp_pydantic_v1_params.py: 100%
80 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1import warnings 1abcdefg
2from typing import Any, Callable, Dict, List, Optional, Union 1abcdefg
4from fastapi.openapi.models import Example 1abcdefg
5from fastapi.params import ParamTypes 1abcdefg
6from typing_extensions import Annotated, deprecated 1abcdefg
8from ._compat.may_v1 import FieldInfo, Undefined 1abcdefg
9from ._compat.shared import PYDANTIC_VERSION_MINOR_TUPLE 1abcdefg
11_Unset: Any = Undefined 1abcdefg
14class Param(FieldInfo): # type: ignore[misc] 1abcdefg
15 in_: ParamTypes 1abcdef
17 def __init__( 1abcdefg
18 self,
19 default: Any = Undefined,
20 *,
21 default_factory: Union[Callable[[], Any], None] = _Unset,
22 annotation: Optional[Any] = None,
23 alias: Optional[str] = None,
24 alias_priority: Union[int, None] = _Unset,
25 # TODO: update when deprecating Pydantic v1, import these types
26 # validation_alias: str | AliasPath | AliasChoices | None
27 validation_alias: Union[str, None] = None,
28 serialization_alias: Union[str, None] = None,
29 title: Optional[str] = None,
30 description: Optional[str] = None,
31 gt: Optional[float] = None,
32 ge: Optional[float] = None,
33 lt: Optional[float] = None,
34 le: Optional[float] = None,
35 min_length: Optional[int] = None,
36 max_length: Optional[int] = None,
37 pattern: Optional[str] = None,
38 regex: Annotated[
39 Optional[str],
40 deprecated(
41 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
42 ),
43 ] = None,
44 discriminator: Union[str, None] = None,
45 strict: Union[bool, None] = _Unset,
46 multiple_of: Union[float, None] = _Unset,
47 allow_inf_nan: Union[bool, None] = _Unset,
48 max_digits: Union[int, None] = _Unset,
49 decimal_places: Union[int, None] = _Unset,
50 examples: Optional[List[Any]] = None,
51 example: Annotated[
52 Optional[Any],
53 deprecated(
54 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
55 "although still supported. Use examples instead."
56 ),
57 ] = _Unset,
58 openapi_examples: Optional[Dict[str, Example]] = None,
59 deprecated: Union[deprecated, str, bool, None] = None,
60 include_in_schema: bool = True,
61 json_schema_extra: Union[Dict[str, Any], None] = None,
62 **extra: Any,
63 ):
64 if example is not _Unset: 1azABbCDEcFGHdIJKeLMNfOPQ
65 warnings.warn( 1zCFILO
66 "`example` has been deprecated, please use `examples` instead",
67 category=DeprecationWarning,
68 stacklevel=4,
69 )
70 self.example = example 1azABbCDEcFGHdIJKeLMNfOPQ
71 self.include_in_schema = include_in_schema 1azABbCDEcFGHdIJKeLMNfOPQ
72 self.openapi_examples = openapi_examples 1azABbCDEcFGHdIJKeLMNfOPQ
73 kwargs = dict( 1azABbCDEcFGHdIJKeLMNfOPQ
74 default=default,
75 default_factory=default_factory,
76 alias=alias,
77 title=title,
78 description=description,
79 gt=gt,
80 ge=ge,
81 lt=lt,
82 le=le,
83 min_length=min_length,
84 max_length=max_length,
85 discriminator=discriminator,
86 multiple_of=multiple_of,
87 allow_inf_nan=allow_inf_nan,
88 max_digits=max_digits,
89 decimal_places=decimal_places,
90 **extra,
91 )
92 if examples is not None: 1azABbCDEcFGHdIJKeLMNfOPQ
93 kwargs["examples"] = examples 1abcdef
94 if regex is not None: 1azABbCDEcFGHdIJKeLMNfOPQ
95 warnings.warn( 1ADGJMP
96 "`regex` has been deprecated, please use `pattern` instead",
97 category=DeprecationWarning,
98 stacklevel=4,
99 )
100 current_json_schema_extra = json_schema_extra or extra 1azABbCDEcFGHdIJKeLMNfOPQ
101 if PYDANTIC_VERSION_MINOR_TUPLE < (2, 7): 1azABbCDEcFGHdIJKeLMNfOPQ
102 self.deprecated = deprecated 1azABbCDEcFGHdIJKeLMNfOPQ
103 else:
104 kwargs["deprecated"] = deprecated 1azABbCDEcFGHdIJKeLMNfOPQ
105 kwargs["regex"] = pattern or regex 1azABbCDEcFGHdIJKeLMNfOPQ
106 kwargs.update(**current_json_schema_extra) 1azABbCDEcFGHdIJKeLMNfOPQ
107 use_kwargs = {k: v for k, v in kwargs.items() if v is not _Unset} 1azABbCDEcFGHdIJKeLMNfOPQ
109 super().__init__(**use_kwargs) 1azABbCDEcFGHdIJKeLMNfOPQ
111 def __repr__(self) -> str: 1abcdefg
112 return f"{self.__class__.__name__}({self.default})" 1BEHKNQ
115class Path(Param): # type: ignore[misc] 1abcdefg
116 in_ = ParamTypes.path 1abcdefg
118 def __init__( 1abcdefg
119 self,
120 default: Any = ...,
121 *,
122 default_factory: Union[Callable[[], Any], None] = _Unset,
123 annotation: Optional[Any] = None,
124 alias: Optional[str] = None,
125 alias_priority: Union[int, None] = _Unset,
126 # TODO: update when deprecating Pydantic v1, import these types
127 # validation_alias: str | AliasPath | AliasChoices | None
128 validation_alias: Union[str, None] = None,
129 serialization_alias: Union[str, None] = None,
130 title: Optional[str] = None,
131 description: Optional[str] = None,
132 gt: Optional[float] = None,
133 ge: Optional[float] = None,
134 lt: Optional[float] = None,
135 le: Optional[float] = None,
136 min_length: Optional[int] = None,
137 max_length: Optional[int] = None,
138 pattern: Optional[str] = None,
139 regex: Annotated[
140 Optional[str],
141 deprecated(
142 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
143 ),
144 ] = None,
145 discriminator: Union[str, None] = None,
146 strict: Union[bool, None] = _Unset,
147 multiple_of: Union[float, None] = _Unset,
148 allow_inf_nan: Union[bool, None] = _Unset,
149 max_digits: Union[int, None] = _Unset,
150 decimal_places: Union[int, None] = _Unset,
151 examples: Optional[List[Any]] = None,
152 example: Annotated[
153 Optional[Any],
154 deprecated(
155 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
156 "although still supported. Use examples instead."
157 ),
158 ] = _Unset,
159 openapi_examples: Optional[Dict[str, Example]] = None,
160 deprecated: Union[deprecated, str, bool, None] = None,
161 include_in_schema: bool = True,
162 json_schema_extra: Union[Dict[str, Any], None] = None,
163 **extra: Any,
164 ):
165 assert default is ..., "Path parameters cannot have a default value" 1abcdef
166 self.in_ = self.in_ 1abcdef
167 super().__init__( 1abcdef
168 default=default,
169 default_factory=default_factory,
170 annotation=annotation,
171 alias=alias,
172 alias_priority=alias_priority,
173 validation_alias=validation_alias,
174 serialization_alias=serialization_alias,
175 title=title,
176 description=description,
177 gt=gt,
178 ge=ge,
179 lt=lt,
180 le=le,
181 min_length=min_length,
182 max_length=max_length,
183 pattern=pattern,
184 regex=regex,
185 discriminator=discriminator,
186 strict=strict,
187 multiple_of=multiple_of,
188 allow_inf_nan=allow_inf_nan,
189 max_digits=max_digits,
190 decimal_places=decimal_places,
191 deprecated=deprecated,
192 example=example,
193 examples=examples,
194 openapi_examples=openapi_examples,
195 include_in_schema=include_in_schema,
196 json_schema_extra=json_schema_extra,
197 **extra,
198 )
201class Query(Param): # type: ignore[misc] 1abcdefg
202 in_ = ParamTypes.query 1abcdefg
204 def __init__( 1abcdefg
205 self,
206 default: Any = Undefined,
207 *,
208 default_factory: Union[Callable[[], Any], None] = _Unset,
209 annotation: Optional[Any] = None,
210 alias: Optional[str] = None,
211 alias_priority: Union[int, None] = _Unset,
212 # TODO: update when deprecating Pydantic v1, import these types
213 # validation_alias: str | AliasPath | AliasChoices | None
214 validation_alias: Union[str, None] = None,
215 serialization_alias: Union[str, None] = None,
216 title: Optional[str] = None,
217 description: Optional[str] = None,
218 gt: Optional[float] = None,
219 ge: Optional[float] = None,
220 lt: Optional[float] = None,
221 le: Optional[float] = None,
222 min_length: Optional[int] = None,
223 max_length: Optional[int] = None,
224 pattern: Optional[str] = None,
225 regex: Annotated[
226 Optional[str],
227 deprecated(
228 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
229 ),
230 ] = None,
231 discriminator: Union[str, None] = None,
232 strict: Union[bool, None] = _Unset,
233 multiple_of: Union[float, None] = _Unset,
234 allow_inf_nan: Union[bool, None] = _Unset,
235 max_digits: Union[int, None] = _Unset,
236 decimal_places: Union[int, None] = _Unset,
237 examples: Optional[List[Any]] = None,
238 example: Annotated[
239 Optional[Any],
240 deprecated(
241 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
242 "although still supported. Use examples instead."
243 ),
244 ] = _Unset,
245 openapi_examples: Optional[Dict[str, Example]] = None,
246 deprecated: Union[deprecated, str, bool, None] = None,
247 include_in_schema: bool = True,
248 json_schema_extra: Union[Dict[str, Any], None] = None,
249 **extra: Any,
250 ):
251 super().__init__( 1azABbCDEcFGHdIJKeLMNfOPQ
252 default=default,
253 default_factory=default_factory,
254 annotation=annotation,
255 alias=alias,
256 alias_priority=alias_priority,
257 validation_alias=validation_alias,
258 serialization_alias=serialization_alias,
259 title=title,
260 description=description,
261 gt=gt,
262 ge=ge,
263 lt=lt,
264 le=le,
265 min_length=min_length,
266 max_length=max_length,
267 pattern=pattern,
268 regex=regex,
269 discriminator=discriminator,
270 strict=strict,
271 multiple_of=multiple_of,
272 allow_inf_nan=allow_inf_nan,
273 max_digits=max_digits,
274 decimal_places=decimal_places,
275 deprecated=deprecated,
276 example=example,
277 examples=examples,
278 openapi_examples=openapi_examples,
279 include_in_schema=include_in_schema,
280 json_schema_extra=json_schema_extra,
281 **extra,
282 )
285class Header(Param): # type: ignore[misc] 1abcdefg
286 in_ = ParamTypes.header 1abcdefg
288 def __init__( 1abcdefg
289 self,
290 default: Any = Undefined,
291 *,
292 default_factory: Union[Callable[[], Any], None] = _Unset,
293 annotation: Optional[Any] = None,
294 alias: Optional[str] = None,
295 alias_priority: Union[int, None] = _Unset,
296 # TODO: update when deprecating Pydantic v1, import these types
297 # validation_alias: str | AliasPath | AliasChoices | None
298 validation_alias: Union[str, None] = None,
299 serialization_alias: Union[str, None] = None,
300 convert_underscores: bool = True,
301 title: Optional[str] = None,
302 description: Optional[str] = None,
303 gt: Optional[float] = None,
304 ge: Optional[float] = None,
305 lt: Optional[float] = None,
306 le: Optional[float] = None,
307 min_length: Optional[int] = None,
308 max_length: Optional[int] = None,
309 pattern: Optional[str] = None,
310 regex: Annotated[
311 Optional[str],
312 deprecated(
313 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
314 ),
315 ] = None,
316 discriminator: Union[str, None] = None,
317 strict: Union[bool, None] = _Unset,
318 multiple_of: Union[float, None] = _Unset,
319 allow_inf_nan: Union[bool, None] = _Unset,
320 max_digits: Union[int, None] = _Unset,
321 decimal_places: Union[int, None] = _Unset,
322 examples: Optional[List[Any]] = None,
323 example: Annotated[
324 Optional[Any],
325 deprecated(
326 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
327 "although still supported. Use examples instead."
328 ),
329 ] = _Unset,
330 openapi_examples: Optional[Dict[str, Example]] = None,
331 deprecated: Union[deprecated, str, bool, None] = None,
332 include_in_schema: bool = True,
333 json_schema_extra: Union[Dict[str, Any], None] = None,
334 **extra: Any,
335 ):
336 self.convert_underscores = convert_underscores 1abcdef
337 super().__init__( 1abcdef
338 default=default,
339 default_factory=default_factory,
340 annotation=annotation,
341 alias=alias,
342 alias_priority=alias_priority,
343 validation_alias=validation_alias,
344 serialization_alias=serialization_alias,
345 title=title,
346 description=description,
347 gt=gt,
348 ge=ge,
349 lt=lt,
350 le=le,
351 min_length=min_length,
352 max_length=max_length,
353 pattern=pattern,
354 regex=regex,
355 discriminator=discriminator,
356 strict=strict,
357 multiple_of=multiple_of,
358 allow_inf_nan=allow_inf_nan,
359 max_digits=max_digits,
360 decimal_places=decimal_places,
361 deprecated=deprecated,
362 example=example,
363 examples=examples,
364 openapi_examples=openapi_examples,
365 include_in_schema=include_in_schema,
366 json_schema_extra=json_schema_extra,
367 **extra,
368 )
371class Cookie(Param): # type: ignore[misc] 1abcdefg
372 in_ = ParamTypes.cookie 1abcdefg
374 def __init__( 1abcdefg
375 self,
376 default: Any = Undefined,
377 *,
378 default_factory: Union[Callable[[], Any], None] = _Unset,
379 annotation: Optional[Any] = None,
380 alias: Optional[str] = None,
381 alias_priority: Union[int, None] = _Unset,
382 # TODO: update when deprecating Pydantic v1, import these types
383 # validation_alias: str | AliasPath | AliasChoices | None
384 validation_alias: Union[str, None] = None,
385 serialization_alias: Union[str, None] = None,
386 title: Optional[str] = None,
387 description: Optional[str] = None,
388 gt: Optional[float] = None,
389 ge: Optional[float] = None,
390 lt: Optional[float] = None,
391 le: Optional[float] = None,
392 min_length: Optional[int] = None,
393 max_length: Optional[int] = None,
394 pattern: Optional[str] = None,
395 regex: Annotated[
396 Optional[str],
397 deprecated(
398 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
399 ),
400 ] = None,
401 discriminator: Union[str, None] = None,
402 strict: Union[bool, None] = _Unset,
403 multiple_of: Union[float, None] = _Unset,
404 allow_inf_nan: Union[bool, None] = _Unset,
405 max_digits: Union[int, None] = _Unset,
406 decimal_places: Union[int, None] = _Unset,
407 examples: Optional[List[Any]] = None,
408 example: Annotated[
409 Optional[Any],
410 deprecated(
411 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
412 "although still supported. Use examples instead."
413 ),
414 ] = _Unset,
415 openapi_examples: Optional[Dict[str, Example]] = None,
416 deprecated: Union[deprecated, str, bool, None] = None,
417 include_in_schema: bool = True,
418 json_schema_extra: Union[Dict[str, Any], None] = None,
419 **extra: Any,
420 ):
421 super().__init__( 1abcdef
422 default=default,
423 default_factory=default_factory,
424 annotation=annotation,
425 alias=alias,
426 alias_priority=alias_priority,
427 validation_alias=validation_alias,
428 serialization_alias=serialization_alias,
429 title=title,
430 description=description,
431 gt=gt,
432 ge=ge,
433 lt=lt,
434 le=le,
435 min_length=min_length,
436 max_length=max_length,
437 pattern=pattern,
438 regex=regex,
439 discriminator=discriminator,
440 strict=strict,
441 multiple_of=multiple_of,
442 allow_inf_nan=allow_inf_nan,
443 max_digits=max_digits,
444 decimal_places=decimal_places,
445 deprecated=deprecated,
446 example=example,
447 examples=examples,
448 openapi_examples=openapi_examples,
449 include_in_schema=include_in_schema,
450 json_schema_extra=json_schema_extra,
451 **extra,
452 )
455class Body(FieldInfo): # type: ignore[misc] 1abcdefg
456 def __init__( 1abcdefg
457 self,
458 default: Any = Undefined,
459 *,
460 default_factory: Union[Callable[[], Any], None] = _Unset,
461 annotation: Optional[Any] = None,
462 embed: Union[bool, None] = None,
463 media_type: str = "application/json",
464 alias: Optional[str] = None,
465 alias_priority: Union[int, None] = _Unset,
466 # TODO: update when deprecating Pydantic v1, import these types
467 # validation_alias: str | AliasPath | AliasChoices | None
468 validation_alias: Union[str, None] = None,
469 serialization_alias: Union[str, None] = None,
470 title: Optional[str] = None,
471 description: Optional[str] = None,
472 gt: Optional[float] = None,
473 ge: Optional[float] = None,
474 lt: Optional[float] = None,
475 le: Optional[float] = None,
476 min_length: Optional[int] = None,
477 max_length: Optional[int] = None,
478 pattern: Optional[str] = None,
479 regex: Annotated[
480 Optional[str],
481 deprecated(
482 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
483 ),
484 ] = None,
485 discriminator: Union[str, None] = None,
486 strict: Union[bool, None] = _Unset,
487 multiple_of: Union[float, None] = _Unset,
488 allow_inf_nan: Union[bool, None] = _Unset,
489 max_digits: Union[int, None] = _Unset,
490 decimal_places: Union[int, None] = _Unset,
491 examples: Optional[List[Any]] = None,
492 example: Annotated[
493 Optional[Any],
494 deprecated(
495 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
496 "although still supported. Use examples instead."
497 ),
498 ] = _Unset,
499 openapi_examples: Optional[Dict[str, Example]] = None,
500 deprecated: Union[deprecated, str, bool, None] = None,
501 include_in_schema: bool = True,
502 json_schema_extra: Union[Dict[str, Any], None] = None,
503 **extra: Any,
504 ):
505 self.embed = embed 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
506 self.media_type = media_type 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
507 if example is not _Unset: 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
508 warnings.warn( 1hknqtw
509 "`example` has been deprecated, please use `examples` instead",
510 category=DeprecationWarning,
511 stacklevel=4,
512 )
513 self.example = example 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
514 self.include_in_schema = include_in_schema 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
515 self.openapi_examples = openapi_examples 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
516 kwargs = dict( 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
517 default=default,
518 default_factory=default_factory,
519 alias=alias,
520 title=title,
521 description=description,
522 gt=gt,
523 ge=ge,
524 lt=lt,
525 le=le,
526 min_length=min_length,
527 max_length=max_length,
528 discriminator=discriminator,
529 multiple_of=multiple_of,
530 allow_inf_nan=allow_inf_nan,
531 max_digits=max_digits,
532 decimal_places=decimal_places,
533 **extra,
534 )
535 if examples is not None: 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
536 kwargs["examples"] = examples 1abcdef
537 if regex is not None: 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
538 warnings.warn( 1ilorux
539 "`regex` has been deprecated, please use `pattern` instead",
540 category=DeprecationWarning,
541 stacklevel=4,
542 )
543 current_json_schema_extra = json_schema_extra or extra 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
544 if PYDANTIC_VERSION_MINOR_TUPLE < (2, 7): 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
545 self.deprecated = deprecated 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
546 else:
547 kwargs["deprecated"] = deprecated 1ahijbklmcnopdqrsetuvfwxy
548 kwargs["regex"] = pattern or regex 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
549 kwargs.update(**current_json_schema_extra) 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
551 use_kwargs = {k: v for k, v in kwargs.items() if v is not _Unset} 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
553 super().__init__(**use_kwargs) 2a h i j R S T U V W X Y Z 0 1 2 3 4 5 6 b k l m 7 8 9 ! # $ % ' ( ) * + , - . / c n o p : ; = ? @ [ ] ^ _ ` { | } ~ abbbd q r s cbdbebfbgbhbibjbkblbmbnbobpbqbrbe t u v sbtbubvbwbxbybzbAbBbCbDbEbFbGbHbf w x y IbJbKbLbMbNbObPbQbRbSbTbUbVbWbXb
555 def __repr__(self) -> str: 1abcdefg
556 return f"{self.__class__.__name__}({self.default})" 1jmpsvy
559class Form(Body): # type: ignore[misc] 1abcdefg
560 def __init__( 1abcdefg
561 self,
562 default: Any = Undefined,
563 *,
564 default_factory: Union[Callable[[], Any], None] = _Unset,
565 annotation: Optional[Any] = None,
566 media_type: str = "application/x-www-form-urlencoded",
567 alias: Optional[str] = None,
568 alias_priority: Union[int, None] = _Unset,
569 # TODO: update when deprecating Pydantic v1, import these types
570 # validation_alias: str | AliasPath | AliasChoices | None
571 validation_alias: Union[str, None] = None,
572 serialization_alias: Union[str, None] = None,
573 title: Optional[str] = None,
574 description: Optional[str] = None,
575 gt: Optional[float] = None,
576 ge: Optional[float] = None,
577 lt: Optional[float] = None,
578 le: Optional[float] = None,
579 min_length: Optional[int] = None,
580 max_length: Optional[int] = None,
581 pattern: Optional[str] = None,
582 regex: Annotated[
583 Optional[str],
584 deprecated(
585 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
586 ),
587 ] = None,
588 discriminator: Union[str, None] = None,
589 strict: Union[bool, None] = _Unset,
590 multiple_of: Union[float, None] = _Unset,
591 allow_inf_nan: Union[bool, None] = _Unset,
592 max_digits: Union[int, None] = _Unset,
593 decimal_places: Union[int, None] = _Unset,
594 examples: Optional[List[Any]] = None,
595 example: Annotated[
596 Optional[Any],
597 deprecated(
598 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
599 "although still supported. Use examples instead."
600 ),
601 ] = _Unset,
602 openapi_examples: Optional[Dict[str, Example]] = None,
603 deprecated: Union[deprecated, str, bool, None] = None,
604 include_in_schema: bool = True,
605 json_schema_extra: Union[Dict[str, Any], None] = None,
606 **extra: Any,
607 ):
608 super().__init__( 1abcdef
609 default=default,
610 default_factory=default_factory,
611 annotation=annotation,
612 media_type=media_type,
613 alias=alias,
614 alias_priority=alias_priority,
615 validation_alias=validation_alias,
616 serialization_alias=serialization_alias,
617 title=title,
618 description=description,
619 gt=gt,
620 ge=ge,
621 lt=lt,
622 le=le,
623 min_length=min_length,
624 max_length=max_length,
625 pattern=pattern,
626 regex=regex,
627 discriminator=discriminator,
628 strict=strict,
629 multiple_of=multiple_of,
630 allow_inf_nan=allow_inf_nan,
631 max_digits=max_digits,
632 decimal_places=decimal_places,
633 deprecated=deprecated,
634 example=example,
635 examples=examples,
636 openapi_examples=openapi_examples,
637 include_in_schema=include_in_schema,
638 json_schema_extra=json_schema_extra,
639 **extra,
640 )
643class File(Form): # type: ignore[misc] 1abcdefg
644 def __init__( 1abcdefg
645 self,
646 default: Any = Undefined,
647 *,
648 default_factory: Union[Callable[[], Any], None] = _Unset,
649 annotation: Optional[Any] = None,
650 media_type: str = "multipart/form-data",
651 alias: Optional[str] = None,
652 alias_priority: Union[int, None] = _Unset,
653 # TODO: update when deprecating Pydantic v1, import these types
654 # validation_alias: str | AliasPath | AliasChoices | None
655 validation_alias: Union[str, None] = None,
656 serialization_alias: Union[str, None] = None,
657 title: Optional[str] = None,
658 description: Optional[str] = None,
659 gt: Optional[float] = None,
660 ge: Optional[float] = None,
661 lt: Optional[float] = None,
662 le: Optional[float] = None,
663 min_length: Optional[int] = None,
664 max_length: Optional[int] = None,
665 pattern: Optional[str] = None,
666 regex: Annotated[
667 Optional[str],
668 deprecated(
669 "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
670 ),
671 ] = None,
672 discriminator: Union[str, None] = None,
673 strict: Union[bool, None] = _Unset,
674 multiple_of: Union[float, None] = _Unset,
675 allow_inf_nan: Union[bool, None] = _Unset,
676 max_digits: Union[int, None] = _Unset,
677 decimal_places: Union[int, None] = _Unset,
678 examples: Optional[List[Any]] = None,
679 example: Annotated[
680 Optional[Any],
681 deprecated(
682 "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, "
683 "although still supported. Use examples instead."
684 ),
685 ] = _Unset,
686 openapi_examples: Optional[Dict[str, Example]] = None,
687 deprecated: Union[deprecated, str, bool, None] = None,
688 include_in_schema: bool = True,
689 json_schema_extra: Union[Dict[str, Any], None] = None,
690 **extra: Any,
691 ):
692 super().__init__( 1abcdef
693 default=default,
694 default_factory=default_factory,
695 annotation=annotation,
696 media_type=media_type,
697 alias=alias,
698 alias_priority=alias_priority,
699 validation_alias=validation_alias,
700 serialization_alias=serialization_alias,
701 title=title,
702 description=description,
703 gt=gt,
704 ge=ge,
705 lt=lt,
706 le=le,
707 min_length=min_length,
708 max_length=max_length,
709 pattern=pattern,
710 regex=regex,
711 discriminator=discriminator,
712 strict=strict,
713 multiple_of=multiple_of,
714 allow_inf_nan=allow_inf_nan,
715 max_digits=max_digits,
716 decimal_places=decimal_places,
717 deprecated=deprecated,
718 example=example,
719 examples=examples,
720 openapi_examples=openapi_examples,
721 include_in_schema=include_in_schema,
722 json_schema_extra=json_schema_extra,
723 **extra,
724 )