CasperSecurity

Current Path : /usr/lib/python3.10/__pycache__/
Upload File :
Current File : //usr/lib/python3.10/__pycache__/modulefinder.cpython-310.pyc

o

`�wiQ_�@s
dZddlZddlZddlZddlZddlZddlZddlZej	dZ
ej	dZej	dZej	dZ
ee
fZejZdZdZdZd	Zd
ZdZdZiZd
d�ZiZdd�Zddd�ZGdd�d�ZGdd�d�Zdd�Zedkr�ze�Z WdSe!y�e"d�YdSwdS)z3Find modules used by a script, using introspection.�N�
LOAD_CONST�IMPORT_NAME�
STORE_NAME�STORE_GLOBAL������cCst�|g��|�dS�N)�packagePathMap�
setdefault�append)�packagename�path�r�#/usr/lib/python3.10/modulefinder.py�AddPackagePath&srcCs|t|<dSr)�replacePackageMap)�oldname�newnamerrr�ReplacePackage1srcCstjj��tjj�||�}|durtdj|d�|d��|jtjjur+ddddt	ffS|jtjj
ur:ddddtffS|j}|j�
|�rOdtj�|�ddtffSt|jtjj�rZt}nt|jtjj�ret}nt|jtjj�rpt}nddddtffSt�|�}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)rr�spec�	file_path�kind�file�suffixrrr�_find_module5s*
r>c@seZdZddd�Zdd�ZdS)�ModuleNcCs(||_||_||_d|_i|_i|_dSr)�__name__�__file__�__path__�__code__�globalnames�starimports)�selfrr<rrrr�__init__ds
zModule.__init__cCsLd|jf}|jdur|d|jf}|jdur |d|jf}|d}|S)Nz	Module(%rz, %r�))r@rArB)rF�srrr�__repr__qs

zModule.__repr__)NN)r@�
__module__�__qualname__rGrJrrrrr?bs

r?c@s�eZdZd6dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zd7dd�Z	d8dd�Z
dd�Zdd�Zd9dd�Z
dd�Zdd�Zdd�Zd d!�Zd8d"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd:d,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�ZdS);�ModuleFinderNrcCsZ|durtj}||_i|_i|_||_d|_|dur|ng|_|dur%|ng|_g|_dS)Nr)	�sysr�modules�
badmodules�debug�indent�excludes�
replace_paths�processed_paths)rFrrQrSrTrrrrG|s
zModuleFinder.__init__cGsZ||jkr+t|j�D]}tddd�q
t|dd�|D]
}tt|�dd�qt�dSdS)N�   � ��end)rQ�rangerR�print�repr)rF�level�str�args�i�argrrr�msg�s

�zModuleFinder.msgcGs0|d}||jkr|jd|_|j|�dSdS�Nrr�rQrRrb�rFr_r]rrr�msgin��

�zModuleFinder.msgincGs0|d}||jkr|jd|_|j|�dSdSrcrdrerrr�msgout�rgzModuleFinder.msgoutcCsX|�dd|�t�|��}ddtf}|�d|||�Wd�dS1s%wYdS)Nr�
run_scriptrr�__main__)rbr6r7r0�load_module)rF�pathname�fp�stuffrrrri�s

"�zModuleFinder.run_scriptcCsjtj�|�\}}tj�|�\}}t�|��}|dtf}|�||||�Wd�dS1s.wYdS)Nr)r+r�splitr8r6r7r0rk)rFrl�dirr�extrmrnrrr�	load_file�s
"�zModuleFinder.load_filerc	Cs\|�dd||||�|j||d�}|�||�\}}|�||�}|s#|S|jr,|�||�dS)Nr�import_hook�r])rb�determine_parent�find_head_package�	load_tailrB�ensure_fromlist)	rFr�caller�fromlistr]�parent�q�tail�mrrrrs�szModuleFinder.import_hookcCsJ|�dd||�|r|dkr|�dd�dS|j}|dkrb|jr$|d8}|dkr<|j|}||us3J�|�dd|�|S|�d�|krGtd��d�|�d�d|��}|j|}|�dd|�|S|jry|j|}||uspJ�|�dd|�|Sd|vr�|�	d�}|d|�}|j|}|j|ks�J�|�dd|�|S|�dd�dS)	N�rurzdetermine_parent -> Nonerzdetermine_parent ->�.zrelative importpath too deep)
rfrhr@rBrO�countr"�joinro�rfind)rFryr]�pnamer{r`rrrru�sB




zModuleFinder.determine_parentcCs�|�dd||�d|vr |�d�}|d|�}||dd�}n|}d}|r.d|j|f}n|}|�|||�}|rF|�dd||f�||fS|rb|}d}|�|||�}|rb|�dd||f�||fS|�dd|�td	|��)
Nrrvr�rr�%s.%szfind_head_package ->�"raise ImportError: No module named�No module named )rf�findr@�
import_modulerhr")rFr{rr`�headr}�qnamer|rrrrv�s.
zModuleFinder.find_head_packagecCs�|�dd||�|}|rG|�d�}|dkrt|�}|d|�||dd�}}d|j|f}|�|||�}|sE|�dd|�td|��|s|�dd	|�|S)
Nrrwr�rrr�r�r�zload_tail ->)rfr��lenr@r�rhr")rFr|r}r~r`r��mnamerrrrw�s
�	zModuleFinder.load_tailcCs�|�dd|||�|D]2}|dkr"|s!|�|�}|r!|�||d�qt||�s=d|j|f}|�|||�}|s=td|��qdS)Nrrx�*rr�r�)rb�find_all_submodulesrx�hasattrr@r�r")rFr~rz�	recursive�sub�all�subname�submodrrrrxs
�
��zModuleFinder.ensure_fromlistc
	Cs�|jsdSi}g}|tjjdd�7}|tjjdd�7}|tjjdd�7}|jD]F}zt�|�}WntyC|�	dd|�Yq*w|D])}d}|D]}t
|�}	||	d�|krd|d|	�}nqL|ro|dkro|||<qFq*|��S)Nrzcan't list directoryrG)rBrr�EXTENSION_SUFFIXES�SOURCE_SUFFIXES�BYTECODE_SUFFIXESr+�listdir�OSErrorrbr��keys)
rFr~rO�suffixesrp�namesr�mod�suff�nrrrr�s6
����	z ModuleFinder.find_all_submodulescCs|�dd|||�z|j|}Wn	tyYn
w|�dd|�|S||jvr0|�dd�dS|r?|jdur?|�dd�dSz|�||oG|j|�\}}}Wnty_|�ddd�YdSwz|�||||�}W|rp|�	�n|rx|�	�ww|r�t
|||�|�dd|�|S)Nrr�zimport_module ->zimport_module -> None)rfrO�KeyErrorrhrPrB�find_moduler"rk�close�setattr)rF�partname�fqnamer{r~rmrlrnrrrr�,sD�

����
�zModuleFinder.import_modulec
Cs|\}}}|�dd||o
d|�|tkr#|�||�}|�dd|�|S|tkr0t|��|d�}	n9|tkrgz|��}
tj	�
|
|i�WntyZ}z|�ddt|�|��d}~wwt
�t|
�dd��}	nd}	|�|�}||_|	r�|jr{|�|	�}	|	|_|�|	|�|�dd|�|S)Nrrkrmzload_module ->�execzraise ImportError: �)rfr-�load_packagerhr0�compile�readr4r�_bootstrap_external�
_classify_pycr"r^�marshal�loads�
memoryview�
add_modulerArT�replace_paths_in_coderC�	scan_code)rFr�rmrl�	file_infor=�mode�typer~�co�data�excrrrrkLs8
��

zModuleFinder.load_modulecCs>||jvr
i|j|<|rd|j||j<dSd|j|d<dS)Nr�-)rPr@)rFrryrrr�_add_badmoduleis


zModuleFinder._add_badmodulecCsJ||jvr
|�||�dSz
|j|||d�WnCty9}z|�ddt|��|�||�WYd}~dSd}~wtyZ}z|�ddt|��|�||�WYd}~dSd}~ww|r�|D]C}|d|}||jvrs|�||�q_z|j|||g|d�Wq_ty�}z|�ddt|��|�||�WYd}~q_d}~wwdSdS)NrtrzImportError:zSyntaxError:r�)rPr�rsr"rbr^�SyntaxError)rFrryrzr]rbr��fullnamerrr�_safe_import_hookqs:
���
���zModuleFinder._safe_import_hookccs��|j}|j}|j}dd�t�|�D�}t|�D]`\}\}}|tvr+d||ffVq|tkrx|dkrx||dd||ddkrItkrxnq|||dd}	|||dd}
|	dkrmd|
||ffVn
d|	|
||ffVqqdS)	NcSs"g|]
\}}}|tkr||f�qSr)�EXTENDED_ARG)�.0�_�oprarrr�
<listcomp>�s�z-ModuleFinder.scan_opcodes.<locals>.<listcomp>�storerrr�absolute_import�relative_import)	�co_code�co_names�	co_consts�dis�_unpack_opargs�	enumerate�	STORE_OPSrr)rFr��coder��consts�opargsr`r��opargr]rzrrr�scan_opcodes�s&�0��zModuleFinder.scan_opcodescCs||j}|j}||�D]�\}}|dkr|\}d|j|<q
|dkr~|\}}d}	|dur6d|vr/d}	dd�|D�}|j|||dd�|	r}d}
|jrQ|j�|jd	|�}
|
dur[|j�|�}
|
durx|j�|
j�|j	�|
j	�|
j
durwd|j	|<q
d|j	|<q
|d
kr�|\}}}|r�|j||||d�q
|j||d�}|j|jd|dd�q
t|��|j
D]}
t|
t|��r�|�|
|�q�dS)Nr�rr�rr�cSsg|]}|dkr|�qS)r�r)r��frrrr��sz*ModuleFinder.scan_code.<locals>.<listcomp>rtr�r�)r�r�rDr�rBrO�getr@�updaterErCru�RuntimeErrorr�r.r�r�)rFr�r~r��scanner�whatr_rrz�	have_star�mmr]r{�crrrr��sP

�
�

��zModuleFinder.scan_codecCs�|�dd||�t�|�}|r|}|�|�}||_|g|_|jt�|g�|_|�d|j�\}}}z|�||||�|�	dd|�|W|rJ|�
�SS|rR|�
�ww)Nrr�rGzload_package ->)rfrr�r�rArBr
r�rkrhr�)rFr�rlrr~rm�bufrnrrrr��s$


�
�zModuleFinder.load_packagecCs*||jvr
|j|St|�|j|<}|Sr)rOr?)rFr�r~rrrr��s

zModuleFinder.add_modulecCsn|dur|jd|}n|}||jvr|�dd|�t|��|dur2|tjvr/ddddtffS|j}t||�S)Nr�rzfind_module -> Excludedr)	r@rSrhr"rN�builtin_module_namesr&rr>)rFrrr{r�rrrr��s


zModuleFinder.find_modulecCst�tdd�tdd�t|j���}|D]!}|j|}|jr)tddd�ntddd�td||jp7d	�q|��\}}|rat�td
�|D]}t|j|���}td|dd
�|��qK|r�t�tddd�td�|D]}t|j|���}td|dd
�|��qrdSdS)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)�Name�File)�----r��PrWrXr~z%-25srzMissing modules:�?z
imported fromz, z7Submodules that appear to be missing, but could also bez#global names in the parent package:N)	r[�sortedrOr�rBrA�any_missing_mayberPr�)rFr��keyr~�missing�mayber�modsrrr�report�s4
�zModuleFinder.reportcCs|��\}}||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�)rFr�r�rrr�any_missing szModuleFinder.any_missingcCs�g}g}|jD]V}||jvrq|�d�}|dkr|�|�q||dd�}|d|�}|j�|�}|durX||j|vrC|�|�q||jvrIq|jrR|�|�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.
        r�rrN)	rPrSr�rrOr�rDrE�sort)rFr�r�rr`r��pkgname�pkgrrrr�(s0	




zModuleFinder.any_missing_maybecCs�tj�|j�}}|jD]\}}|�|�r!||t|�d�}nq|jrH||jvrH||kr9|�	dd||f�n	|�	dd|f�|j�
|�t|j�}t
t|��D]}t||t|��rg|�||�||<qS|jt|�|d�S)Nrzco_filename %r changed to %rz co_filename %r remains unchanged)r��co_filename)r+r�normpathr�rT�
startswithr�rQrUrhr�listr�rZr.r�r��replace�tuple)rFr��new_filename�original_filenamer��rr�r`rrrr�Vs*
���
�z"ModuleFinder.replace_paths_in_code)NrNN)NNr)r)rr)r@rKrLrGrbrfrhrirrrsrurvrwrxr�r�rkr�r�r�r�r�r�r�r�r�r�r�rrrrrMzs4
	

#
 
1
".rMc
Cs�ddl}z|�tjdd�d�\}}Wn|jy+}zt|�WYd}~dSd}~wwd}d}g}g}|D]-\}}	|dkrB|d}|dkrHd}|dkrT||	�tj�}|dkrZd}|dkrc|�|	�q6|sid	}
n|d}
tj	dd�}tj	�
|
�|d<||}|dkr�td
�|D]	}tdt|��q�t|||�}
|dd�D]+}|dkr�d}q�|r�|dd�d
kr�|
�
|dd�ddg�q�|
�
|�q�|
�|�q�|
�|
�|
��|
S)Nrrzdmp:qx:z-dz-mz-pz-qz-xzhello.pyzpath:rV���z.*r�)�getoptrN�argv�errorr[ror+�pathseprrr,r\rMrsrrrir�)r��optsr_rbrQ�domods�addpath�exclude�o�a�scriptr�item�mfrarrr�testns^��
�
rrjz
[interrupted]r)#�__doc__r��importlib._bootstrap_externalr�importlib.machineryr�r+r6rN�opmaprrrrr�r�r5r0r4r2r-r&r(r
rrrr>r?rMrr@r�KeyboardInterruptr[rrrr�<module>sN




-w;��
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY