3
5^                 @   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 jj| |}|dkr"td|  |j rDt|drDt jjd|j}d}d}t|jt	}|j
dksv|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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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)	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filestaticr    suffixmode r1   A/home/birch/.local/lib/python3.6/site-packages/setuptools/_imp.pyfind_module   sB    

r3   c             C   s*   t jj| |}|std|  |jj| S )NzCan't find %s)r   r   r   r   r   get_code)r)   r*   r+   r1   r1   r2   get_frozen_object>   s    r5   c             C   s&   t jj| |}|std|  t|S )NzCan't find %s)r   r   r   r   r   )r)   r*   infor+   r1   r1   r2   
get_moduleE   s    r7   )N)N)__doc__r   Zimportlib.utilr   Zimportlib.machinery
py34compatr   r#   r%   r'   r   r   r3   r5   r7   r1   r1   r1   r2   <module>   s   
*
