ML i}5ddlmZddlZddlZddlZddlZddlZddlmZm Z m Z ddl m Z ddl mZddlmZGdde Zdd Zdd Zdd Zdd Z dd ZGddej.Zy)) annotationsN)InvalidSourceList SourceFindercreate_source_list)FileSystemCache) BuildSource)Optionsc4eZdZddZddZddZd dZddZy) FakeFSCachecr|Dchc]!}tjj|#c}|_ycc}wN)ospathabspathfiles)selfrfs a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/test/test_find_sources.py__init__zFakeFSCache.__init__s$278Qbggooa(8 8s&4c||jvSr )rrrs risfilezFakeFSCache.isfilestzz!!cjtjstjz tfd|jDS)Nc3@K|]}|jywr ) startswith).0rrs r z$FakeFSCache.isdir..s:!1<<%:s)endswithrsepanyrrs `risdirzFakeFSCache.isdirs5}}RVV$ BFFND:tzz:::rc 2|jtjs|tjz }t|jDchc]B}|j |s|t |djtjdDc}Scc}w)Nr)rrr listrrlensplit)rrrs rlistdirzFakeFSCache.listdirsf}}RVV$ BFFNDdjj_ALLY]L^Qs4y{^))"&&1!4_``_s B0Bcy)NFrs rinit_under_package_rootz#FakeFSCache.init_under_package_root!srN)rzset[str]returnNone)rstrr+bool)rr-r+ list[str])__name__ __module__ __qualname__rrr"r'r*r)rrr r s9"; a rr ctjj|d}|jtjd}|S)N/)rr splitdrivereplacer )rs rnormalise_pathr8%s4 77  d #A &D << $D Krc&td|DS)Nc3zK|]3}|j|jt|jndf5ywr )modulebase_dirr8)rss rrz.normalise_build_source_list..,s5  !**2HN1::.dTs9;)sorted)sourcess rnormalise_build_source_listr@+s  rcD|j|\}}|t|fSr )crawl_upr8)finderrr;r<s rcrawlrD2s%q)FH >(+ ++rcpt|jtjj |Sr )r@find_sources_in_dirrrr)rCrs rrFrF7s& &v'A'A"''//RSBT'U VVrc|Dcgc]!}tjj|#}}tt |||Scc}wr )rrrr@r)pathsoptionsfscacheps r find_sourcesrL;s>*/ /ARWW__Q  /E / &'9%''R SS 0s&AcdeZdZd dZd dZd dZd dZd dZd dZd dZ d dZ d d Z d d Z d d Z y )SourceFinderSuitectj|_tj|_tj |jyr )tempfilemkdtemptempdirrgetcwdoldcwdchdirrs rsetUpzSourceFinderSuite.setUpCs/'') iik  rctj|jtj|j yr )rrUrTshutilrmtreerRrVs rtearDownzSourceFinderSuite.tearDownHs"  dll#rcPt}d|_ttdh|}t |ddk(sJttdh|}t |ddk(sJttdh|}t |ddk(sJttddh|}t |dd k(sJttd dh|}t |d d k(sJttddh|}t |ddk(sJtthd |}t |d dk(sJy)NF /setup.pysetupr5 /a/setup.pyr_/a /a/b/setup.pyr_/a/b/a/__init__.pyza.setupr5/a/invalid-name/setup.pyr_z/a/invalid-name/a/b/c/__init__.pyrf/a/b/c/setup.pyrlzc.setuprer namespace_packagesrr rDrrIrCs rtest_crawl_no_namespacez)SourceFinderSuite.test_crawl_no_namespaceLsE)%*"k;-8'BV[)^;;;k=/:GDV]+>>>k?*;>>k?*;>>k?*;HV./3FFFF S TV] V./3FFFF#X.k+<*=>HV./3FFFFrct}d|_d|_ddg|_t t ddh|}t |ddk(sJt |ddk(sJy)NTrb/b /a/pkg/a.py /b/pkg/b.pyzpkg.arbzpkg.br|)r rorxryrr rDrps rtest_crawl_namespace_multi_dirz0SourceFinderSuite.test_crawl_namespace_multi_dirse)%)")-&!4Lk=-*HI7SV]+>>>V]+>>>rc~t}d|_hd}tt||}t |dgdk(sJy)NF/pkg/a1/b/c/d/e.py/pkg/a2/b/c/d/e.py/pkg/a2/__init__.py/pkg/a1/b/f.py/pkg/a2/b/f.pyr5)a2/pkgez /pkg/a1/b/c/d)rz /pkg/a2/b/c/dr /pkg/a1/b)rz /pkg/a2/br rorr rFrrIrrCs r%test_find_sources_in_dir_no_namespacez7SourceFinderSuite.test_find_sources_in_dir_no_namespacesI)%*" k%0':"63/4    rc~t}d|_hd}tt||}t |dgdk(sJy)NTrr5)rz a2.b.c.d.erza2.b.frrrrrs r"test_find_sources_in_dir_namespacez4SourceFinderSuite.test_find_sources_in_dir_namespacesI)%)" k%0':"63/4    rct}d|_d|_dg|_hd}t t ||}t |dgdk(sJdg|_t t ||}t |dgdk(sJy)NTr5r))zpkg.a1.b.c.d.er5)z pkg.a1.b.fr5)zpkg.a2r5)zpkg.a2.b.c.d.er5)z pkg.a2.b.fr5r))z a1.b.c.d.er)za1.b.frrrrr rorxryrr rFrs r0test_find_sources_in_dir_namespace_explicit_basezBSourceFinderSuite.test_find_sources_in_dir_namespace_explicit_bases)%)")-& E k%0':"63/4    $Hk%0':"63/4    rct}d|_d|_ddg|_t t ddh|}t |dddgk(sJy) NTrbr|r}r~r5rrrrps r,test_find_sources_in_dir_namespace_multi_dirz>SourceFinderSuite.test_find_sources_in_dir_namespace_multi_dirsU)%)")-&!4Lk=-*HI7S"63/O_3UUUUrct}d|_dD]}tdd|dh}tdg||dgk(sJt j t 5tdg||dddtd|g||dd|fgk(sJtd|dg||dd|fgk(rJhd }d g|_t|}tdg||gd k(sJtd g||d gk(sJtdg||dgk(sJdg|_t|}tdg||gdk(sJt j t 5tdg||dddt j t 5tdg||dddt j t 5tdg||ddddg|_tdg||dd gk(sJdg|_t|}tdg||gdk(sJt j t 5tdg||ddddgddgddgfD])}||_t|}tdg||gdk(r)Jdg|_t|}tdg||gdk(sJgd}dj|g}||fD]m}||_t|}ttdg||t|k(sJhd}t|}ttdg||t|k(rmJy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY'xYw) NT)z site-packagesz .whatever node_modulesz.x/.zz /dir/a.pyz /dir/venv/z/b.pyr5)az/dirbrz/f\.py$)rrrrrrrz/a1/)rrrz/pkg/a1z/pkg/a1/rz/a1/$rz /(a1|a3)/a1a3zb/c/)rrr) z/pkg/a/z/2z/1z/pk/z/kgz/g.pyz/bcz/xxx/pkg/a2/b/f.pyzxxx/pkg/a2/b/f.py|> pkg/a1/b/f.py pkg/a2/b/f.pypkg/a1/b/c/d/e.pypkg/a2/b/c/d/e.pypkg/a2/__init__.py.) r ror rLpytestraisesrexcludejoinr%) rrI excluded_dirrJrorred big_exclude1 big_exclude2 big_excludes rtest_find_sources_excludez+SourceFinderSuite.test_find_sources_excludes)%)"T L!;*\N%0P"QRGw8]OK KK01 ?l^Wg> ?:l^!< =wP <.12U  :l^5!A BGWU <.12Z   &,e$SE7G49    -.AFXEYYYY-.AFXEYYYY"(e$SE7G49    ]], - 8 )gw 7 8 ]], - 9 *w 8 9 ]], - : + 9 :#)YK': " ?    &,e$SE7G49    ]], - 8 )gw 7 8#mdD\D$<@ E#GO!%(Gw8=  "(e$SE7G49      ./ (,7 LK)GO!%(G|SE7G<=UK KKE"%(G|SE7G<=UK KK Lw ? ?H 8 8 9 9 : :" 8 8s<L<L,L+L8ML L(+L58MMN)r+r,)r0r1r2rWr[rqrurzrrrrrrr)rrrNrNBsA $G6H6)GV? ( ( @VpLrrN)rr-r+r-)r?zlist[BuildSource]r+list[tuple[str, str | None]])rCrrr-r+ztuple[str, str])rCrrr-r+r)rHr/rIr rJrr+r) __future__rrrYrPunittestrmypy.find_sourcesrrr mypy.fscachermypy.modulefinderr mypy.optionsr r r8r@rDrFrLTestCaserNr)rrrs"  QQ() /* , WT T&T1@T!TvL))vLr