
    i                     `   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mZ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  ed
          Zej        e j        e j        fZeedf         ed<    ed  ej         d          dd         D                       Z!ee"e"e"eee#e#e$e$eeiZ% ee%&                                          Z'ee(e         df         ed<   dede(e         ee(e         df         z  dz  dee(e                  fdZ)de(e         dz  de*fdZ+de(e         dz  de*fdZ,dede*fdZ-de(e         dz  de*fdZ.de(e         dz  de*fdZ/dede*fdZ0de(e         dz  de*fdZ1dede*fdZ2dede*fdZ3dede*fd Z4dede*fd!Z5d"ede*fd#Z6dede*fd$Z7dede*fd%Z8dS )&    N)deque)MappingSequence)is_dataclass)	AnnotatedAny	TypeGuardTypeVarUnionget_args
get_origin)	UnionType)	BaseModel)VERSION)
UploadFile_T.WithArgsTypesc              #   4   K   | ]}t          |          V  d S N)int).0xs     S/root/projects/qq-shell/venv/lib/python3.11/site-packages/fastapi/_compat/shared.py	<genexpr>r      s(      $U$USVV$U$U$U$U$U$U    .   sequence_typesclsclass_or_tuplereturnc                     	 t          | t                    ot          | |          S # t          $ r t          | t                    rY dS  w xY wNF)
isinstancetype
issubclass	TypeErrorr   )r   r    s     r   lenient_issubclassr(   /   s]    #t$$HC)H)HH   c=)) 	55s   $' A	A
annotationc                 h    t          | t          t          f          rdS t          | t                    S r#   )r(   strbytesr   r)   s    r   _annotation_is_sequencer.   :   s-    *sEl33 uj.999r   c                     t          |           }|t          u s	|t          u r&t          |           D ]}t	          |          r dS dS t          |           pt          t          |                     S NTF)r   r   r   r   field_annotation_is_sequencer.   r)   originargs      r   r1   r1   @   s    
##F&I--J'' 	 	C+C00 ttu":.. 2I:3 3 r   valuec                 f    t          | t                    ot          | t          t          f           S r   )r$   r   r+   r,   )r5   s    r   value_is_sequencer7   L   s(    e^,,TZU|5T5T1TTr   c                     t          | t          t          t          f          pt	          |           pt          |           S r   )r(   r   r   r   r.   r   r-   s    r   _annotation_is_complexr9   P   s;    :	7J'GHH 	$":..	$
##r   c                 b   t          |           }|t          u s	|t          u r&t          d t	          |           D                       S |t
          u r"t          t	          |           d                   S t          |           p.t          |          pt          |d          pt          |d          S )Nc              3   4   K   | ]}t          |          V  d S r   )field_annotation_is_complex)r   r4   s     r   r   z.field_annotation_is_complex.<locals>.<genexpr>[   s+      TT.s33TTTTTTr   r   __pydantic_core_schema____get_pydantic_core_schema__)	r   r   r   anyr   r   r<   r9   hasattr)r)   r3   s     r   r<   r<   X   s    
##F&I--TTx
?S?STTTTTT*8J+?+?+BCCC 	z** 	;!&))	;6566	; 69::	r   c                 4    | t           u pt          |            S r   )Ellipsisr<   r-   s    r   field_annotation_is_scalarrC   h   s    !P)DZ)P)P%PPr   c                 "   t          |           }|t          u s	|t          u r:d}t          |           D ]&}t	          |          rd}t          |          s dS '|S t          |           o%t          d t          |           D                       S )NFTc              3   4   K   | ]}t          |          V  d S r   )rC   r   sub_annotations     r   r   z6field_annotation_is_scalar_sequence.<locals>.<genexpr>x   s>       < < 	#>22< < < < < <r   )r   r   r   r   #field_annotation_is_scalar_sequencerC   r1   all)r)   r3   at_least_one_scalar_sequencer4   s       r   rH   rH   m   s    
##F&I--',$J'' 	 	C2377 /3,/44 uu++'
33  < <&z22< < < 9 9 r   c                     t          | t                    rdS t          |           }|t          u s	|t          u r*t          |           D ]}t          |t                    r dS dS r0   )r(   r,   r   r   r   r   r2   s      r   $is_bytes_or_nonable_bytes_annotationrL   ~   ss    *e,, t
##F&I--J'' 	 	C!#u-- tt5r   c                     t          | t                    rdS t          |           }|t          u s	|t          u r*t          |           D ]}t          |t                    r dS dS r0   )r(   r   r   r   r   r   r2   s      r   .is_uploadfile_or_nonable_uploadfile_annotationrN      ss    *j11 t
##F&I--J'' 	 	C!#z22 tt5r   c                     t          |           }|t          u s	|t          u r(d}t          |           D ]}t	          |          rd}|S t          |           o%t          d t          |           D                       S )NFTc              3   4   K   | ]}t          |          V  d S r   )rL   rF   s     r   r   z/is_bytes_sequence_annotation.<locals>.<genexpr>   s>       < < 	-^<<< < < < < <r   )r   r   r   r   is_bytes_sequence_annotationr1   rI   r)   r3   at_least_oner4   s       r   rQ   rQ      s    
##F&I--J'' 	 	C+C00 # '
33  < <&z22< < < 9 9 r   c                     t          |           }|t          u s	|t          u r(d}t          |           D ]}t	          |          rd}|S t          |           o%t          d t          |           D                       S )NFTc              3   4   K   | ]}t          |          V  d S r   )rN   rF   s     r   r   z4is_uploadfile_sequence_annotation.<locals>.<genexpr>   s>       < < 	7~FF< < < < < <r   )r   r   r   r   !is_uploadfile_sequence_annotationr1   rI   rR   s       r   rV   rV      s    
##F&I--J'' 	 	C055 # '
33  < <&z22< < < 9 9 r   objc                     	 t          j                    5  t          j        dt                     ddlm} d d d            n# 1 swxY w Y   n# t          $ r Y dS w xY wt          | |j                  S Nignorer   )v1F)	warningscatch_warningssimplefilterUserWarningpydanticr[   ImportErrorr$   r   )rW   r[   s     r   is_pydantic_v1_model_instancerb      s    $&& 	$ 	$!(K888######	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$    uuc2<(((3   A !AA AA 	A
A 
AAc                     	 t          j                    5  t          j        dt                     ddlm} d d d            n# 1 swxY w Y   n# t          $ r Y dS w xY wt          | |j                  S rY   )	r\   r]   r^   r_   r`   r[   ra   r(   r   )r   r[   s     r   is_pydantic_v1_model_classre      s    $&& 	$ 	$!(K888######	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$    uuc2<000rc   c                    t          |           rdS t          |           }|t          u s	|t          u r$t	          |           D ]}t          |          r dS t          |           r$t	          |           D ]}t          |          r dS dS r0   )re   r   r   r   r   r1   annotation_is_pydantic_v1)r)   r3   r4   rG   s       r   rg   rg      s    !*-- t
##F&I--J'' 	 	C)#.. tt#J// &z22 	 	N(88 tt5r   )9typestypingr\   collectionsr   collections.abcr   r   dataclassesr   r   r   r	   r
   r   r   r   fastapi.typesr   r`   r   pydantic.versionr   PYDANTIC_VERSIONstarlette.datastructuresr   r   _GenericAliasGenericAliasr   tuple__annotations__splitPYDANTIC_VERSION_MINOR_TUPLElistset	frozensetsequence_annotation_to_typekeysr   r%   r(   boolr.   r1   r7   r9   r<   rC   rH   rL   rN   rQ   rV   rb   re   rg    r   r   <module>r~      sK            - - - - - - - - $ $ $ $ $ $                  $ # # # # #       8 8 8 8 8 8 / / / / / /WT]] 		O"uS#X     %u$U$U5K5E5KC5P5PQSRSQS5T$U$U$UUU  d$	5y	5  )..I.N.N.P.P(Q(Qd3in% Q Q Q	"2htBx})==DtBx   :S	D(8 :T : : : :	T#Y-= 	$ 	 	 	 	US UT U U U UtCy4'7 D    DI,<      Q3 Q4 Q Q Q Q
DI4D     "S T    s t    S T    # $    	)s 	)t 	) 	) 	) 	)	1C 	1D 	1 	1 	1 	1# $      r   