bg9dZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z ddl m Z ddlmZddlmZddlmZddlmZdd lmZmZmZmZmZmZmZmZmZdd lmZdd l m!Z!m"Z"dd l#m$Z$ dd l%m%Z%n #e&$rdZ%YnwxYw ddl'm(Z(n #e&$rdZ(YnwxYw ddl)m*Z*n #e&$rdZ*YnwxYwe de+dedfdZ,Gdde Z-Gdde-Z.Gdde-Z/Gdde-Z0Gdde-Z1Gdde-Z2Gd d!e2Z3Gd"d#e2Z4Gd$d%e-Z5Gd&d'Z6dS)(z8Finders try to find right section for passed module nameN)ABCMetaabstractmethod)contextmanager)fnmatch) lru_cache)glob)Path) DictIterableIteratorListOptionalPatternSequenceTupleType)sections)KNOWN_SECTION_MAPPINGConfigexists_case_sensitive)pipreqs)parse_requirements)Pipfilepathreturnc#Ktj}tj| dVtj|dS#tj|wxYw)zKContext manager for changing dir and restoring previous workdir after exit.N)osgetcwdchdir)rcurdirs i/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/isort/deprecated/finders.pyr r (sZY[[FHTNNN  s AAcJeZdZdeddfdZededeefdZdS) BaseFinderconfigrNc||_dSN)r%)selfr%s r"__init__zBaseFinder.__init__4s  module_namectr'NotImplementedErrorr(r+s r"findzBaseFinder.find7!!r*) __name__ __module__ __qualname__rr)rstrrr0r*r"r$r$3shv$"" """^"""r*r$) metaclassc*eZdZdedeefdZdS)ForcedSeparateFinderr+rc|jjD]E}|}|ds|d}t||st|d|zr|cSFdS)N*.)r%forced_separateendswithr)r(r+r= path_globs r"r0zForcedSeparateFinder.find=s|#{: ' 'O'I"++C00 2.111 {I.. ''+sY2W2W '&&&& 'tr*Nr2r3r4r5rr0r6r*r"r9r9<s:        r*r9c*eZdZdedeefdZdS) LocalFinderr+rc4|drdSdS)Nr< LOCALFOLDER) startswithr/s r"r0zLocalFinder.findJs"  ! !# & & ! =tr*Nr@r6r*r"rBrBIs: r*rBc`eZdZdeddffd ZdedeefdZdedeefdZ xZ S) KnownPatternFinderr%rNc Dt|g_t|jD]}t j||}d|}ttj |j j |g}fd|D}|D]`}d| dd ddzdz}j tj||fadS) Nknown_cDg|]}|D]}|Sr6)_parse_known_pattern).0 known_patternpatternr(s r" z/KnownPatternFinder.__init__..[sN!#88GGr*^r;z.*?z.?$)superr)known_patternsreversedrrgetlowerlistgetattrr% known_otherreplaceappendrecompile) r(r% placementknown_placement config_keyrTrMregexp __class__s ` r"r)zKnownPatternFinder.__init__QsF    >@!&/22 L LI37 9MMSSUUO3/33J! Z1H1L1L_^`1a1abbN%3N "0 L L }44S$??GGTRRRUXX#**BJv,>,> +JKKKK L L Lr*rNctjjrJfdtjtjjjD}ng}|S)zIExpand pattern if identified as a directory and return found sub packagesc g|]L}tjtjjj|J|MSr6)rrisdirjoinr% directory)rLfilenamerNr(s r"rOz;KnownPatternFinder._parse_known_pattern..gsT7==dk.CWh!W!WXXr*)r>rrseplistdirrgr%rh)r(rNpatternss`` r"rKz'KnownPatternFinder._parse_known_patterndsz   BGK ( ( ! " 27<< 8Mw+W+W X XHH  yHr*r+c|dfdttddD}|D]*}|jD] \}}||r|ccS!+dS)Nr<c3RK|]!}dd|V"dS)r<N)rg)rLfirst_kpartss r" z*KnownPatternFinder.find..ts7 c cw%/!:!: c c c c c cr*r)splitrangelenrTmatch)r(r+module_names_to_checkmodule_name_to_checkrNr_rps @r"r0zKnownPatternFinder.findqs!!#&& c c c c%PSTYPZPZ\]_aJbJb c c c$9 % % &*&9 % %"==!566%$$$$$$% %tr*) r2r3r4rr)r5r rKrr0 __classcell__rcs@r"rGrGPsLvL$LLLLLL& C DI     r*rGcJeZdZd dededdffd ZdedeefdZxZS) PathFinderr<r%rrNc4t|tj|}|d}||g|_|jjptj d|_|jr)tj |j|_d|_ |jr|jd|_ t|jdD]%}||jvr|j |&t|jdD]%}||jvr|j |&t|jdD];}tj|r|j |<|jjp tj dpd|_|jrtj |j|_t|jdD]%}||jvr|j |&t|jdD]%} | |jvr|j | &tjt#jd |_|j|jvr|j |jt(jd dD]%} | |jvr|j | &dS) Nz/src VIRTUAL_ENVz/src/z/lib/python*/site-packagesz/lib/python*/*/site-packagesz/src/* CONDA_PREFIXstdlib)rSr)rrabspathpathsr% virtual_envenvironrVrealpathvirtual_env_srcrr\rf conda_envnormcase sysconfig get_pathsstdlib_lib_prefixsys) r(r%rroot_dirsrc_dir venv_pathnested_venv_path venv_src_path conda_pathnested_conda_path system_pathrcs r"r)zPathFinder.__init__}s     7??4((###(  ;2Sbjnn]6S6S   B!w//0@AAD !   5&*&6#=#=#=D !T%5"Q"Q"QRR 1 1 DJ..J%%i000$(D,<)Z)Z)Z$[$[ 8 8 #4:55J%%&6777!%)9&A&A&A!B!B 5 5 7==//5J%%m444.V"*..2P2PVTV > 9W--dn==DN"dn#P#P#PQQ 2 2 TZ//J%%j111%)T^*Y*Y*Y%Z%Z 9 9!$DJ66J%%&7888"$!1!1)2E2G2G2Q!R!R  ! 3 3 J  d4 5 5 58ABB< / /K$*,, !!+... / /r*r+c|jD]}d||ddft}t dzp;t fdtjj Dpt dz}t otj }|s|rd|vsd|vs|j r|j|vrtjcStj ||jkrtjcS|jr|j|vrtjcS|jjD]5}||jvr*|j|stjccS6tj ||jrtjcS|jjcSdS) N/r<rz.pyc3<K|]}t|zVdSr'r)rL ext_suffix package_paths r"rqz"PathFinder.find..sD"*,*CDDr*z /__init__.pyz site-packagesz dist-packages)rrgrsr resolverany importlib machineryEXTENSION_SUFFIXESrrrfrrr THIRDPARTYrrSTDLIBrr% src_pathsparents is_skipped FIRSTPARTYrEdefault_section)r(r+prefixpath_obj is_module is_packagesrc_pathrs @r"r0zPathFinder.finds$j 3 3F88V[->->s-C-CA-F$GHHLL))1133H%lU&:;;H&/&9&LH ))FGG /|<<\|A\A\J 3J 3#v--&&00(1-1-AV-K-K#....7##F++t/EEE#?***>/dn&>&>#.... $ 533H8#333DK module_name` Example: django-haystack -> haystack Nr:) rrrdirnameinspectgetfilergopenstrip partition)rfmappingsline import_name_ pypi_names r"rzReqsBaseFinder._load_mappings 4www7788w||D),, $ZZ 1')H 2 2,0JJLL,B,B3,G,G) Q &1##                   s/9B55B9<B9cg}|D]B}||D]*}|||+C|S)z3Return list of thirdparty modules from requirements) _get_filesrr\_normalize_name)r(rrnames r"rzReqsBaseFinder._load_namesshOO%% 9 9D-- 9 9 T11$778888 9 r*c#tKd}||kr-|}|Vtj|}||k+dSdS)Nr)rrr)rprevs r" _get_parentszReqsBaseFinder._get_parentssHdllDJJJ7??4((Ddllllllr*c#4Ktj|j}tj|rtj|}||D]}||Ed{VdS)z&Return paths to all requirements filesN)rrrisfilerrrrs r"rzReqsBaseFinder._get_filesswty)) 7>>$   )7??4((D%%d++ 6 6D//55 5 5 5 5 5 5 5 5 6 6r*rc|jr/|j|dd|}|ddS)zConvert package name to module name Examples: Django -> django django-haystack -> django_haystack Flask-RESTFul -> flask_restful -r)rrVr[rW)r(rs r"rzReqsBaseFinder._normalize_name sR < B<##DLLc$:$:DAADzz||##C---r*r+c|jsdS|d\}}}|}|sdS|jD]}||krtjcSdS)Nr<)rrrWrrr)r(r+_sep _submodulesrs r"r0zReqsBaseFinder.finds~| 4)4)>)>s)C)C& T;!''))  4J + +Dd""****#tr*r)r2r3r4rrr5r)rr rr staticmethodrr rr rrrrr0ryrzs@r"rrsG,,v,S,4,,,,,,"s"x}"""^""" """^"8DcN3\$T#Y)3)8C=)))\)6HSM6666 .C .C . . . .          r*rceZdZdZeeZdedeefdZ e e ddede efdZ dedeefdZe e ddede efd Zd S) RequirementsFinder)z.txtz.inrrc#@K||Ed{VdS)z3Return paths to requirements files from passed dir.N)_get_files_from_dir_cachedrs r"rz&RequirementsFinder._get_files_from_dir,s222488888888888r*)maxsizec Bg}tj|D]}d|vrtj||}tj|rjtj|D]T}|jD]J}||r3|tj||KUtj|r6|jD].}||r||n/|S)N requirements) rrkrrgrfextsr>r\r)clsrresultsfname full_path subfile_nameexts r"rz-RequirementsFinder._get_files_from_dir_cached0s1Z%%  EU** T511Iw}}Y'' $&Jy$9$9RRL"xRR'0055R#NN27<< <+P+PQQQRw~~i(( 8C~~c**y111r*c#@K||Ed{VdS)z5Load required packages from path to requirements fileN)_get_names_cachedrs r"rzRequirementsFinder._get_namesKs2))$///////////r*c"g}ttj|5t |}|D]#}|jr||j$ dddn #1swxYwY|Sr')r rrrrvaluesrr\)rrresultrreqs r"rz$RequirementsFinder._get_names_cachedOs 27??4(( ) ) , ,-d33L#**,, , ,8,MM#(+++ , , , , , , , , , , , , , , , ,  sABB BN)r2r3r4rboolrrr5r r classmethodrr rrrr6r*r"rr(s  Dd%&&G99 9999Yrcd3i[20s0x}0000Yr S T#Y   [   r*rc\eZdZeeZdedeefdZdedeefdZ dS) PipfileFinderrrc#Kt|5tj|}|jD] }|jV ddddS#1swxYwYdSr')r rloadpackagesr)r(rprojectrs r"rzPipfileFinder._get_names`s 4[[  l4((G'  h                   s(AA A c#BKdtj|vr|VdSdS)Nr)rrkrs r"rz!PipfileFinder._get_files_from_dirfs0  4(( ( (JJJJJ ) (r*N) r2r3r4rrrr5r rrr6r*r"rr]smd7mmGsx}  r*rc*eZdZdedeefdZdS) DefaultFinderr+rc|jjSr')r%rr/s r"r0zDefaultFinder.findls {**r*Nr@r6r*r"rrks:++ ++++++r*rceZdZUeeeeeee fZ e e e ed< d dedeee e ddfdZdedeefdZdS) FindersManager_default_finders_classesNr%finder_classesrc|j|_||j}g}|D]Y} |||"#t$r+}|jrt |jd|dYd}~Rd}~wwxYwt ||_dS)N encountered an error (z)) during instantiation and cannot be used)verboserr\ Exceptionprintr2tuplefinders)r(r%rr finder_cls exceptions r"r)zFindersManager.__init__{s$^  !!:N$&(  J zz&112222   <)2??9??? 05W~~ s< A1!A,,A1r+c |jD]^} ||}||cS#t$r3}|jr"t |jjd|d|dYd}~Wd}~wwxYwdS)Nrz) while trying to identify the z module)rr0rrrrcr2)r(r+findersectionrs r"r0zFindersManager.findsl  F  ++k22&"NNN'   <!+4GGYGG2=GGG  ts' A$)AA$r')r2r3r4r9rBrGr|rrrrrrr$__annotations__rrr r)r5r0r6r*r"rrps<htJ'78VZ>>>.6xZ@P7Q.R> >>>>, r*r)7__doc__importlib.machineryrrros.pathr]rrabcrr contextlibrr functoolsrrpathlibr typingr r r r rrrrrisortrisort.settingsrr isort.utilsrr ImportErrorpip_apirrequirementslibrr5r r$r9rBrGr|rrrrrr6r*r"rs>>  ''''''''%%%%%%[[[[[[[[[[[[[[[[[[[[[[88888888------GGG*******'''''''GGG"""""7""""     :   *))))))))XOOOOOOOOdWWWWWZWWWt22222222j     N   +++++J+++ //////////s60A77BBB BBB!!B+*B+