fL i8UddlZddlZddlmZmZmZddlmZm Z m Z ddl mZmZmZmZmZmZmZmZmZm Z mZmZmZmZmZmZmZmZmZmZm Z ddl!m"Z"m#Z#ddl$m%Z&ddl'm(Z(m)Z)m*Z*ddl+m,Z,dd l-m.Z.m/Z/m0Z0m1Z1dd l2m3Z3m4Z4dd l5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBdd lCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLdd lMmNZNmOZOmPZPmQZQeRZSeeTd<edZUGddZVeVZWerGddl'mXZXddlYmZZZddl+m[Z[ddl2m\Z\ddl5m]Z]m^Z^m_Z_eeeee[fZ`e ee eaebfdfebfZce edeVfZeGddeEZfeWfddddddddddddddddddddddddddedee6deebdeebd eebd!ee d"d#efd$ee d"d#efd%eedd&eegd'eegd(eegd)eegd*eegd+eedd,eead-eead.eead/eead0eedd1eead2eead3edd4eebd5eebd6edd7ed8ef6d9Zhd:Zid;ZjdZmd?Znd@ZodAZpdBZqdCZrdDZsdEZtdFZudGZvejdHekdIendJeodKepdLeqdMesdNetdOeudPevdQi ZweuetelevhZxeeaeTdR<GdSdTeEZyGdUdVeEZzeWfddWdedee6d8efdXZ{GdYdZZ|d[eed\ed8edfd]Z}y)^N)Counter defaultdictdeque)CallableHashableIterable) TYPE_CHECKINGAnyr DefaultDictDequeDict ForwardRef FrozenSet GeneratorrIteratorListMappingOptionalPatternSequenceSetTupleTypeTypeVarUnion) AnnotatedFinal)errors) Validatormake_generic_validatorprep_validators) ErrorWrapper) ConfigErrorInvalidDiscriminatorMissingDiscriminatorNoneIsNotAllowedError)Json JsonWrapper) NoArgAnyCallableconvert_genericsdisplay_as_typeget_args get_origin is_finalvaris_literal_type is_new_type is_none_type is_typeddictis_typeddict_specialis_unionnew_type_supertype) PyObjectStrRepresentation ValueItems"get_discriminator_alias_and_valuesget_unique_discriminator_aliaslenient_isinstancelenient_issubclass sequence_likesmart_deepcopy)constant_validatordict_validatorfind_validators validate_jsonRequiredTcHeZdZdefdZdedefdZdefdZdededefdZ y) UndefinedTypereturncy)NPydanticUndefinedselfs X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pydantic/v1/fields.py__repr__zUndefinedType.__repr__Fs"rLc|SNrJrKs rM__copy__zUndefinedType.__copy__I rOcy)N UndefinedrJrKs rM __reduce__zUndefinedType.__reduce__LsrO_c|SrQrJ)rLrWs rM __deepcopy__zUndefinedType.__deepcopy__OrSrON) __name__ __module__ __qualname__strrNrDrRrVr rYrJrOrMrFrFEsG###qQC1rOrF)ValidatorsList) BaseConfig) ErrorList) ModelOrDc)AbstractSetIntStrMappingIntStrAnyReprArgs.ceZdZdZdZddddddddddddddddZefdededdfd Zdd Z de e fd Z d e e efddfd ZddZy) FieldInfoz3 Captures extra information about a field. )defaultdefault_factoryaliasalias_prioritytitle descriptionexcludeincludeconstgtgeltle multiple_of allow_inf_nan max_digitsdecimal_places min_items max_items unique_items min_length max_lengthallow_mutationreprregex discriminatorextraNT)r{r|rrprrrqrsrtrurvrwrxryrzr}rgkwargsrGc ||_|jdd|_|jdd|_|jd|jdnd|_|jdd|_|jdd|_|jdd|_|jdd|_|jd d|_ |jd d|_ |jd d|_ |jd d|_ |jd d|_ |jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_|jdd|_||_y)Nrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}Trrr~)rgpoprhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrr~r)rLrgrs rM__init__zFieldInfo.__init__s %zz*;TBZZ. $jj)9 @V1\`aZZ. !::mT:zz)T2 zz)T2 ZZ. **T4(**T4(**T4(**T4(!::mT:#ZZ> **\48$jj)94@K6K6"JJ~t< **\48 **\48$jj)94@ZZ. #ZZ>JJvt,  rOc ddij}fdjD}|Dcgc]\}}||j|dk7s||f!c}}Scc}}w)Nr~Tc3:K|]}|t|fywrQ)getattr).0srLs rM z*FieldInfo.__repr_args__..s?1!WT1%&?s)__field_constraints__ __slots__get)rLfield_defaults_to_hideattrsavs` rM __repr_args__zFieldInfo.__repr_args__s` D2 ((2  @?#(U41aA1G1K1KAt1T,TAUUUs A Ac|jjDchc]\}}t|||k7s|c}}Scc}}w)z Gets the constraints set on the field by comparing the constraint value with its default value :return: the constraints set on field_info )ritemsr)rLattrrgs rMget_constraintszFieldInfo.get_constraintss= +/*D*D*J*J*LowPWX\^bPcgnPnooos>> from_configc|jD]\}} t||}||jj|durt |||?|dk(rt j |||_`|dk(sft j ||d|_y#t$r|jj||YwxYw)z{ Update this FieldInfo based on a dict from get_field_info, only fields which have not been set are dated. NrmrnT intersect) rrrrsetattrr8mergermrnAttributeErrorr setdefault)rLr attr_namevalue current_values rMupdate_from_configzFieldInfo.update_from_configs!, 1 1 3 Z Iu Z 'i 8 !D$>$>$B$B9d$SSD)U3)+#-#3#3E=#IDL)+#-#3#3E=TX#YDL Z" 8 %%i7 8s B%B?>B?cX|jtur|j tdyy)N/cannot specify both default and default_factory)rgrUrh ValueErrorrKs rM _validatezFieldInfo._validates. < ModelField)type_ outer_type_ annotation sub_fieldssub_fields_mapping key_field validatorspre_validatorspost_validatorsrgrhrequiredfinal model_confignameri has_aliasrdiscriminator_keydiscriminator_aliasvalidate_always allow_noneshapeclass_validators parse_jsonNF)rgrhrrrirrrrrr_rgrhr BoolUndefinedrrirrGc <||_| du|_| | n||_||_t ||_||_|xsi|_||_||_ ||_ ||_ ||_ | xs t||_|jj|_|j |_d|_d|_d|_d|_d|_g|_d|_d|_d|_t6|_|jj;||j=y)NF)rrrirr*rrrrgrhrrrrfrrrrrrrrrrrrrSHAPE_SINGLETONr prepare_fieldprepare) rLrrrrrgrhrrrirs rMrzModelField.__init__s  $D0#(#4%$ *51 % 0 6B# ;J)1   (%/%E9W3E040M0M262H2H %%*6:EI/3,.:>;? %)  ''- rOcd|jt|jS|jSrQrhr>rgrKs rM get_defaultzModelField.get_default+/3/C/C/K~dll+gQUQeQeQggrO field_namerrconfigc|j|}d}t|turt|ddDcgc]}t |t s|}}t |dkDrtd|tt|d}|ctj|}|j||jttfvrtd||tur|tur||_ t |t r$|td||}|j|n| t |fi|}|jdn |j}|j!||fScc}w)a~ Get a FieldInfo from a root typing.Annotated annotation, value, or config default. The FieldInfo may be set in typing.Annotated or the value, but not both. If neither contain a FieldInfo, a new one will be created using the config. :param field_name: name of the field for use in error messages :param annotation: a type hint such as `str` or `Annotated[str, Field(..., min_length=5)]` :param value: the field's assigned value :param config: the model's config object :return: the FieldInfo contained in the `annotation`, the value, or a new one from the config. Nrz1cannot specify multiple `Annotated` `Field`s for z1`Field` default cannot be set in `Annotated` for z;cannot specify `Annotated` and value `Field`s together for )get_field_infor-rr, isinstancerflenrnextitercopyrrgrUrCrhr)rrrrfield_info_from_configrarg field_infoss rM_get_field_infozModelField._get_field_infosj "(!6!6z!B j !Y .*2:*>qr*Ba3jQTV_F`3aKa;!# #TU_Tb!cddd;/6J%!YYz2 --.DE%%i-BB$'XYcXf%ghh )e8.C).J& eY '% #^_i^l!mnnJ  ) )*@ A  "5C,BCJ"22>JDVDV5  -bs E Ec ddlm}|j||||\}}t}|turd}d}n |turd}|||||j }||||j |||j||| S)Nr)get_annotation_from_field_infoTF) rrrirrgrhrrr)pydantic.v1.schemarrrUrCvalidate_assignmentrirh) clsrrrrrrrrs rMinferzModelField.infers F//j%P E$- H HE ) #H3J DRXRlRlm ""-&66!  rOc|||_|j|j}|j||j d}|j dxsd}|rF||j j xsdk\r)||j _||j _||_|j d}|9tj|j j||j _ |j d}||d|_t^|_0|jQ|d|jRdg|_+y|d k(rtd|_0t |_g|_+ytd|_0tg|Dcgc]&\}}|jQ||jRd|(c}}|_+yt[|thrtk|jd d}|rK|jljotg|Dcic]\}}d |tq|d c}}t3|jd|_tr|_0nt[|ttrtk|jd d}|rK|jljotg|Dcic]\}}d |tq|d c}}t3|jd|_tv|_0nt[|txrtk|jd d}|rK|jljotg|Dcic]\}}d|tq|d c}}t3|jd|_tz|_0nJt[|t|r*t3|jd|_t~|_0nt[|tr*t3|jd|_t|_0n|tus|turf|jQt3|jdd|jRzd|_Dt3|jd|_t|_0n`t[|trf|jQt3|jdd|jRzd|_Dt3|jd|_t|_0nt[|trT|jQt3|jdd|jRzd|_Dt|_t|_0nt[|trf|jQt3|jdd|jRzd|_Dt3|jd|_t|_0n|tthvrXt3|jd|_t|_0|jQ|j|jRdg|_+nt[|tryt|d s|jjrht|_0tgt3|jDcgc]&\}}|jQ||jRd|(c}}|_+||_ytAd|d|jQ|jd|jRzg|_+ycc}wcc}}wcc}}wcc}}wcc}}wcc}}w)NTFrzM`discriminator` can only be used with `Union` type with more than one variantrrWr_0)rJ__get_validators__list_)preset_ frozenset_key_for_keys_typezFields of type "z" are not supported.)Ur<rr( inner_typerr'r rr __bound____constraints__rr0r5objectrrUrrrer/r2r.rrr,rr-rr3rr4 TypeErrorCollectionsHashabletyperr1appendrr_create_sub_typerr+r&prepare_discriminated_union_sub_fields issubclassrSHAPE_TUPLE_ELLIPSISrEllipsis SHAPE_TUPLE enumeraterrrupdater SHAPE_LISTr SHAPE_SETrSHAPE_FROZENSETr SHAPE_DEQUErSHAPE_SEQUENCEdictr r SHAPE_DICTr SHAPE_DEFAULTDICTrint SHAPE_COUNTERr SHAPE_MAPPINGrCollectionsIterableSHAPE_ITERABLErhasattrrarbitrary_types_allowed SHAPE_GENERIC) rLorigintypes_rtargsiget_validators validators rMrzModelField._type_analysisEsN djj+ 6..DJ"DO  D 1DJ"DO  G ,zz##!ZZ11 ++"4::#=#=>    $+DJJ7DJ ::  f 4}} ) % "DO  ZZ7 "djjBJJ&>  TZZ (  $** %  tzz "DJzzU"  %djj1!4    ! DJJ' Y "6v">!$**-a0DJ    !   ! ! -hv6Fkl l >V'::$**d+ 40L"&  x   f F!$**- %&%3,%6/}} 1(- &*DO& e$ %6{a#AY #':: ##%  kq"qef4#8#8tyyk?[\K]J^<_#`"q))5??A   &DJJ'D  1  TaDGx$7!!W 1 #'#8#8aTYYKrBR#S"T (   "$ ) \efj\k"lTXTUWX4#8#8tyyk1# -> and update `sub_fields` Note that this process can be aborted if a `ForwardRef` is encountered N) rrrrrsetrr9addrr:r)rLr all_aliases sub_fieldr1ridiscriminator_valuesdiscriminator_values rMrz1ModelField.prepare_discriminated_union_sub_fieldss %%111 ::  < / ***68 #  DIA{{j(*LQPTPfPf*g 'E' OOE "'; D#:C"#67 D D#5#A+tOeOe#f rOr r c |rd}nz|jjDcic]U\}}|jrD|t|j|j d|j |j|jW}}}|j||d|j\}}|j||||j|Scc}}w)NF)funcr each_itemalways check_fieldsskip_on_failure)rrrrr) rrr?rr>rr@rArBrrr) rLrrr rkrrrWs rMrzModelField._create_sub_types # !11779 Aq;;9#88!"$%$5$5    ,,T5$@Q@QR A~~-**!    sACct|jddxs*td|jj D|_|jj }|j r|jtk(rt|jdd}g|Dcgc](}|js|js|j*c}|r|n(tt|j|j|Dcgc](}|js|jr|j*c}}t||_g|_g|_|j&r>|j&j(r(|j$j+t-t.|rJ|xj"td|Dz c_|xj$td|Dz c_|j0r(|j"j+t-t2|j"xsd|_|j$xsd|_ycc}wcc}w)a Prepare self.pre_validators, self.validators, and self.post_validators based on self.type_'s __get_validators__ and class validators. This method should be idempotent, e.g. it should be safe to call multiple times without mis-configuring the field. rFc34K|]}|jywrQ)r@rrs rMrz1ModelField.populate_validators..4sT AHHT srNc3hK|]*}|jr|js|j,ywrQr?rr>rFs rMrz1ModelField.populate_validators..Is&2ra\]\g\glmlqlq1662r 2 22c3hK|]*}|jr|jr|j,ywrQrHrFs rMrz1ModelField.populate_validators..Js&3wq]^]h]hqrqvqvAFF3wrI)rranyrvaluesrrrr.r?rr>listrArr!rrrrrorr r?rrB)rLclass_validators_r4rv_funcss rMrzModelField.populate_validators.s 'tzz3DeL PST "33::<T Q !1188:$** "=$TZZ1EtLN"3MQq{{quu!&&M&4."$tzz[_[l[l?m:n#4QQq{{155!&&QG .g6DO ! ??t44  ' '(>?Q(R S    ?2rCT2r#r r   O3wDU3w$w w ??    & &'=m'L M"119T#33;t)NQs$I 0 I =I I I#I)rrrLlocLocStrrraValidateReturncV|jjtusJ|jjtur*|Jt d|j d|j d|jr(|j|||||j\}}|r||fS|dt|jrnN|jr,|jr|j|||||jSy|tt|fS|jtk(r|j!||||\}}n|jt"vr|j%||||\}}n|jt&k(r|j)||||\}}nx|jt*k(r|j-||||\}}nM|jt.k(r#|j|||||j0\}}n|j3||||\}}|s.|jr"|j|||||j\}}||fS)Nfield "I" not yet prepared so type is still a ForwardRef, you might need to call .update_forward_refs().)NN)rrrrr#rrZr_apply_validatorsr1rrr"r&rr_validate_singletonr_validate_mapping_liker_validate_tupler+_validate_iterabler.r_validate_sequence_like)rLrrLrPrrs rMvalidatezModelField.validateRszz##<777 ::  : -? "?$))%**-,,7NP    ..q&#sDDWDWXIAv&y 9DJJ'''11!VS#tG[G[\\%,'<'>DDD :: (00FCEIAv ZZ. .33AvsCHIAv ZZ; &,,QSAIAv ZZ> )//63DIAv ZZ= (..q&#sDOOTIAv44QSIIAv$....q&#sDDXDXYIAv&yrOct|s|jtk(rtj}n|jt t fvrtj}nd|jtk(rtj}n<|jtk(rtj}ntj}|t||fSt|tr|n|f}g}g}t!|D]H\}} g||} |j#| || |\} } | r|j%| 8|j%| J|r||fS|} |jtk(rt'|} | dfS|jtk(rt)|} | dfS|jt k(rt|} | dfS|jt*k(rt-|t/|dd} | dfS|jt0k(rt|trt|} | dfSt|t&rt'|} | dfSt|t2rt5|} | dfSt|t,rt-|t/|dd} | dfS)z Validate sequence-like containers: lists, tuples, sets and generators Note that large if-else blocks are necessary to enable Cython optimization, which is why we disable the complexity check above. maxlenN)r_)r=rrr ListErrorrr TupleErrorr SetErrorr!FrozenSetError SequenceErrorr"rtuplerrXrr7 frozensetr"rrr#rr)rLrrLrPreresultrr3v_v_locree converteds rMr\z"ModelField._validate_sequence_likesUQzzZ'%%' -ABB&&(y($$&.**,))+l1c** *U+c#"$q\ !EArSG!GE,,RDEAr b! a  ! f9 lr :: "F I $ZZ? *!&)I$ZZ/ /f I$ZZ; &fWQ$-GHI$ZZ> )!U#!&M $ As#K $ Ay) L $Au%!&Hd1KL $rOc t|}|dfS#t$r#|ttj|fcYSwxYw)zw Validate Iterables. This intentionally doesn't validate values to allow infinite generators. N)rrr"r IterableError)rLrrLrPriterables rMr[zModelField._validate_iterablesK AAwH~ Al7#8#8#:C@@ @ As )==cd}t|stj}n>!VRU>+VLE5#(',d{ 2 3s"D%%AE21E2c |jJ|jJ ||j}|j*|Jtd|jd|jd |j|}t|ts|f}|j!||g|t#|j$|S#t$r*|jjr||j}nYwxYw#t$r%|t t |j|fcYSt$rU t||j}n9#ttf$r'|t t |j|fcYcYSwxYwYEwxYw#ttf$rH|jJ|t t'|j|t)|j|fcYSwxYw)N)rrTrUrVrt)rr<allowed_values)rrKeyErrorrallow_population_by_field_namer"r%rrrrr#rrZrrer]r+rr$rM)rLrrLrPrr<r:s rMrz(ModelField._validate_discriminated_unionLs%%111''333 l &'(@(@&A#  " " *? "?$))%**-,,7NP   h//0CDIc5)f%%a5]s5]OIOO<\5]cf%g gM $$CC*+D,B,B*C'(   hl#7$J`J`#acfgg g l l&-a1G1G&H#"I. l,';dNdNd'egjkkk l$ l )$ **6 66l$&*&<&<(;#'(?(?#@    sfB4%E740C'$C*&C''C**+E4E4 D76E471E-(E4,E--E43E47AG Grr^c|D]} ||||||j}|dfS#tttf$r}|t ||fcYd}~cSd}~wwxYwrQ)rrrAssertionErrorr")rLrrLrPrrr5r}s rMrWzModelField._apply_validators}sf$ 1I 1c1fdD4E4EF 1 $w >: 1,sC000 1s#A A A Acddlm}|jtk7xsCt |j dxs+t |j |ttttfS)z\ Whether the field is "complex" eg. env variables should be parsed as JSON. r) BaseModel__pydantic_model__) pydantic.v1.mainrrrr,rr<rMr7rfr$)rLrs rM is_complexzModelField.is_complexsO / JJ/ ) Wtzz#78 W!$**y$YPT.UV rOct|j}|jtvr'dt|jjd|d}n|jt k(r2dj djd|jD}n|jtk(rT|jsJdj t|jdjd|jD}n5|jtk7r"t|jj |}|jr%|jtk7s |jsd|d}t|S) NzMapping[z, ]z Tuple[{}]c3FK|]}t|jywrQr+rrfs rMrz+ModelField._type_display..s,_!_QWW-E,_!z{}[{}]c3FK|]}t|jywrQrrs rMrz+ModelField._type_display..s6iTUqww7O6irz Optional[)r+rrrrrformatjoinrr.rSHAPE_NAME_LOOKUPrr6)rLr1s rM _type_displayzModelField._type_displays DJJ ' ::, ,?4>>+?+?@AA3aHA ZZ; &""499,_t,_#_`A ZZ= (?? "? +TYY6iY]YhYh6i-iAZZ? *!$**-44Q7A ?? o =T__A3a A1~rOctd|jfd|jfd|jfg}|jsU|j,|j dd|jj dfn|j d|j f|jr|j d|jf|S) Nrrrrhz rgri) rrrrhrrZrgrri)rLr2s rMrzModelField.__repr_args__s#fd.@.@.B%CjRVR_R_E`a}}##/ .*T=Q=Q=Z=Z<[[\0]^_ Y 56 >> KK$**- . rOrr)-rZr[r\rrUr]rr rr rr)boolrfrr staticmethodrr classmethodrrpropertyrrrrrrrr]r\r[rZrYrDrr{rXrrWrr6rrrJrOrMrrlsAIF6:$-#*.))Cy ) #4Y#78 ) <( ))""23)"))})Y') )VhSh)!)!%()!14)!>B<>P)! y#~ )!)!V      #4Y#78  \"    @ml!3mm"'4''#(#0oObg8QV d3i s  Zf 8".EMkEZ. .`77"38n73;7BJ;BW7 7r  "38n 3; BJ;BW   ''"38n'3;'BJ;BW' 'pydantic.v1.validatorsr?r@rArBrrC__annotations__rDrFrUr^pydantic.v1.configr_r`rarbrcrdrRr'r]rQrrrffloatrrrr r)rrr#r!r+r.r"r%r&r(rrrrrrrrJrOrMrs' HHff0/)[[3mm/   fe# CL   O ;-4+PP8C=(9*==>N 5sCx#-.3 4F$ -.MyPyPzm37!%MQMQ #'$( $$(###' $ $#'5m m./m C= m C= m # me/1CSHI Jme/1CSHI Jm D>m m m m m%mD>m  !m"SM#m$}%m&}'m(4.)m* +m, -m./m0 C=1m2C=3m4 5m67m8 9mb          y*N_N (= "3J } ]SX]E E P ~ $37 ./ 2 ZS ZZZrO