U
    ٲg                     @   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|rt|jt jjrt}d}d }}n|j
dks|rt|jt jjrt}d}d }}n|jr:|j
}tj|d	 }|t jjkrd
nd}|t jjkrt}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-aqb5epr1/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   
*
