3

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   sx  t |trtjjj| |}ntjj| |}|dkr>td|  |j r`t	|dr`tjj
d|j}d}d}t |jt}|jdks|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j|d }|tjjkrd	nd
}|tjjkrt}n&|tjjkr0t}n|tjjkrBt}|tthkrht||}nd}d }}|||||ffS )z7Just like 'imp.find_module()', but with package supportNzCan't find %ssubmodule_search_locationsz__init__.pyr   frozen zbuilt-inrrb)
isinstancelist	importlib	machinery
PathFinder	find_specutilImportErrorhas_locationhasattrspec_from_loaderloadertypeorigin
issubclass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 r2   3/tmp/pip-unpacked-wheel-2ahgb425/setuptools/_imp.pyfind_module   sF    


r4   c             C   sF   t |trtjjj| |}ntjj| |}|s:td|  |jj	| S )NzCan't find %s)
r   r   r   r   r   r   r   r   r   get_code)r+   r,   r-   r2   r2   r3   get_frozen_objectA   s    
r6   c             C   sB   t |trtjjj| |}ntjj| |}|s:td|  t|S )NzCan't find %s)	r   r   r   r   r   r   r   r   r   )r+   r,   infor-   r2   r2   r3   
get_moduleK   s    
r8   )N)N)__doc__r!   importlib.utilr   importlib.machineryZ
py34compatr   r%   r'   r)   r    r   r4   r6   r8   r2   r2   r2   r3   <module>   s   
-

