ó
Ð²Ebc           @   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
 „ Z d „  Z d S(   sX   
Re-implementation of find_module and get_frozen_object
from the deprecated imp module.
iÿÿÿÿNi   (   t   module_from_speci   i   i   i   c   	      C   sö  t  j j |  | ƒ } | d k r4 t d |  ƒ ‚ n  | j rh t | d ƒ rh t  j j d | j ƒ } n  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 rRd	 n d
 } | t  j j k rst } n6 | t  j j k rŽt } n | t  j j k r©t } n  | t t h k ràt | | ƒ } qàn d } d } } | | | | | f f S(   s7   Just like 'imp.find_module()', but with package supports   Can't find %st   submodule_search_locationss   __init__.pyiÿÿÿÿt   frozent    s   built-ini   t   rt   rbN(   t	   importlibt   utilt	   find_spect   Nonet   ImportErrort   has_locationt   hasattrt   spec_from_loadert   loadert
   isinstancet   typet   origint
   issubclasst	   machineryt   FrozenImportert	   PY_FROZENt   BuiltinImportert	   C_BUILTINt   ost   patht   splitextt   SOURCE_SUFFIXESt	   PY_SOURCEt   BYTECODE_SUFFIXESt   PY_COMPILEDt   EXTENSION_SUFFIXESt   C_EXTENSIONt   open(	   t   modulet   pathst   spect   kindt   filet   staticR   t   suffixt   mode(    (    s3   /tmp/pip-build-UPPWic/setuptools/setuptools/_imp.pyt   find_module   sB    					
c         C   s>   t  j j |  | ƒ } | s. t d |  ƒ ‚ n  | j j |  ƒ S(   Ns   Can't find %s(   R   R   R   R
   R   t   get_code(   R"   R#   R$   (    (    s3   /tmp/pip-build-UPPWic/setuptools/setuptools/_imp.pyt   get_frozen_object>   s    c         C   s8   t  j j |  | ƒ } | s. t d |  ƒ ‚ n  t | ƒ S(   Ns   Can't find %s(   R   R   R   R
   R    (   R"   R#   t   infoR$   (    (    s3   /tmp/pip-build-UPPWic/setuptools/setuptools/_imp.pyt
   get_moduleE   s    (   t   __doc__R   t   importlib.utilR   t   importlib.machineryt
   py34compatR    R   R   R    R   R   R	   R*   R,   R.   (    (    (    s3   /tmp/pip-build-UPPWic/setuptools/setuptools/_imp.pyt   <module>   s   *