ML i8!"dZddlmZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZmZmZmZmZmZmZmZdd lmZdd lmZdd lmZdd lmZdd lmZddl m!Z!m"Z"ddl#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)ddl*m+Z+m,Z,dZ-dZ.dZ/dZ0Gdde"Z1y)zETest cases for AST merge (used for fine-grained incremental checking)) annotationsN)build) BuildResult) CompileError) BuildSource)UNBOUND_IMPORTED ExpressionMypyFile SymbolTableSymbolTableNodeTypeInfo TypeVarExprVar)Options)get_subexpressions)FineGrainedBuildManager)StrConv) test_temp_dir)DataDrivenTestCase DataSuite)assert_string_arrays_equalnormalize_error_messages parse_options)TypeTypeStrVisitor)IdMapper short_typeSYMTABLEz TYPEINFOTYPESASTceZdZdgZdfd ZddZddZ ddZ ddZddZ ddZ dd Z dd Z dd Z dd Zdd Z ddZddZxZS) ASTMergeSuitez merge.testct|tdt|_|jj J|jj |_t |j t|_y)NT)show_idsoptions)r%)supersetuprrstr_conv id_mapperr type_str_conv)self __class__s Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/test/testmerge.pyr'zASTMergeSuite.setup*sX  wyA }}&&222#'==#:#:+DNNGINc |j}|jdrt}n6|jdrt}n|jdrt}nt }dj |j}|j||}|Jd|jjjt|}g}|jr|j|jtj j t"d}t%j&tj j t"d||j|j)|||j*t-|jj.d} |j1d |j3|d|\} } |j|j)|||j*| D]} t5| t6r| | vrJ|j8r t;|}t=|j>|d |j@d |jBd y) N _symtable _typeinfo_types z3cases where CompileError occurred should not be runz target.pyztarget.py.nexttargetz==>zInvalid output (z, line ))"nameendswithrTYPEINFOrr joininputrmanagerfscacheflushrerrorsextendospathrshutilcopydump test_modulesrmodulesappendbuild_increment isinstancernormalize_outputrroutputfileline) r+testcaser6kindmain_srcresultfine_grained_managera target_path old_subexprnew_file new_typesexprs r-run_casezASTMergeSuite.run_case1s}} == %D ]]; 'D ]]8 $DD99X^^,Hh/!X#XX!$$&6v>  == HHV]] #ggll=+>  BGGLL0@A;O /x7L7LMN()?)?)IJ  "223GS^_) /x7L7LMN )D$ ,y( ((  )  $ $(+A" OOQ"28==/WX Y r.ct||d}d|_d|_d|_d|_d|_d|_tjjtd}||j_ ||j_ t|dd5}|j|ddd t!j t#|ddg|t}|S#1swY4xYw#t$$rYywxYw) N)incremental_stepTmainwutf8)encoding)sourcesr% alt_lib_path)r incrementalfine_grained_incrementaluse_builtins_fixtures export_typesshow_tracebackallow_empty_bodiesr@rAr9rr(r%r*openwriterrr)r+sourcerNr% main_pathfrQs r-rzASTMergeSuite.buildas1E"+/((,%#!%%)"GGLL7 ' %," )S6 2 a GGFO  [[$Yd;<*F     s C((CC C*)C*c|j|j||fgg|jj|}|j|j }||fSN) flush_cacheupdater;rFgraphtype_map)r+r; module_idrAmodulerss r-rHzASTMergeSuite.build_incrementzs\ D)*B/((3==+446xr.cl|jjjDcic] \}}||vs ||}}}|tk(r|j |S|t k(r|j |S|tk(r|j|S|tk(r|j||SJd|cc}}w)Nz Invalid kind ) r;rFitemsr dump_astsr8dump_typeinfosrdump_symbol_tablesr dump_types)r+r;rOrEr6rLrFs r-rDzASTMergeSuite.dumps*1)@)@)F)F)H %4DT`L`D$J   3;>>'* * X &&w/ / X **73 3 U]??7G4 4, dV,,u s B0B0cg}t|D]?}||j|j}|j|j A|Sro)sortedacceptr(r? splitlines)r+rFrSmss r-rxzASTMergeSuite.dump_astssK  %A !!$--0A HHQ\\^ $ %r.cg}t|D]0}|j|j|||j2|Sro)r}r?dump_symbol_tablenamesr+rFrSids r-rzz ASTMergeSuite.dump_symbol_tablessD / DB HHT++B 0A0AB C Dr.c |dg}t|D]=}|jdr|jd|d|j||?|S)N:__z : )r} startswithrGformat_symbol_table_node)r+rtsymtablerSr6s r-rzASTMergeSuite.dump_symbol_tablese{!_ 8$ UDt$ HHtD6D$A$A(4.$Q#RS T Ur.c|j|jtk(ryytt |jj d|j j|jd}t|jtri|jjrS|jjjds.|j|jj}|d|dz }|S)NrNone<>ztyping.(r5) noderOrstrtype__name__r)rrIrfullnamer format_type)r+rrtypestrs r-rz&ASTMergeSuite.format_symbol_table_nodes 99 yy,,)4 ?++,-Qt~~/@/@/K.LA N tyy# & II&&11)<&&tyy~~6G 1WIQ Ar.cg}t|D]/}|j|j||j1|Sro)r}r?dump_typeinfos_recursiverrs r-ryzASTMergeSuite.dump_typeinfossB / GB HHT2272;3D3DE F Gr.cDg}t|jdD]~\}}t|jts!|j |j |j|j |j|jj|S)Nc |dS)Nr)xs r-z8ASTMergeSuite.dump_typeinfos_recursive..s adr.key) r}rwrIrr r? dump_typeinforr)r+rrSr6rs r-rz&ASTMergeSuite.dump_typeinfos_recursivesx  NC IJD$$))X.++DII6766tyyGH Ir.c|jdk(rgS|j|j|j}|j S)Nz enum.Enum)r(r*)rrDr(r*r)r+infors r-rzASTMergeSuite.dump_typeinfos; ==K 'I IIt}}D.s?"1 **4==+@+@ACQR DTT#r.rrr) r}r; all_typesrrtreerrGrrMr) r+rFr;rSrtrrrrXtyprss ` @r-r{zASTMergeSuite.dump_typess   YI11I==+00D# ##2DT2J*.dV_N_io%H3yk*+" YD#4.CHH 4 01499+R@P@PQT@U?VWX Y Y(s  CCc8|j|jSro)r~r*)r+rs r-rzASTMergeSuite.format_typeszz$,,--r.)returnr)rNrrr)rkrrNrrzBuildResult | None)r;rrtrrArrz'tuple[MypyFile, dict[Expression, Type]])r;rrOrrE list[str]rr)rFdict[str, MypyFile]rr)rtrrr rr)rr rr)rr rr)rr rr)rFrr;rrr)rrrr)r __module__ __qualname__filesr'rYrrHrDrxrzrrryrrr{r __classcell__)r,s@r-r"r"'s NEO. `2 . ;> FI 0 -.-69-IR- -    *5L 8.r.r")2__doc__ __future__rr@rBmypyr mypy.buildr mypy.errorsrmypy.modulefinderr mypy.nodesrr r r r r rr mypy.optionsrmypy.server.subexprrmypy.server.updater mypy.strconvrmypy.test.configrmypy.test.datarrmypy.test.helpersrrr mypy.typesrr mypy.utilrrrr8rr r"rr.r-rspK" "$)   !26 *8aa+*   B.IB.r.