ML i8.UdZddlmZddlmZmZddlmZmZm Z ddl m Z ddl Z ddlZ ddlmZddlmZdd lmZdd lmZmZmZmZmZmZmZmZdd lmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCdd lDmEZEdd lFmGZGerddlHmIZIdZJdeKd<dZLdeKd<GddZM d4dZN d5 d6dZO d6dZPd7dZQd8dZR d9dZSd:dZTd;dZUddZXd>d ZYd?d!ZZd@d"Z[d?d#Z\d?d$Z]dAd%Z^dBd&Z_Gd'd(e2e`ZaGd)d*e8ebeMZcdCd+ZddDd,Ze dEd-ZfdFd.ZgdGd/Zh dHd0ZidId1Zj dJd2ZkdKd3Zly)LzType inference constraints.) annotations)IterableSequence) TYPE_CHECKINGFinalcast) TypeGuardN)ArgTypeExpander)erase_typevars)map_instance_to_supertype)ARG_OPTARG_POSARG_STAR ARG_STAR2 CONTRAVARIANT COVARIANTArgKindTypeInfo)%TUPLE_LIKE_INSTANCE_NAMESAnyType CallableType DeletedType ErasedTypeInstance LiteralTypeNoneTypeNormalizedCallableType Overloaded Parameters ParamSpecType PartialType ProperType TupleTypeType TypeAliasType TypedDictType TypeOfAny TypeQueryTypeType TypeVarIdTypeVarLikeTypeTypeVarTupleType TypeVarType TypeVisitor UnboundTypeUninhabitedType UnionType UnpackTypefind_unpack_in_listflatten_nested_tuplesget_proper_typehas_recursive_types has_type_varsis_named_instancesplit_with_prefix_and_suffix)is_union_with_any) type_state)ArgumentInferContextr SUBTYPE_OF SUPERTYPE_OFcJeZdZUdZded<dZded<d dZd dZdd Zdd Z y ) ConstraintzpA representation of a type constraint. It can be either T <: type or T :> type (T is a type variable). r*type_varrr$targetc^|j|_||_||_||_g|_yN)idrBoprCorigin_type_var extra_tvars)selfrBrGrCs V/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/constraints.py__init__zConstraint.__init__Ss/   '35cld}|jtk(rd}|jd|d|jS)Nz<:z:> )rGr?rBrC)rJop_strs rK__repr__zConstraint.__repr___s7 77l "F--&4;;-88rMcZt|j|j|jfSrE)hashrBrGrC)rJs rK__hash__zConstraint.__hash__es T]]DGGT[[9::rMct|tsy|j|j|jf|j|j|jfk(SNF) isinstancerArBrGrC)rJothers rK__eq__zConstraint.__eq__hsC%, tww 4SXS_S_8```rMN)rBr+rGintrCr$returnNone)r[str)r[rZ)rXobjectr[bool) __name__ __module__ __qualname____doc____annotations__rGrLrQrTrYrMrKrArAIs.  B L 59 ;arMrAc ~ g}t|}|jg}g} g} d} t|D].\} } | D]$}||j| tt fvs"d} .0t|D]\} } t |j| tr|j| }t |tsJg}t|j}t |tr |j}n$t |tr |j}nJd| D]}||}| |j||||j | |j| d}||tk7st t|tr|j#|u|j#t|j%|gt |tr6|j#t'|t(t||jt |trE|j*d}t |tsJt|j}t-|j*dz }t |tr9|j#t'|t(t|d| |jnct |t.r|jj0d k(sJ|d| D]/}|j3t5|j6d|t(1|st9|j*dd|| dD]%\}}|j3t5||t('Jd| D]}||}| r|j| tt fvro| r+|j#|j|||d||||}| j#|tt fvrt:n|| j#|r||nd|j||||j | |j| }t5|j| |t(}|j3|rCt=fd |Ds/| s-|j#t't(t?|| | d t=d |j@Dr tC|}|S) zlInfer type variable constraints for a callable and actual arguments. Return a list of constraints. FNTz-mypy bug: unhandled constraint inference case) allow_unpack)argsrr>builtins.tuplec3PK|]}|jjk(ywrE)rBrF).0c param_specs rK z1infer_constraints_for_callable..sEAAJJ*--/Es#& arg_types arg_kinds arg_namesimprecise_arg_kindsc3<K|]}t|tywrE)rWr )rkvs rKrnz1infer_constraints_for_callable..s BA:a ' B)"r rm enumeraterqrrrWrpr2r5typer,tuple_fallbackr#partial_fallbackexpand_actual_typerrappend copy_modifiedrAr?itemslenrfullnameextendinfer_constraintsrhzipranyr variablesfilter_imprecise_kinds)calleerprqrrformal_to_actualcontext constraintsmapperparam_spec_arg_typesparam_spec_arg_namesparam_spec_arg_kindsincomplete_star_mappingiactualsactual unpack_type actual_types unpacked_typetuple_instanceactual_arg_typeexpanded_actual inner_unpackinner_unpacked_type suffix_lenattt actual_kind actual_typerlrms @rKinfer_constraints_for_callablerns%'K W %F""$J# 01 7 F~&"2"21"5(I9N"N+/'   01r* 7 f&&q): 6 **1-Kk:6 66 L+K,<,<=M-)9:!.!=!=M95!.!?!?MMMu! "+F"3"*"(";";#f%$$Q'$$Q'!% #<#V$0J#O4i5!''8!''">#?#?oEV#?#WX' .-)9:""%$!, 0L0LMM95 -2215 !, ;;;&5l6G6G&H# !4!459 13CD&&"/(% ,\zk : result'): (T, X) --> T :> X (X[T], X[Y]) --> T <: Y and T :> Y ((T, T), (X, Y)) --> T :> X and T :> Y ((T, S), (X, Y)) --> T :> X and S :> Y (X[T], Any) --> T <: Any and T :> Any The constraints are represented as Constraint objects. If skip_neg_op == True, then skip adding reverse (polymorphic) constraints (since this is already a call to infer such constraints). c3K|]7\}}tt|k(xrtt|k(9ywrE)r5)rktartemplates rKrnz$infer_constraints..0sJ  Q !_Q%77 : F #q'9 9 : s=A) rreversedr; inferringr6rWr5rr7r|_infer_constraintspop)rr direction skip_neg_opress`` rKrrs2  z334   8$ ?83Lh(WX&I##Xv$67 69kJ  " h ; GGrMc J|}t|}t|}t|tr+tjj |j d}t|tr+tjj |j d}t|tr|jtjk(rgSd}t|r#t|rd}t|}t|}t|trt|||gSt|trd|jj!sJ|t"k(rAt|trt%d|j Dst|j&}|t(k(rAt|tr1g}|j D]}|j+t-||| |S|t"k(rXt|trHg}|j D]5}|rt/j0|}|j+t-|||7|S|t(k(rKt|tr;t3|j } t5| Dcgc]}t7|||c}dS|t"k(rwt|trgt5|j Dcgc]}t7|||c}t|t} | r| St9|rt9|s t;|||SgS|j=t?|||Scc}wcc}w)NT) keep_erasedFc3<K|]}t|tywrE)rWr-)rkrs rKrnz%_infer_constraints..ts: +,Jq+ &: rveager) r5rWr1mypytypeopsmake_simplified_unionr~r type_of_anyr'suggestion_engine _is_type_type_unwrap_type_typer-rArF is_meta_varr?r upper_boundr=rrr)make_normalizedsimplify_away_incomplete_typesany_constraintsinfer_constraints_if_possibler6handle_recursive_unionacceptConstraintBuilderVisitor) rrrr orig_templatetype_type_unwrappedrt_itema_itemr~results rKrrCsMx(H V $F (I&<<55hnnRV5W&)$33FLLd3S &'"v'9'9Y=X=X'X  X=#8"$X."6*(K(8Y788 6;' %%'  %(I.c: 08: 7 %V%7%78F J:h #Bnn EF JJ(C D E L Z %Bll LF#!11&9 JJ( J K  L J:fi#@.v||<V[ \F *8VY G \  L Z)%D!'nn .ffiH VW-   M  *3Fv3N)(FIF F  ??3FI{S TT+ ] s "L+L ct|txs.t|txrtd|jDS)zIs ``tp`` a ``type[...]`` or a union thereof? ``Type[A | B]`` is internally represented as ``type[A] | type[B]``, and this troubles the solver sometimes. c3NK|]}tt|tywrE)rWr5r))rkos rKrnz _is_type_type..sKQ ?1-x8Ks#%)rWr)r1allr~)tps rKrrs; 2x  L b) $ L K"((K KrMc t|tr |jStj|j Dcgc]%}t tt|j'c}Scc}w)zHExtract the inner type from ``type[...]`` expression or a union thereof.)rWr)itemr1 make_unionr~rr5)rrs rKrrsM"hww   RTRZRZ [Qh0B!C!H!H [ \\ [s*A+c|tk(r*tjjt ||sy|t k(r*tjj|t |sy|t k(rDt |tr4tjj|t |jsyt|||S)a2Like infer_constraints, but return None if the input relation is known to be unsatisfiable, for example if template=List[T] and actual=int. (In this case infer_constraints would return [], just like it would for an automatically satisfied relation like template=List[T] and actual=object.) N) r=rsubtypes is_subtyper r?rWr-rr)rrrs rKrrsJt}}'?'?x@XZ`'aL )A)Ax(*\! x - ((@T@T1UV Xvy 99rMcfg}|D])}|td|Ds|j|+|S)zDSelect only those lists where each item is a constraint against Any.c3bK|]'}tt|jt)ywrE)rWr5rCr)rkrls rKrnz!select_trivial..s N!z/!((3W=Ns-/)rr|)optionsroptions rKselect_trivialrs? C >  NvN N JJv   JrMc |j}t|r|Sttj}t |j |jtj||g|j|jS)z?Transform a constraint target into a union with given Any type.) rCr:rr'implementation_artifactrArHrGr1rlinecolumn) constraintrCany_types rKmerge_with_anyrsg   F y889H "" fh/fmmL rMcB|jDcgc]}t|tr|}}|jDcgc]}t|ts|}}tt j |||xs tt j |||Scc}wcc}wrE)r~rWr-rr1r)rrrrnon_type_var_itemstype_var_itemss rKrrs &.^^V:a;U!VV!)NA:a3MaNNN /0&)  T 9//? STWNsBBBBc |r|Dcgc]}|s| c}n|Dcgc]}|| c}sgStdk(rdStfdddDrdStfdddDrpt}|rct|tkrLg}D]/}||vr|j|Dcgc] }t |c}1t t ||S|Dcgc] }t|}}||k7r t ||S|Dcgc] }t|}}||k7r t ||SgScc}wcc}wcc}wcc}wcc}w)aEDeduce what we can from a collection of constraint lists. It's a given that at least one of the lists must be satisfied. A None element in the list of options represents an unsatisfiable constraint and is ignored. Ignore empty constraint lists if eager is true -- they are always trivially satisfiable. Nr>rc3<K|]}td|ywrN)is_same_constraintsrkrl valid_optionss rKrnz"any_constraints..s O }Q/ 3 Oc3<K|]}td|ywr)is_similar_constraintsrs rKrnz"any_constraints..s R1 !-"2A 6 Rrr) rrrr|rrlistfilter_satisfiableexclude_non_meta_vars) rrrtrivial_optionsmerged_optionsrlrfiltered_optionsrs @rKrrs .5@F@ .5LF9KL   =QQ O]12=N OOQ R ab@Q RR )7 s?3c-6HHN' K_,%%&&IQ~a'8&IJ K#4#7uE E8??!*1-??7"/u== ;BBQ-a0BB7"/u== IYAL.'J @Cs&D;D;EE4E )E Ec|s|Sg}|D]tjtrQjjr;t fdjjDs\|j nt jjjjjs|j |sy|S)aKeep only constraints that can possibly be satisfied. Currently, we filter out constraints where target is not a subtype of the upper bound. Since those can be never satisfied. We may add more cases in future if it improves type inference. c3rK|].}tjjj|0ywrE)rrrrC)rkvaluerls rKrnz%filter_satisfiable..Hs+>C ((59s47N) rWrHr-valuesrr|rrrrCr)r satisfiablerls @rKrr;s  K " a'' 5!:K:K:R:RGHGXGXG_G_""1% ]] % %ahh0A0A0M0M N   q !"  rMcr|s|S|Dcgc]}|jjs|!c}xsdScc}wrE)rBr)rrls rKrrSs4   :!!7!7!9A : BdB :s44cz|D]tfd|Dry|D]tfd|Dryy)Nc36K|]}t|ywrEis_same_constraintrkc2c1s rKrnz&is_same_constraints..^:"%b"-:Fc36K|]}t|ywrErrs rKrnz&is_same_constraints..arrT)r)xyrs @rKrr\sJ:::::: rMcntt|jtxr#tt|jt}|j|jk(xrS|j |j k(xs|xr4t jj|j|jSrE) rWr5rCrrBrGrr is_same_type)rr skip_op_checks rKrrfsryy97C  "GIM r{{" = UUbee^ ,} = MM & &ryy")) <rMc6t||xr t||S)aCheck that two lists of constraints have similar structure. This means that each list has same type variable plus direction pairs (i.e we ignore the target). Except for constraints where target is Any type, there we ignore direction as well. )_is_similar_constraints)rrs rKrrrs #1a ( J-DQ-JJrMc.|D]}d}|D]}tt|jtxs#tt|jt}|j|jk(se|j |j k(s|sd}n|ryy)zCheck that every constraint in the first list has a similar one in the second. See docstring above for definition of similarity. FT)rWr5rCrrBrG)rrr has_similarrrs rKrr|s    B&ryy'A7Kz *GPM{{bkk)ruu~"    rMc`|Dcgc]}t|s|}}|r|St|Scc}wrE)is_complete_typer)typestypcompletes rKrrs4$>(8(=>H>E{ ?s++c4|jtS)zIs a type complete? A complete doesn't have uninhabited type components or (when not in strict optional mode) None components. )rCompleteTypeVisitor)r s rKr r s ::)+ ,,rMc(eZdZdfd ZddZxZS)rc,t|tyrE)superrLr)rJ __class__s rKrLzCompleteTypeVisitor.__init__s rMcyrVre)rJrs rKvisit_uninhabited_typez*CompleteTypeVisitor.visit_uninhabited_typesrM)r[r\)rr0r[r_)r`rarbrLr __classcell__)rs@rKrrs rMrc eZdZUdZded<ddZddZd dZd!dZd"dZ d#d Z d$d Z d%d Z d&d Z d'd Zd(dZd)dZd*dZd+dZd,dZ d- d.dZd/dZ d0dZd1dZd2dZd3dZd4dZd5dZd6dZd7dZy)8rz-Visitor class for inferring type constraints.r"rc.||_||_||_yrE)rrr)rJrrrs rKrLz!ConstraintBuilderVisitor.__init__s "'rMcgSrErerJrs rKvisit_unbound_typez+ConstraintBuilderVisitor.visit_unbound_type rMcgSrErers rK visit_anyz"ConstraintBuilderVisitor.visit_anyrrMcgSrErers rKvisit_none_typez(ConstraintBuilderVisitor.visit_none_typerrMcgSrErers rKrz/ConstraintBuilderVisitor.visit_uninhabited_typerrMcgSrErers rKvisit_erased_typez*ConstraintBuilderVisitor.visit_erased_typerrMcgSrErers rKvisit_deleted_typez+ConstraintBuilderVisitor.visit_deleted_typerrMcgSrErers rKvisit_literal_typez+ConstraintBuilderVisitor.visit_literal_typerrMcJd)NzInternal errorrers rKvisit_partial_typez+ConstraintBuilderVisitor.visit_partial_types &&&urMcJd)NzbUnexpected TypeVarType in ConstraintBuilderVisitor (should have been handled in infer_constraints)rers rKvisit_type_varz'ConstraintBuilderVisitor.visit_type_var  ? urMcgSrErers rKvisit_param_specz)ConstraintBuilderVisitor.visit_param_specs rMctrE)NotImplementedErrorrs rKvisit_type_var_tuplez-ConstraintBuilderVisitor.visit_type_var_tuples!!rMctd)Nz5Mypy bug: unpack should be handled at a higher level.) RuntimeErrorrs rKvisit_unpack_typez*ConstraintBuilderVisitor.visit_unpack_typesRSSrMct|jtr&|j|j|jSt j r;t|jtr!t||j|jSt j rEt|jtr+t||jj|jSgSrE) rWrrinfer_against_anyrpr;infer_polymorphicr$infer_callable_arguments_constraintsrr prefixrs rKvisit_parametersz)ConstraintBuilderVisitor.visit_parameterss dkk7 +))(*<*}t|t8r%|j%|j;||dt|t@rt/|jB}t|t8rM|jjDr7|j%|j;|jjD|t|tr|j* |j*}t|tFr|jIj*}t|tJr |j*}t|t8 r|$t!}t|t8sJ|jt"k(rbjjM$jjNr2tQ$j} | jjRjT} $jjVr $jjXJ$jjZJ$jjX} $jjZ} $jjRjT| } t| t\sJ| j6}t_$j`| | \}}}t_| j`| | \}}}|t3tc||fz|z}|t3tc||fz|z}n| j`}$j`}te| ||D]\}}}t|t@r}|jfthk7r&|j%t'|||j|jftjk7se|j%t'||tm|jt|tnrt|tnr|jp}t|trr|ju|jvty|jvd|jzty|jzd|j|ty|j|d}|jt|t"||jt|t|t|tns|juts|jpjvty|jvd|jpjzty|jzd|jpj|ty|j|d}|jt|t"||jt|t|wt|t\s|j%t'|||j|S|jtk(r|$jjMjjNrLtQ$j} jjRjT} jjVr jjXJjjZJjjX} jjZ} jjRjT| } t| t\sJ| j6}t_j`| | \}}}t_| j`| | \}}}|t3tc||fz|z}|t3tc||fz|z}n| j`}j`}te| ||D]\}}} t|t@r}|jfthk7r&|j%t'| ||j|jftjk7se|j%t'| |tm|jt|tnrt| tnr| jp}t|trr|ju|jvty|jvd|jzty|jzd|j|ty|j|d}|jt| t"||jt| t|t|tns|juts|jpjvty|jvd|jpjzty|jzd|jpj|ty|j|d}|jt| t"||jt| t|wt|t\s|j%t'| |t"|j%t'| |t|Sjj r|jtk(rtfdtjjDstjj$|dgrnjjj|j%|j;$|jjj)|S$jj r|jt"k(rt$fd t$jjDstjj|$dgrn$jjj$|j%|j;$$$jjj)|S|r|St|tr|jj`|St|t2rttr|jtk(r|jD]}!t|!tr`t/|!j}"t|"t\r9t|"t8r|"jjNd k(sJ|"j`d }!t'j`d |!t}#|j%|#|St|t2rG|jtk(r4t'tj4j7||jSt|t@rI|js;|jjs!t'|jB|jSgSt|tnr!t'|jB|jSt|t\rtgS) N__call__c3(K|] }|k( ywrErerkrrs rKrnz:ConstraintBuilderVisitor.visit_instance..sJQ8q=JT is_operator class_objr9c3(K|] }|k( ywrErer>s rKrnz:ConstraintBuilderVisitor.visit_instance..Q!A Qr?)skipc3(K|] }|k( ywrEre)rkrinstances rKrnz:ConstraintBuilderVisitor.visit_instance..rFr?rir)LrrWrrrx is_protocolprotocol_membersrrr|rr find_memberrr?rr r=rrrfallback is_type_objr5ret_typer#rryr'infer_constraints_from_protocol_membersr)rr-rmetaclass_typer& as_anonymousrhas_baserr defn type_varshas_type_var_tuple_typetype_var_tuple_prefixtype_var_tuple_suffixr,r9rhrrvariancerrneg_opr r9rr}rprrqrrrAris_protocol_implementationrr6r8rr~r2rrFrr0)%rJroriginal_actualrrcallrOrerasedmappedtvars prefix_lenrtvtrMi_prefixi_middlei_suffixm_prefixm_middlem_suffix instance_args mapped_argstvar mapped_arg instance_argr9suffixt_prefixt_middlet_suffix template_args template_argrunpackedcbrIs% ` @rKvisit_instancez'ConstraintBuilderVisitor.visit_instances$ #';;.& " f|Z8 9hmm>W>WX]];;;J(--2I2IJJMM++228<==44"Hf$5D +++,6 MM44V^D=QR>>Z7 MM44^D5I6R #4T64>>#RSMM++//1 fl +0K""$MM--NNl2*6??;h 2#||::8DHh1JJDD$h(dE __F fh 'HMM,E,E~~-fh/JJDD"Hfh$E fk2,V-?-?@Ffh/FKK4N4NJJDD"KK66&( fj )foo.I__F fm ,((*33F fk *__F fh 'H#H-Ffh/ //~~+ 0F0Fx}}G]G]0^28X]]K ((22==88$==>>JJJ#==>>JJJ!)!D!DJ!)!D!DJ"--,,66zBC%c+;<<<"11H3O z:40Hh4P Z40Hh%- $x.(0S/U$UX`$`M"*iX.Q-S"SV^"^K"(++K$,MMM7:%m6\#`2D*l!$ 4 ==M9JJ'8\SWSaSa'bc==I5JJ 1*lFSWSaSaLb c$D-8Z Ta=b!+!2!2%lJ?,8+E+E , 6 6s6;K;K7L7N O , 6 6s6;K;K7L7N O , 6 6s6;K;K7L7N O,F  JJz*j&'QRJJz*lF'ST' mD%1%?%?'1$0$7$7$A$A#fFVFVBWBY$Z$0$7$7$A$A#fFVFVBWBY$Z$0$7$7$A$A#fFVFVBWBY$Z("&@&F JJz*j&'QRJJz*lF'ST#D*:; #4Zt~~#^_G#`J </HMM4J4J8==KaKa4b28X]]K **44==88$==>>JJJ#==>>JJJ!)!D!DJ!)!D!DJ"--,,66zBC%c+;<<<"11H3O z:40Hh4P Z40Hh%- $x.(0S/U$UX`$`M"*iX.Q-S"SV^"^K"(++K$,MMM7:%m6\&^2D*l!$ 4 ==M9JJ'8zSWSaSa'bc==I5JJ 1, FSWSaSaLb c$D-8Z$m>".!4!4%j*=&0%=%= * 4 4S9I9I5J5L M * 4 4S9I9I5J5L M * 4 4S9I9I5J5L M&F  JJz, F'STJJz, f'UV' MB%/%=%='1$.$5$5$?$?FDTDT@U@W$X$.$5$5$?$?FDTDT@U@W$X$.$5$5$?$?FDTDT@U@W$X("&>&F JJz, F'STJJz, f'UV#D*:; #4\:z#Z[ #4\:|#\]M&^N  ))NNl2Qx 8O8O/PQQMM<)>)@(63E3Et~~VVI  .$Xv/A/A4>>R R  0 1% %IrMc g}|jjD]6}tjj ||||}tjj |||} || |dk(rRgcS|r,tjj |t | ds|dk(r|jjdr|jt| ||jtjjtjj||vs|jt| |t|j9|S)a]Infer constraints for situations where either 'template' or 'instance' is a protocol. The 'protocol' is the one of two that is an instance of protocol type, 'subtype' is the type used to bind self during inference. Currently, we just infer constrains for every protocol member type (both ways for settable members). rBr<T)ignore_pos_arg_names)precise)rxrKrrrLrr is_metaclassrrr IS_SETTABLEget_member_flagsrZ) rJrIrsubtypeprotocolrCrmemberinsttemps rKrPz@ConstraintBuilderVisitor.infer_constraints_from_protocol_members s%mm44 RF==,,VXwR[,\D==,,VXwGD|t|Z' }}//..T0# (B(B4(B(P JJ(tT^^D E}}((DMM,J,J6S[,\\ ,T49OPQ/ R0 rMc  |jj}d}t|jtrg}|jjj}|j }|j |j }}|j$|j|j}|j}|j$|j|j}|j}|jt|||j|Vtjrs|jrg|js[t!d|jDr |j"s3|jt||t%|jdd}|j"s2t'|j(}||j sw|j(|} t| t*sJt-| } t/|| } t/|| } t1| | t%|j} |j| n|jt3|||jnl|j4}t7|j(}|j }tjrK|jr?|js3|jt||t%|jdd}|j9|j(d||j:d||j<d|}|jt3|||jd}|st7|j:Dcgc]}|t>t@fvs|c}}tC||}tE|j(|d|j:|d|j<|dtjs |jng|jF}nt7|j4j(t7|j4j(krx|j9tE|j4j(|d|j4j:|d|j4j<|d|j4jF}|&|jItK||j||r&|D]!}|xjL|jz c_&#|St|jtNr|j }tOtPjR|j }|'|jU|j(|j}n+tK|tVtE||gtXtZgddgg}|jt|j ||j|St|jt\r|j_|j|St|jt`r5t|j |jjb|jSt|jtdrRtfjhjkd |j|jd }|rt|||jSgSgScc}w) NFc3PK|]}|jj ywrE)rFis_self)rktvs rKrnz?ConstraintBuilderVisitor.visit_callable_type..ZsHBEEMMOHs$&T)r)rprqrr)rprqrrrrsrorD) source_anyr<r@)6with_unpacked_kwargswith_normalized_var_argsrWrrrmrO type_guardtype_isrrrr;r7rrris_ellipsis_argsrZr3rpr2get_tuple_fallback_from_unpackrepack_callable_args#build_constraints_for_simple_unpackr8r9rr}rqrrrr minrrsr|rArIrr'from_another_anyr6r=rrrinfer_against_overloadedr)rrrrrL)rJrrIrcactualrmtemplate_ret_typecactual_ret_typeunpack_presentunpack tuple_typetemplate_typesrunpack_constraintsr9ra cactual_pscactual_prefixparam_spec_targetkmax_prefix_lenrlrr]s rKvisit_callable_typez,ConstraintBuilderVisitor.visit_callable_type6s 002KKM dkk< 0$&Ckk668QQSG!,,.J2:2C2CWEUEU/ "".73E3E3Q$,$7$7!#*#5#5 +0K$,$4$4!#*?? JJ():4E4E4Y4Y $-E-)%0JJz*dnnFWXY7AMMW%6%66M7J  W -!,,.Jy99dkkRH!,,X-?-?M"""Hh#7(I9NQUW[P\] JJ():):HdnnU VJ  Z 000hG G  X .$X%6%6 8H8H$..Y Y  X .==,,DKK$-D(4HH Iq*cs 1[ [ cHt||}t|||jSrE)find_matching_overload_itemrr)rJ overloadedrrs rKrz1ConstraintBuilderVisitor.infer_against_overloadeds#+:x@ 4@@rMc^ |j}t|j}t|txr|j j dk(}t|ts|r!g}|c|r |j|}t|tsJt|j }t|trt||j|g}nBt|tr|j j dk(sJt|||j}t|tsJt|jD]>\}} ||k(r |jt| |j d|j@|St|tsJt#|j|j|j} d} d} |j| nt|trt|j} | K|j| }t|tsJt|j }t%|jdzt%|jkr| }t%|j| z dz }t't)|j||\}}}t)|jd|} |r| t)|j| dz } ||z} t|tr|j j dk(sJ|D]5}|jt||j d|j7n2d} d} n-t)|j} t)|j} n|St|tsJt%| t%| k(r|j*j j,rN|j*j j,r.|t|j*|j*|jzSt/t%| D].}|jt| || ||j0|jt|j*|j*|j|St|t0r|j3|j|SgS)Nri)rBrGrCrrer>)rr3r~rWrrxrr#r2r5r,rArrrwrrhrrr9tuplerzis_named_tuplerangerr6)rJrr unpack_indexis_varlength_tuplerrrrtir actual_itemstemplate_itemsa_unpack_indexa_unpack a_unpacked a_prefix_len a_suffix_lenrorprqtms rKvisit_tuple_typez)ConstraintBuilderVisitor.visit_tuple_types*8>>: vx ( UV[[-A-AEU-U  fi (,>$&C'%#+..">K%k:>>>$3K4D4D$EM!-1AB& $..Y_` '}h? - 2 2 ; ;?O OP0 vt~~V%fh777!*8>>!:Z2 ,$ #4RQ#XY Z J%fi888)L  dnn*&68L79NJJ12FI.!4V\\!B!- &||N;H%h ;;;!0!?J6<<(1,HNN0CC'5 '*6<<'8>'IA'M 7S!(..1<84(H(-V\\-<-H'I '(E&,, }~2N,OOL)1H)<%j(;#-??#;#;?O#OO#O&." # $5b*//!:Ldnn$]!"" (* )+#(#6L%*8>>%:N fi0 00< C$77++00?? 1166EE!2 1163J3JDNN"s>23AJJ).*;\!_dnn] JJ!--v/F/F  J  ())(..&A AIrMc:|j}t|trDg}|j|D],\}}}|j t |||j .|St|tr*|j|jj|SgSrE) rrWr&rrrrrr6r~r)rJrrr item_nametemplate_item_typeactual_item_types rKvisit_typeddict_typez-ConstraintBuilderVisitor.visit_typeddict_typeHs fm ,$&CDL<) rrqrpindexrWr2rr5rxr#r~)callabler star_indexrp star_type suffix_typesrs rKrrsx)))!!!##))(3J"";J/I"":.IL i ,x YK@A Y^^ , b) $bhhqk:6 66 I88ABrir)r3rrWr2rxr,rAr#ryrr9rrrrr5rrrhr|r)rr actual_argsrtemplate_unpacktemplate_prefixtemplate_suffixt_unpackr actual_unpack common_prefix common_suffix actual_prefix actual_suffixstartmiddleendrrra_tpactual_unpack_typers rKrrsx&*-8O  && &%O-(?:Q>OH C' 4M 1 _ ,s;/? ?h 3 33(--)9: y)B @\@\2]  ' ' % K(=81< O]; O]; O + 0P%_5H6 kM=E63M.=15971 $Q9567 }no6< ;DAq JJ(Ay9 : ;(J/// X]] + b( #(8(8)r=var_argkw_argrrr formal_argumentsrrcallable_corresponding_argument try_synthesizing_arg_from_varargposrrq is_positionalargument_by_positionrrsetris_staraddtry_synthesizing_arg_from_kwargargument_by_name)rrrrrr left_star left_star2 right_star right_star2 right_argleft_argright_by_positionrleft_by_positionname right_namesleft_only_nameskind right_by_name left_by_names rKr8r8Vs CJehe IJJ,,.K!7 1)--QZ[\+"9 1*..+//S\]^++-[ <<??iP    1(,, yYZ [!BB4H ,,, NN}}#dnn%%$..*;*I*I*K#88; #/ // JJ.$((*;*?*?  FA#dnn%%$..*;*I*I*K(-L4;KtL L%dnndnn= &JD$|t||~1D    % & ==dC (((# D006L+ ++ JJ.|/?/?ARART]^   JMs KKc4t}|D]}t|jtst|jts2t|jt sS|jj rj|j|jg}|D]}}t|jtr|j|vr|j|t|jt r|jj rm|j||S)zWFor each ParamSpec remove all imprecise constraints, if at least one precise available.) rrWrHr rCrrsrrBr|)cs have_preciserlnew_css rKrrs5L )!++];  qxx /!((J/HH00   QZZ ()F !++];qzzQ]?] MM! !((J/qxx7S7S MM!   MrM)rrrpzSequence[Type | None]rqz list[ArgKind]rrzSequence[str | None] | Nonerzlist[list[int]]rr<r[rr) rr$rr$rrZrr_r[r)rr"r[zTypeGuard[TypeType | UnionType])rzTypeType | UnionTyper[r")rr$rr$rrZr[list[Constraint] | None)rz!Sequence[list[Constraint] | None]r[zlist[list[Constraint]])rrAr[rA)rr1rr$rrZr[r)rzlist[list[Constraint] | None]rr_r[r)rr r[r )rrrrr[r_)rrArrAr[r_)r rr[ list[Type])r r$r[r_)rGrZr[rZ)rrrrr[r)rrrrr[zlist[CallableType])rr2r[r)rrrrr[r )rrr rr rrZr[r)rr$rr$rrZr[r)r#NormalizedCallableType | ParametersrrrrZr[r)r rr[r)mrc __future__rcollections.abcrrtypingrrrtyping_extensionsr mypy.subtypesr mypy.typeops mypy.argmapr mypy.erasetyper mypy.maptyper mypy.nodesr rrrrrrr mypy.typesrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9mypy.types_utilsr:mypy.typestater; mypy.inferr<r=rdr?rArrrrrrrrrrrrrrrrrr r_rrrrZrrrrrrr8rrerMrKrs!".--'')2   &&&&&&&&&&N/%/ E e"a"aJf f$ff+ f & f " ffTGL)H)H )H-0)H?C)H)HXiUiU iU-0iU?CiUiUX ]:: :-0::2  T5p0C K(-)D/] {4 +;<] @3&&20 (24]],6]CF]]@ AF1F /FF FRrM