
    o i=                     0   d dl Z d dlZd dlmZm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 d dlmZmZ d dlmZ d dlmZ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& 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/ d dl,m0Z0 d dl1m2Z2m3Z3m4Z4m5Z5 	 d dl6m7Z7 n# e8$ r	 d dl6m9Z7 Y nw xY we.Z:e.Z;e/Z<e$Z=e	Z> G d d          Z? G d de@          ZAe G d d                      ZBde	d e(d!eCd"e	fd#ZDd$ee         d"dfd%ZE	 dTd$ed'e3d(         d)e	d"e	fd*ZFd$ed"e	fd+ZGd,d-d.eBd/ed0e
eeBe3d1         f         e+f         d2eHd"e
eCe	f         f
d3ZId,d-d4eeB         d/ed2eHd"ee
eeBe3d1         f         e+f         e
eCe
eCe	f         f         f         fd5ZJd6e
eCe	f         d7e
eCeCf         d"e
eCe	f         fd8ZKd/ed9e
eCe	f         d0e
eeBe3d1         f         e+f         d"ee
eeBe3d1         f         e+f         e
eCe	f         f         fd:ZLd.eBd"eHfd;ZMd.eBd"eHfd<ZNd.eBd"eHfd=ZOd.eBd"eHfd>ZPd.eBd"eHfd?ZQd e(de	d"e(fd@ZRd.eBdAe	d"ee	         fdBZSdCeeCdDf         d"e
eCe	f         fdEZTd4eeB         dFeCd"ee         fdGZUd$ee         d"eeB         fdHZVeedI         ee         f         ZWeeW         ZXdJeCd"eCfdKZYdLeXd"e
eWeCf         fdMZZ	 dUd$edI         dNeeXdf         d"eXfdOZ[de	dNeXd"eXfdPZ\d.eBdNeXd"eXfdQZ]d4eeB         dNeXd"eXfdRZ^d$eWd"eCfdSZ_dS )V    N)copydeepcopy)	dataclass)Enum)	AnyDictListSequenceSetTupleTypeUnioncast)may_v1shared)REF_TEMPLATE)IncExModelNameMap)	BaseModelTypeAdaptercreate_model)PydanticSchemaGenerationError)PydanticUndefinedAnnotation)ValidationError)GetJsonSchemaHandler)eval_type_lenient)lenient_issubclass)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefinedPydanticUndefinedType)Url)	AnnotatedLiteralget_args
get_origin)"with_info_plain_validator_function) general_plain_validator_functionc                       e Zd ZdS )
BaseConfigN__name__
__module____qualname__     I/var/www/findabus/venv/lib/python3.11/site-packages/fastapi/_compat/v2.pyr,   r,   6           Dr2   r,   c                       e Zd ZdS )ErrorWrapperNr-   r1   r2   r3   r6   r6   :   r4   r2   r6   c                      e Zd ZU eed<   eed<   dZed         ed<   edefd            Z	ede
fd            Zedefd	            Zedefd
            Zd"dZdefdZi fdddedeeef         deeeef         df         deeeeeeef                  df         f         fdZdddddddddeded         deedf         deedf         de
de
de
de
defd Zdefd!ZdS )#
ModelField
field_infoname
validationr;   serializationmodereturnc                 0    | j         j        }||n| j        S N)r9   aliasr:   )selfas     r3   rB   zModelField.aliasD   s    O!Mqqty0r2   c                 4    | j                                         S rA   )r9   is_requiredrC   s    r3   requiredzModelField.requiredI   s    **,,,r2   c                 *    |                                  S rA   )get_defaultrG   s    r3   defaultzModelField.defaultM   s    !!!r2   c                     | j         j        S rA   )r9   
annotationrG   s    r3   type_zModelField.type_Q   s    ))r2   Nc                    t          j                    5  t          j        dk    rddlm} t          j        d|           t          t          | j	        j
        | j	        f                   | _        d d d            d S # 1 swxY w Y   d S )N)      r   ) UnsupportedFieldAttributeWarningignore)category)warningscatch_warningsr   PYDANTIC_VERSION_MINOR_TUPLEpydantic.warningsrR   simplefilterr   r%   r9   rM   _type_adapter)rC   rR   s     r3   __post_init__zModelField.__post_init__U   s    $&& 	 	
 2g==NNNNNN%'G    4?$/4doEF4 4D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA>>BBc                 x    | j                                         rt          S | j                             d          S )NT)call_default_factory)r9   rF   	UndefinedrJ   rG   s    r3   rJ   zModelField.get_defaulte   s7    ?&&(( 	***EEEr2   r1   )locvaluevaluesr_   .c                    	 | j                             |d          d fS # t          $ r6}d t          j        |                    d          |          fcY d }~S d }~ww xY w)NT)from_attributesFinclude_url)errors
loc_prefix)rZ   validate_pythonr   r   _regenerate_error_with_locrf   )rC   r`   ra   r_   excs        r3   validatezModelField.validatej   s    	"225$2OO   	 	 	:zzez44         	s     
A +AA A jsonTFr>   includeexcludeby_aliasexclude_unsetexclude_defaultsexclude_nonerl   pythonrn   ro   rp   rq   rr   rs   c          
      F    | j                             ||||||||          S )Nrm   )rZ   dump_python)	rC   r`   r>   rn   ro   rp   rq   rr   rs   s	            r3   	serializezModelField.serialize{   s<     !--'-% . 	
 	
 		
r2   c                      t          |           S rA   )idrG   s    r3   __hash__zModelField.__hash__   s     $xxr2   )r?   N)r.   r/   r0   r   __annotations__strr>   r&   propertyrB   boolrH   r   rK   rN   r[   rJ   r   r   r   intr	   rk   r   rx   r{   r1   r2   r3   r8   r8   >   s]        
III3?D'/
0???1s 1 1 1 X1 -$ - - - X- " " " " X" *s * * * X*    FS F F F F "$
 ,.   S#X
 5c?C'( 
sE$tCH~.455	6   * +1&*&*#!&"
 
 

 &'	

 ud{#
 ud{#
 
 
 
 
 

 
 
 
2#      r2   r8   rM   r9   
field_namer?   c                     | S rA   r1   )rM   r9   r   s      r3   get_annotation_from_field_infor      s
     r2   modelc                 .    |                                   d S rA   )model_rebuildr   s    r3   _model_rebuildr      s    	r2   rl   r>   rt   kwargsc                       | j         dd|i|S )Nr>   r1   )
model_dump)r   r>   r   s      r3   _model_dumpr      s"     5000000r2   c                     | j         S rA   )model_configr   s    r3   _get_model_configr      s    r2   T)separate_input_output_schemasfieldmodel_name_mapfield_mappingr<   r   c                     |rd nd}|| |p| j         f         }d|vr<| j        j        p,| j                                                            dd          |d<   |S )Nr;   $ref_ title)r>   r9   r   rB   replace)r   r   r   r   override_modejson_schemas         r3   get_schema_from_model_fieldr      s|     .?<   (C DEK[    %/5  
9J9J9L9L9T9T:
 :
G r2   fieldsc                    t          t                    }|rd ndt          | t                                }d |D             }d | D             fd|D             }fdt	          |           t	          |          z   D             }|                    |          \  }}	t          t          t          t          t          t          f         f         |	          
                                D ]?}
d	|
v r9t          t          |
d	                                       d
          d         }||
d	<   @t          ||	|          \  }}||fS )N)ref_templater;   known_modelsc                 V    g | ]&}t          t          |           |j                  'S ))rM   r9   r:   )r8   r   r.   ).0r   s     r3   
<listcomp>z#get_definitions.<locals>.<listcomp>   sB        	i5999OOO  r2   c                     h | ]	}|j         
S r1   rN   r   fs     r3   	<setcomp>z"get_definitions.<locals>.<setcomp>   s    +++q17+++r2   c                 &    h | ]}|j         v|S r1   r   )r   r   input_typess     r3   r   z"get_definitions.<locals>.<setcomp>   s,          {(B(B(B(B(Br2   c                 <    g | ]}|p|j         |j        j        fS r1   )r>   rZ   core_schema)r   r   r   s     r3   r   z#get_definitions.<locals>.<listcomp>   s=        
+U-@-LM  r2   )inputsdescriptionr   )r   definitionsr   )r   r   get_flat_models_from_fieldssetlistgenerate_definitionsr   r   r}   r   ra   split%_remap_definitions_and_field_mappings)r   r   r   schema_generatorflat_modelsflat_model_fieldsunique_flat_model_fieldsr   r   r   item_defitem_descriptionnew_mappingnew_definitionsr   r   s                 @@r3   get_definitionsr      s    *|DDD-?<  .f355IIIK     ,+F+++K       $        &\\D)A$B$BB  F "2!F!Ff!F!U!UM;c4S>12K@@GGII 7 7H$$#C-)@AAGGMMaP&6H]##H%#$ $ $ K
 ''r2   schemaold_name_to_new_name_mapc                 @   t          |           }|                                D ]\  }}|dk    rR| d                             d          d         }||v r!||         }t          j        |          |d<   n| d         |d<   ]t          |t                    rt          ||          ||<   t          |t                    r]g }|D ]S}t          |t                    r't          ||          }	|	                    |	           >|	                    |           T|||<   |S )Nr   /r   r   r   )
r   itemsr   r   format
isinstancedict_replace_refsr   append)
r   r   
new_schemakeyr`   ref_namenew_name	new_valueitemnew_items
             r3   r   r      s_   
 &!!J &&(( ( (
U&==f~++C004H3333H=%1%8x%H%H%H
6""%+F^
6"eT"" 	(+)A  JsOO t$$ 	(I 	+ 	+dD)) +,#1I     H $$X.... $$T****'JsOr2   r   c                    i }|                                 D ]R\  }}|d         j        }|| vr| |         }|d                             d          d         }|| d| dhv rM|||<   Si }	|                                 D ]\  }}t          ||          }
|
|	|<   i }|                                 D ]*\  }}||v r	||         }n|}t          ||          }|||<   +|	|fS )Nr   r   r   r   z-Inputz-Outputr   )r   rN   r   r   )r   r   r   r   	field_keyr   r   r   old_namenew_field_mappingr   r   r   r`   new_keyr   s                   r3   r   r     sh     "*0022 6 6	6!"&&!%(&>'',,R08+++-A-A-ABBB-5 ** 	  +0022 2 2	6"%=
 
 

 (2)$$O!'')) 	- 	-
U***.s3GGG!%=
 
 
	 $-  o--r2   c                     ddl m} t          j        | j        j                  ot          | j        |j                   S )Nr   )params)fastapir   r   field_annotation_is_scalarr9   rM   r   Body)r   r   s     r3   is_scalar_fieldr   ?  sL    ,#  8)6;77
78r2   c                 >    t          j        | j        j                  S rA   )r   field_annotation_is_sequencer9   rM   r   s    r3   is_sequence_fieldr   G  s    .u/?/JKKKr2   c                 >    t          j        | j        j                  S rA   )r   #field_annotation_is_scalar_sequencer9   rM   r   s    r3   is_scalar_sequence_fieldr   K  s    5e6F6QRRRr2   c                 4    t          j        | j                  S rA   )r   $is_bytes_or_nonable_bytes_annotationrN   r   s    r3   is_bytes_fieldr   O  s    6u{CCCr2   c                 4    t          j        | j                  S rA   )r   is_bytes_sequence_annotationrN   r   s    r3   is_bytes_sequence_fieldr   S  s    .u{;;;r2   c                     t          |           }|                    |          }t          |           }|j        |_        |j        |_        |S rA   )typefrom_annotationr   metadatarM   )r9   rM   clsmerged_field_infonew_field_infos        r3   copy_field_infor   W  sL    
z

C++J77*%%N/8N 1 <Nr2   r`   c                     t          | j        j                  p| j        j        }t          |t          j                  sJ t	          j        |         |          S rA   )r(   r9   rM   
issubclassr   sequence_typessequence_annotation_to_type)r   r`   origin_types      r3   serialize_sequence_valuer   `  sO    U-899XU=M=XKk6#899999-k:5AAAr2   r_   .c                 x    t          j        dd| i dg                              d          d         }d |d<   |S )NzField requiredmissing)r   r_   inputFrd   r   r   )r   from_exception_datarf   )r_   errors     r3   get_missing_field_errorr   f  sL    /IcBGGH ff#E E'NLr2   
model_namec                 8    d | D             }t          |fi |}|S )Nc                 @    i | ]}|j         |j        j        |j        fS r1   )r:   r9   rM   r   s     r3   
<dictcomp>z%create_body_model.<locals>.<dictcomp>q  s(    TTTAFQ\4alCTTTr2   )r   )r   r  field_params	BodyModels       r3   create_body_modelr  n  s3     UTVTTTL!-j!I!IL!I!IIr2   c                 H    d | j                                         D             S )Nc                 6    g | ]\  }}t          ||           S )r   )r8   )r   r:   r9   s      r3   r   z$get_model_fields.<locals>.<listcomp>w  s9       D* 	jt444  r2   )model_fieldsr   r   s    r3   get_model_fieldsr  v  s2      % 2 8 8 : :   r2   r   r:   c                 .    t          j        dd|           S )Nz[^a-zA-Z0-9.\-_]r   )resub)r:   s    r3   normalize_namer    s    6%sD111r2   unique_modelsc                 r   i }t                      }| D ]}t          |j                  }||v rt          |          }|||<   /||v rO|                    |           |                    |          }||t          |          <   ||t          |          <   |||<   d |                                D             S )Nc                     i | ]\  }}||	S r1   r1   )r   kvs      r3   r  z&get_model_name_map.<locals>.<dictcomp>  s    444TQAq444r2   )r   r  r.   get_long_model_nameaddpopr   )r  name_model_mapconflicting_namesr   r  conflicting_models         r3   get_model_name_mapr    s    N"%%% / /#EN33
***,U33J).N:&&>))!!*--- . 2 2: > >EVN./@AAB9>N.u5566).N:&&44^11334444r2   r   c                 f    |pt                      }t          |           }t          ||           |S Nr   )r   r  r   )r   r   r   s      r3   get_flat_models_from_modelr    s8      (355Le$$F\BBBBr2   c                 &   t          |           }|t          |           D ]o}t          |t          t          f          r@||vr<|                    |           t          |t                    rt          ||           ^t          ||           p|S r  )r(   r'   r   r   r   r  r  get_flat_models_from_annotation)rM   r   originargs       r3   r   r     s     
##FJ'' 	P 	PC!#	4'899 Pc>U>U  %%%%c955 O.sNNNN/,OOOOOr2   c                    | j         }t          |t                    r-||v r|S |                    |           t	          ||           n<t          |t
                    r|                    |           nt          ||           |S r  )rN   r   r   r  r  r   r   )r   r   
field_types      r3   get_flat_models_from_fieldr%    s     J*i00 O%%$$$":LIIIII	J	-	- O$$$$'
NNNNr2   c                 2    | D ]}t          ||           |S r  )r%  )r   r   r   s      r3   r   r     s1      E E"5|DDDDDr2   c                 L    | j          d| j                             dd          S )N__.)r/   r0   r   r   s    r3   r  r    s,    66%"466>>sDIIIr2   )rl   rA   )`r  rU   r   r   dataclassesr   enumr   typingr   r   r	   r
   r   r   r   r   r   fastapi._compatr   r   fastapi.openapi.constantsr   fastapi.typesr   r   pydanticr   r   r   r   r   r   ,pydantic._internal._schema_generation_sharedr    pydantic._internal._typing_extrar   pydantic._internal._utilsr   pydantic.fieldsr   pydantic.json_schemar   r    pydantic_corer!   r"   r#   r$   typing_extensionsr%   r&   r'   r(   pydantic_core.core_schemar)   ImportErrorr*   RequiredParamr^   UndefinedTypeevaluate_forwardref	Validatorr,   	Exceptionr6   r8   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  TypeModelOrEnumTypeModelSetr  r  r  r   r%  r   r  r1   r2   r3   <module>rA     s
	   				          ! ! ! ! ! !      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 + * * * * * * * 2 2 2 2 2 2 - - - - - - - - 9 9 9 9 9 9 9 9 9 9 S S S S S S O O O O O O 7 7 7 7 7 7      ? > > > > > N N N N N N 2 2 2 2 2 2 I I I I I I C C C C C C 2 2 2 2 2 2 B B B B B B B B $ $ $ $ $ $ F F F F F F F F F F F F                 
 "	%' 		 	 	 	 	 	 	 		 	 	 	 	9 	 	 	 X X X X X X X Xv!*8;   $y/ d    
 9?1 11#$451JM11 1 1 1Y 3     +/   ! j'"?@@A?R	 $( 
#s(^   6 +/	%( %( %(Z %( !%( $(	%(
 z7#@AA	BO	STd38n	%( %( %( %(P!cN! #38n! 
#s(^	! ! ! !H+. +. c3h+. j'"?@@A?R	+. z7#@AA	BO	STcN+. +. +. +.\8: 8$ 8 8 8 8LZ LD L L L LSJ S4 S S S SD* D D D D D<: <$ < < < <9 # )    Bz B# B(3- B B B BsCx T#s(^    
#14	)_   DO Z0@     [)4:56?#2 2 2 2 2 25l 5tOS<P7Q 5 5 5 5& IM ,1,2D,E   #/   %1    Z 0<   J J3 J J J J J Js   *B1 1B?>B?