ó
£áSc           @` s‘   d  d l  m Z m Z m Z d  d l Z d  d l Z d g Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 e
 e j j d d ƒ ƒ r� e	 Z n  d S(	   i    (   t   divisiont   absolute_importt   print_functionNt   PackageLoaderc           B` sŒ   e  Z e e d  „ Z d d „ Z d d „ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d d „ Z d „  Z RS(   c         B` så   | r d } n d } e  j | ƒ |  _ } e d | j | j ƒ |  _ e d | j | j ƒ } e | e ƒ ry | g } n  | |  _	 d | j k r« d | j | j f d Un  e d | j | j ƒ |  _
 i  |  _ g  |  _ d |  _ d S(   s#    Manages loading packages.
        i   i   t   __name__t   __path__t   __all__s   __all__ = []N(   t   syst	   _getframet   parent_framet   evalt	   f_globalst   f_localst   parent_namet
   isinstancet   strt   parent_patht   parent_export_namest   info_modulest   imported_packagest   Nonet   verbose(   t   selfR   t   infunct   _levelt   frameR   (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   __init__	   s    				c   	      C` s  d d l  m  } | t j j | | d ƒ ƒ } xF | t j j | | d ƒ ƒ D]& } | d  | k rM | j | ƒ qM qM Wg  } x� | D]‡ } t j j | t | ƒ d ƒ j t j d ƒ } | rÐ | d | } n  | j | | f ƒ | j	 |  j
 d t j j | ƒ | ƒ ƒ q„ W| S(	   sU    Return list of (package name,info.py file) from parent_path subdirectories.
        i    (   t   globs   info.pys   info.pyciÿÿÿÿi   t   .t   *(   R   t   ost   patht   joint   appendt   dirnamet   lent   replacet   sept   extendt   _get_info_files(	   R   t   package_dirR   t   parent_packageR   t   filest	   info_filet
   info_filest   package_name(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyR'      s     % c         B` s  d d l  } g  } |  j } | d k rW xì |  j D] } | j |  j d | ƒ ƒ q1 Wn¿ x¼ | D]´ } e j j | j	 d ƒ Œ  } x� |  j D]/ } |  j | | ƒ } | r‰ | j | ƒ Pq‰ q‰ Wy d | d Ue
 | | <Wq^ e k
 r}	 |  j d | d j |  j ƒ |	 f ƒ q^ Xq^ Wx | D]ø \ } }
 | | k r;qn  |  j d | } |
 d d	 k red } n d } y- | j | d e |
 | d ƒ |
 | ƒ } Wn& e k
 rÀ}	 |  j |	 ƒ d } n X| d k sße | d e ƒ rò| j | d ƒ q|  j e | d g  ƒ ƒ | | | <qWd S(   sN   Initialize info_modules = {<package_name>: <package info.py module>}.
        i    NR   R   s   import %s.info as infos6   No scipy-style subpackage %r found in %s. Ignoring: %st   :iÿÿÿÿt   cs   .pyct   rbi   s   .pyt   Ui   s   .infot   ignoret   depends(   s   .pycs   rbi   (   s   .pyR1   i   (   t   impR   R   R   R&   R'   R   R   R    t   splitt   infot   ImportErrort   warnR   t   load_modulet   opent	   Exceptiont   errort   getattrt   Falset   popt   _init_info_modules(   R   t   packagesR4   R,   R   R   R-   R(   t   names_filest   msgR+   t   fullnamet   filedescriptort   info_module(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyR@   3   sN    	 	%	
c         C` sô   i  } x3 |  j  j ƒ  D]" \ } } t | d g  ƒ | | <q Wg  } x5 | j ƒ  D]' } | | sO | j | ƒ | | =qO qO Wxs | rï xf | j ƒ  D]X \ } } g  | D] } | | k r£ | ^ q£ } | sÞ | j | ƒ | | =q� | | | <q� Wq} W| S(   sƒ    Return package names sorted in the order as they should be
        imported due to dependence relations between packages.
        R3   (   R   t   itemsR=   t   keysR!   (   R   t   depend_dictt   nameRF   t   package_namest   lstt   nt   new_lst(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   _get_sorted_namesh   s     
	%
c      	   O` s~  |  j  } i  |  _ | j d t ƒ r0 g  |  _ n  | j d d ƒ |  _ } | j d d ƒ } |  j | pj d ƒ |  j d |  j	 ƒ xõ|  j
 ƒ  D]ç} | |  j k rª q� n  |  j | } t | d g  ƒ } t | d t ƒ }	 | rè | s� |	 r | d k	 r q� n  | j j | d ƒ }
 d | } |  j | ƒ r4q� n  |  j j | ƒ | d k r¬| j j | ƒ } |
 d k	 r¬|
 | k	 r¬|  j d	 | |  j | ƒ |  j |
 ƒ f ƒ q¬n  d
 | k rË|  j j | ƒ n  x¨| D] } | d k rVt d | | j | j ƒ } | d k r_t d | | j | j ƒ } g  | D] } | j d ƒ s/| ^ q/} q_n	 | g } | d k r¨i  } x4 | D]) } | | j k rx| j | | | <qxqxWn  d | d | } |  j | ƒ rÏqÒn  | d k rCxe | j ƒ  D]T \ } }
 | j | } | |
 k	 rè|  j d	 | |  j | ƒ |  j |
 ƒ f ƒ qèqèWn  | d k rb|  j j | ƒ qÒ|  j j | ƒ qÒWq� Wd S(   s  Load one or more packages into parent package top-level namespace.

       This function is intended to shorten the need to import many
       subpackages, say of scipy, constantly with statements such as

         import scipy.linalg, scipy.fftpack, scipy.etc...

       Instead, you can say:

         import scipy
         scipy.pkgload('linalg','fftpack',...)

       or

         scipy.pkgload()

       to load all of them in one call.

       If a name which doesn't exist in scipy's namespace is
       given, a warning is shown.

       Parameters
       ----------
        *packages : arg-tuple
             the names (one or more strings) of all the modules one
             wishes to load into the top-level namespace.
        verbose= : integer
             verbosity level [default: -1].
             verbose=-1 will suspend also warnings.
        force= : bool
             when True, force reloading loaded packages [default: False].
        postpone= : bool
             when True, don't load packages [default: False]

     t   forceR   iÿÿÿÿt   postpones4   Imports to %r namespace
----------------------------t   global_symbolst   postpone_imports   import s   Overwriting %s=%s (was %s)R   R   s   getattr(%s,"__all__",None)s   dir(%s)t   _s   from s    import N(   R	   R   t   getR>   R   R   R   R@   t   logR   RO   R=   R   t   _execcmdR!   R8   t	   _obj2reprR   R
   R   t
   startswithRG   R&   (   R   RA   t   optionsR   R   RQ   R-   RF   RR   RS   t
   old_objectt   cmdstrt
   new_objectt   symbolt   symbolst   st   old_objects(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   __call__‚   sx    $			
	
.		c         B` sg   |  j  } y | | j | j f d UWn+ e k
 rQ } |  j d | | f ƒ e SX|  j d | ƒ d S(   s!    Execute command in parent_frame.Ns   %s -> failed: %ss   %s -> success(   R	   R   R   R;   R<   t   TrueRV   (   R   R\   R   RC   (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyRW   ñ   s    	c         C` sj   t  | d d ƒ } t  | d d ƒ } | d k	 rB t | ƒ d | S| d k	 r` t | ƒ d | St | ƒ S(   s    Return repr(obj) witht
   __module__t   __file__s    from N(   R=   R   t   repr(   R   t   objt   modulet   file(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyRX   ý   s    c         C` s/   |  j  d k r+ t t | ƒ d t j ƒn  d  S(   Ni   Ri   (   R   t   printR   R   t   stderr(   R   t   mess(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyRV     s    c         C` s/   |  j  d k r+ t t | ƒ d t j ƒn  d  S(   Ni    Ri   (   R   Rj   R   R   Rk   (   R   Rl   (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyR8   
  s    c         C` s/   |  j  d k r+ t t | ƒ d t j ƒn  d  S(   NiÿÿÿÿRi   (   R   Rj   R   R   Rk   (   R   Rl   (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyR<     s    c         C` sd   t  | d d ƒ } | d k	 r" | St  | d d ƒ } | d k	 r` | j ƒ  j d d ƒ d } | Sd S(   s4    Get the title from a package info.py file.
        t   __doc_title__t   __doc__s   
i   i    s   * Not Available *N(   R=   R   t   lstripR5   (   R   RF   t   title(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   _get_doc_title  s    s   ---c         C` s<  d } g  | D]) \ } } t  | ƒ | j d ƒ d ^ q d g } t | ƒ } g  } x× | D]Ï \ } } | | j d ƒ d } | t  | ƒ }	 | j ƒ  }
 d | |	 d | f } t  | ƒ d } xf |
 r|
 j d ƒ } t  | ƒ t  | ƒ | k r| j | ƒ | } n  | d | 7} qÅ W| j | ƒ q\ Wd j | ƒ S(   NiF   R   i   i    s   %s%s %st    s   
(   R#   t   findt   maxR5   R?   R!   R    (   R   t   titlest   colsept   display_window_widthRJ   Rp   t   lengthst
   max_lengtht   linest   wt   wordst   linet   tabt   word(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   _format_titles  s$    =		c   
      C` s  d d l  } i  |  _ |  j d ƒ g  } g  } x£ |  j j ƒ  D]’ \ } } t | d g  ƒ } |  j d | } d } | | j k r‹ d } n  | j | |  j	 | ƒ | f ƒ | r> | j | d j
 | ƒ f ƒ q> q> W|  j | ƒ d }	 | r
|	 d	 |  j | d
 ƒ 7}	 n  |	 S(   s6    Return documentation summary of subpackages.
        i    NRR   R   t    s    [*]s   , s?   
  [*] - using a package requires explicit import (see pkgload)sB   

Global symbols from subpackages
-------------------------------
s   -->(   R   R   R@   R   RG   R=   R   t   modulesR!   Rq   R    R€   (
   R   R   Ru   R_   R-   RF   RR   RD   t   notet   retstr(    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   get_pkgdocs2  s(    		 #N(   R   Rd   R>   R   R   R'   R@   RO   Rb   RW   RX   RV   R8   R<   Rq   R€   R…   (    (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyR      s   5		o		
				t   PackageLoaderDebugc           B` s   e  Z d  „  Z RS(   c         B` sd   |  j  } e d e | ƒ d d d ƒe j j ƒ  | | j | j f d Ue d ƒ e j j ƒ  d S(   s!    Execute command in parent_frame.t	   Executings   ...t   endRr   Nt   ok(   R	   Rj   Rf   R   t   stdoutt   flushR   R   (   R   R\   R   (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyRW   Q  s    	
(   R   Rd   RW   (    (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyR†   P  s   t   NUMPY_IMPORT_DEBUGt   0(   t
   __future__R    R   R   R   R   R   t   objectR   R†   t   intt   environRU   (    (    (    sM   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/_import_tools.pyt   <module>   s   	ÿ I