3
;p_T	                 @   sd   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
 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   s(   t |trtjj jntjj}|| |S )N)
isinstancelist	importlib	machinery
PathFinder	find_specutil)modulepathsfinder r   7/tmp/pip-install-ofl94hr3/setuptools/setuptools/_imp.pyr      s    r   c       	      C   sT  t | |}|dkrtd|  |j r@t|dr@tjjd|j}d}d}t|jt	}|j
dksr|rt|jtjjrt}d}d }}n|j
dks|rt|jtjjrt}d}d }}n|jr8|j
}tj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rDt||}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)r   ImportErrorhas_locationhasattrr
   r   spec_from_loaderloaderr   typeorigin
issubclassr   FrozenImporter	PY_FROZENBuiltinImporter	C_BUILTINospathsplitextSOURCE_SUFFIXES	PY_SOURCEBYTECODE_SUFFIXESPY_COMPILEDEXTENSION_SUFFIXESC_EXTENSIONopen)	r   r   speckindfileZstaticr'   suffixmoder   r   r   find_module   sB    


r5   c             C   s&   t | |}|std|  |jj| S )NzCan't find %s)r   r   r   get_code)r   r   r0   r   r   r   get_frozen_objectG   s    
r7   c             C   s"   t | |}|std|  t|S )NzCan't find %s)r   r   r   )r   r   infor0   r   r   r   
get_moduleN   s    
r9   )N)N)__doc__r&   importlib.utilr
   Zimportlib.machineryZ
py34compatr   r*   r,   r.   r%   r#   r   r5   r7   r9   r   r   r   r   <module>   s   	
*
