
    pi                     r   U d dl Z 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mZ e j4                  dk  r#ej6                  ej8                  fZeedf   ed<   n-ej6                  ej8                  ej                  fZeedf   ed<    ed  ej@                  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&jO                               Z(e)e   ed<   dedee)e   ee)e   df   df   de*fdZ+dee)e   df   de*fdZ,dee)e   df   de*fdZ-dede*fdZ.dee)e   df   de*fdZ/dee)e   df   de*fdZ0dede*fdZ1dee)e   df   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ede*fd&Z9y)'    N)deque)MappingSequence)is_dataclass)	AnnotatedAnyUnion)	UnionType)	BaseModel)VERSION)
UploadFile)get_args
get_origin)   
   .WithArgsTypesc              #   2   K   | ]  }t        |        y wN)int).0xs     X/opt/services/ai/voice_agent/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_issubclassr'   1   s?    #t$HC)HH c=)s     ==
annotationc                 P    t        | t        t        f      ryt        | t              S r"   )r'   strbytessequence_typesr(   s    r   _annotation_is_sequencer.   <   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_sequencer.   r(   originargs      r   r2   r2   B   s`    
#F&I-J' 	C+C0	 ":. 2I:3 r/   valuec                 T    t        | t              xr t        | t        t        f       S r   )r#   r,   r*   r+   )r6   s    r   value_is_sequencer8   N   s"    e^,TZU|5T1TTr/   c                 l    t        | t        t        t        f      xs t	        |       xs t        |       S r   )r'   r   r   r   r.   r   r-   s    r   _annotation_is_complexr:   R   s2    :	7J'GH 	$":.	$
#r/   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   r5   s     r   r   z.field_annotation_is_complex.<locals>.<genexpr>]   s     T.s3Tr   r   __pydantic_core_schema____get_pydantic_core_schema__)	r   r	   r
   anyr   r   r=   r:   hasattr)r(   r4   s     r   r=   r=   Z   s    
#F&I-Tx
?STTT*8J+?+BCC 	z* 	;!&)	;656	; 69:	r/   c                 .    | t         u xs t        |        S r   )Ellipsisr=   r-   s    r   field_annotation_is_scalarrD   j   s    !P)DZ)P%PPr/   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   )rD   r   sub_annotations     r   r   z6field_annotation_is_scalar_sequence.<locals>.<genexpr>z   s      < 	#>2<r   )r   r	   r
   r   #field_annotation_is_scalar_sequencerD   r2   all)r(   r4   at_least_one_scalar_sequencer5   s       r   rI   rI   o   s    
#F&I-',$J' 	C237/3,/4	 ,+'
3  <&z2< 9 r/   c                     t        | t              ryt        |       }|t        u s|t        u r"t        |       D ]  }t        |t              s y yr1   )r'   r+   r   r	   r
   r   r3   s      r   $is_bytes_or_nonable_bytes_annotationrM      sM    *e,
#F&I-J' 	C!#u-	 r/   c                     t        | t              ryt        |       }|t        u s|t        u r"t        |       D ]  }t        |t              s y yr1   )r'   r   r   r	   r
   r   r3   s      r   .is_uploadfile_or_nonable_uploadfile_annotationrO      sM    *j1
#F&I-J' 	C!#z2	 r/   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   )rM   rG   s     r   r   z/is_bytes_sequence_annotation.<locals>.<genexpr>   s      < 	-^<<r   )r   r	   r
   r   is_bytes_sequence_annotationr2   rJ   r(   r4   at_least_oner5   s       r   rR   rR      sv    
#F&I-J' 	C+C0#	 '
3  <&z2< 9 r/   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   )rO   rG   s     r   r   z4is_uploadfile_sequence_annotation.<locals>.<genexpr>   s      < 	7~F<r   )r   r	   r
   r   !is_uploadfile_sequence_annotationr2   rJ   rS   s       r   rW   rW      sv    
#F&I-J' 	C05#	 '
3  <&z2< 9 r/   objc                     t        j                         5  t        j                  dt               ddlm} d d d        t        | j                        S # 1 sw Y   xY wNignorer   )v1)warningscatch_warningssimplefilterUserWarningpydanticr\   r#   r   )rX   r\   s     r   is_pydantic_v1_model_instancerb      sI    		 	 	"  h4  c2<<((      !AAc                     t        j                         5  t        j                  dt               ddlm} d d d        t        | j                        S # 1 sw Y   xY wrZ   )r]   r^   r_   r`   ra   r\   r'   r   )r   r\   s     r   is_pydantic_v1_model_classre      sI    		 	 	"  h4  c2<<00   rc   c                     t        |       ryt        |       }|t        u s|t        u rt	        |       D ]  }t        |      s y t        |       rt	        |       D ]  }t        |      s y yr1   )re   r   r	   r
   r   r2   annotation_is_pydantic_v1)r(   r4   r5   rH   s       r   rg   rg      sr    !*-
#F&I-J' 	C)#.	 $J/&z2 	N(8	 r/   ):systypestypingr]   collectionsr   collections.abcr   r   dataclassesr   r   r   r	   fastapi.typesr
   ra   r   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.   r2   r8   r:   r=   rD   rI   rM   rO   rR   rW   rb   re   rg    r/   r   <module>r      s   
     - $  $  8 / 2 g&,&:&:E<N<N%OM5c?O 	&M5c?   %$U5K5E5K5KC5PQSRS5T$UU *1-2 d$	5y	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 # $ )s )t )1C 1D 1# $ r/   