
    ^
qiL                        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mZ d dl	m
Z
 d dlmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZmZ d dl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( d dl)m*Z* d dl+m,Z, d dl+m-Z- d dl.m/Z/ d dl.m0Z0m1Z1 d dl.m2Z2 d dl3m4Z4m5Z5m6Z6 	 d dl7m8Z8 n# e9$ r	 d dl7m:Z8 Y nw xY we0Z;e0Z<e1Z=e&Z>eZ?i ddddddddd dd!dd"dd#dd$dd%dd&dd'dd(dd)dd*dd+dd,dd-dddd.Z@d/e*d0eAeBef         fd1ZC G d2 d3          ZD G d4 d5eE          ZFe G d6 d7                      ZGd8eGd0eHfd9ZId-d:d8eGd;ed<eAeJeGe4d=         f         e-f         d>eHd0eAeBef         f
d?ZKd-d:d@eeG         d;ed>eHd0eJeAeJeGe4d=         f         e-f         eAeBeAeBef         f         f         fdAZLdBeAeBef         dCeAeBeBf         d0eAeBef         fdDZMd;edEeAeBef         d<eAeJeGe4d=         f         e-f         d0eJeAeJeGe4d=         f         e-f         eAeBef         f         fdFZNd8eGd0eHfdGZOd8eGd0eHfdHZPd8eGd0eHfdIZQd8eGd0eHfdJZRd8eGd0eHfdKZSd/e*dLed0e*fdMZTd8eGdNed0ee         fdOZUdPeJeBdf         d0eAeBef         fdQZVd@eeG         dReBd0eWe         fdSZXdTeWe         d0eYeG         fdUZZedTeWe         d0eYeG         fdV            Z[eeWdW         eWe
         f         Z\e]e\         Z^dXeBd0eBfdYZ_dZe^d0eAe\eBf         fd[Z`d@eYeG         d0efd\Za	 dedTeWdW         d]ee^df         d0e^fd^ZbdLed]e^d0e^fd_Zcd8eGd]e^d0e^fd`Zdd@eeG         d]e^d0e^fdaZedbee         dceJeeBeff         df         d0eYeAeBef                  fddZgdS )f    N)Sequence)copydeepcopy)	dataclassis_dataclass)Enum)	lru_cache)	AnnotatedAnyUnioncast)shared)REF_TEMPLATE)IncExModelNameMap	UnionType)	BaseModel
ConfigDictFieldTypeAdaptercreate_model)PydanticSchemaGenerationError)PydanticUndefinedAnnotation)ValidationError)GetJsonSchemaHandler)eval_type_lenient)lenient_issubclass)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefinedPydanticUndefinedType)Url)Literalget_args
get_origin)"with_info_plain_validator_function) general_plain_validator_functiondefault.default_factoryaliasalias_priorityvalidation_aliasserialization_aliastitlefield_title_generatordescriptionexamplesexclude
exclude_ifdiscriminator
deprecatedjson_schema_extrafrozenvalidate_defaultT)reprinitinit_varkw_only
field_inforeturnc                     i }t           D ]&}t          | |t                    }|t          ur|||<   '| j        | j        |dS )N)
annotationmetadata
attributes)_Attrsgetattr	UndefinedrB   rC   )r?   rD   attrvalues       r/var/www/html/bestrading.cuttalo.com/services/ml-inference/venv/lib/python3.11/site-packages/fastapi/_compat/v2.pyasdictrK   M   s[    J % %
D)44	!!$Jt +'       c                       e Zd ZdS )
BaseConfigN__name__
__module____qualname__ rL   rJ   rN   rN   Z           DrL   rN   c                       e Zd ZdS )ErrorWrapperNrO   rS   rL   rJ   rV   rV   ^   rT   rL   rV   c                   <   e Zd ZU eed<   eed<   dZed         ed<   dZe	e
df         ed<   edefd	            Zede	edf         fd
            Zede	edf         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 )&
ModelFieldr?   name
validationrZ   serializationmodeNconfigr@   c                 0    | j         j        }||n| j        S N)r?   r,   rY   )selfas     rJ   r,   zModelField.aliasi   s    O!Mqqty0rL   c                 P    | j         j        }t          |t                    r|r|S d S r`   )r?   r.   
isinstancestr)ra   vas     rJ   r.   zModelField.validation_aliasn   s/    _-b# 	2 	ItrL   c                 "    | j         j        }|pd S r`   )r?   r/   )ra   sas     rJ   r/   zModelField.serialization_aliasu   s    _0zTrL   c                 4    | j                                         S r`   )r?   is_requiredra   s    rJ   requiredzModelField.requiredz   s    **,,,rL   c                 *    |                                  S r`   )get_defaultrk   s    rJ   r*   zModelField.default~   s    !!!rL   c                     | j         j        S r`   )r?   rB   rk   s    rJ   type_zModelField.type_   s    ))rL   c                 r   t          j                    5  t          j        dk    rddlm} t          j        d|           t          | j                  }|d         g|d         t          d
i |d         R }t          t          |         | j        	          | _        d d d            d S # 1 swxY w Y   d S )N)      r   ) UnsupportedFieldAttributeWarningignore)categoryrB   rC   rD   )r^   rS   )warningscatch_warningsr   PYDANTIC_VERSION_MINOR_TUPLEpydantic.warningsrt   simplefilterrK   r?   r   r   r
   r^   _type_adapter)ra   rt   
field_dictannotated_argss       rJ   __post_init__zModelField.__post_init__   s,   $&& 	 	
 2g==NNNNNN%'G   
  00J<(J'
 11
<011 N 4?.){4 4 4D+	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   BB,,B03B0c                 x    | j                                         rt          S | j                             d          S )NT)call_default_factory)r?   rj   rG   rn   rk   s    rJ   rn   zModelField.get_default   s7    ?&&(( 	***EEErL   rS   )locrI   valuesr   .c                    	 | j                             |d          d fS # t          $ r1}d t          |                    d          |          fcY d }~S d }~ww xY w)NT)from_attributesFinclude_url)errors
loc_prefix)r|   validate_pythonr   _regenerate_error_with_locr   )ra   rI   r   r   excs        rJ   validatezModelField.validate   s    	"225$2OO   	 	 	3zzez44         	s     
A&AAAjsonTFr]   includer4   by_aliasexclude_unsetexclude_defaultsexclude_none)r   pythonr   r4   r   r   r   r   c          
      F    | j                             ||||||||          S )Nr   )r|   dump_python)	ra   rI   r]   r   r4   r   r   r   r   s	            rJ   	serializezModelField.serialize   s<     !--'-% . 	
 	
 		
rL   c                      t          |           S r`   )idrk   s    rJ   __hash__zModelField.__hash__   s     $xxrL   )r@   N)rP   rQ   rR   r   __annotations__re   r]   r%   r^   r   r   propertyr,   r.   r/   boolrl   r   r*   rp   r   rn   dicttupleintlistr   r   r   r   rS   rL   rJ   rX   rX   b   s        
III3?D'/
0???&*FE*d"#***1s 1 1 1 X1 %T	"2    X U39%5    X -$ - - - X- " " " " X" *s * * * X*   6FS F F F F "$
 ,.   S#X
 5c?C'( 
sE$tCH~.455	6   * +1&*&*#!&"
 
 

 &'	

 ud{#
 ud{#
 
 
 
 
 

 
 
 
2#      rL   rX   fieldc                     | j         j                            di                               dg           }t          |          dk    S )Nschemacomputed_fieldsr   )r|   core_schemagetlen)r   r   s     rJ   _has_computed_fieldsr      sG    )599(BGGKK2 O !##rL   )separate_input_output_schemasmodel_name_mapfield_mappingr[   r   c                    |st          |           rd nd}| j        dk    r| j        p| j        n| j        p| j        }|| |p| j        f         }d|vr7| j        j        p'|                                                    dd          |d<   |S )NrZ   $ref_ r0   )r   r]   r.   r,   r/   r?   r0   replace)r   r   r   r   override_modefield_aliasjson_schemas          rJ   get_schema_from_model_fieldr      s     *	-A%-H-H	  :%% 
		.5;'65;   (C DEK[    %/5  
9J9J9L9L9T9T:
 :
G rL   fieldsc                    t          t                    }d | D             }d | D             }t          |t                                }t          |t                                }d |D             }d |D             }	||	z   }
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_templatec                 (    g | ]}|j         d k    |S rZ   r]   .0r   s     rJ   
<listcomp>z#get_definitions.<locals>.<listcomp>  s$    QQQ5ejL6P6P6P6P6PrL   c                 (    g | ]}|j         d k    |S )r\   r   r   s     rJ   r   z#get_definitions.<locals>.<listcomp>  s$    WWWe9V9VE9V9V9VrL   known_modelsc                 X    g | ]'}t          t          |           |j        d          (S )rB   rZ   r?   rY   r]   rX   r   rP   r   models     rJ   r   z#get_definitions.<locals>.<listcomp>  sO     $ $ $  	 E222	
 	
 	
$ $ $rL   c                 X    g | ]'}t          t          |           |j        d          (S )r   r\   r   r   r   s     rJ   r   z#get_definitions.<locals>.<listcomp>  sO     ' ' '  	 E222 	
 	
 	
' ' 'rL   c                     h | ]	}|j         
S rS   rp   r   fs     rJ   	<setcomp>z"get_definitions.<locals>.<setcomp>  s    +++q17+++rL   c                 &    h | ]}|j         v|S rS   r   )r   r   input_typess     rJ   r   z"get_definitions.<locals>.<setcomp>   s,          {(B(B(B(B(BrL   c                 ^    g | ])}|st          |          r|j        nd |j        j        f*S r   )r   r]   r|   r   )r   r   r   s     rJ   r   z#get_definitions.<locals>.<listcomp>#  s\          2"5I%5P5P"

!+	
  rL   )inputsr2   r   )r   definitionsr   )r   r   get_flat_models_from_fieldssetr   generate_definitionsr   r   re   r   r   split%_remap_definitions_and_field_mappings)r   r   r   schema_generatorvalidation_fieldsserialization_fieldsflat_validation_modelsflat_serialization_modelsflat_validation_model_fieldsflat_serialization_model_fieldsflat_model_fieldsunique_flat_model_fieldsr   r   r   item_defitem_descriptionnew_mappingnew_definitionsr   s     `                @rJ   get_definitionsr      s    *|DDDQQFQQQWWvWWW8   !<355! ! !$ $ ,$ $ $ ' ' /' ' '# 57VV++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
 ''rL   r   old_name_to_new_name_mapc                 f   t          |           }|                                D ]\  }}|dk    rc| d         }t          |t                    rE| d                             d          d         }||v r ||         }t          j        |          |d<   ot          |t                    rt          ||          ||<   t          |t                    r]g }|D ]S}t          |t                    r't          ||          }	|
                    |	           >|
                    |           T|||<   |S )Nr   /r   r   r   )r   itemsrd   re   r   r   formatr   _replace_refsr   append)
r   r   
new_schemakeyrI   ref_namenew_name	new_valueitemnew_items
             rJ   r   r   <  sj   
 &!!J &&(( ( (
U&==6NE%%% M!&>//44R87777AH)5)<8)L)L)LJv&eT"" 	(+)A  JsOO t$$ 	(I 	+ 	+dD)) +,#1I     H $$X.... $$T****'JsOrL   r   c                    i }|                                 D ]V\  }}|d         j        }|| vsd|vr| |         }|d                             d          d         }|| d| dhv rQ|||<   Wi }	|                                 D ]\  }}t          ||          }
|
|	|<   i }|                                 D ]*\  }}||v r	||         }n|}t          ||          }|||<   +|	|fS )Nr   r   r   r   z-Inputz-Outputr   )r   rp   r   r   )r   r   r   r   	field_keyr   r   r   old_namenew_field_mappingr   r   r   rI   new_keyr   s                   rJ   r   r   `  sr     "*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--rL   c                     ddl m} t          j        | j        j                  ot          | j        |j                   S )Nr   )params)fastapir   r   field_annotation_is_scalarr?   rB   rd   Body)r   r   s     rJ   is_scalar_fieldr    sL    ,#  8)6;77
78rL   c                 >    t          j        | j        j                  S r`   )r   field_annotation_is_sequencer?   rB   r   s    rJ   is_sequence_fieldr    s    .u/?/JKKKrL   c                 >    t          j        | j        j                  S r`   )r   #field_annotation_is_scalar_sequencer?   rB   r  s    rJ   is_scalar_sequence_fieldr
    s    5e6F6QRRRrL   c                 4    t          j        | j                  S r`   )r   $is_bytes_or_nonable_bytes_annotationrp   r  s    rJ   is_bytes_fieldr    s    6u{CCCrL   c                 4    t          j        | j                  S r`   )r   is_bytes_sequence_annotationrp   r  s    rJ   is_bytes_sequence_fieldr    s    .u{;;;rL   rB   c                     t          |           }|                    |          }t          |           }|j        |_        |j        |_        |S r`   )typefrom_annotationr   rC   rB   )r?   rB   clsmerged_field_infonew_field_infos        rJ   copy_field_infor    sL    
z

C++J77*%%N/8N 1 <NrL   rI   c                 ^   t          | j        j                  p| j        j        }|t          u s	|t          u rAt          | j        j                  }|D ]%}|t          d           u rt          |          p|} t          |t          j	                  sJ t          j
        |         |          S r`   )r'   r?   rB   r   r   r&   r  
issubclassr   sequence_typessequence_annotation_to_type)r   rI   origin_type
union_args	union_args        rJ   serialize_sequence_valuer    s    U-899XU=M=XKe{i77e.9::
# 	 	IDJJ&&$Y//<9Kk6#899999-k:5AAArL   r   c                 x    t          j        dd| i dg                              d          d         }d |d<   |S )NzField requiredmissing)r  r   inputFr   r   r"  )r   from_exception_datar   )r   errors     rJ   get_missing_field_errorr%    sL    /IcBGGH ff#E E'NLrL   
model_namec                 8    d | D             }t          |fi |}|S )Nc                 @    i | ]}|j         |j        j        |j        fS rS   )rY   r?   rB   r   s     rJ   
<dictcomp>z%create_body_model.<locals>.<dictcomp>  s(    TTTAFQ\4alCTTTrL   )r   )r   r&  field_params	BodyModels       rJ   create_body_modelr,    s3     UTVTTTL!-j!I!IL!I!IIrL   r   c                 
   g }| j                                         D ]f\  }}|j        }t          |t          t
          f          st          |          rd }n| j        }|                    t          |||                     g|S )N)r?   rY   r^   )
model_fieldsr   rB   r   r   r   r   model_configr   rX   )r   r.  rY   r?   rp   r/  s         rJ   get_model_fieldsr0    s    %'L!.4466 
 
j%ei%677 	.<;N;N 	.LL -L%#  	
 	
 	
 	
 rL   c                      t          |           S r`   )r0  r   s    rJ   get_cached_model_fieldsr2    s    E"""rL   r   rY   c                 .    t          j        dd|           S )Nz[^a-zA-Z0-9.\-_]r   )resub)rY   s    rJ   normalize_namer6    s    6%sD111rL   unique_modelsc                 ~    i }| D ]}t          |j                  }|||<   d |                                D             S )Nc                     i | ]\  }}||	S rS   rS   )r   kvs      rJ   r)  z&get_model_name_map.<locals>.<dictcomp>  s    444TQAq444rL   )r6  rP   r   )r7  name_model_mapr   r&  s       rJ   get_model_name_mapr=    sR    N + +#EN33
%*z""44^11334444rL   c                     t                      }d | D             }t          |t                                }|                    |          }t          |          }|S )Nc                 <    g | ]}t          |t                    |S rS   )rd   rX   r   s     rJ   r   z-get_compat_model_name_map.<locals>.<listcomp>  s'    RRRJuj4Q4QRuRRRrL   r   )r   r   unionr=  )r   all_flat_modelsv2_model_fieldsv2_flat_modelsr   s        rJ   get_compat_model_name_maprD    sZ    eeORR&RRRO0suuUUUN%++N;;O'88NrL   r   c                 f    |pt                      }t          |           }t          ||           |S Nr   )r   r0  r   )r   r   r   s      rJ   get_flat_models_from_modelrG    s8      (355Le$$F\BBBBrL   c                 &   t          |           }|t          |           D ]o}t          |t          t          f          r@||vr<|                    |           t          |t                    rt          ||           ^t          ||           p|S rF  )r'   r&   r   r   r   addrG  get_flat_models_from_annotation)rB   r   originargs       rJ   rJ  rJ  
  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rL   c                    | j         }t          |t                    r-||v r|S |                    |           t	          ||           n<t          |t
                    r|                    |           nt          ||           |S rF  )rp   r   r   rI  rG  r   rJ  )r   r   
field_types      rJ   get_flat_models_from_fieldrO    s     J*i00 O%%$$$":LIIIII	J	-	- O$$$$'
NNNNrL   c                 2    | D ]}t          ||           |S rF  )rO  )r   r   r   s      rJ   r   r   )  s1      E E"5|DDDDDrL   r   r   c                 $    fd| D             }|S )Nc           	      N    g | ]!}i |d |                     d d          z   i"S )r   rS   )r   )r   errr   s     rJ   r   z._regenerate_error_with_loc.<locals>.<listcomp>4  sI     % % %<?737zCGGE2$6$6677% % %rL   rS   )r   r   updated_loc_errorss    ` rJ   r   r   1  s4    % % % %CI% % % rL   r`   )hr4  rw   collections.abcr   r   r   dataclassesr   r   enumr   	functoolsr	   typingr
   r   r   r   fastapi._compatr   fastapi.openapi.constantsr   fastapi.typesr   r   r   pydanticr   r   r   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'   pydantic_core.core_schemar(   ImportErrorr)   RequiredParamrG   UndefinedTypeevaluate_forwardref	ValidatorrE   r   re   rK   rN   	ExceptionrV   rX   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r%  r  r,  r   r0  r2  TypeModelOrEnumr   TypeModelSetr6  r=  rD  rG  rJ  rO  r   r   r   rS   rL   rJ   <module>rn     s
   				  $ $ $ $ $ $         / / / / / / / /                        # " " " " " 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 L L L L L L L L L L L L L L 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 $ $ $ $ $ $ ; ; ; ; ; ; ; ; ; ;                 
 "	%' 	
s
t
 T
 d	

 
 4
 T
 T
 4
 
 t
 $
 T
 $
 
  d!
" #
$ +
 
 
4
y 
T#s(^ 
 
 
 
	 	 	 	 	 	 	 		 	 	 	 	9 	 	 	 p p p p p p p pf$
 $t $ $ $ $ +/   ! j'"?@@A?R	 $( 
#s(^   F +/	=( =( =(Z =( !=( $(	=(
 z7#@AA	BO	STd38n	=( =( =( =(@!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	? #tJ7G # # # # [)4:56?#2 2 2 2 2 25l 5tOS<P7Q 5 5 5 5d:&6 <     IM ,1,2D,E   #/   %1    Z 0<   }*/c3h0D*E	$sCx.     s   0B7 7CC