U
    ªÃT_¯  ã                   @   s\   d Z ddlZddlZddlZddlmZ dZdZdZ	dZ
dZdd	d
„Zddd„Zdd„ ZdS )zX
Re-implementation of find_module and get_frozen_object
from the deprecated imp module.
é    Né   )Úmodule_from_specé   é   é   é   c           	      C   sV  t j | |¡}|dkr"td|  ƒ‚|jsBt|dƒrBt j d|j¡}d}d}t|jt	ƒ}|j
dkst|r†t|jt jjƒr†t}d}d }}nÀ|j
dks¤|r¶t|jt jjƒr¶t}d}d }}n�|j�r:|j
}tj |¡d	 }|t jjkräd
nd}|t jjkrút}n&|t jjk�rt}n|t jjk�r t}|tthk�rFt||ƒ}nd}d }}|||||ffS )z7Just like 'imp.find_module()', but with package supportNúCan't find %sÚsubmodule_search_locationsz__init__.pyéÿÿÿÿÚfrozenÚ zbuilt-inr   ÚrÚrb)Ú	importlibÚutilÚ	find_specÚImportErrorÚhas_locationÚhasattrÚspec_from_loaderÚloaderÚ
isinstanceÚtypeÚoriginÚ
issubclassÚ	machineryÚFrozenImporterÚ	PY_FROZENÚBuiltinImporterÚ	C_BUILTINÚosÚpathÚsplitextÚSOURCE_SUFFIXESÚ	PY_SOURCEÚBYTECODE_SUFFIXESÚPY_COMPILEDÚEXTENSION_SUFFIXESÚC_EXTENSIONÚopen)	ÚmoduleÚpathsÚspecÚkindÚfileZstaticr!   ÚsuffixÚmode© r1   ú3/tmp/pip-unpacked-wheel-sr6cxcdi/setuptools/_imp.pyÚfind_module   sJ     ÿ
 ÿ
r3   c                 C   s*   t j | |¡}|std|  ƒ‚|j | ¡S ©Nr   )r   r   r   r   r   Úget_code)r*   r+   r,   r1   r1   r2   Úget_frozen_object>   s    r6   c                 C   s&   t j | |¡}|std|  ƒ‚t|ƒS r4   )r   r   r   r   r   )r*   r+   Úinfor,   r1   r1   r2   Ú
get_moduleE   s    r8   )N)N)Ú__doc__r    Úimportlib.utilr   Úimportlib.machineryZ
py34compatr   r$   r&   r(   r   r   r3   r6   r8   r1   r1   r1   r2   Ú<module>   s   
*
