ML iA:UdZddlmZddlZddlmZddlmZddlm Z ddl m Z ddl m Z dd lmZdd lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm 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.dd l/m0Z0dd l1m2Z2dd l3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>ddl?m@Z@dZAdeBd<dZCdeBd<dZDdeBd<dZEdeBd<dZFdeBd<gdZGdeBd<Gdde0ZH d) d*dZId+dZJd,dZKGd d!e;eLZMd,d"ZNGd#d$eMZOd,d%ZPd,d&ZQd-d'ZRd.d(ZSy)/z?Utilities for calculating and reporting statistics about types.) annotationsN)Counter)Iterator)contextmanager)Final)nodes)map_formals_to_actuals)AssignmentExprAssignmentStmt BreakStmt BytesExprCallExprClassDefComparisonExpr ComplexExpr ContinueStmt EllipsisExpr ExpressionExpressionStmt FloatExprFuncDefImport ImportAll ImportFrom IndexExprIntExpr MemberExprMypyFileNameExprNodeOpExprPassStmtRefExprStrExprTypeApplication UnaryExpr YieldFromExpr)TraverserVisitor)collect_all_inner_types) AnyType CallableType FunctionLikeInstance TupleTypeType TypeOfAny TypeQuery TypeVarTypeget_proper_typeget_proper_types)correct_relative_importr TYPE_EMPTYTYPE_UNANALYZED TYPE_PRECISETYPE_IMPRECISETYPE_ANY)empty unanalyzedprecise impreciseanyprecision_namesceZdZ d' d(dZd)fd Zd*dZd+dZd,dZd-dZd.fd Z e d/dZ d0d Z d1d Z d2fd Zd3fd Zd4fd Zd5dZd6dZd7dZd8fd Zd9dZd:dZd:dZd;dZd<fd Zd=fd Zd>fd Zd?fd Zd@fd ZdAfd ZdBdZdCdZ dDdZ!dEdZ"dFd Z#dGd!Z$dHd"Z%dId#Z&dJd$Z'dKd%Z(dLd&Z)xZ*S)MStatisticsVisitorct||_||_||_||_||_||_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_i|_t%|_i|_dg|_g|_t/j0|y)NrT)inferredfilenamemodulestypemap all_nodesvisit_untyped_defsnum_precise_exprsnum_imprecise_exprs num_any_exprsnum_simple_typesnum_generic_typesnum_tuple_typesnum_function_typesnum_typevar_typesnum_complex_types num_any_typeslineline_maprtype_of_any_counter any_line_mapchecked_scopesoutputr(__init__)selfrIrJrKrLrMrNs P/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/stats.pyr_zStatisticsVisitor.__init__Hs!     ""4!"#$  !!" "#!"!" (* 18 68 $f!# !!$'cT||_|j|_t||yN) cur_mod_nodefullname cur_mod_idsupervisit_mypy_filer`o __class__s rariz!StatisticsVisitor.visit_mypy_fileus#** "rbc&|j|yrdprocess_importr`imps ravisit_import_fromz#StatisticsVisitor.visit_import_fromz C rbc&|j|yrdrnrps ravisit_import_allz"StatisticsVisitor.visit_import_all}rsrbct|j|j|j|jj \}}|r||j vrt}nt}|j|j|yrd) r5rgrelativeidreis_package_init_filerKr:r> record_linerY)r`rq import_idokkinds raroz StatisticsVisitor.process_importsb/ OOS\\36643D3D3Y3Y3[ 2 )t||+DD 4(rbctfd|jDrt}nt}j |j |y)Nc3@K|]\}}|jvywrd)rK).0rx_r`s ra z1StatisticsVisitor.visit_import..s7eb!rT\\!7s)allidsr:r>rzrY)r`rqr}s` ra visit_importzStatisticsVisitor.visit_imports3 7sww7 7DD 4(rbc|j|5|j|_t|jdkDr|j|gt|jzk7r|||jvr9t dj |j |j dddy|jD]%}t|tsJ|j|'n|jrt|jtsJ|j}|j}|jr#|jddk(r|js|dd}|D]}|j||j|jn,|j r |j#|jt$|j'r |j(rt*|%|dddy#1swYyxYw)Nr7z3{}:{}: ERROR: cycle in function expansion; skippingrr`) enter_scoperYlenexpandedprintformatrJ isinstancervisit_func_deftyper+ arg_types arg_namesrIret_typerMrzr> is_dynamicrNrh)r`rkdefnsigrargrls rarz StatisticsVisitor.visit_func_defs   a  .DI1::"qzzaS3qzz?5J'J ?MTT MM166  . .JJ.D%dG444''-.66%affl;;;&&C # I}}q)9V)CDMM$-abM (' #'IIcll+^^$$TYY9||~)@)@G*1-5 . . .sBG"*D/G""G+c#K|jj|jduxr|jdd|jjywNrH)r]appendrpopr`rks rarzStatisticsVisitor.enter_scopesJ ""166#5#Q$:M:Mb:QR  !sAAc |jdSr)r])r`s rais_checked_scopez"StatisticsVisitor.is_checked_scopes""2&&rbc|j|jt|jD]}|j ||j j |yrd)rzrYr: decoratorsacceptdefs)r`rkds ravisit_class_defz!StatisticsVisitor.visit_class_defsF .  A HHTN   drbc|j|_|jD]}|j|t||yrd)rYtypesrrhvisit_type_application)r`rktrls rarz(StatisticsVisitor.visit_type_applications9FF  A IIaL  &q)rbc|j|_t|jtjr/t|jj tj ry|jr7|j|j|jj|y|jr|js|jD]}t|tjr |j}n|g}|D]W}t|ts|js!|j .|j|j j#|Yt$|M|yrd)rYrrvaluerranalyzed TypeVarExprrrrIrMlvalues TupleExpritemsr#is_inferred_defrLgetrhvisit_assignment_stmt)r`rklvalueritemrls rarz'StatisticsVisitor.visit_assignment_stmtsFF ahh /J HH  u005   66 IIaff  HHOOD !  ]]4>>)) >feoo6"LLE#HE!>D!$0T5I5I<<3 IIdll&6&6t&<=>  > %a(rbct|jttfr!|j |j t yt|!|yrd) rexprr$r rzrYr6rhvisit_expression_stmtrjs rarz'StatisticsVisitor.visit_expression_stmts7 affw 2 3   QVVZ 0 G )! ,rbc&|j|yrdrecord_precise_if_checked_scopers ravisit_pass_stmtz!StatisticsVisitor.visit_pass_stmt ,,Q/rbc&|j|yrdrrs ravisit_break_stmtz"StatisticsVisitor.visit_break_stmtrrbc&|j|yrdrrs ravisit_continue_stmtz%StatisticsVisitor.visit_continue_stmtrrbc|jdvr|j|y|j|t||y)N)z builtins.Nonez builtins.Truezbuiltins.Falsezbuiltins.Ellipsis)rfr process_noderhvisit_name_exprrjs rarz!StatisticsVisitor.visit_name_exprs9 ::b b  0 0 3   a G #A &rbcT|jr|jj|yyrd)rrrs ravisit_yield_from_exprz'StatisticsVisitor.visit_yield_from_exprs 66 FFMM$  rbc|j||jr|jj|y|jj||jD]}|j||j |yrd)rrrcalleeargsrecord_call_target_precision)r`rkas ravisit_call_exprz!StatisticsVisitor.visit_call_exprse ! :: JJ  d # HHOOD !VV    - -a 0rbc|jr|j|jvryt|j|j}t|tr|j ||yy)z9Record precision of formal argument types used in a call.N)rLrr3rr+ record_callable_target_precision)r`rk callee_types rarz.StatisticsVisitor.record_call_target_precisionsO||qxxt||; %dll188&<= k< 0  1 1![ A rbc|jsJ|jtjj|j|jfd}|D]~}|D]w}t |j |}t |tr!|jjtLt|sX|jjtyy)aJRecord imprecision caused by callee argument types. This only considers arguments passed in a call expression. Arguments with default values that aren't provided in a call arguably don't contribute to typing imprecision at the *call site* (but they contribute at the function definition). c(j|Srd)r)nrkrLs razDStatisticsVisitor.record_callable_target_precision.. sgaffQi(rbN) rLr arg_kindsrr3rrr*rzrYr> is_impreciser<)r`rkractual_to_formalformalsrformalrLs ` @rarz2StatisticsVisitor.record_callable_target_precisions|||,,1 KK KK       (  ( =G =()9)9!)<=fg.$$QVVX6!&)$$QVV^<  = =rbcF|j|t| |yrd)rrhvisit_member_exprrjs rarz#StatisticsVisitor.visit_member_expr*s ! !!$rbcF|j|t| |yrd)rrh visit_op_exprrjs rarzStatisticsVisitor.visit_op_expr.s ! a rbcF|j|t| |yrd)rrhvisit_comparison_exprrjs rarz'StatisticsVisitor.visit_comparison_expr2 ! %a(rbcF|j|t| |yrd)rrhvisit_index_exprrjs rarz"StatisticsVisitor.visit_index_expr6 !  #rbcF|j|t| |yrd)rrhvisit_assignment_exprrjs rarz'StatisticsVisitor.visit_assignment_expr:rrbcF|j|t| |yrd)rrhvisit_unary_exprrjs rarz"StatisticsVisitor.visit_unary_expr>rrbc&|j|yrdrrs ravisit_str_exprz StatisticsVisitor.visit_str_exprBrrbc&|j|yrdrrs ravisit_bytes_exprz"StatisticsVisitor.visit_bytes_exprErrbc&|j|yrdrrs ravisit_int_exprz StatisticsVisitor.visit_int_exprHrrbc&|j|yrdrrs ravisit_float_exprz"StatisticsVisitor.visit_float_exprKrrbc&|j|yrdrrs ravisit_complex_exprz$StatisticsVisitor.visit_complex_exprNrrbc&|j|yrdrrs ravisit_ellipsisz StatisticsVisitor.visit_ellipsisQrrbc|jrI|j<|j|_|j|jj |yyyrd)rMrLrYrr)r`nodes rarzStatisticsVisitor.process_nodeVsC >>||' II  $,,**401( rbct|tr!|jr||jvrt}n|j rt }nt }|j|j|yrd) rrrLr8rr:r>rzrY)r`rr}s rarz1StatisticsVisitor.record_precise_if_checked_scope\sL dJ 'DLLT=U"D  " " $DD D)rbct|}|s!|j|jtyt |t r,t |r!|j|jtyt |t rT|jd|jz|xjdz c_ |j|jtn|js t|s|jr_t|rT|jd|jz|xjdz c_|j|jtn5|xj dz c_|j|jtt#t%||gzD]}t |t rt'|}t |r+|j(|j*xxdz cc<|xj,dz c_|j|j.vr)|j.|jj1||g|j.|j<t |t2rm|j4rJt7d|j4Dr|xj8dz c_ |xj:dz c_#|xj<dz c_:t |t>r|xj@dz c_ at |tBrJt7d|jDDr|xj8dz c_|xjFdz c_#t |tHs|xjJdz c_%y)Nz !! Any type around line %dr7z" !! Imprecise type around line %dc32K|]}t|ywrd is_complex)rrs rarz)StatisticsVisitor.type..s?s:c??c32K|]}t|ywrdr)rrs rarz)StatisticsVisitor.type..s>Dz$'>r)&r3rzrYr8rr*is_special_form_anyr:logrQr>rMr is_imprecise2rPr<rOr4r)get_original_anyr[ type_of_anyrXr\rr-rrCrWrSrRr,rUr.rrTr2rV)r`rtyps rarzStatisticsVisitor.typees A    TYY 8  a !&9!&<   TYY 5  a ! HH3dii? @   ! #    TYY 1..\!_$..][\M] HH9DIIE F  $ $ ) $   TYY 7  " "a ' "   TYY 5#$;A$>?1#E ,C#w'&s+&s+((9Q>9""a'"99 1 11%%dii077<475D%%dii0C*88?chh??..!3...!3.))Q.)C.''1,'C+>CII>>**a/*((A-(C-&&!+&7 ,rbc:|jj|yrd)r^r)r`strings rarzStatisticsVisitor.logs 6"rbcrt||jj|t|j|<yrd)maxrZrr6)r`rY precisions rarzzStatisticsVisitor.record_lines(!)T]]->->tZ-PQ drb)NFT)rIboolrJstrrKdict[str, MypyFile]rLdict[Expression, Type] | NonerMrrNrreturnNone)rkrrr )rqrrr )rqrrr )rqzImportFrom | ImportAllrr )rqrrr )rkrrr )rkrrzIterator[None])rr)rkrrr )rkr%rr )rkr rr )rkrrr )rkr"rr )rkr rr )rkrrr )rkrrr )rkr'rr )rkrrr )rkrrr+rr )rkrrr )rkr!rr )rkrrr )rkrrr )rkr rr )rkr&rr )rkr$rr )rkr rr )rkrrr )rkrrr )rkrrr )rkrrr )rrrr )rr rr )rz Type | Nonerr )rrrr )rYintrr rr )+__name__ __module__ __qualname__r_rirrrurorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrz __classcell__rls@rarFrFGs" 26#'+(+(+(% +( / +(  +(!+( +(Z# !!)).:"" '* )4-000' 1 =2%!)$)$000000 2 *6,p#RrbrFct|ryt|t||j||}|j ||j D] }t|tdtd|j td|jtd|jtdtd|jtd|jtd |jtd |jtd |jtd |jtd|jy) N)rJrKrLz ** precision **z precise z imprecisez any z ** kinds **z simple z generic z function z tuple z TypeVar z complex )is_special_modulerrFrfrr^rOrPrQrRrSrUrTrVrWrX)treepathrKrIrLvisitorrYs radump_type_statsrs $K4=='[bcGKK d   -223 -445 -../ / -112 -223 -334 -001 -223 -223 -../rbcDtjj|dvS)N)zabc.pyiz typing.pyiz builtins.pyi)osrbasename)rs rarrs 77  D !%N NNrbc4|jtSrd)r HasAnyQueryrs rarrs 88KM ""rbc(eZdZdfd ZddZxZS)rc,t|tyrd)rhr_rC)r`rls rar_zHasAnyQuery.__init__s rbct| Srd)rr`rs ra visit_anyzHasAnyQuery.visit_anys&q)))rb)rr rr*rr)r r r r_r rrs@rarrs *rbrc4|jtSrd)r HasAnyQuery2rs rarrs 88LN ##rbceZdZddZy)r#cy)NFrs ravisit_callable_typez HasAnyQuery2.visit_callable_typesrbN)rr+rr)r r r r'r&rbrar#r#srbr#cft|}t|txrt|jSrd)r3rr-rrrs ra is_genericr)s&A a " 3tAFF|3rbcht|}t|xst|ttt fSrd)r3r)rr,r.r2rs rarrs)A a= QJq<K*PQQrbcNt|jtjk(Srd)rrr0 special_formrs rarrs A  * *i.D.D DDrbc|jtjk(rC|jsJ|jjtjk7sJ|j}|Srd)rr0from_another_any source_anyrs rarrsL}} 222|||||''9+E+EEEE LL Hrb)FN) rrrrrKrrIrrLrrr )rrrr)rr/rrr!)rr*rr*)T__doc__ __future__rr collectionsrcollections.abcr contextlibrtypingrmypyr mypy.argmapr mypy.nodesr r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'mypy.traverserr( mypy.typeanalr) mypy.typesr*r+r,r-r.r/r0r1r2r3r4 mypy.utilr5r6__annotations__r8r:r<r>rDrFrrrrrrr#r)rrrr&rbrar>s?E" $%.@,1    . E e%OOZR(ZRB -1 0 0 0!0 0 + 0  08O#*)D/*$;4 R E rb