o
    LDiR                     @   s  U d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	 d dlm
Z
mZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ e jdk reejejfZeedf e d< nejejejfZeedf e d< edd e!ddd D Z"e"d  dkZ#ee$e$e$eee%e%e&e&eeiZ'ee'( Z)e*e e d< dedee*e ee*e df df de+fddZ,dee*e df de+fddZ-dee*e df de+fddZ.dede+fdd Z/dee*e df de+fd!d"Z0dee*e df de+fd#d$Z1dede+fd%d&Z2dee*e df de+fd'd(Z3dede+fd)d*Z4dede+fd+d,Z5dede+fd-d.Z6dede+fd/d0Z7dede+fd1d2Z8dS )3    N)deque)MappingSequence)is_dataclass)	AnnotatedAnyUnion)may_v1)	UnionType)	BaseModel)VERSION)
UploadFile)get_args
get_origin)   
   .WithArgsTypesc                 c       | ]}t |V  qd S N)int).0x r   b/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/fastapi/_compat/shared.py	<genexpr>       r   .   Urlclsclass_or_tuplereturnc                 C   s8   zt | to
t| |W S  ty   t | trY dS  w NF)
isinstancetype
issubclass	TypeErrorr   )r   r    r   r   r   lenient_issubclass1   s   
r'   
annotationc                 C   s   t | ttfr	dS t | tS r"   )r'   strbytessequence_typesr(   r   r   r   _annotation_is_sequence<   s   
r-   c                 C   sL   t | }|tu s|tu rt| D ]	}t|r dS qdS t| p%tt | S NTF)r   r   r
   r   field_annotation_is_sequencer-   r(   originargr   r   r   r/   B   s   
r/   valuec                 C   s   t | tot | ttf S r   )r#   r+   r)   r*   )r3   r   r   r   value_is_sequenceN   s   r4   c                 C   s$   t | ttjttfpt| pt| S r   )r'   r   r	   r   r   r-   r   r,   r   r   r   _annotation_is_complexR   s   r5   c                 C   sj   t | }|tu s|tu rtdd t| D S |tu r#tt| d S t| p4t|p4t|dp4t|dS )Nc                 s   r   r   )field_annotation_is_complex)r   r2   r   r   r   r   _   r   z.field_annotation_is_complex.<locals>.<genexpr>r   __pydantic_core_schema____get_pydantic_core_schema__)	r   r   r
   anyr   r   r6   r5   hasattr)r(   r1   r   r   r   r6   \   s   r6   c                 C   s   | t u pt|  S r   )Ellipsisr6   r,   r   r   r   field_annotation_is_scalarl   s   r<   c                 C   sh   t | }|tu s|tu r%d}t| D ]}t|rd}qt|s" dS q|S t| o3tdd t| D S )NFTc                 s   r   r   )r<   r   sub_annotationr   r   r   r   |   
    
z6field_annotation_is_scalar_sequence.<locals>.<genexpr>)r   r   r
   r   #field_annotation_is_scalar_sequencer<   r/   all)r(   r1   at_least_one_scalar_sequencer2   r   r   r   r@   q   s   r@   c                 C   H   t | trdS t| }|tu s|tu r"t| D ]
}t |tr! dS qdS r.   )r'   r*   r   r   r
   r   r0   r   r   r   $is_bytes_or_nonable_bytes_annotation      

rD   c                 C   rC   r.   )r'   r   r   r   r
   r   r0   r   r   r   .is_uploadfile_or_nonable_uploadfile_annotation   rE   rF   c                 C   Z   t | }|tu s|tu rd}t| D ]	}t|rd}qq|S t| o,tdd t| D S )NFTc                 s   r   r   )rD   r=   r   r   r   r      r?   z/is_bytes_sequence_annotation.<locals>.<genexpr>)r   r   r
   r   is_bytes_sequence_annotationr/   rA   r(   r1   at_least_oner2   r   r   r   rH         rH   c                 C   rG   )NFTc                 s   r   r   )rF   r=   r   r   r   r      r?   z4is_uploadfile_sequence_annotation.<locals>.<genexpr>)r   r   r
   r   !is_uploadfile_sequence_annotationr/   rA   rI   r   r   r   rL      rK   rL   c                 C   sp   t | tjrdS t| }|tu s|tu r$t| D ]}t |tjr# dS qt| r6t| D ]	}t|r5 dS q,dS r.   )	r'   r	   r   r   r   r
   r   r/   annotation_is_pydantic_v1)r(   r1   r2   r>   r   r   r   rM      s   rM   )9systypestypingcollectionsr   collections.abcr   r   dataclassesr   r   r   r   fastapi._compatr	   fastapi.typesr
   pydanticr   pydantic.versionr   PYDANTIC_VERSIONstarlette.datastructuresr   typing_extensionsr   r   version_info_GenericAliasGenericAliasr   tuple__annotations__splitPYDANTIC_VERSION_MINOR_TUPLEPYDANTIC_V2listset	frozensetsequence_annotation_to_typekeysr+   r$   boolr'   r-   r/   r4   r5   r6   r<   r@   rD   rF   rH   rL   rM   r   r   r   r   <module>   sb   
 
 	

