ML idZddlmZddlZddlmZddlmZddlm Z ddl m Z ddl m Z dd lmZdd lmZdd lmZmZdd lmZmZmZmZmZed gdZej8dkrej;dddZGddeZd dZ GddeZ!d dZ"GddeZ#GddeZ$Gdde%e&e fZ'y)!zSemantic analyzer test cases) annotationsN)build)PYTHON3_VERSION) CompileError) BuildSource)TypeInfo)Options) test_temp_dir)DataDrivenTestCase DataSuite)assert_string_arrays_equalfind_test_filesnormalize_error_messages parse_optionstestfile_pyversionzsemanal-*.test)semanal-errors-python310.testsemanal-errors.testsemanal-typeinfo.testsemanal-symtable.test)patternexclude zsemanal-python310.testc`t||d}d|_d|_d|_t|_|S)NT)ruse_builtins_fixturessemantic_analysis_onlyshow_tracebackrpython_version) program_texttestcaseoptionss [/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/test/testsemanal.pyget_semanal_optionsr%)s5L(A6G$(G!%)G"!G,G NceZdZeZdZddZy) SemAnalSuiteTct|yN) test_semanalselfr"s r$run_casezSemAnalSuite.run_case6s Xr&Nr"r returnNone)__name__ __module__ __qualname__ semanal_filesfiles native_sepr.r&r$r(r(2s EJr&r(c  dj|j}t||}t|j|_t j tdd|g|t}|j}|r t|t|jjD]A}||jvs||j|j|j!dz }C |j$r t'|}t)|j*|d|jd|j,dy#t$r}|j"}Yd}~dd}~wwxYw)zPerform a semantic analysis test case. The testcase argument contains a description of the test case (inputs and output).  mainNsourcesr# alt_lib_path"Invalid semantic analyzer output (, line ))joininputr%rfiler rrr errorsrsortedr6keys test_modulesstr_with_optionssplitmessagesnormalize_outputrr outputline)r"srcr#resultamodulees r$r+r+:s)ii'%c84!3HMM!B s34gTa  MM q/ !V\\..01 PF...V\\&)::7CII$OO P   $Q ' ,X]]O78==/QRS  JJsB6D692D66 E? EEcZeZdZdgZej dk\rejdddZy)SemAnalErrorSuiterrrct|yr*)test_semanal_errorr,s r$r.zSemAnalErrorSuite.run_casecs 8$r&Nr/) r2r3r4r6sys version_infor5appendr.r8r&r$rUrU^s, " #E 7"<=%r&rUc  dj|j}tjtdd|gt ||t }|j }|jr t|}t|j|d|jd|jdy#t$r}|j}Yd}~dd}~wwxYw)Perform a test case.r:r;Nr<zInvalid compiler output (r@rA)rBrCrrr%r rErrKrLrr rMrDrN)r"rOresrQrSs r$rWrWgs ii'kk s34'X6&  JJ   $Q '7 ghmm_\]^  JJsAB%% C. B??CceZdZdZdgZddZy)SemAnalSymtableSuiteTrc  dj|j}tjtdd|gt ||t }|j }|r t|t|jjD]o}||jvs|j|dt|j|jjdD]}|jd|zq t#|j$|d|j&d|j(d y#t$r}|j }Yd}~Md}~wwxYw) r\r:r;Nr<: r?r@rA)rBrCrrr%r rErrFr6rGrHrZstrnamesrJrKr rMrDrN)r-r"rOrPrQrRsrSs r$r.zSemAnalSymtableSuite.run_cases$ ))HNN+C[[$VT378+C:*F  A"1o% !2!2!45 +X222HHxq\* f!5!;!;<BB4H+*+ + # OO 0wx}}oUV W   A sBD1A D11 E: E  ENr/r2r3r4required_out_sectionr6r.r8r&r$r_r_s $ %E r&r_ceZdZdZdgZddZy)SemAnalTypeInfoSuiteTrc & dj|j}tjtdd|gt ||t }|j }|r t|t}|jjD]\}}||jvs|jjD]c t jt s j"sJt% fd|jDsK j| j"<et'|j)d}t-|j.|d|j0d|j2dy#t$r}|j*}Yd}~Md}~wwxYw) r\r:r;Nr<c3ZK|]"}jj|dz$yw).N)fullname startswith).0mns r$ z0SemAnalTypeInfoSuite.run_case..s$"aa1::#8#8S#A"as(+r?r@rA)rBrCrrr%r rEr TypeInfoMapr6itemsrHrdvalues isinstancenoderrmanyrcrJrKr rMrDrN) r-r"rOrPrQ typeinfosrRrDrSrqs @r$r.zSemAnalTypeInfoSuite.run_casesO ))HNN+C[[$VT378+C:*F  A"1o%$ I & 2 2 4 ? X222!ZZ..0?%affh7#$::-:""a8K`K`"aa89 !** 5 ? ?I$$T*A # OO 0wx}}oUV W   A s*BE1"7E1,E17E11 F: F  FNr/rfr8r&r$riris $ %E  r&riceZdZddZy)rscdg}t|jD]E\}}djt|j d}|j d|d|G|dxxdz cc<dj|S)Nz TypeInfoMap(z r:rbz : rA)rFrtrBrcrJrZ)r-rQxytis r$__str__zTypeInfoMap.__str__sz&'4::<( &DAq##CFLL$67B HHr!Ct_ % & " yy|r&N)r0rc)r2r3r4rr8r&r$rsrssr&rs)r!rcr"r r0r r/)(__doc__ __future__rrXmypyr mypy.defaultsr mypy.errorsrmypy.modulefinderr mypy.nodesr mypy.optionsr mypy.test.configr mypy.test.datar r mypy.test.helpersr rrrrr5rYremover%r(r+rUrWr_ridictrcrsr8r&r$rs"" )$) *8   g129H% %2 9 B$ 9$ N$sH}%r&