L i1ddlmZddlZddlZddlmZddlZddlZddlZddl Z ddl m Z ddl m Z ddlmZd d l mZe j"j$Gd d e Zy) ) annotationsN)Path)TestBase)config)eq_)utilceZdZdZej ddZej ddZdZej dZ ej d Z e d Z d Z dd Zy )MypyTest)no_sqlalchemy2_stubsfunction)scopec#@K|jEd{y7wN _cachedirselfs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/mypy.pyper_func_cachedirzMypyTest.per_func_cachedir>>### classc#@K|jEd{y7wrrrs rcachedirzMypyTest.cachedir!rrc#rKd}tj5}tt|dz d5}|j d|ddddtt|dz d5}|j d|dddd|dddy#1swYLxYw#1swY"xYw#1swYyxYww) Nsqla_mypy_config.cfgwz [mypy] plugins = sqlalchemy.ext.mypy.plugin show_error_codes = True z disable_error_code = no-untyped-call [mypy-sqlalchemy.*] ignore_errors = True plain_mypy_config.cfgz^ [mypy] show_error_codes = True z disable_error_code = var-annotated,no-untyped-call [mypy-sqlalchemy.*] ignore_errors = True )tempfileTemporaryDirectoryopenrwrite)r mypy_pathr config_files rrzMypyTest._cachedir%s  ( ( * hX!77 !!K     X!88# !!K   N?      #  sKB7B+B B+(B> B+ B7B B+B( $B++B40B7c$ddlmdfd }|S)Nr)apic | }ddd|dtjj||rdndg}tjj|}tjj||}||k7rt j |||j |tjjdd j|\}}}|||fS)Nz--strictz--raise-exceptionsz --cache-dirz --config-filer r"MYPY_FORCE_COLOR) ospathjoinbasenameshutilcopyfileappendenvironpoprun) r. use_plugin use_cachedirargsfilename test_programstdoutstderrexitcoder*rs rr6z!MypyTest.mypy_runner..runNs#' $  &/4  D*ww''-H77<< h?L|#l3 KK % JJNN-t 4'*wwt} $FFH68+ +)FN)mypyr*)rrr6r*s ` @r mypy_runnerzMypyTest.mypy_runnerJs# ,J r?cdfd }|S)Ncnj|}||\}}}j|||||y)N)r7)_collect_messages _check_output)r.r7expected_messagesr<r=r>rArs rr6z)MypyTest.mypy_typecheck_file..runwsA $ 6 6t < '24J'O $FFH   ' r?)F)rrAr6s`` rmypy_typecheck_filezMypyTest.mypy_typecheck_fileus  r?c(tjj|r|}n^tjdj }tjj tjj||}tt|jd}tjjD]Q}|stjj|s&|jt||z jdS|S)Nrz**/*.py)r-r.isabsinspectstackr:r/dirnamelistrglobroptionsmypy_extra_test_pathsisdirextend)rMr. caller_pathfiles extra_dirs rfile_combinationszMypyTest.file_combinationss 77== !D!--/!,55K77<< =\s?(\d+\.\d+)r.zRequires python >= %srr z# noqa[:]? ?.*rzRow\[([^\]]+)\]cPd|jdd|jddS)Nztuple[rz!, fallback=sqlalchemy.engine.row.r]groupms rz,MypyTest._collect_messages..s,qwwqzl;445GGAJ.sqwwqzl'&Br?z([\[\]])c*d|jdS)N\rr_ras rrcz,MypyTest._collect_messages..sQqwwqzl*;r?z([\w_]+)c,d|jddS)Nz (?:.*\.)?r\*?r_ras rrcz,MypyTest._collect_messages..Yqwwqzl#*Fr?Listz builtins.listz\b(int|str|float|bool)\bc,d|jddS)Nz builtins.rrhr_ras rrcz,MypyTest._collect_messages..rir?TzRevealed type is ""z\b(List|Tuple|Dict|Set)\bz\b(List|Tuple|Dict|Set|Type)\bc@|jdjS)Nr)r`lowerras rrcz,MypyTest._collect_messages..saggaj&6&6&8r?zOptional\[(.*?)\]c*|jddS)Nrz | Noner_ras rrcz,MypyTest._collect_messages..s G&<r?c32K|]\}}}|||fywrrG).0is_mypyis_re expected_msgnums r z-MypyTest._collect_messages..s--#!( gul;-s)sqlalchemy.ext.mypy.utilrYrecompiler% enumeratematchr` partitionsys version_infointr skip_testboolsubr py39py310r3striprS)rr.rYrF expected_re py_ver_refile_current_assert_messageslinerbmajor_minorrrrsis_rowis_typertrus @rrDzMypyTest._collect_messagess4jj ? JJGH $Zm 45&( #&ua0k 4 TOOD)&'ggaj&:&:3&?OE1e''3u:s5z*BB((3qwwqzB%%d+"1771:.G ,E!!''!*-F"1771:.G#%66*;R#LL')vv.B( ( (*vv/B(( $ ,.66 + ; ,,L,.66 + F ,,L ,.66 &,L,.66 ; F ,,L+/.%);L>'K 499 (4A$+!=%F8(,:( 4::(*vv0<(( ,22 %););)=>-%,,- 5 -24+A.Wk 4m 4^! _m 4^! sI$K%"KKc g}tjj|}|r%g}|jd} | r| j d} t j d| r|jd| fnt j d| r@| r| j d} t j d| s| jd| nS| r=nOt j d| t jrn)t j d| r|jd | f| r|D]\} } }}|jd d }| sd nd }t|D]T\}\}}|r't j d|d| d|d|| |s0n7|d| d|d|||jd d vsTn|j|||=|rNdj|}td|d|r&djd|D}td|dJd|r?tt|dtdjd|DJdy|dk7rt||dt|d|y)N rz.+\.py:\d+: error: .*errorz/.+\.py:\d+: note: +(?:Possible overload|def ).*z.+\.py:\d+: note: +def .*z*.+\.py:\d+: note: .*(?:perhaps|suggestion)z.+\.py:\d+: note: .*note'rlz[SQLAlchemy Mypy plugin] rz.*z\:z\: :z: z"Couldn't locate expected messages:)sepc3&K|] \}}| ywrrGrqrmsgs rrvz)MypyTest._check_output..?s%?fac%?zRemaining messages:z'expected messages not found, see stdoutz& messages from mypy were not consumed:c3&K|] \}}| ywrrGrs rrvz)MypyTest._check_output..Es939rz&errors and/or notes remain, see stdout)r)r-r.r0splitr5rxr{r3insertIreplacerzr/printlenr )rr.rFr<r=r> not_locatedr:output raw_lineseolrurrrsrprefixidxtyperrmsgmissingextras rrEzMypyTest._check_outputsx 77##D)  F T*IMM!$884a8MM7A,/XXF$&]]1-!xx(DbI%,,Q3! $ XXA1bddXX5q9MM61+.#&-> (WeSkk#s+>#s34 &&s+3K% ())K0:GN II%?%??E/DAGGGuV %KLMdii9&99:FFFu 1}ff$/ ! (r?N)r<str)__name__ __module__ __qualname__ __requires__rfixturerrrrArH staticmethodrWrDrErGr?rr r s,LV^^*%$&$V^^'"$#$#JV^^((T ^^  w!rE)/2E)r?r ) __future__rrKr-pathlibrrxr1r}r#baserrr assertionsr r add_to_markerr@r rGr?rrsU#  r)xr)r)r?