Spade
Mini Shell
3
\�)�
@s�dZddlmZmZmZmZmZmZmZm Z m
Z
yddlmZWnek
rXdZYnXddl
mZmZmZmZddlmZddlmZddlmZddlZddlZddlZddlZddlZddlZejd ed
d�dZdZd
Z
d
Z!dZ"dZ#dZ$dZ%dZ&dZ'dd�Z(dd�Z)dd�Z*d8dd�Z+dd�Z,dd�Z-Gd
d!�d!�Z.Gd"d#�d#�Z/Gd$d%�d%e/ej0�Z1d9d&d'�Z2Gd(d)�d)e/e�Z3d:d*d+�Z4d,d-�Z5d.d/�Z6d;d0d1�Z7d2d3�Z8d4d5�Z9e�r�d<d6d7�Z:ndZ:dS)=z�This
module provides the components needed to build your own __import__
function. Undocumented functions are obsolete.
In most cases it is preferred you consider using the importlib
module's
functionality over this module.
�) � lock_held�acquire_lock�release_lock�get_frozen_object�is_frozen_package�init_frozen�
is_builtin� is_frozen�_fix_co_filename)�create_dynamicN)�_ERR_MSG�_exec�_load�_builtin_from_name)�SourcelessFileLoader)� machinery)�utilzhthe
imp module is deprecated in favour of importlib; see the module's
documentation for alternative uses�)�
stacklevel�������� cCs
tj|�S)z_**DEPRECATED**
Create a new module.
The module is not entered into sys.modules.
)�types�
ModuleType)�name�r �/usr/lib64/python3.6/imp.py�
new_module0sr"cCstjS)z@**DEPRECATED**
Return the magic number for .pyc files.
)r�MAGIC_NUMBERr r r r!� get_magic;sr$cCstjjS)z$Return
the magic tag for .pyc files.)�sys�implementation� cache_tagr r r
r!�get_tagCsr(c
Cs*tj��tjd�tj||�SQRXdS)a�**DEPRECATED**
Given the path to a .py file, return the path to its .pyc file.
The .py file does not need to exist; this simply returns the path to
the
.pyc file calculated as if the .py file were imported.
If debug_override is not None, then it must be a boolean and is used in
place of sys.flags.optimize.
If sys.implementation.cache_tag is None then NotImplementedError is
raised.
�ignoreN)�warnings�catch_warnings�simplefilterr�cache_from_source)�path�debug_overrider
r r!r-Hs
r-cCs
tj|�S)a~**DEPRECATED**
Given the path to a .pyc. file, return the path to its .py file.
The .pyc file does not need to exist; this simply returns the path to
the .py file calculated to correspond to the .pyc file. If path does
not conform to PEP 3147 format, ValueError will be raised. If
sys.implementation.cache_tag is None then NotImplementedError is
raised.
)r�source_from_cache)r.r r
r!r0[sr0cCs<dd�tjD�}dd�tjD�}dd�tjD�}|||S)z**DEPRECATED**cSsg|]}|dtf�qS)�rb)�C_EXTENSION)�.0�sr
r r!�
<listcomp>ksz
get_suffixes.<locals>.<listcomp>cSsg|]}|dtf�qS)�r)� PY_SOURCE)r3r4r
r r!r5lscSsg|]}|dtf�qS)r1)�PY_COMPILED)r3r4r r
r!r5ms)r�EXTENSION_SUFFIXES�SOURCE_SUFFIXES�BYTECODE_SUFFIXES)�
extensions�source�bytecoder r r!�get_suffixesisr?c@s
eZdZdZdd�Zdd�ZdS)�NullImporterz-**DEPRECATED**
Null import object.
cCs2|dkrtddd��ntjj|�r.td|d��dS)N�zempty
pathname)r.zexisting
directory)�ImportError�osr.�isdir)�selfr.r r
r!�__init__zszNullImporter.__init__cCsdS)zAlways returns
None.Nr )rE�fullnamer r
r!�find_module�szNullImporter.find_moduleN)�__name__�
__module__�__qualname__�__doc__rFrHr r r
r!r@rsr@cs.eZdZdZd�fdd� Z�fdd�Z�ZS)�_HackedGetDatazMCompatibility
support for 'file' arguments of various load_*()
functions.Ncst�j||�||_dS)N)�superrF�file)rErGr.rO)� __class__r
r!rF�sz_HackedGetData.__init__c sX|jrH||jkrH|jjs
|j}nt|jd�|_}|�
|j�SQRXnt�j|�SdS)z;Gross hack to contort loader to deal w/
load_*()'s bad
API.r6N)rOr.�closed�open�readrN�get_data)rEr.rO)rPr
r!rT�sz_HackedGetData.get_data)N)rIrJrKrLrFrT�
__classcell__r
r
)rPr!rM�srMc@seZdZdZdS)�_LoadSourceCompatibilityz5Compatibility
support for implementing load_source().N)rIrJrKrLr r r
r!rV�srVcCs\t|||�}tj|||d�}|tjkr8t|tj|�}nt|�}tj||�|_ |j |j
_|S)N)�loader)rVr�spec_from_file_locationr%�modulesr
rr�SourceFileLoader�
__loader__�__spec__rW)r�pathnamerOrW�spec�moduler r
r!�load_source�s
r`c@seZdZdZdS)�_LoadCompiledCompatibilityz7Compatibility
support for implementing load_compiled().N)rIrJrKrLr r r
r!ra�sracCsZt|||�}tj|||d�}|tjkr8t|tj|�}nt|�}t||�|_|j|j _
|S)z**DEPRECATED**)rW)rarrXr%rYr
rrr[r\rW)rr]rOrWr^r_r r
r!�
load_compiled�s
rbcCs�tjj|�rhtjdd�tjdd�}x>|D](}tjj|d|�}tjj|�r.|}Pq.Wtdj |���t
j||gd�}|tj
kr�t|tj
|�St|�SdS)z**DEPRECATED**NrFz{!r}
is not a
package)�submodule_search_locations)rCr.rDrr:r;�join�exists�
ValueError�formatrrXr%rYr
r)rr.r<� extensionZ init_pathr^r r
r!�load_package�s
ric Cs|\}}}|r2|jd
�s"d|kr2tdj|���n�|dkrZ|tthkrZdj|�}t|��n�|tkrnt|||�S|tkr�t|||�S|tkr�tdk r�|dkr�t |d��}t|||�SQRXnt|||�SnL|t
kr�t||�S|tkr�t
|�S|tk�r�t|�Sdj||�}t||d ��dS)z�**DEPRECATED**
Load a module, given information returned by find_module().
The module name must include the full package name, if any.
r6�U�+zinvalid file open mode {!r}Nz.file object required for
import (type code {})r1z*Don't know how to import {} (type code
{}))r)r6rj)�
startswithrfrgr7r8r`rbr2�load_dynamicrR�
PKG_DIRECTORYri� C_BUILTIN�init_builtin� PY_FROZENrrB) rrO�filenameZdetails�suffix�mode�type_�msgZopened_filer
r r!�load_module�s.
rwcCs�t|t�stdjt|����n$t|td�tf�sBtdjt|����|dkr�t|�rbddddtffSt |�rzddddt
ffStj}x�|D]�}t
jj||�}xHdtjdgD]6}d|}t
jj||�}t
jj|�r�d|ddtffSq�Wx:t�D].\}}}||} t
jj|| �}t
jj|�r�Pq�Wq�Pq�Wttj|�|d��d}
d |k�rjt|d
��}tj|j�d}
WdQRXt|||
d�}|||||ffS)a,**DEPRECATED**
Search for a module.
If path is omitted or None, search for a built-in, frozen or special
module and continue search in sys.path. The module name cannot
contain '.'; to search for a submodule of a package, pass the
submodule name and the package's __path__.
z'name' must be a str, not {}Nz%'path' must be
None or a list, not {}rAz.pyrrF)r�br1)�encoding)�
isinstance�str� TypeErrorrg�type�list�RuntimeErrorrror rqr%r.rCrdrr;�isfilernr?rBrrR�tokenize�detect_encoding�readline)rr.�entryZpackage_directoryrsZpackage_file_nameZ file_pathrtru� file_nameryrOr
r r!rH�s@
rHcCs
tj|�S)zw**DEPRECATED**
Reload the module and return it.
The module must have been successfully imported before.
)� importlib�reload)r_r r
r!r�3sr�cCs"yt|�Stk
rdSXdS)zl**DEPRECATED**
Load and return a built-in module by name, or None is such module
doesn't
exist
N)rrB)rr r
r!rp>srpcCs0ddl}|jj||�}|jj|||d�}t|�S)z:**DEPRECATED**
Load an extension module.
rN)rrW�origin)Zimportlib.machineryr�ExtensionFileLoader�
ModuleSpecr)rr.rOr�rWr^r r r!rmKs
rm)N)N)N)N)N);rL�_imprrrrrrrr r
rrBZimportlib._bootstraprr
rrZimportlib._bootstrap_externalrr�rrrCr%r�rr*�warn�DeprecationWarningZSEARCH_ERRORr7r8r2ZPY_RESOURCErnrorqZPY_CODERESOURCEZIMP_HOOKr"r$r(r-r0r?r@rMrZrVr`rarbrirwrHr�rprmr
r r r!�<module>s^,
#
4