/opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/__pycache__
NameSizeModeActions
arguments.cpython-311.pyc138150644editdlrm
astroid_manager.cpython-311.pyc6160644editdlrm
bases.cpython-311.pyc360830644editdlrm
builder.cpython-311.pyc237050644editdlrm
const.cpython-311.pyc15540644editdlrm
constraint.cpython-311.pyc70310644editdlrm
context.cpython-311.pyc78590644editdlrm
decorators.cpython-311.pyc122110644editdlrm
exceptions.cpython-311.pyc204590644editdlrm
filter_statements.cpython-311.pyc74790644editdlrm
helpers.cpython-311.pyc150230644editdlrm
inference.cpython-311.pyc544630644editdlrm
inference_tip.cpython-311.pyc35800644editdlrm
manager.cpython-311.pyc222580644editdlrm
mixins.cpython-311.pyc11240644editdlrm
modutils.cpython-311.pyc304560644editdlrm
node_classes.cpython-311.pyc29970644editdlrm
objects.cpython-311.pyc172420644editdlrm
protocols.cpython-311.pyc386050644editdlrm
raw_building.cpython-311.pyc281980644editdlrm
rebuilder.cpython-311.pyc1050360644editdlrm
scoped_nodes.cpython-311.pyc10230644editdlrm
test_utils.cpython-311.pyc49130644editdlrm
transforms.cpython-311.pyc50210644editdlrm
typing.cpython-311.pyc28090644editdlrm
util.cpython-311.pyc91310644editdlrm
_ast.cpython-311.pyc56680644editdlrm
_backport_stdlib_names.cpython-311.pyc41110644editdlrm
_cache.cpython-311.pyc15040644editdlrm
__init__.cpython-311.pyc69400644editdlrm
__pkginfo__.cpython-311.pyc2510644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/__pycache__/modutils.cpython-311.pyc (30456B)
§ ‡PŽf³Dã ó¸—UdZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlmZmZmZddlmZmZddlmZddlmZddlmZmZmZdd lmZmZerdd l m Z ndd l!m Z ej"e#¦«Z$e j% &d ¦«rd Z'd Z(ndZ'dZ(e j)d¦«e j)d¦«hZ*e j+dkr³e* ,e j- .e j/d¦«¦« e* ,e j- .e j0d¦«¦«nK#e1$rC e* ,e j- .e j2d¦«¦«n #e1$rYnwxYwYnwxYwerÿe j3dkrôe* ,e4ee j)d¦«¦«j5dz ¦«¦«e* ,e4ee j)d¦«¦«j5dz ¦«¦«e* ,e4ee j)d¦«¦«j5dz ¦«¦«e* ,e4ee j)d¦«¦«j5dz ¦«¦«e j+dkrk e j0Z/de6d<n#e1$r e j/Z/YnwxYwdgd„Z7e* ,e7d¦«¦«e j8dkre* ,e7d¦«¦«e j)d ¦«e j)d!¦«hZ9e: ;e j<d"¦«Z=Gd#„d$e>¦«Z?dgd%„Z@efdhd)„ZAdid0„ZBe¦«dgd1„¦«ZCdgd2„ZDdjd5„ZEdkd7„ZFdld9„ZGdmd;„ZHdnd>„ZI dodpdB„ZJdqdrdC„ZK dodsdG„ZL dodtdI„ZMdqdudJ„ZN dvdwdN„ZOdvdxdP„ZPdydQ„ZQdzdS„ZRd{dU„ZSdqd|dX„ZTd}dZ„ZU dod~d\„ZVdd]„ZWd€d_„ZXd�da„ZYd�db„ZZd‚df„Z[dS)ƒaVPython modules manipulation utility functions. :type PY_SOURCE_EXTS: tuple(str) :var PY_SOURCE_EXTS: list of possible python source file extension :type STD_LIB_DIRS: set of str :var STD_LIB_DIRS: directories where standard modules are located :type BUILTIN_MODULES: dict :var BUILTIN_MODULES: dictionary with builtin module names has key é)Ú annotationsN)ÚCallableÚIterableÚSequence)Úredirect_stderrÚredirect_stdout)Ú lru_cache)ÚPath)Ú IS_JYTHONÚIS_PYPYÚ PY310_PLUS)ÚspecÚutil)Ústdlib_module_namesÚwin)ÚpyÚpyw)ÚdllÚpyd)r)ÚsoÚstdlibÚ platstdlibÚntÚdlls)ééÚlib_pypyz lib-python/3ÚposixÚstrÚprefixÚpathÚreturncó|—dtjdd…z}tj t ||¦«S)Nz python%d.%dé)ÚsysÚ version_infoÚosr!Újoinr )r!Ú base_pythons úb/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/astroid/modutils.pyÚ _posix_pathr+cs0€Ø#¥cÔ&6°r¸°rÔ&:Ñ:ˆ ÝŒw�|Š|�F D¨+Ñ6Ô6Ð6óÚliblÚlib64ÚpurelibÚplatlibTcó—eZdZdZdS)Ú NoSourceFilezbException raised when we are not able to get a python source file for a precompiled file. N)Ú__name__Ú __module__Ú __qualname__Ú__doc__©r,r*r2r2vs€€€€€ððððr,r2cóz—tj tj |¦«¦«S)zÎResolve symlinks in path and convert to absolute path. Note that environment variables and ~ in the path need to be expanded in advance. This can be cached by using _cache_normalize_path. )r'r!ÚnormcaseÚrealpath©r!s r*Ú_normalize_pathr<|s*€õ Œ7× Ò �BœG×,Ò,¨TÑ2Ô2Ñ 3Ô 3Ð3r,ÚfilenameÚ is_jythonÚboolcóN—|s|S| d¦«\}}}|r|dzS|S)Nz $py.classú.py)Ú partition)r=r>ÚheadÚ has_pyclassÚ_s r*Ú_path_from_filenamerF‡s@€Ø ðØˆØ#×-Ò-¨kÑ:Ô:Ñ€Dˆ+�qØðØ�e‰|ÐØ €Or,Ú blacklistú Sequence[str]Údirnamesú list[str]Ú filenamesÚNonecóv—|D]5}||vr| |¦«Œ||vr| |¦«Œ6dS)zaRemove files/directories in the black list. dirnames/filenames are usually from os.walk N)Úremove)rGrIrKÚnorecurss r*Ú_handle_blacklistrP�s]€ðð'ð'ˆØ �xÐ Ð Ø �OŠO˜HÑ %Ô %Ð %Ð %Ø ˜Ð "Ð "Ø × Ò ˜XÑ &Ô &Ð &øð 'ð'r,có —t|¦«S©N)r<r;s r*Ú_cache_normalize_path_rSžs€å ˜4Ñ Ô Ð r,cóB—|st|¦«St|¦«S)zNormalize path with caching.)r<rSr;s r*Ú_cache_normalize_pathrU£s(€ð ð%ݘtÑ$Ô$Ð$Ý ! $Ñ 'Ô 'Ð'r,Ú dotted_nameútypes.ModuleTypecó— tj|S#t$rYnwxYwtt j¦«¦«5}t t j¦«¦«5}tj|¦«}ddd¦«n #1swxYwYddd¦«n #1swxYwY|  ¦«}|rt  d||¦«|  ¦«}|rt  d||¦«|S)zñLoad a Python module from its name. :type dotted_name: str :param dotted_name: python name of a module or package :raise ImportError: if the module or package is not found :rtype: module :return: the loaded module Nz&Captured stderr while importing %s: %sz&Captured stdout while importing %s: %s) r%ÚmodulesÚKeyErrorrÚioÚStringIOrÚ importlibÚ import_moduleÚgetvalueÚloggerÚerrorÚinfo)rVÚstderrÚstdoutÚmoduleÚ stderr_valueÚ stdout_values r*Úload_module_from_namerh­sŠ€ð ÝŒ{˜;Ô'Ð'øÝ ð ð ð Ø ˆð øøøõ �œ™œÑ 'Ô 'ð6¨6µ?Ý Œ ‰ Œ ñ4ô4ð6à ÝÔ(¨Ñ5Ô5ˆð6ð6ð6ñ6ô6ð6ð6ð6ð6ð6ð6øøøð6ð6ð6ð6ð6ð6ð6ñ6ô6ð6ð6ð6ð6ð6ð6øøøð6ð6ð6ð6ð —?’?Ñ$Ô$€LØð Ý� Š Ø 5°{ÀLñ ô ð ð—?’?Ñ$Ô$€LØð Ý� Š Ø 5°{ÀLñ ô ð ð €MsB‚” ! !Á!BÁ%BÁ: BÂB  B B ÂBÂB!Â$B!ÚpartscóF—td |¦«¦«S)zÖLoad a python module from its split name. :param parts: python name of a module or package split on '.' :raise ImportError: if the module or package is not found :return: the loaded module ú.)rhr()ris r*Úload_module_from_modpathrlÒs€õ ! §¢¨%¡¤Ñ 1Ô 1Ð1r,Úfilepathcó>—t|¦«}t|¦«S)zîLoad a Python module from it's path. :type filepath: str :param filepath: path to the python module or package :raise ImportError: if the module or package is not found :rtype: module :return: the loaded module )Úmodpath_from_filerl)rmÚmodpaths r*Úload_module_from_filerqßs€õ  Ñ)Ô)€GÝ # GÑ ,Ô ,Ð,r,Úmod_pathcóô—g}|D]r}| |¦«tj ||¦«}t |¦«s,t jd |¦«¦«}|sdSŒsdS)z3Check there are some __init__.py all along the way.rkFT)Úappendr'r!r(Ú _has_initrÚ is_namespace)r!rrrpÚpartÚ old_namespaces r*Úcheck_modpath_has_initryîs|€à€GØððˆØ�Š�tÑÔÐÝŒw�|Š|˜D $Ñ'Ô'ˆÝ˜‰Œð Ý Ô-¨c¯hªh°wÑ.?Ô.?Ñ@Ô@ˆMØ ð Ø�u�uøØ ˆ4r,Ú path_to_checkúlist[str] | Nonecób—d}tj |¦«}tj |¦«}tj |¦« |¦«r|}tj |¦«}tj |¦« |¦«r|}|retj |¦«d}|t|¦«d…}d„| tj ¦«D¦«SdS)a>Extracts the relative mod path of the file to import from. Check if a file is within the passed in path and if so, returns the relative mod path from the one passed in. If the filename is no in path_to_check, returns None Note this function will look for both abs and realpath of the file, this allows to find the relative base path even if the file is a symlink of a file in the passed in path Examples: _get_relative_base_path("/a/b/c/d.py", "/a/b") -> ["c","d"] _get_relative_base_path("/a/b/c/d.py", "/dev") -> None Nrcó—g|]}|¯|‘ŒSr7r7)Ú.0Úpkgs r*ú z+_get_relative_base_path..s€ÐGÐGÐG˜À3ÐG�ÐGÐGÐGr,) r'r!r9ÚabspathÚ startswithr:ÚsplitextÚlenÚsplitÚsep)r=rzÚimportable_pathÚ abs_filenameÚ real_filenameÚ base_pathÚrelative_base_paths r*Ú_get_relative_base_pathrŒûs€ð €OÝ”G×$Ò$ ]Ñ3Ô3€MÝ”7—?’? 8Ñ,Ô,€LÝ „w×Ò˜ Ñ%Ô%×0Ò0°Ñ?Ô?ð'Ø&ˆå”G×$Ò$ XÑ.Ô.€MÝ „w×Ò˜ Ñ&Ô&×1Ò1°-Ñ@Ô@ð(Ø'ˆð ðHÝ”G×$Ò$ _Ñ5Ô5°aÔ8ˆ Ø&¥s¨=Ñ'9Ô'9Ð';Ð';Ô<ÐØGÐGÐ1×7Ò7½¼Ñ?Ô?ÐGÑGÔGÐGà ˆ4r,úSequence[str] | NoneÚ is_package_cbú'Callable[[str, list[str]], bool] | NonecóÞ—tj t|¦«¦«}tj ¦«}|r||z }t j|tt|¦«¦«D]4}|sŒt||¦«}|sŒ|€J‚|||dd…¦«r|cSŒ5td  |d  tj¦«¦«¦«‚)Néÿÿÿÿz"Unable to find module for {} in {}z, )r'r!Ú expanduserrFr%ÚcopyÚ itertoolsÚchainÚmaprUrŒÚ ImportErrorÚformatr()r=r!rŽÚpaths_to_checkÚpathnamerps r*Úmodpath_from_file_with_callbackr› s€õ Œw×!Ò!Õ"5°hÑ"?Ô"?Ñ@Ô@€HÝ”X—]’]‘_”_€NØ ðؘ$шݔOØ�Õ1°>ÑBÔBñôð ð ˆðð Ø Ý)¨(°HÑ=Ô=ˆØð Ø ØÐ(Ð(Ð(Ø ˆ=˜ 7¨3¨B¨3¤<Ñ 0Ô 0ð ØˆNˆNˆNð õ Ø,×3Ò3°H¸f¿kºkÍ#Ì(Ñ>SÔ>SÑTÔTñ ô ðr,có.—t||t¦«S)a*Get the corresponding split module's name from a filename. This function will return the name of a module or package split on `.`. :type filename: str :param filename: file's path for which we want the module's name :type Optional[List[str]] path: Optional list of path where the module or package should be searched (use sys.path if nothing or None is given) :raise ImportError: if the corresponding module's name has not been found :rtype: list(str) :return: the corresponding split module's name )r›ry)r=r!s r*roro:s€õ$ +¨8°TÕ;QÑ RÔ RÐRr,rpÚ context_fileú str | Nonecó.—t|||¦«jSrR)Úfile_info_from_modpathÚlocation)rpr!r�s r*Úfile_from_modpathr¢Os€õ " '¨4°Ñ >Ô >Ô GÐGr,úspec.ModuleSpeccó|—|� tj |¦«}n|}|ddkr? tdg|dd…z||¦«S#t$rt|||¦«cYSwxYw|ddgkr5t jdtjjt jj ¬ ¦«St|||¦«S) axGiven a mod path (i.e. split module / package name), return the corresponding file. Giving priority to source file over precompiled file if it exists. :param modpath: split module's name (i.e name of a module or package split on '.') (this means explicit relative imports that start with dots have empty strings in this list!) :param path: optional list of path where the module or package should be searched (use sys.path if nothing or None is given) :param context_file: context file to consider, necessary if the identifier has been introduced using a relative import unresolvable in the actual context (i.e. modutils) :raise ImportError: if there is no such module in the directory :return: the path to the module's file or None if it's an integrated builtin module such as 'sys' NrÚxmlÚ_xmlplusér'r!úos.path)Únamer¡Útype) r'r!ÚdirnameÚ_spec_from_modpathr—rÚ ModuleSpecÚ__file__Ú ModuleTypeÚ PY_SOURCE)rpr!r�Úcontexts r*r r WsÛ€ð>ÐÝ œgŸošo¨lÑ;Ô;ˆˆàˆØˆq„z�UÒÐð >Ý% z l°W¸Q¸R¸R´[Ñ&@À$ÈÑPÔPÐ PøÝð >ð >ð >Ý% g¨t°WÑ=Ô=Ð =Ð =Ð =ð >øøøà �T˜6�NÒ "Ð "åŒØÝ”WÔ%Ý”Ô*ð ñ ô ð õ ˜g t¨WÑ 5Ô 5Ð5s²AÁA-Á,A-c ó—| d¦«rdS| d¦«}|�9|dtvr*t|¦«dkrt |¦«‚|dSd}d}|ddkr|€ Jd¦«‚g}d}|t|¦«kr[||dkrO|dz }|€ Jd¦«‚t j |¦«}|t|¦«kr ||dk°Ot|t|¦«¦«D]t} t|||dz…||¬ ¦«Œ!#t$rG|tdt|¦«dz ¦«kr‚d  |d|…¦«cYcSwxYw|S) a­Given a dotted name return the module part of the name : >>> get_module_part('astroid.as_string.dump') 'astroid.as_string' :param dotted_name: full name of the identifier we are interested in :param context_file: context file to consider, necessary if the identifier has been introduced using a relative import unresolvable in the actual context (i.e. modutils) :raise ImportError: if there is no such module in the directory :return: the module part of the name or None if we have not been able at all to import the given name XXX: deprecated, since it doesn't handle package precedence over module (see #10066) r¨rkNrr$Úz.explicit relative import, but no context_file?r§)r!r�) r‚r…ÚBUILTIN_MODULESr„r—r'r!r«Úranger¢Úmaxr()rVr�rir!ÚstartiÚis r*Úget_module_partr¹ŠsÝ€ð.×Ò˜iÑ(Ô(ð؈yØ × Ò ˜cÑ "Ô "€EØÐð �Œ8•Ð &Ð &Ý�5‰zŒz˜AŠ~ˆ~Ý! +Ñ.Ô.Ð.ؘ”8ˆOà!€DØ €FØ ˆQ„x�2‚~€~à Ð $Ð $Ø ;ñ %Ô $Ð $àˆØˆà •3�u‘:”:Ò Ð  %¨¤-°2Ò"5Ð"5Ø�!‰ ˆà Ð $Ð $Ø ;ñ %Ô $Ð $å”w—’ |Ñ4Ô4ˆ ð •3�u‘:”:Ò Ð  %¨¤-°2Ò"5Ð"5õ �6�3˜u™:œ:Ñ &Ô &ð'ð'ˆð 'Ý Ø�f˜q 1™u�nÔ%¨D¸|ð ñ ô ð ð øõð 'ð 'ð 'Ø•3�q�#˜e™*œ* q™.Ñ)Ô)Ò)Ð)ØØ—8’8˜E " 1 "œIÑ&Ô&Ð &Ð &Ð &Ð &Ð &ð 'øøøð ÐsÄD4Ä4A FÆFFÚ src_directoryÚlist_allcó—g}tj|¦«D]s\}}}||vrŒ t|||¦«|s d|vrd|dd…<Œ*|D]F}t|¦«r5tj ||¦«}| |¦«ŒGŒt|S)aåGiven a package directory return a list of all available python module's files in the package and its subpackages. :param src_directory: path of the directory corresponding to the package :param blacklist: iterable list of files or directories to ignore. :param list_all: get files from all paths, including ones without __init__.py :return: the list of all available python module's files in the package and its subpackages z __init__.pyr7N)r'ÚwalkrPÚ_is_python_filer!r(rt) rºrGr»ÚfilesÚ directoryrIrKr=Úsrcs r*Úget_module_filesrÂÇs¾€ð&€EÝ*,¬'°-Ñ*@Ô*@ð "ð "Ñ&ˆ �8˜YØ ˜ Ð !Ð !Ø Ý˜) X¨yÑ9Ô9Ð9àð ˜M°Ð:Ð:؈H�Q�Q�Q‰KØ Ø!ð "ð "ˆHݘxÑ(Ô(ð "Ý”g—l’l 9¨hÑ7Ô7�Ø— ’ ˜SÑ!Ô!Ð!øð "ð €Lr,Úinclude_no_extcón—tj t|¦«¦«}tj |¦«\}}t D],}|›d|›�}tj |¦«r|cSŒ-|r#|s!tj |¦«r|St|¦«‚)asGiven a python module's file name return the matching source file name (the filename will be returned identically if it's already an. absolute path to a python source file...) :param filename: python module's file name :raise NoSourceFile: if no source file exists on the file system :return: the absolute path of the source file if it exists rk)r'r!r�rFrƒÚPY_SOURCE_EXTSÚexistsr2)r=rÃÚbaseÚorig_extÚextÚ source_paths r*Úget_source_filerËêsµ€õŒw�ŠÕ2°8Ñ<Ô<Ñ=Ô=€HÝ”W×%Ò% hÑ/Ô/�N€Dˆ(ÝððˆØ�o�o �o�oˆ Ý Œ7�>Š>˜+Ñ &Ô &ð ØÐ Ð Ð ð àð˜hð­2¬7¯>ª>¸$Ñ+?Ô+?ðØˆ Ý �xÑ Ô Ð r,cór—|sdStj |¦«ddd…tvS)z5Return: True if the filename is a python source file.Fr§N)r'r!rƒrÅ©r=s r*Úis_python_sourcerÎs8€à ð؈uÝ Œ7× Ò ˜HÑ %Ô % aÔ (¨¨¨Ô ,µÐ >Ð>r,ÚmodnamecóF—| d¦«dtvS)z6Return: True if the modname is in the standard libraryrkr)r…r)rÏs r*Úis_stdlib_modulerÑs€à �=Š=˜Ñ Ô ˜aÔ Õ$7Ð 7Ð7r,ústr | Iterable[str]cóJ‡—| d¦«d} t|g¦«Šn#t$rYdSwxYw‰€dSt‰¦«Št |t ¦«r"‰ t|¦«¦«Stˆfd„|D¦«¦«S)a Try to determine if a module is imported from one of the specified paths :param modname: name of the module :param path: paths to consider :return: true if the module: - is located on the path listed in one of the directory in `paths` rkrFNc3ó\•K—|]&}‰ t|¦«¦«V—Œ'dSrR©r‚rU)r~Úentryr=s €r*ú z!module_in_path..(s:øèè€ÐSÐSÀUˆx×"Ò"Õ#8¸Ñ#?Ô#?Ñ@Ô@ÐSÐSÐSÐSÐSÐSr,) r…r¢r—r<Ú isinstancerr‚rUÚany)rÏr!r=s @r*Úmodule_in_pathrÚ sÀø€ð�mŠm˜CÑ Ô  Ô#€GðÝ$ g YÑ/Ô/ˆˆøÝ ðððàˆuˆuðøøøðÐàˆuݘxÑ(Ô(€Hå�$�ÑÔð@Ø×"Ò"Õ#8¸Ñ#>Ô#>Ñ?Ô?Ð?å ÐSÐSÐSÐSÈdÐSÑSÔSÑ SÔ SÐSs ž/¯ =¼=Ústd_pathúIterable[str] | Nonec󪇗tjdtd¬¦«| d¦«d} t |g¦«Šn#t $rYdSwxYw‰€t j|¦« St‰¦«ŠtD]'}‰  t|¦«¦«rdSŒ(|€t}tˆfd„|D¦«¦«S) a|Try to guess if a module is a standard python module (by default, see `std_path` parameter's description). :param modname: name of the module we are interested in :param std_path: list of path considered has standard :return: true if the module: - is located on the path listed in one of the directory in `std_path` - is a built-in module zWis_standard_module() is deprecated. Use, is_stdlib_module() or module_in_path() insteadr$)Ú stacklevelrkrFNc3ó\•K—|]&}‰ t|¦«¦«V—Œ'dSrRrÕ)r~r!r=s €r*r×z%is_standard_module..Qs:øèè€ÐUÐUÀDˆx×"Ò"Õ#8¸Ñ#>Ô#>Ñ?Ô?ÐUÐUÐUÐUÐUÐUr,)ÚwarningsÚwarnÚDeprecationWarningr…r¢r—rrvr<Ú EXT_LIB_DIRSr‚rUÚ STD_LIB_DIRSrÙ)rÏrÛr!r=s @r*Úis_standard_modulerå+s ø€õ „MØaÝØðñôðð �mŠm˜CÑ Ô  Ô#€GðÝ$ g YÑ/Ô/ˆˆøÝ ððððˆuˆuðøøøð ÐåÔ$ WÑ-Ô-Ð-Ð-ݘxÑ(Ô(€HÝððˆØ × Ò Õ4°TÑ:Ô:Ñ ;Ô ;ð Ø�5�5ð àÐ݈å ÐUÐUÐUÐUÈHÐUÑUÔUÑ UÔ UÐUsºA Á AÁAÚ from_filecó:—tj |¦«stj |¦«}|tjvrdSt t jj  |  dd¬¦«d|g¦«¦«S)a6Return true if the given module name is relative to the given file name. :param modname: name of the module we are interested in :param from_file: path of the module from which modname has been imported :return: true if the module has been imported relatively to `from_file` Frkr§)Úmaxsplitr) r'r!Úisdirr«r%r?r]Ú machineryÚ PathFinderÚ find_specr…)rÏræs r*Ú is_relativeríTs†€õ Œ7�=Š=˜Ñ #Ô #ð/Ý”G—O’O IÑ.Ô.ˆ Ø•C”HÐÐØˆuÝ ÝÔÔ&×0Ò0Ø �MŠM˜#¨ˆMÑ *Ô *¨1Ô -° ¨{ñ ô ñ ô ðr,r±cóø—|sJ‚d}|�K tj||g¦«}|j}nA#t$rtj||¦«}|j}YnwxYwtj||¦«}|jtjjkrj |j€J‚t|j¦«}| |tjj ¬¦«S#t$r| |¬¦«cYSwxYw|jtjj kr| d¬¦«S|jtjj krC|j€J‚t|j¦«}| |tjj ¬¦«S|S)zÄGiven a mod path (i.e. split module / package name), return the corresponding spec. this function is used internally, see `file_from_modpath`'s documentation for more information N)r¡rª)r¡)rrìr¡r—rªr¯Ú PY_COMPILEDrËÚ_replacer°r2Ú C_BUILTINÚ PKG_DIRECTORYru)rpr!r±r¡Ú found_specs r*r¬r¬nsš€ð €N€Nˆ7Ø€HØÐð +Ýœ¨°'°Ñ;Ô;ˆJØ!Ô*ˆHˆHøÝð +ð +ð +Ýœ¨°Ñ6Ô6ˆJØ!Ô*ˆHˆHˆHð +øøøõ”^ G¨TÑ2Ô2ˆ Ø„�$œ/Ô5Ò5Ð5ð :ØÔ&Ð2Ð2Ð2Ý& zÔ':Ñ;Ô;ˆHØ×&Ò&Ø!­¬Ô(Að'ñôð øõð :ð :ð :Ø×&Ò&°Ð&Ñ9Ô9Ð 9Ð 9Ð 9ð :øøøà Œ�DœOÔ5Ò 5Ð 5à×"Ò"¨DÐ"Ñ1Ô1Ð1Ø Œ�DœOÔ9Ò 9Ð 9ØÔ"Ð.Ð.Ð.ݘZÔ0Ñ1Ô1ˆØ×"Ò"¨H½4¼?Ô;TÐ"ÑUÔUÐUØ Ðs"Š(¨&AÁAÂACà C*Ã)C*có,—| d¦«S)zlReturn true if the given filename should be considered as a python file. .pyc and .pyo are ignored )rAz.soz.pydz.pyw)ÚendswithrÍs r*r¾r¾—s€ð × Ò Ð;Ñ <Ô <Њ>˜+¨Ñ+¨cÑ1Ñ 2Ô 2ð +Ø Ñ$ sÑ*Ð *Ð *Ð *ð +à ˆ4r,Úspecobjcó6—|jtjjkSrR)rªrr¯Ú PY_NAMESPACE©rûs r*rvrvªs€Ø Œ<�4œ?Ô7Ò 7Ð7r,có6—|jtjjkSrR)rªrr¯ròrþs r*Ú is_directoryr®s€Ø Œ<�4œ?Ô8Ò 8Ð8r,Ú module_nameÚpackage_whitelistúset[str]c 󤇇—| d¦«Štˆˆfd„tdt‰¦«dz¦«D¦«¦«S)z¶ Returns True if one part of the module name is in the package whitelist. >>> is_module_name_part_of_extension_package_whitelist('numpy.core.umath', {'numpy'}) True rkc3óV•K—|]#}d ‰d|…¦«‰vV—Œ$dS)rkN)r()r~Úxrris €€r*r×zEis_module_name_part_of_extension_package_whitelist..¼sNøèè€ððØ56ˆ�Š��r˜�r”ÑÔÐ0Ð0ððððððr,r§)r…rÙrµr„)rrris `@r*Ú2is_module_name_part_of_extension_package_whitelistr²skøø€ð × Ò ˜cÑ "Ô "€EÝ ðððððÝ:?ÀÅ3ÀuÁ:Ä:ÐPQÁ>Ñ:RÔ:Rðñôñ ô ðr,)r!rr"r)r=rr>r?r"r)rGrHrIrJrKrJr"rL)rVrr"rW)rirHr"rW)rmrr"rW)r!rrrrJr"r?)r=rrzrr"r{)NN)r=rr!r�rŽr�r"rJrR)r=rr!r�r"rJ)rprJr!r�r�ržr"rž)rprJr!r�r�ržr"r£)rVrr�ržr"r)F)rºrrGrHr»r?r"rJ)r=rrÃr?r"r)r=ržr"r?)rÏrr"r?)rÏrr!rÒr"r?)rÏrrÛrÜr"r?)rÏrrærr"r?)rprJr!r�r±ržr"r£)r=rr"r?)rÀrr"rž)rûr£r"r?)rrrrr"r?)\r6Ú __future__rr]Úimportlib.machineryÚimportlib.utilr[r”Úloggingr'r%Ú sysconfigÚtypesràÚcollections.abcrrrÚ contextlibrrÚ functoolsr Úpathlibr Ú astroid.constr r r Úastroid.interpreter._importrrrÚastroid._backport_stdlib_namesÚ getLoggerr3r`Úplatformr‚rÅÚPY_COMPILED_EXTSÚget_pathrär©Úaddr!r(r Ú real_prefixÚAttributeErrorÚbase_exec_prefixr&rÚparentÚ__annotations__r+ÚmaxsizerãÚdictÚfromkeysÚbuiltin_module_namesr´Ú Exceptionr2r<rFrPrSrUrhrlrqryrŒr›ror¢r r¹rÂrËrÎrÑrÚrårír¬r¾rurvrrr7r,r*úr$sˆðð ð ð ð#Ð"Ð"Ð"Ð"Ð"àÐÐÐØÐÐÐØÐÐÐØ € € € ØÐÐÐØ€€€Ø € € € Ø € € € ØÐÐÐØ € € € Ø€€€Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØÐÐÐÐÐØÐÐÐÐÐà8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à ðCØ'Ð'Ð'Ð'Ð'Ð'Ð'àBÐBÐBÐBÐBÐBà ˆÔ ˜8Ñ $Ô $€ð„<×Ò˜5Ñ!Ô!ðØ"€NØ%ÐÐà€NØÐð #� Ô" 8Ñ,Ô,Ð.@¨iÔ.@ÀÑ.NÔ.NÐO€ à„7ˆd‚?€?Ø×Ò�R”W—\’\ #¤*¨fÑ5Ô5Ñ6Ô6Ð6ð ð ×Ò˜œŸš c¤o°vÑ>Ô>Ñ?Ô?Ð?Ð?øØ ðððð Ø × Ò ˜RœWŸ\š\¨#Ô*>ÀÑGÔGÑ HÔ HÐ HÐ HøØð ð ð Ø ˆDð øøøøøð øøøð ð ˆsÔ &Ò(Ð(ð×Ò�S�S˜˜Ð0˜iÔ0°Ñ:Ô:Ñ;Ô;ÔBÀZÑOÑPÔPÑQÔQÐQØ×Ò�S�S˜˜Ð0˜iÔ0°Ñ:Ô:Ñ;Ô;ÔBÀ^ÑSÑTÔTÑUÔUÐUð×Ò�S�S˜˜Ð0˜iÔ0°Ñ>Ô>Ñ?Ô?ÔFÈÑSÑTÔTÑUÔUÐUØ×ÒØ ˆˆDˆDÐ#�Ô# LÑ1Ô1Ñ 2Ô 2Ô 9¸NÑ JÑKÔKñôðð„7ˆgÒÐð Ø”oˆÐ%Ð%Ð%Ñ%Ð%øØ ðððØ”ˆˆˆðøøøð7ð7ð7ð7ð×Ò�[�[ Ñ'Ô'Ñ(Ô(Ð(Ø „{�UÒÐð ×Ò˜˜ WÑ-Ô-Ñ.Ô.Ð.à"� Ô" 9Ñ-Ô-Ð/A¨yÔ/AÀ)Ñ/LÔ/LÐM€ Ø—-’- Ô 8¸$Ñ?Ô?€ððððð�9ñôðð 4ð4ð4ð4ð:Cðððððð 'ð 'ð 'ð 'ð €�„ð!ð!ð!ñ „ð!ð(ð(ð(ð(ð"ð"ð"ð"ðJ 2ð 2ð 2ð 2ð -ð -ð -ð -ð ð ð ð ð"ð"ð"ð"ðN"&Ø=Aðððððð4SðSðSðSðSð."&Ø#ðHðHðHðHðHð"&Ø#ð06ð06ð06ð06ð06ðf:ð:ð:ð:ð:ð|DIð ð ð ð ð ðF!ð!ð!ð!ð!ð.?ð?ð?ð?ð8ð8ð8ð8ð TðTðTðTð<&Vð&Vð&Vð&Vð&VðRðððð8"&Øð&ð&ð&ð&ð&ðR=ð=ð=ð=ððððð8ð8ð8ð8ð9ð9ð9ð9ð ð ð ð ð ð sHÄ3D;Ä;FÅ3E5Å4FÅ5E=Å:FÅ<E=Å=FÆFÊ J Ê J/Ê.J/