
(°hT	  ã               @   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
 „  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   ú5/tmp/pip-build-kmztzv_d/setuptools/setuptools/_imp.pyr      s    !r   c       	      C   sä  t  |  | ƒ } | d k r+ t d |  ƒ ‚ | j r\ t | d ƒ r\ t j j d | j ƒ } d } d } t | j t	 ƒ } | j
 d k s§ | 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 j | ƒ d } | t j j k rFd	 n d
 } | t j j k rgt } n3 | t j j k r‚t } n | t j j k ršt } | t t h k rÎt | | ƒ } 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   s5   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   )Ú__doc__r&   Úimportlib.utilr
   Úimportlib.machineryZ
py34compatr   r*   r,   r.   r%   r#   r   r5   r7   r9   r   r   r   r   Ú<module>   s   	*