fastapi 0.118.3__py3-none-any.whl → 0.119.1__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.

Potentially problematic release.


This version of fastapi might be problematic. Click here for more details.

@@ -0,0 +1,724 @@
1
+ import warnings
2
+ from typing import Any, Callable, Dict, List, Optional, Union
3
+
4
+ from fastapi.openapi.models import Example
5
+ from fastapi.params import ParamTypes
6
+ from typing_extensions import Annotated, deprecated
7
+
8
+ from ._compat.may_v1 import FieldInfo, Undefined
9
+ from ._compat.shared import PYDANTIC_VERSION_MINOR_TUPLE
10
+
11
+ _Unset: Any = Undefined
12
+
13
+
14
+ class Param(FieldInfo): # type: ignore[misc]
15
+ in_: ParamTypes
16
+
17
+ def __init__(
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:
65
+ warnings.warn(
66
+ "`example` has been deprecated, please use `examples` instead",
67
+ category=DeprecationWarning,
68
+ stacklevel=4,
69
+ )
70
+ self.example = example
71
+ self.include_in_schema = include_in_schema
72
+ self.openapi_examples = openapi_examples
73
+ kwargs = dict(
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:
93
+ kwargs["examples"] = examples
94
+ if regex is not None:
95
+ warnings.warn(
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
101
+ if PYDANTIC_VERSION_MINOR_TUPLE < (2, 7):
102
+ self.deprecated = deprecated
103
+ else:
104
+ kwargs["deprecated"] = deprecated
105
+ kwargs["regex"] = pattern or regex
106
+ kwargs.update(**current_json_schema_extra)
107
+ use_kwargs = {k: v for k, v in kwargs.items() if v is not _Unset}
108
+
109
+ super().__init__(**use_kwargs)
110
+
111
+ def __repr__(self) -> str:
112
+ return f"{self.__class__.__name__}({self.default})"
113
+
114
+
115
+ class Path(Param): # type: ignore[misc]
116
+ in_ = ParamTypes.path
117
+
118
+ def __init__(
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"
166
+ self.in_ = self.in_
167
+ super().__init__(
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
+ )
199
+
200
+
201
+ class Query(Param): # type: ignore[misc]
202
+ in_ = ParamTypes.query
203
+
204
+ def __init__(
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__(
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
+ )
283
+
284
+
285
+ class Header(Param): # type: ignore[misc]
286
+ in_ = ParamTypes.header
287
+
288
+ def __init__(
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
337
+ super().__init__(
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
+ )
369
+
370
+
371
+ class Cookie(Param): # type: ignore[misc]
372
+ in_ = ParamTypes.cookie
373
+
374
+ def __init__(
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__(
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
+ )
453
+
454
+
455
+ class Body(FieldInfo): # type: ignore[misc]
456
+ def __init__(
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
506
+ self.media_type = media_type
507
+ if example is not _Unset:
508
+ warnings.warn(
509
+ "`example` has been deprecated, please use `examples` instead",
510
+ category=DeprecationWarning,
511
+ stacklevel=4,
512
+ )
513
+ self.example = example
514
+ self.include_in_schema = include_in_schema
515
+ self.openapi_examples = openapi_examples
516
+ kwargs = dict(
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:
536
+ kwargs["examples"] = examples
537
+ if regex is not None:
538
+ warnings.warn(
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
544
+ if PYDANTIC_VERSION_MINOR_TUPLE < (2, 7):
545
+ self.deprecated = deprecated
546
+ else:
547
+ kwargs["deprecated"] = deprecated
548
+ kwargs["regex"] = pattern or regex
549
+ kwargs.update(**current_json_schema_extra)
550
+
551
+ use_kwargs = {k: v for k, v in kwargs.items() if v is not _Unset}
552
+
553
+ super().__init__(**use_kwargs)
554
+
555
+ def __repr__(self) -> str:
556
+ return f"{self.__class__.__name__}({self.default})"
557
+
558
+
559
+ class Form(Body): # type: ignore[misc]
560
+ def __init__(
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__(
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
+ )
641
+
642
+
643
+ class File(Form): # type: ignore[misc]
644
+ def __init__(
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__(
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
+ )