ó
ØÆ÷Xc           @` sà  d  Z  d d l m Z m Z m Z d d d d d d d	 d
 d d d d d d d d d d g Z d d l Z y d d l m Z Wn e	 k
 r— d Z n Xe j d d k rd d l Z e Z e f Z e Z e Z e Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d Z n] e Z e Z e Z e Z e e f Z e Z e Z d  Z d! „  Z d" „  Z d d# „ Z d$ „  Z d% „  Z d& „  Z d' „  Z d( „  Z e j d d k rÐe j d) d* k rÐd d+ „ Z n d d, „ Z d S(-   s    
Python 3 compatibility tools.

i    (   t   divisiont   absolute_importt   print_functiont   bytest   asbytest	   isfileobjt   getexceptiont   strchart   unicodet	   asunicodet   asbytes_nestedt   asunicode_nestedt   asstrt   open_latin1t   longt
   basestringt   sixut   integer_typest   is_pathlib_patht   npy_load_modulet   PathN(   R   i   c         C` s&   t  |  t ƒ r |  j d ƒ St |  ƒ S(   Nt   latin1(   t
   isinstanceR   t   decodet   str(   t   s(    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR	      s    c         C` s&   t  |  t ƒ r |  St |  ƒ j d ƒ S(   NR   (   R   R   R   t   encode(   R   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR       s    c         C` s&   t  |  t ƒ r |  j d ƒ St |  ƒ S(   NR   (   R   R   R   R   (   R   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   %   s    c         C` s   t  |  t j t j t j f ƒ S(   N(   R   t   iot   FileIOt   BufferedReadert   BufferedWriter(   t   f(    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   *   s    t   rc         C` s   t  |  d | d d ƒS(   Nt   modet   encodings
   iso-8859-1(   t   open(   t   filenameR!   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   -   s    c         C` s   |  S(   N(    (   R   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   0   s    t   Ut   Sc         C` s   t  |  t ƒ S(   N(   R   t   file(   R   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   @   s    c         C` s&   t  |  t ƒ r |  St |  ƒ j d ƒ S(   Nt   ascii(   R   R   R   R   (   R   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR	   C   s    c         C` s   t  |  d | ƒS(   NR!   (   R#   (   R$   R!   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   H   s    c         C` s   t  |  d ƒ S(   Nt   unicode_escape(   R   (   R   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   K   s    c           C` s   t  j ƒ  d S(   Ni   (   t   syst   exc_info(    (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   O   s    c         C` sP   t  |  d ƒ rB t |  t t f ƒ rB g  |  D] } t | ƒ ^ q, St |  ƒ Sd  S(   Nt   __iter__(   t   hasattrR   R   R   R
   R   (   t   xt   y(    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR
   R   s    %c         C` sP   t  |  d ƒ rB t |  t t f ƒ rB g  |  D] } t | ƒ ^ q, St |  ƒ Sd  S(   NR,   (   R-   R   R   R   R   R	   (   R.   R/   (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   X   s    %c         C` s   t  d k	 o t |  t  ƒ S(   s5   
    Check whether obj is a pathlib.Path object.
    N(   R   t   NoneR   (   t   obj(    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   ^   s    i   i   c         C` s%   d d l  } | j j |  | ƒ j ƒ  S(   sd  
        Load a module.

        .. versionadded:: 1.11.2

        Parameters
        ----------
        name : str
            Full module name.
        fn : str
            Path to module file.
        info : tuple, optional
            Only here for backward compatibility with Python 2.*.

        Returns
        -------
        mod : module

        i    N(   t   importlib.machineryt	   machineryt   SourceFileLoadert   load_module(   t   namet   fnt   infot	   importlib(    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   e   s    c         C` s˜   d d l  } d d l } | d k rW | j j | ƒ } | j |  | g ƒ \ } } } n t | | d ƒ } z | j |  | | | ƒ } Wd | j ƒ  X| S(   s}  
        Load a module.

        .. versionadded:: 1.11.2

        Parameters
        ----------
        name : str
            Full module name.
        fn : str
            Path to module file.
        info : tuple, optional
            Information as returned by `imp.find_module`
            (suffix, mode, type).

        Returns
        -------
        mod : module

        i    Ni   (	   t   impt   osR0   t   patht   dirnamet   find_moduleR#   R5   t   close(   R6   R7   R8   R:   R;   R<   t   fot   mod(    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyR   |   s    !(    t   __doc__t
   __future__R    R   R   t   __all__R*   t   pathlibR   t   ImportErrorR0   t   version_infoR   t   intR   R   R   R   R   R   R	   R   R   R   R   R   R   R   R
   R   R   R   (    (    (    s0   /tmp/pip-build-X4mzal/numpy/numpy/compat/py3k.pyt   <module>   sV   
														&