OwlCyberSecurity - MANAGER
Edit File: modulefinder.cpython-38.opt-1.pyc
U ����e5dn_����������������������@���s��d�Z�ddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ejd�Zejd�Z ejd�Zejd�ZeefZejZdZdZdZd Zd ZdZdZi�Zd d��Zi�Zdd��Zddd�ZG�dd��d�ZG�dd��d�Zdd��Z e!dk�rz e ��Z"W�n�e#k �r���e$d��Y�nX�dS�)z3Find modules used by a script, using introspection.�����N� LOAD_CONST�IMPORT_NAME� STORE_NAME�STORE_GLOBAL������������������������c�����������������C���s���t��|�g���|��d�S��N)�packagePathMap� setdefault�append)Zpackagename�path��r����$/usr/lib64/python3.8/modulefinder.py�AddPackagePath(���s����r���c�����������������C���s���|t�|�<�d�S�r���)�replacePackageMap)Zoldname�newnamer���r���r����ReplacePackage3���s����r���c�����������������C���s��t�jj����t�jj�|�|�}|dkr8tdj|�d�|�d��|jt�jjkrVddddt ffS�|jt�jj krtddddtffS�|j}|j� |��r�dtj�|�ddtffS�t|jt�jj�r�t}n<t|jt�jj�r�t}n&t|jt�jj�r�t}nddddtffS�t�|�}tj�|�d�}|||d|ffS�)zDAn importlib reimplementation of imp.find_module (for our purposes).NzNo module named {name!r})�name������rb)� importlib� machinery� PathFinder�invalidate_caches� find_spec�ImportError�format�loader�BuiltinImporter� _C_BUILTIN�FrozenImporter� _PY_FROZEN�origin� is_package�osr����dirname�_PKG_DIRECTORY� isinstance�SourceFileLoader� _PY_SOURCE�ExtensionFileLoader�_C_EXTENSION�SourcelessFileLoader�_PY_COMPILED� _SEARCH_ERROR�io� open_code�splitext)r���r����specZ file_pathZkind�file�suffixr���r���r����_find_module7���s*���� r:���c�������������������@���s���e�Zd�Zddd�Zdd��ZdS�)�ModuleNc�����������������C���s(���||�_�||�_||�_d�|�_i�|�_i�|�_d�S�r���)�__name__�__file__�__path__�__code__�globalnames�starimports)�selfr���r8���r���r���r���r����__init__f���s����zModule.__init__c�����������������C���sL���d|�j�f�}|�jd�k r&|d|�jf��}|�jd�k r@|d|�jf��}|d�}|S�)Nz Module(%rz, %r�))r<���r=���r>���)rB����sr���r���r����__repr__s���s���� zModule.__repr__)NN)r<���� __module__�__qualname__rC���rF���r���r���r���r���r;���d���s��� r;���c�������������������@���s����e�Zd�Zd6dd�Zdd��Zdd��Zd d ��Zdd��Zd d��Zd7dd�Z d8dd�Z dd��Zdd��Zd9dd�Z dd��Zdd��Zdd��Zd d!��Zd:d"d#�Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd;d,d-�Zd.d/��Zd0d1��Zd2d3��Zd4d5��ZdS�)<�ModuleFinderNr���c�����������������C���sZ���|d�krt�j}||�_i�|�_i�|�_||�_d|�_|d�k r8|ng�|�_|d�k rJ|ng�|�_g�|�_d�S�)Nr���) �sysr����modules� badmodules�debug�indent�excludes� replace_paths�processed_paths)rB���r���rM���rO���rP���r���r���r���rC���~���s����zModuleFinder.__init__c�����������������G���sV���||�j�krRt|�j�D�]}tddd��qt|dd��|D�]}tt|�dd��q6t���d�S�)N� � ��end)rM����rangerN����print�repr)rB����level�str�args�i�argr���r���r����msg����s���� zModuleFinder.msgc�����������������G���s,���|d�}||�j�kr(|�jd�|�_|�j|���d�S��Nr���r����rM���rN���r^����rB���r[���rY���r���r���r����msgin����s���� zModuleFinder.msginc�����������������G���s,���|d�}||�j�kr(|�jd�|�_|�j|���d�S�r_���r`���ra���r���r���r����msgout����s���� zModuleFinder.msgoutc�������������� ���C���sB���|���dd|��t�|�� }ddtf}|��d|||��W�5�Q�R�X�d�S�)Nr���� run_scriptr���r����__main__)r^���r4���r5���r.����load_module)rB����pathname�fp�stuffr���r���r���rd�������s���� zModuleFinder.run_scriptc�������������� ���C���sT���t�j�|�\}}t�j�|�\}}t�|�� }|dtf}|��||||��W�5�Q�R�X�d�S�)Nr���)r)���r����splitr6���r4���r5���r.���rf���)rB���rg����dirr���Zextrh���ri���r���r���r���� load_file����s ���� zModuleFinder.load_filer���c����������� ������C���s\���|���dd||||��|�j||d�}|��||�\}}|��||�}|sF|S�|jrX|��||��d�S�)Nr����import_hook�rY���)r^����determine_parent�find_head_package� load_tailr>����ensure_fromlist) rB���r����caller�fromlistrY����parent�q�tail�mr���r���r���rm�������s����zModuleFinder.import_hookc�����������������C���s&��|���dd||��|r|dkr,|��dd��d�S�|j}|dkr�|jrH|d8�}|dkrl|�j|�}|��dd|��|S�|�d�|k�r�td��d�|�d�d�|����}|�j|�}|��dd|��|S�|jr�|�j|�}|��dd|��|S�d|k�r|� d�}|d�|��}|�j|�}|��dd|��|S�|��dd��d�S�) N����ro���r���zdetermine_parent -> Noner���zdetermine_parent ->�.zrelative importpath too deep) rb���rc���r<���r>���rK����countr ����joinrj����rfind)rB���rs���rY���Zpnameru���r\���r���r���r���ro�������s<���� zModuleFinder.determine_parentc�����������������C���s����|���dd||��d|kr@|�d�}|d�|��}||d�d���}n|}d}|r\d|j|f�}n|}|��|||�}|r�|��dd||f��||fS�|r�|}d�}|��|||�}|r�|��dd||f��||fS�|��dd|��td |���d�S�) Nry���rp���rz���r���r����%s.%szfind_head_package ->�"raise ImportError: No module named�No module named )rb����findr<���� import_modulerc���r ���)rB���ru���r���r\����headrw���Zqnamerv���r���r���r���rp�������s.���� zModuleFinder.find_head_packagec�����������������C���s����|���dd||��|}|r�|�d�}|dk�r2t|�}|d�|��||d�d����}}d|j|f�}|��|||�}|s|��dd|��td|���q|��dd |��|S�) Nry���rq���rz���r���r���r~���r���r����zload_tail ->)rb���r�����lenr<���r����rc���r ���)rB���rv���rw���rx���r\���r����Zmnamer���r���r���rq�������s���� �zModuleFinder.load_tailc�����������������C���s����|���dd|||��|D�]d}|dkrD|sz|��|�}|rz|��||d��qt||�sd|j|f�}|��|||�}|std|���qd�S�)Nry���rr����*r���r~���r����)r^����find_all_submodulesrr����hasattrr<���r����r ���)rB���rx���rt���� recursive�sub�all�subnameZsubmodr���r���r���rr�����s���� zModuleFinder.ensure_fromlistc����������� ��� ���C���s����|j�s d�S�i�}g�}|tjjd�d���7�}|tjjd�d���7�}|tjjd�d���7�}|j�D�]�}zt�|�}W�n&�tk r����|�� dd|��Y�qTY�nX�|D�]R}d�}|D�]0}t |�} || �d���|kr�|d�| ���}�q�q�|r�|dkr�|||<�q�qT|���S�)Nr���zcan't list directoryrC���)r>���r���r����EXTENSION_SUFFIXES�SOURCE_SUFFIXES�BYTECODE_SUFFIXESr)����listdir�OSErrorr^���r�����keys) rB���rx���rK����suffixesrk����namesr����modZsuff�nr���r���r���r������s.���� z ModuleFinder.find_all_submodulesc�����������������C���s ��|���dd|||��z|�j|�}W�n�tk r4���Y�nX�|��dd|��|S�||�jkrb|��dd��d�S�|r�|jd�kr�|��dd��d�S�z|��||o�|j|�\}}}W�n$�tk r����|��ddd���Y�d�S�X�z|�� ||||�}W�5�|r�|����X�|r�t |||��|��dd|��|S�)Nr���r����zimport_module ->zimport_module -> None)rb���rK����KeyErrorrc���rL���r>����find_moduler ����closerf����setattr)rB���Zpartname�fqnameru���rx���rh���rg���ri���r���r���r���r����.��s:���� �� zModuleFinder.import_modulec�������������� ���C���s(��|\}}}|���dd||od|��|tkrF|��||�}|��dd|��|S�|tkr`t|���|d�} n||tkr�z|���} tj � | |i���W�n:�tk r��}�z|��ddt|��|����W�5�d�}~X�Y�nX�t �t| �dd����} nd�} |��|�}||_| �r|�j�r|��| �} | |_|��| |��|��dd|��|S�)Nr���rf���rh���zload_module ->�execzraise ImportError: ����)rb���r+����load_packagerc���r.����compile�readr2���r����_bootstrap_external� _classify_pycr ���rZ����marshal�loads� memoryview� add_moduler=���rP����replace_paths_in_coder?���� scan_code)rB���r����rh���rg���� file_infor9����mode�typerx����co�data�excr���r���r���rf���N��s4���� zModuleFinder.load_modulec�����������������C���s<���||�j�kri�|�j�|<�|r*d|�j�|�|j<�nd|�j�|�d<�d�S�)Nr����-)rL���r<���)rB���r���rs���r���r���r����_add_badmodulek��s ���� zModuleFinder._add_badmodulec�����������������C���sB��||�j�kr|��||��d�S�z|�j|||d��W�n~�tk rn�}�z"|��ddt|���|��||��W�5�d�}~X�Y�n��tk r��}�z"|��ddt|���|��||��W�5�d�}~X�Y�n�X�|�r>|D�]�}|d�|�}||�j�kr�|��||��q�z|�j|||g|d��W�q��tk �r:�}�z"|��ddt|���|��||��W�5�d�}~X�Y�q�X�q�d�S�)Nrn���r���zImportError:zSyntaxError:rz���)rL���r����rm���r ���r^���rZ����SyntaxError)rB���r���rs���rt���rY���r^���r�����fullnamer���r���r����_safe_import_hooks��s,���� zModuleFinder._safe_import_hookc�����������������c���s����|j�}|j}|j}dd��t�|�D��}t|�D�]�\}\}}|tkrTd||�ffV��q.|tkr.|dkr.||d��d�||d��d���kr�tkr.n�q.|||d��d��} |||d��d��} | dkr�d| ||�ffV��q.d| | ||�ffV��q.q.d�S�) Nc�����������������S���s"���g�|�]\}}}|t�kr||f�qS�r���)�EXTENDED_ARG)�.0�_�opr]���r���r���r���� <listcomp>���s�����z-ModuleFinder.scan_opcodes.<locals>.<listcomp>�storer���r���r����absolute_import�relative_import) �co_code�co_names� co_consts�disZ_unpack_opargs� enumerate� STORE_OPSr���r���)rB���r�����coder�����constsZopargsr\���r����ZopargrY���rt���r���r���r����scan_opcodes���s(������� zModuleFinder.scan_opcodesc�����������������C���s���|j�}|�j}||�D��]F\}}|dkr8|\}d|j|<�q|dk�r|\}}d} |d�k rpd|krbd} dd��|D��}|�j|||dd��| �r\d�} |jr�|�j�|jd �|��} | d�kr�|�j�|�} | d�k r�|j�| j��|j �| j ��| j d�kr�d|j |<�n d|j |<�q|d k�rT|\}}}|�r0|�j||||d��n"|�j||d�}|�j|jd�|dd��qt|��q|j D�]"} t| t|���rd|��| |���qdd�S�)Nr����r���r����r���r����c�����������������S���s���g�|�]}|d�kr|�qS�)r����r���)r�����fr���r���r���r�������s������z*ModuleFinder.scan_code.<locals>.<listcomp>rn���rz���r����)r����r����r@���r����r>���rK����getr<����updaterA���r?���ro����RuntimeErrorr����r,���r����r����)rB���r����rx���r�����scannerZwhatr[���r���rt���Z have_starZmmrY���ru����cr���r���r���r�������sH���� zModuleFinder.scan_codec�����������������C���s����|���dd||��t�|�}|r"|}|��|�}||_|g|_|jt�|g���|_|��d|j�\}}}z&|�� ||||��|�� dd|��|W��S�|r�|����X�d�S�)Nr���r����rC���zload_package ->)rb���r���r����r����r=���r>���r ���r����r����rf���rc���)rB���r����rg���r���rx���rh���Zbufri���r���r���r���r�������s���� zModuleFinder.load_packagec�����������������C���s*���||�j�kr|�j�|�S�t|��|�j�|<�}|S�r���)rK���r;���)rB���r����rx���r���r���r���r�������s���� zModuleFinder.add_modulec�����������������C���sn���|d�k r|j�d�|�}n|}||�jkr<|��dd|��t|��|d�krd|tjkr^d�d�ddtffS�|�j}t||�S�)Nrz���r���zfind_module -> Excludedr���) r<���rO���rc���r ���rJ����builtin_module_namesr$���r���r:���)rB���r���r���ru���r����r���r���r���r�������s���� zModuleFinder.find_modulec�����������������C���s��t����t�dd���t�dd���t|�j����}|D�]B}|�j|�}|jrRt�ddd��nt�ddd��t�d|�|jpnd ��q0|����\}}|r�t����t�d ��|D�]*}t|�j|�����}t�d|dd �|���q�|�rt����t�ddd��t�d��|D�]*}t|�j|�����}t�d|dd �|���q�dS�)z�Print a report to stdout, listing the found modules with their paths, as well as modules that are missing, or seem to be missing. z %-25s %s)�NameZFile)�----r�����PrS���rT���rx���z%-25sr���zMissing modules:�?z imported fromz, z7Submodules that appear to be missing, but could also bez#global names in the parent package:N) rW����sortedrK���r����r>���r=����any_missing_mayberL���r|���)rB���r�����keyrx����missing�mayber���Zmodsr���r���r����report���s0���� zModuleFinder.reportc�����������������C���s���|�����\}}||�S�)z�Return a list of modules that appear to be missing. Use any_missing_maybe() if you want to know which modules are certain to be missing, and which *may* be missing. )r����)rB���r����r����r���r���r����any_missing"��s����zModuleFinder.any_missingc�����������������C���s����g�}g�}|�j�D�]�}||�jkrq|�d�}|dk�r<|�|��q||d�d��}|d|��}|�j�|�}|dk r�||�j�|�kr�|�|��q�||jkr�q�|jr�|�|��q�|�|��q|�|��q|����|����||fS�)a���Return two lists, one with modules that are certainly missing and one with modules that *may* be missing. The latter names could either be submodules *or* just global names in the package. The reason it can't always be determined is that it's impossible to tell which names are imported when "from module import *" is done with an extension module, short of actually importing it. rz���r���r���N) rL���rO���r}���r���rK���r����r@���rA����sort)rB���r����r����r���r\���r����ZpkgnameZpkgr���r���r���r����*��s0���� zModuleFinder.any_missing_maybec�����������������C���s����t�j�|j��}}|�jD�]*\}}|�|�r||t|�d����}�qDq|�jr�||�jkr�||krr|�� dd||f���n|�� dd|f���|�j� |��t|j�}t t|��D�](}t||�t|��r�|��||��||<�q�|jt|�|d�S�)Nr���zco_filename %r changed to %rz co_filename %r remains unchanged)r�����co_filename)r)���r����normpathr����rP���� startswithr����rM���rQ���rc���r����listr����rV���r,���r����r�����replace�tuple)rB���r����Znew_filenameZoriginal_filenamer�����rr����r\���r���r���r���r����X��s&���� �� z"ModuleFinder.replace_paths_in_code)Nr���NN)NNr���)r���)r���)r���)N)r<���rG���rH���rC���r^���rb���rc���rd���rl���rm���ro���rp���rq���rr���r����r����rf���r����r����r����r����r����r����r����r����r����r����r����r���r���r���r���rI���|���s2��� # 1 ".rI���c��������������� ���C���s���dd�l�}�z|���tjdd���d�\}}W�n2�|�jk rX�}�zt|��W�Y��d�S�d�}~X�Y�nX�d}d}g�}g�}|D�]Z\}} |dkr�|d�}|dkr�d}|dkr�|| �tj��}|dkr�d}|dkrn|�| ��qn|s�d } n|d�} tj d�d���}tj � | �|d<�||�}|dk�r.td ��|D�]}tdt|����qt|||�} |dd���D�]`}|dk�r\d}�qF|�r�|dd���d k�r�| � |d�d��d�dg��n | � |��n | �|���qF| �| ��| ����| S�)Nr���r���zdmp:qx:z-dz-mz-pz-qz-xzhello.pyzpath:rR������z.*r����)�getoptrJ����argv�errorrW���rj���r)����pathsepr���r���r*���rX���rI���rm���rl���rd���r����)r����Zoptsr[���r^���rM���ZdomodsZaddpathZexclude�o�aZscriptr����item�mfr]���r���r���r����testp��sX���� r����re���z [interrupted])N)%�__doc__r����Zimportlib._bootstrap_externalr����importlib.machineryr����r)���r4���rJ����types�warningsZopmapr���r���r���r���r����r����r3���r.���r2���r0���r+���r$���r&���r ���r���r���r���r:���r;���rI���r����r<���r�����KeyboardInterruptrW���r���r���r���r����<module>���sL��� -���w;