
    dhP                        U d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZm	Z	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 d d	lmZ d d
lmZmZmZ e j@                  dk  rdZ!eedf   e"d<   n_e j@                  dk  r#ejF                  ejH                  fZ!e%edf   e"d<   n-ejF                  ejH                  ej(                  fZ!e%edf   e"d<    e%d  ejL                  d      dd D              Z'e'd    dk(  Z(ee)e
e)e)e)ee%e%e%ee*e*e*e	e+e+e+eeeeiZ, e%e,j[                               Z.ee   e"d<   dedeee   eee   df   df   de/fdZ0deee   df   de/fdZ1deee   df   de/fdZ2dede/fdZ3deee   df   de/fdZ4deee   df   de/fdZ5dede/fdZ6deee   df   de/fd Z7dede/fd!Z8dede/fd"Z9dede/fd#Z:dede/fd$Z;dede/fd%Z<y)&    N)deque)is_dataclass)
AnyDeque	FrozenSetListMappingSequenceSetTupleTypeUnion)v1)	UnionType)	BaseModel)VERSION)
UploadFile)	Annotatedget_args
get_origin)   	    .WithArgsTypes)r   
   c              #   2   K   | ]  }t        |        y wN)int).0xs     I/var/www/zara/venv/lib/python3.12/site-packages/fastapi/_compat/shared.py	<genexpr>r"   *   s     $USV$U   .   Urlclsclass_or_tuplereturnc                     	 t        | t              xr t        | |      S # t        $ r t        | t              rY y w xY wNF)
isinstancetype
issubclass	TypeErrorr   )r'   r(   s     r!   lenient_issubclassr0   B   s?    #t$HC)HH c=)s     ==
annotationc                 P    t        | t        t        f      ryt        | t              S r+   )r0   strbytessequence_typesr1   s    r!   _annotation_is_sequencer7   M   s     *sEl3j.99    c                     t        |       }|t        u s|t        u rt        |       D ]  }t	        |      s y yt        |       xs t        t        |             S NTF)r   r   r   r   field_annotation_is_sequencer7   r1   originargs      r!   r;   r;   S   s`    
#F&I-J' 	C+C0	 ":. 2I:3 r8   valuec                 T    t        | t              xr t        | t        t        f       S r   )r,   r5   r3   r4   )r?   s    r!   value_is_sequencerA   _   s"    e^,TZU|5T1TTr8   c                     t        | t        t        j                  t        t        f      xs t        |       xs t        |       S r   )r0   r   r   r	   r   r7   r   r6   s    r!   _annotation_is_complexrC   c   s8    :	2<<*'UV 	$":.	$
#r8   c                    t        |       }|t        u s|t        u rt        d t	        |       D              S |t
        u rt        t	        |       d         S t        |       xs' t        |      xs t        |d      xs t        |d      S )Nc              3   2   K   | ]  }t        |        y wr   )field_annotation_is_complex)r   r>   s     r!   r"   z.field_annotation_is_complex.<locals>.<genexpr>n   s     T.s3Tr#   r   __pydantic_core_schema____get_pydantic_core_schema__)	r   r   r   anyr   r   rF   rC   hasattr)r1   r=   s     r!   rF   rF   k   s    
#F&I-Tx
?STTT*8J+?+BCC 	z* 	;!&)	;656	; 69:	r8   c                 .    | t         u xs t        |        S r   )EllipsisrF   r6   s    r!   field_annotation_is_scalarrM   {   s    !P)DZ)P%PPr8   c                     t        |       }|t        u s|t        u r/d}t        |       D ]  }t	        |      rd}t        |      r y |S t        |       xr t        d t        |       D              S )NFTc              3   2   K   | ]  }t        |        y wr   )rM   r   sub_annotations     r!   r"   z6field_annotation_is_scalar_sequence.<locals>.<genexpr>   s      < 	#>2<r#   )r   r   r   r   #field_annotation_is_scalar_sequencerM   r;   all)r1   r=   at_least_one_scalar_sequencer>   s       r!   rR   rR      s    
#F&I-',$J' 	C237/3,/4	 ,+'
3  <&z2< 9 r8   c                     t        | t              ryt        |       }|t        u s|t        u r"t        |       D ]  }t        |t              s y yr:   )r0   r4   r   r   r   r   r<   s      r!   $is_bytes_or_nonable_bytes_annotationrV      sM    *e,
#F&I-J' 	C!#u-	 r8   c                     t        | t              ryt        |       }|t        u s|t        u r"t        |       D ]  }t        |t              s y yr:   )r0   r   r   r   r   r   r<   s      r!   .is_uploadfile_or_nonable_uploadfile_annotationrX      sM    *j1
#F&I-J' 	C!#z2	 r8   c                     t        |       }|t        u s|t        u r"d}t        |       D ]  }t	        |      sd} |S t        |       xr t        d t        |       D              S )NFTc              3   2   K   | ]  }t        |        y wr   )rV   rP   s     r!   r"   z/is_bytes_sequence_annotation.<locals>.<genexpr>   s      < 	-^<<r#   )r   r   r   r   is_bytes_sequence_annotationr;   rS   r1   r=   at_least_oner>   s       r!   r[   r[      sv    
#F&I-J' 	C+C0#	 '
3  <&z2< 9 r8   c                     t        |       }|t        u s|t        u r"d}t        |       D ]  }t	        |      sd} |S t        |       xr t        d t        |       D              S )NFTc              3   2   K   | ]  }t        |        y wr   )rX   rP   s     r!   r"   z4is_uploadfile_sequence_annotation.<locals>.<genexpr>   s      < 	7~F<r#   )r   r   r   r   !is_uploadfile_sequence_annotationr;   rS   r\   s       r!   r`   r`      sv    
#F&I-J' 	C05#	 '
3  <&z2< 9 r8   c                    t        | t        j                        ryt        |       }|t        u s|t
        u r,t        |       D ]  }t        |t        j                        s y t        |       rt        |       D ]  }t        |      s y yr:   )	r0   r   r   r   r   r   r   r;   annotation_is_pydantic_v1)r1   r=   r>   rQ   s       r!   rb   rb      s~    *bll3
#F&I-J' 	C!#r||4	 $J/&z2 	N(8	 r8   )=systypestypingcollectionsr   dataclassesr   r   r   r   r   r	   r
   r   r   r   r   fastapi._compatr   fastapi.typesr   pydanticr   pydantic.versionr   PYDANTIC_VERSIONstarlette.datastructuresr   typing_extensionsr   r   r   version_infor   __annotations___GenericAliasGenericAliastuplesplitPYDANTIC_VERSION_MINOR_TUPLEPYDANTIC_V2listset	frozensetsequence_annotation_to_typekeysr5   boolr0   r7   r;   rA   rC   rF   rM   rR   rV   rX   r[   r`   rb   r   r8   r!   <module>r}      s   
    $    #  8 / = = f
 &(M5c?'&,&:&:E<N<N%OM5c?O 	&M5c?   %$U5K5E5K5KC5PQSRS5T$UU *1-2 d$$	5	5yy	5	5  2779:	#Y	#DIuT#Y^/Dd$JK	:d3io(> :4 :	U49d?-C 	 	US UT UuT#Y_'= $ E$s)T/,B t  Q3 Q4 Q
E$s)T/4J t "S T s t S T # $ # $ r8   