/opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/__pycache__
NameSizeModeActions
archive_util.cpython-311.pyc102640644editdlrm
build_meta.cpython-311.pyc281570644editdlrm
depends.cpython-311.pyc82330644editdlrm
discovery.cpython-311.pyc311900644editdlrm
dist.cpython-311.pyc586170644editdlrm
errors.cpython-311.pyc35750644editdlrm
extension.cpython-311.pyc75320644editdlrm
glob.cpython-311.pyc83920644editdlrm
installer.cpython-311.pyc89720644editdlrm
launch.cpython-311.pyc15760644editdlrm
logging.cpython-311.pyc21800644editdlrm
modified.cpython-311.pyc6550644editdlrm
monkey.cpython-311.pyc55370644editdlrm
msvc.cpython-311.pyc615120644editdlrm
namespaces.cpython-311.pyc57850644editdlrm
unicode_utils.cpython-311.pyc50060644editdlrm
version.cpython-311.pyc4700644editdlrm
warnings.cpython-311.pyc58070644editdlrm
wheel.cpython-311.pyc174910644editdlrm
windows_support.cpython-311.pyc14680644editdlrm
_core_metadata.cpython-311.pyc169410644editdlrm
_discovery.cpython-311.pyc18480644editdlrm
_entry_points.cpython-311.pyc53280644editdlrm
_imp.cpython-311.pyc37210644editdlrm
_importlib.cpython-311.pyc4630644editdlrm
_itertools.cpython-311.pyc11590644editdlrm
_normalization.cpython-311.pyc79770644editdlrm
_path.cpython-311.pyc49400644editdlrm
_reqs.cpython-311.pyc22560644editdlrm
_scripts.cpython-311.pyc188430644editdlrm
_shutil.cpython-311.pyc28890644editdlrm
_static.cpython-311.pyc66990644editdlrm
__init__.cpython-311.pyc133420644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/__pycache__/discovery.cpython-311.pyc (31190B)
§ {O-|Cû)kãóÔ—dZddlmZddlZddlZddlmZmZmZddl m Z ddl m Z ddl m Z ddlmZmZddlZd d lmZdd lmZdd lmZerdd lmZejjZd5d„ZGd„d¦«ZGd„d¦«Z Gd„de ¦«Z!Gd„de!¦«Z"Gd„de ¦«Z#Gd„de"¦«Z$Gd„d e#¦«Z%d6d%„Z&Gd&„d'¦«Z'd7d)„Z(d7d*„Z)d8d/„Z*d9d1„Z+d:d4„Z,dS);u_Automatic discovery of Python modules and packages (for inclusion in the distribution) and other config values. For the purposes of this module, the following nomenclature is used: - "src-layout": a directory representing a Python project that contains a "src" folder. Everything under the "src" folder is meant to be included in the distribution when packaging the project. Example:: . ├── tox.ini ├── pyproject.toml └── src/ └── mypkg/ ├── __init__.py ├── mymodule.py └── my_data_file.txt - "flat-layout": a Python project that does not use "src-layout" but instead have a directory under the project root for each package:: . ├── tox.ini ├── pyproject.toml └── mypkg/ ├── __init__.py ├── mymodule.py └── my_data_file.txt - "single-module": a project that contains a single Python script direct under the project root (no directory used):: . ├── tox.ini ├── pyproject.toml └── mymodule.py é)Ú annotationsN)ÚIterableÚIteratorÚMapping©Ú fnmatchcase)Úglob)ÚPath)Ú TYPE_CHECKINGÚClassVaré)ÚStrPath)Úlog)Ú convert_path)Ú DistributionÚpathrÚreturnÚboolcód—tj |¦« ¦«S©N)ÚosrÚbasenameÚ isidentifier)rs úf/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/setuptools/discovery.pyÚ _valid_namer?s$€å Œ7× Ò ˜DÑ !Ô !× .Ò .Ñ 0Ô 0Ð0ócó*—eZdZdZd d„Zd d „Zd d „Zd S)Ú_Filterzƒ Given a list of patterns, create a callable that will be true only if the input matches at least one of the patterns. ÚpatternsÚstrrÚNonecóD—t |¦«|_dSr)ÚdictÚfromkeysÚ _patterns)Úselfrs rÚ__init__z_Filter.__init__Js€ÝŸš xÑ0Ô0ˆŒˆˆrÚitemrcóD‡—tˆfd„|jD¦«¦«S)Nc3ó8•K—|]}t‰|¦«V—ŒdSrr)Ú.0Úpatr(s €rú z#_Filter.__call__..Ns-øèè€ÐDÐD¨c•;˜t SÑ)Ô)ÐDÐDÐDÐDÐDÐDr)Úanyr%©r&r(s `rÚ__call__z_Filter.__call__Ms(ø€ÝÐDÐDÐDÐD°T´^ÐDÑDÔDÑDÔDÐDrcó—||jvSr)r%r/s rÚ __contains__z_Filter.__contains__Ps€Ø�t”~Ð%Ð%rN)rr rr!)r(r rr)Ú__name__Ú __module__Ú __qualname__Ú__doc__r'r0r2©rrrrDs^€€€€€ððð 1ð1ð1ð1ðEðEðEðEð&ð&ð&ð&ð&ð&rrcóh—eZdZUdZdZded<dZded<e ddd„¦«Zedd„¦«Z dS)Ú_Finderz@Base class that exposes functionality for module/package findersr7zClassVar[tuple[str, ...]]ÚALWAYS_EXCLUDEÚDEFAULT_EXCLUDEú.©Ú*ÚwhererÚexcludeú Iterable[str]Úincluderú list[str]c óÀ—|p|j}t| tt |¦«¦«t g|j¢|¢RŽt |ަ«¦«S)aZReturn a list of all Python items (packages or modules, depending on the finder implementation) found within directory ``where``. ``where`` is the root directory which will be searched. It should be supplied as a "cross-platform" (i.e. URL-style) path; it will be converted to the appropriate local path syntax. ``exclude`` is a sequence of names to exclude; ``*`` can be used as a wildcard in the names. When finding packages, ``foo.*`` will exclude all subpackages of ``foo`` (but not ``foo`` itself). ``include`` is a sequence of names to include. If it's specified, only the named items will be included. If it's not specified, all found items will be included. ``include`` can contain shell style wildcard patterns just like ``exclude``. )r;ÚlistÚ _find_iterrr rr:©Úclsr?r@rBs rÚfindz _Finder.findZsf€ð4Ð0˜SÔ0ˆÝØ �NŠNÝ�S ™ZœZÑ(Ô(ÝÐ6˜Ô+Ð6¨gÐ6Ð6Ð6ݘÐ!ñ ô ñ ô ð rrú Iterator[str]có—t‚r)ÚNotImplementedErrorrGs rrFz_Finder._find_iter}s €õ"Ð!rN)r<r7r=)r?rr@rArBrArrC©r?rr@rrBrrrJ) r3r4r5r6r:Ú__annotations__r;Ú classmethodrIrFr7rrr9r9Ts�€€€€€€ØJÐJà02€NÐ2Ð2Ð2Ñ2Ø13€OÐ3Ð3Ð3Ñ3àðØ!#Ø!'ð  ð  ð  ð  ñ„[ð  ðDð"ð"ð"ñ„[ð"ð"ð"rr9cóF—eZdZdZdZedd „¦«Zedd„¦«ZdS)Ú PackageFinderzI Generate a list of all Python packages found within a directory )Úez_setupz *__pycache__r?rr@rrBrrJc#óK—tjt|¦«d¬¦«D]Ú\}}}|dd…}g|dd…<|D]À}tj ||¦«} tj | |¦«} |  tjjd¦«} d|vs| | | ¦«sŒ‚|| ¦«r|| ¦«s| V—| ›d�|vs| ›d�|vrŒ«|  |¦«ŒÁŒÛdS)zy All the packages found in 'where' that pass the 'include' filter, but not the 'exclude' filter. T)Ú followlinksNr<r>ú.*) rÚwalkr rÚjoinÚrelpathÚreplaceÚsepÚ_looks_like_packageÚappend) rHr?r@rBÚrootÚdirsÚfilesÚall_dirsÚdirÚ full_pathÚrel_pathÚpackages rrFzPackageFinder._find_iter‹s;èè€õ"$¤­¨U©¬ÀÐ!FÑ!FÔ!Fð !ð !Ñ ˆD�$˜à˜A˜A˜A”wˆH؈D���‰Gàð !ð !�ÝœGŸLšL¨¨sÑ3Ô3� Ýœ7Ÿ?š?¨9°eÑ<Ô<�Ø"×*Ò*­2¬7¬;¸Ñ<Ô<�ð˜#�:�: S×%<Ò%<¸YÈÑ%PÔ%P�:Øð�7˜7Ñ#Ô#ð"¨G¨G°GÑ,<Ô,<ð"Ø!�M�M�Mð�=�=�= GÐ+Ð+°'¨~¨~¨~ÀÐ/HÐ/HØð— ’ ˜CÑ Ô Ð Ð ð' !ð  !ð !rrÚ _package_namer rcó|—tj tj |d¦«¦«S)z%Does a directory look like a package?ú __init__.py)rrÚisfilerW)rres rr[z!PackageFinder._looks_like_package­s(€õŒw�~Š~�bœgŸlšl¨4°Ñ?Ô?Ñ@Ô@Ð@rNrM)rrrer rr) r3r4r5r6r:rOrFÚ staticmethodr[r7rrrQrQ„sj€€€€€ððð2€Nàð!ð!ð!ñ„[ð!ðBðAðAðAñ„\ðAðAðArrQcó&—eZdZed d„¦«ZdS) ÚPEP420PackageFinderÚ_pathrrer rrcó—dS)NTr7)rlres rr[z'PEP420PackageFinder._looks_like_package´s€àˆtrN)rlrrer rr)r3r4r5rir[r7rrrkrk³s2€€€€€Øðððñ„\ðððrrkcó@—eZdZdZed d „¦«Zee¦«Zd S) Ú ModuleFinderzYFind isolated Python modules. This function will **not** recurse subdirectories. r?rr@rrBrrJc#óHK—ttj |d¦«¦«D]q}tj tj |¦«¦«\}}| |¦«sŒW||¦«r||¦«s|V—ŒrdS)Nz*.py)r rrrWÚsplitextrÚ_looks_like_module)rHr?r@rBÚfileÚmoduleÚ_exts rrFzModuleFinder._find_iter¾s¤èè€õ�œŸš e¨VÑ4Ô4Ñ5Ô5ð ð ˆDÝœ7×+Ò+­B¬G×,<Ò,<¸TÑ,BÔ,BÑCÔC‰LˆF�Dà×)Ò)¨&Ñ1Ô1ð Øàˆw�v‰Œð  w w¨v¡¤ð Ø� � � øð ð rNrM) r3r4r5r6rOrFrirrrr7rrroro¹sL€€€€€ðððð ð ð ñ„[ð ð&˜ kÑ2Ô2ÐÐÐrrocóh—eZdZdZeed„eD¦«¦«¦«Z ed d „¦«Zd S) ÚFlatLayoutPackageFinder)#ÚciÚbinÚdebianÚdocÚdocsÚ documentationÚmanpagesÚnewsÚ newsfragmentsÚ changelogÚtestÚtestsÚ unit_testÚ unit_testsÚexampleÚexamplesÚscriptsÚtoolsÚutilÚutilsÚpythonÚbuildÚdistÚvenvÚenvÚ requirementsÚtasksÚfabfileÚ site_sconsÚ benchmarkÚ benchmarksÚexerciseÚ exercisesÚhtmlcovú[._]*c#ó$K—|] }||›d�fV—Œ dS)rUNr7)r+Úps rr-z!FlatLayoutPackageFinder.üs,èè€Ð&GÐ&G¸¨¨a¨8¨8¨8 }Ð&GÐ&GÐ&GÐ&GÐ&GÐ&GrrlrÚ package_namer rrcóÜ—| d¦«}|d ¦«p|d d¦«}|o td„|dd…D¦«¦«S)Nr<rú-stubsc3ó>K—|]}| ¦«V—ŒdSr)r)r+Únames rr-z>FlatLayoutPackageFinder._looks_like_package..s.èè€Ð(SÐ(SÀ¨×):Ò):Ñ)<Ô)<Ð(SÐ(SÐ(SÐ(SÐ(SÐ(Srr )ÚsplitrÚendswithÚall)rlr�ÚnamesÚroot_pkg_is_valids rr[z+FlatLayoutPackageFinder._looks_like_packageÿsl€à×"Ò" 3Ñ'Ô'ˆà! !œH×1Ò1Ñ3Ô3ÐR°u¸Q´x×7HÒ7HÈÑ7RÔ7RÐØ ÐS¥SÐ(SÐ(SÈÈqÈrÈrÌÐ(SÑ(SÔ(SÑ%SÔ%SÐSrN)rlrr�r rr) r3r4r5Ú_EXCLUDEÚtupleÚ chain_iterr;rir[r7rrrwrwÒsm€€€€€ð'€HðR�e˜J˜JÐ&GÐ&G¸hÐ&GÑ&GÔ&GÑGÔGÑHÔH€OØ àðTðTðTñ„\ðTðTðTrrwcó—eZdZdZdS)ÚFlatLayoutModuleFinder)ÚsetupÚconftestr‚rƒr†r‡r�ÚtoxfileÚnoxfileÚpavementÚdodor’r“z[Ss][Cc]onstructÚ conanfileÚmanager•r–r—r˜ršN)r3r4r5r;r7rrr«r«s€€€€€ð€Oð4*Ð)rr«Úroot_pkgr Úpkg_dirrCcó\‡—t |¦«}‰gˆfd„|D¦«zS)Ncó>•—g|]}d ‰|f¦«‘ŒS)r<)rW)r+Únr´s €rú z)_find_packages_within..'s)ø€ÐAÐAÐA°Q˜Ÿš 8¨Q -Ñ0Ô0ÐAÐAÐAr)rkrI)r´rµÚnesteds` rÚ_find_packages_withinr»%s8ø€Ý × %Ò % gÑ .Ô .€FØ ˆ:ÐAÐAÐAÐA¸&ÐAÑAÔAÑ AÐArcóº—eZdZdZd%d„Zd„Zd„Zed&d „¦«Zed'd „¦«Z d(d)d„Z d*d„Z d*d„Z d+d„Z d+d„Zd+d„Zd+d„Zd+d„Zd,d„Zd-d „Zd.d"„Zd.d#„Zd$S)/ÚConfigDiscoveryz…Fill-in metadata and options that can be automatically derived (from other metadata/options, the file system or conventions) Ú distributionrrr!có>—||_d|_d|_d|_dS)NF)rŽÚ_calledÚ _disabledÚ_skip_ext_modules)r&r¾s rr'zConfigDiscovery.__init__/s%€Ø ˆŒ ؈Œ ؈ŒØ!&ˆÔÐÐrcó—d|_dS)z+Internal API to disable automatic discoveryTN)rÁ©r&s rÚ_disablezConfigDiscovery._disable5s €àˆŒˆˆrcó—d|_dS)aäInternal API to disregard ext_modules. Normally auto-discovery would not be triggered if ``ext_modules`` are set (this is done for backward compatibility with existing packages relying on ``setup.py`` or ``setup.cfg``). However, ``setuptools`` can call this function to ignore given ``ext_modules`` and proceed with the auto-discovery if ``packages`` and ``py_modules`` are not given (e.g. when using pyproject.toml metadata). TN)rÂrÄs rÚ_ignore_ext_modulesz#ConfigDiscovery._ignore_ext_modules9s€ð"&ˆÔÐÐrrcó2—|jjp tjSr)rŽÚsrc_rootrÚcurdirrÄs rÚ _root_dirzConfigDiscovery._root_dirEs€ðŒyÔ!Ð.¥R¤YÐ.rúdict[str, str]có6—|jj€iS|jjSr)rŽÚ package_dirrÄs rÚ _package_dirzConfigDiscovery._package_dirJs€à Œ9Ô Ð (؈IØŒyÔ$Ð$rFTÚforcerr¡Úignore_ext_modulescó’—|dur|js|jrdS| |¦«|r| ¦«d|_dS)a±Automatically discover missing configuration fields and modifies the given ``distribution`` object in-place. Note that by default this will only have an effect the first time the ``ConfigDiscovery`` object is called. To repeatedly invoke automatic discovery (e.g. when the project directory changes), please use ``force=True`` (or create a new ``ConfigDiscovery`` instance). FNT)rÀrÁÚ_analyse_package_layoutÚ analyse_name)r&rÐr¡rÑs rr0zConfigDiscovery.__call__PsX€ð �Eˆ>ˆ>˜tœ|ˆ>¨t¬~ˆ>à ˆFà ×$Ò$Ð%7Ñ8Ô8Ð8Ø ð Ø × Ò Ñ Ô Ð àˆŒ ˆ ˆ rcó´—|p|j}|jjdup| }|jjdup0|jjdup"|p t |jd¦«o |jjS)zF``True`` if the user has specified some form of package/module listingNÚ configuration)rÂrŽÚ ext_modulesÚpackagesÚ py_modulesÚhasattrrÖ)r&rÑr×s rÚ_explicitly_specifiedz%ConfigDiscovery._explicitly_specifiedgsw€à/ÐI°4Ô3IÐØœ9Ô0°DÐ8ÐNÐ.�sUøèè€ð ð á��Zõ " #¥r¤w§|¢|°H¸jÑ'IÔ'IÑ JÔ Jð ð ð ð ð ð rúdiscovered packages -- T) rÏÚcopyÚpoprËrrÝr©ÚitemsrErŽrØ)r&rÎÚpkgsræs @rrÞz(ConfigDiscovery._analyse_explicit_layout†sÎø€àÔ'×,Ò,Ñ.Ô.ˆ Ø�Š˜˜DÑ!Ô!Ð!Ø”>ˆàð Ø�5å Œ ÐJ¸[ÐJÐJÑKÔKÐKÝð ð ð ð à#.×#4Ò#4Ñ#6Ô#6ð ñ ô ñ ô ˆõ" $™ZœZˆŒ ÔÝ Œ Ð@¨D¬IÔ,>Ð@Ð@ÑAÔAÐA؈trcóˆ—|j}tj |j| dd¦«¦«}tj |¦«sdStjd|›�¦«|  dtj  |¦«¦«||j _ t |¦«|j _t  |¦«|j _tjd|j j›�¦«tjd|j j›�¦«dS)a®Try to find all packages or modules under the ``src`` directory (or anything pointed by ``package_dir[""]``). The "src-layout" is relatively safe for automatic discovery. We assume that everything within is meant to be included in the distribution. If ``package_dir[""]`` is not given, but the ``src`` directory exists, this function will set ``package_dir[""] = "src"``. râÚsrcFz#`src-layout` detected -- analysing rçúdiscovered py_modules -- T)rÏrrrWrËÚgetÚisdirrrÝÚ setdefaultrrŽrÎrkrIrØrorÙ)r&rÎÚsrc_dirs rrßz#ConfigDiscovery._analyse_src_layout˜s€ðÔ'ˆ Ý”'—,’,˜tœ~¨{¯ª¸rÀ5Ñ/IÔ/IÑJÔJˆÝŒw�}Š}˜WÑ%Ô%ð Ø�5å Œ ÐA¸ÐAÐAÑBÔBÐBØ×Ò˜r¥2¤7×#3Ò#3°GÑ#<Ô#<Ñ=Ô=Ð=Ø +ˆŒ ÔÝ0×5Ò5°gÑ>Ô>ˆŒ ÔÝ+×0Ò0°Ñ9Ô9ˆŒ ÔÝ Œ Ð@¨D¬IÔ,>Ð@Ð@ÑAÔAÐAÝ Œ ÐD¨d¬iÔ.BÐDÐDÑEÔEÐE؈trcóŠ—tjd|j›�¦«| ¦«p| ¦«S)aÆTry to find all packages and modules under the project root. Since the ``flat-layout`` is more dangerous in terms of accidentally including extra files/directories, this function is more conservative and will raise an error if multiple packages or modules are found. This assumes that multi-package dists are uncommon and refuse to support that use case in order to be able to prevent unintended errors. z$`flat-layout` detected -- analysing )rrÝrËÚ_analyse_flat_packagesÚ_analyse_flat_modulesrÄs rràz$ConfigDiscovery._analyse_flat_layout±sB€õ Œ ÐI¸¼ÐIÐIÑJÔJÐJØ×*Ò*Ñ,Ô,ÐL°×0JÒ0JÑ0LÔ0LÐLrcó,—t |j¦«|j_t t |jj¦«¦«}tjd|jj›�¦«|  |d¦«t|¦«S)NrçrØ) rwrIrËrŽrØÚremove_nested_packagesÚ remove_stubsrrÝÚ_ensure_no_accidental_inclusionr)r&Ú top_levels rrôz&ConfigDiscovery._analyse_flat_packages¾sv€Ý4×9Ò9¸$¼.ÑIÔIˆŒ ÔÝ*­<¸¼ Ô8JÑ+KÔ+KÑLÔLˆ Ý Œ Ð@¨D¬IÔ,>Ð@Ð@ÑAÔAÐAØ ×,Ò,¨Y¸ ÑCÔCÐCÝ�I‰ŒÐrcó—t |j¦«|j_t jd|jj›�¦«| |jjd¦«t|jj¦«S)NrîÚmodules) r«rIrËrŽrÙrrÝrùrrÄs rrõz%ConfigDiscovery._analyse_flat_modulesÅsh€Ý5×:Ò:¸4¼>ÑJÔJˆŒ ÔÝ Œ ÐD¨d¬iÔ.BÐDÐDÑEÔEÐEØ ×,Ò,¨T¬YÔ-AÀ9ÑMÔMÐMÝ�D”IÔ(Ñ)Ô)Ð)rÚdetectedrCÚkindr có„—t|¦«dkr,ddlm}ddlm}d|›d|›d|›d�}|||¦«¦«‚dS) Nr r)Úcleandoc)ÚPackageDiscoveryErrorzMultiple top-level z discovered in a flat-layout: zÕ. To avoid accidental inclusion of unwanted files or directories, setuptools will not proceed with this build. If you are trying to create a single distribution with multiple a¥ on purpose, you should not rely on automatic discovery. Instead, consider the following options: 1. set up custom discovery (`find` directive with `include` or `exclude`) 2. use a `src-layout` 3. explicitly set `py_modules` or `packages` with a list of names To find more information, look for "package discovery" on setuptools docs. )ÚlenÚinspectrÚsetuptools.errorsr)r&rýrþrrÚmsgs rrùz/ConfigDiscovery._ensure_no_accidental_inclusionËs�€Ý ˆx‰=Œ=˜1Ò Ð Ø (Ð (Ð (Ð (Ð (Ð (à ?Ð ?Ð ?Ð ?Ð ?Ð ?ð¨$ððÈhððð NRð ððˆCð(Ð'¨¨°© ¬ Ñ6Ô6Ð 6ð) Ð rcóæ—|jjjs |jjrdStjd¦«| ¦«p| ¦«}|r||jj_dSdS)z”The packages/modules are the essential contribution of the author. Therefore the name of the distribution can be derived from them. Nz7No `name` configuration, performing automatic discovery)rŽÚmetadatar¡rrÝÚ#_find_name_single_package_or_moduleÚ_find_name_from_packages)r&r¡s rrÔzConfigDiscovery.analyse_nameâs†€ð Œ9Ô Ô "ð  d¤i¤nð à ˆFå Œ ÐKÑLÔLÐLð × 4Ò 4Ñ 6Ô 6ð /Ø×,Ò,Ñ.Ô.ð ð ð +Ø&*ˆDŒIÔ Ô #Ð #Ð #ð +ð +rú str | Nonecó¸—dD]V}t|j|d¦«pg}|r:t|¦«dkr'tjd|d›�¦«|dcSŒWdS)zExactly one module or package)rØrÙNr z&Single module/package detected, name: r)ÚgetattrrŽrrrÝ)r&Úfieldrês rrz3ConfigDiscovery._find_name_single_package_or_moduleóso€à/ð ð ˆEݘDœI u¨dÑ3Ô3Ð9°rˆEØð �˜U™œ qš˜Ý” ÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNؘQ”x���øàˆtrcó"—|jjsdStt|jjt¬¦«¦«}|jjpi}t |||j¦«}|rtj d|›�¦«|Stj d¦«dS)z>> remove_nested_packages(["a", "a.b1", "a.b2", "a.b1.c1"]) ['a'] >>> remove_nested_packages(["a", "b", "c.d", "c.d.e.f", "g.h", "a.a1"]) ['a', 'b', 'c.d', 'g.h'] rNc3óH•K—|]}‰ |›d�¦«V—ŒdS©r<N©Ú startswith)r+Úotherr¡s €rr-z)remove_nested_packages..s5øèè€ÐCÐC°ˆt�Š %˜{˜{˜{Ñ+Ô+ÐCÐCÐCÐCÐCÐCrr )rrÚ enumerateÚreversedr.ré)rØrërúÚsizeÚir¡s @rr÷r÷s–ø€õ �(¥Ð $Ñ $Ô $€DØ�Q�Q�Q”€IÝ ˆt‰9Œ9€DÝ�X d™^œ^Ñ,Ô,ð(ð(‰ˆˆ4Ý ÐCÐCÐCÐC¸ÐCÑCÔCÑ CÔ Cð (Ø �MŠM˜$ ™( Q™,Ñ 'Ô 'Ð 'øà Ðrcó—d„|D¦«S)z Remove type stubs (:pep:`561`) from a list of packages. >>> remove_stubs(["a", "a.b", "a-stubs", "a-stubs.b.c", "b", "c-stubs"]) ['a', 'a.b', 'b'] cón—g|]2}| d¦«d d¦«°0|‘Œ3S)r<rrŸ)r¢r£)r+räs rr¹z remove_stubs..&s:€Ð PÐ PÐ P�C¨3¯9ª9°S©>¬>¸!Ô+<×+EÒ+EÀhÑ+OÔ+OÐ PˆCÐ PÐ PÐ Prr7)rØs rrørø s€ð QÐ P˜8Ð PÑ PÔ PÐPrrÎúMapping[str, str]rær c󎇗t|t¬¦«}g}t|¦«D]B\}Štˆfd„||dzd…D¦«¦«sn| ‰¦«ŒC|D]VŠt ‰||¦«}t j |d¦«}t j  |¦«r‰cSŒWdS)z0Find the parent package that is not a namespace.rc3óH•K—|]}| ‰›d�¦«V—ŒdSrr)r+r¸r¡s €rr-z&find_parent_package..0s5øèè€ÐGÐG°�1—<’< 4      Ñ+Ô+ÐGÐGÐGÐGÐGÐGrr Nrg) rrrr¤r\Úfind_package_pathrrrWrh)rØrÎræÚcommon_ancestorsrÚpkg_pathÚinitr¡s @rrr)sèø€õ�h¥CÐ(Ñ(Ô(€HØÐݘXÑ&Ô&ð&ð&‰ˆˆ4ÝÐGÐGÐGÐG°X¸aÀ!¹e¸g¸gÔ5FÐGÑGÔGÑGÔGð ð ˆEØ×Ò Ñ%Ô%Ð%Ð%à ððˆÝ$ T¨;¸ÑAÔAˆÝŒw�|Š|˜H mÑ4Ô4ˆÝ Œ7�>Š>˜$Ñ Ô ð ØˆKˆKˆKð ð ˆ4rr¡cóŠ—| d¦«}tt|¦«dd¦«D]M}d |d|…¦«}||vr*||}t jj||g||d…¢RŽcSŒN| d¦«pd}t jj|g| d¦«¢|¢RŽS)a—Given a package name, return the path where it should be found on disk, considering the ``package_dir`` option. >>> path = find_package_path("my.pkg", {"": "root/is/nested"}, ".") >>> path.replace(os.sep, "/") './root/is/nested/my/pkg' >>> path = find_package_path("my.pkg", {"my": "root/is/nested"}, ".") >>> path.replace(os.sep, "/") './root/is/nested/pkg' >>> path = find_package_path("my.pkg", {"my.pkg": "root/is/nested"}, ".") >>> path.replace(os.sep, "/") './root/is/nested' >>> path = find_package_path("other.pkg", {"my.pkg": "root/is/nested"}, ".") >>> path.replace(os.sep, "/") './other/pkg' r<réÿÿÿÿNrâú/)r¢ÚrangerrWrrrï)r¡rÎræÚpartsrÚ partial_nameÚparents rr%r%AsÔ€ð, �JŠJ�s‰OŒO€EÝ •3�u‘:”:˜q "Ñ %Ô %ð>ð>ˆà—x’x  b q b¤ Ñ*Ô*ˆ Ø ˜;Ð &Ð &Ø  Ô.ˆFÝ”7”< ¨&Ð=°5¸¸¸´9Ð=Ð=Ð=Ð =Ð =Ð =ð 'ð�_Š_˜RÑ Ô Ð & B€FÝ Œ7Œ<˜Ð = 6§<¢<°Ñ#4Ô#4Ð =°uÐ =Ð =Ð =Ð=rÚ package_pathrÌcóf‡—t|¦«}t|¦«jŠˆfd„|D¦«S)Nc ój•—i|]/}|d g‰¢| d¦«¢¦«“Œ0S)r+r<)rWr¢)r+räÚprefixs €rú z)construct_package_dir..fs<ø€Ð MÐ MÐ M¸#ˆC�—’Ð4˜FÐ4 S§Y¢Y¨s¡^¤^Ð4Ñ5Ô5Ð MÐ MÐ Mr)r÷r r-)rØr0Ú parent_pkgsr3s @rÚconstruct_package_dirr6cs:ø€Ý(¨Ñ2Ô2€KÝ �,Ñ Ô Ô %€FØ MÐ MÐ MÐ MÀÐ MÑ MÔ MÐMr)rrrr)r´r rµrrrC)rØrCrrC)rØrCrÎr"rærrr )r¡r rÎr"rærrr )rØrCr0rrrÌ)-r6Ú __future__rÚ itertoolsrÚcollections.abcrrrÚfnmatchrr Úpathlibr Útypingr r Ú_distutils_hack.overrideÚ_distutils_hackrlrÚ distutilsrÚdistutils.utilrÚ setuptoolsrÚchainÚ from_iterabler©rrr9rQrkrorwr«r»r½r÷rørr%r6r7rrúrDsðð%ð%ðN#Ð"Ð"Ð"Ð"Ð"àÐÐÐØ € € € Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ*Ð*Ð*Ð*Ð*Ð*Ð*Ð*àÐÐÐàÐÐÐÐÐàÐÐÐÐÐØ'Ð'Ð'Ð'Ð'Ð'àð(Ø'Ð'Ð'Ð'Ð'Ð'à Œ_Ô *€ ð1ð1ð1ð1ð &ð &ð &ð &ð &ñ &ô &ð &ð -"ð-"ð-"ð-"ð-"ñ-"ô-"ð-"ð`,Að,Að,Að,Að,A�Gñ,Aô,Að,Að^ðððð˜-ñôðð 3ð3ð3ð3ð3�7ñ3ô3ð3ð22Tð2Tð2Tð2Tð2TÐ1ñ2Tô2Tð2Tðj*ð*ð*ð*ð*˜\ñ*ô*ð*ð<BðBðBðBð aðaðaðaðañaôaðaðHðððð$QðQðQðQððððð0>ð>ð>ð>ðDNðNðNðNðNðNr