+
    Pj                         ^ RI HtHtHtHtHtHtHtHtH	t	 ^ RI
HtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHt  ! R R]4      t ! R R4      t]! R4      tR R ltR# )    )	AnyBinaryIOCallableDictIterableOptionalTypeTypeVarcast)PYDANTIC_V2
CoreSchemaGetJsonSchemaHandlerJsonSchemaValue"with_info_plain_validator_function)URL)Address)FormData)Headers)QueryParams)State)
UploadFile)	AnnotatedDocc                   R  a a ] tR t^t oRtV3R lV 3R lltRV3R lV 3R llltV3R lV 3R lltV3R lV 3R	 llt]	V3R
 lR l4       t
]	V3R lR l4       t]	V3R lR l4       t]'       g   ]	V3R lR l4       t]	V3R lR l4       t]	V3R lR l4       tV3R ltRtVtV ;t# )r   a  
A file uploaded in a request.

Define it as a *path operation function* (or dependency) parameter.

If you are using a regular `def` function, you can use the `upload_file.file`
attribute to access the raw standard Python file (blocking, not async), useful and
needed for non-async code.

Read more about it in the
[FastAPI docs for Request Files](https://fastapi.tiangolo.com/tutorial/request-files/).

## Example

```python
from typing import Annotated

from fastapi import FastAPI, File, UploadFile

app = FastAPI()


@app.post("/files/")
async def create_file(file: Annotated[bytes, File()]):
    return {"file_size": len(file)}


@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile):
    return {"filename": file.filename}
```
c                F   < V ^8  d   QhRS[ S[S[! R4      3,          RR/# )   datazA
                The bytes to write to the file.
                returnN)r   bytesr   )format__classdict__s   "o/Users/ahmed/devFolder/Ultron/claude-voice/gateway/.venv/lib/python3.14/site-packages/fastapi/datastructures.py__annotate__UploadFile.__annotate__K   s9     ) )
) 
)    c                >   <"   \         SV `  V4      G Rj  xL
 #  L5i)z
Write some bytes to the file.

You normally wouldn't use this from a file you read in a request.

To be awaitable, compatible with async, this is run in threadpool.
N)superwrite)selfr   	__class__s   &&r"   r(   UploadFile.writeK   s     $ W]4((((   c                H   < V ^8  d   QhRS[ S[S[! R4      3,          RS[/# )r   sizezL
                The number of bytes to read from the file.
                r   )r   intr   r   )r    r!   s   "r"   r#   r$   _   s9     ( (
( 
(r%   c                >   <"   \         SV `  V4      G Rj  xL
 #  L5i)zd
Read some bytes from the file.

To be awaitable, compatible with async, this is run in threadpool.
N)r'   read)r)   r.   r*   s   &&r"   r1   UploadFile.read_   s       W\$''''r,   c                F   < V ^8  d   QhRS[ S[S[! R4      3,          RR/# )r   offsetzO
                The position in bytes to seek to in the file.
                r   N)r   r/   r   )r    r!   s   "r"   r#   r$   q   s9     * *
* 
*r%   c                >   <"   \         SV `  V4      G Rj  xL
 #  L5i)z
Move to a position in the file.

Any next read or write will be done from that position.

To be awaitable, compatible with async, this is run in threadpool.
N)r'   seek)r)   r4   r*   s   &&r"   r6   UploadFile.seekq   s     $ W\&))))r,   c                   < V ^8  d   QhRR/# )r   r   N )r    r!   s   "r"   r#   r$      s     % %T %r%   c                <   <"   \         SV `  4       G Rj  xL
 #  L5i)zU
Close the file.

To be awaitable, compatible with async, this is run in threadpool.
N)r'   close)r)   r*   s   &r"   r;   UploadFile.close   s      W]_$$$s   c                X   < V ^8  d   QhRS[ R,          RS[S[RS[3,          ,          /# )r   clsr   r   .)r	   r   r   r   )r    r!   s   "r"   r#   r$      s.      \ 2 xc@R7S r%   c              #  *   "   V P                   x  R # 5iN)validate)r>   s   &r"   __get_validators__UploadFile.__get_validators__   s     lls   c                :   < V ^8  d   QhRS[ R,          RS[RS[/# )r   r>   r   vr   )r	   r   )r    r!   s   "r"   r#   r$      s'      d<( S S r%   c                `    \        V\        4      '       g   \        R \        V4       24      hV# zExpected UploadFile, received: )
isinstanceStarletteUploadFile
ValueErrortype)r>   rE   s   &&r"   rA   UploadFile.validate   s,    !011>tAwiHIIr%   c                *   < V ^8  d   QhRS[ RS[ RR/# )r   _UploadFile__input_value_r   r   r   )r    r!   s   "r"   r#   r$      s"     / /c /c /l /r%   c                |    \        V\        4      '       g   \        R \        V4       24      h\	        \
        V4      # rG   )rH   rI   rJ   rK   r   r   )r>   rN   rO   s   &&&r"   	_validateUploadFile._validate   s6    -)<==>tM?R>STUUJ..r%   c                :   < V ^8  d   QhRS[ S[S[3,          RR/# )r   field_schemar   N)r   strr   )r    r!   s   "r"   r#   r$      s'     	H 	Hc3h 	HD 	Hr%   c                0    VP                  R RRR/4       R# )rK   stringr    binaryN)update)r>   rU   s   &&r"   __modify_schema__UploadFile.__modify_schema__   s    8X FGr%   c                ,   < V ^8  d   QhRS[ RS[RS[/# )r   core_schemahandlerr   )r   r   r   )r    r!   s   "r"   r#   r$      s%     6 6$6/C6	6r%   c                    R RRR/# )rK   rX   r    rY   r9   )r>   r^   r_   s   &&&r"   __get_pydantic_json_schema__'UploadFile.__get_pydantic_json_schema__   s     (H55r%   c                T   < V ^8  d   QhRS[ S[,          RS[S[.S[3,          RS[/# )r   sourcer_   r   )r	   r   r   r   )r    r!   s   "r"   r#   r$      s:     A A#YA)13%2C)DA	Ar%   c                ,    \        V P                  4      # r@   )r   rR   )r>   rd   r_   s   &&&r"   __get_pydantic_core_schema__'UploadFile.__get_pydantic_core_schema__   s     2#--@@r%   c                0  < V ^8  d   Qh/ S[ S[S[! R4      3,          ;R&   S[ S[S[,          S[! R4      3,          ;R&   S[ S[S[,          S[! R4      3,          ;R&   S[ S[S[! R4      3,          ;R&   S[ S[S[,          S[! R	4      3,          ;R
&   # )r   z,The standard Python file object (non-async).filezThe original file name.filenamezThe size of the file in bytes.r.   zThe headers of the request.headersz2The content type of the request, from the headers.content_type)r   r   r   r   rV   r/   r   )r    r!   s   "r"   r#   r$      s     D :;	= E L s+D'EEFFM N HSM3'G#HH
IIO P w$A BBCCQ R sOPP S r%   r9   ))__name__
__module____qualname____firstlineno____doc__r(   r1   r6   r;   classmethodrB   rA   rR   r   r[   ra   rf   __annotate_func____static_attributes____classdictcell____classcell__)r*   r!   s   @@r"   r   r      s     X) )(( ($* *(% %    
 / /
 		H 
	H 6 6
 A AY  r%   r   c                   Z   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltRtV t	R	# )
DefaultPlaceholderz
You shouldn't use this class directly.

It's used internally to recognize when a default value has been overwritten, even
if the overridden default value was truthy.
c                    < V ^8  d   QhRS[ /# )r   valuerP   )r    r!   s   "r"   r#   DefaultPlaceholder.__annotate__   s      c r%   c                    Wn         R # r@   r{   )r)   r{   s   &&r"   __init__DefaultPlaceholder.__init__   s    
r%   c                    < V ^8  d   QhRS[ /# )r   r   )bool)r    r!   s   "r"   r#   r|      s        $  r%   c                ,    \        V P                  4      # r@   )r   r{   )r)   s   &r"   __bool__DefaultPlaceholder.__bool__   s    DJJr%   c                &   < V ^8  d   QhRS[ RS[/# )r   or   )objectr   )r    r!   s   "r"   r#   r|      s     K K K4 Kr%   c                d    \        V\        4      ;'       d    VP                  V P                  8H  # r@   )rH   ry   r{   )r)   r   s   &&r"   __eq__DefaultPlaceholder.__eq__   s%    !/0JJQWW

5JJr%   r~   N)
rn   ro   rp   rq   rr   r   r   r   ru   rv   )r!   s   @r"   ry   ry      s*         K Kr%   ry   DefaultTypec                0    V ^8  d   QhR\         R\         /# )r   r{   r   )r   )r    s   "r"   r#   r#      s     % %; %; %r%   c                    \        V 4      # )z
You shouldn't use this function directly.

It's used internally to recognize when a default value has been overwritten, even
if the overridden default value was truthy.
)ry   r~   s   &r"   Defaultr      s     e$$r%   N)typingr   r   r   r   r   r   r	   r
   r   fastapi._compatr   r   r   r   r   starlette.datastructuresr   r   r   r   r   r   r   rI   typing_extensionsr   r   ry   r   r   r9   r%   r"   <module>r      sg   
 
 
  0 7 9 7 ? 3 F ,OA$ OAdK K$ m$%r%   