ó
cœt\c           @   s‡   d  Z  d d l Z d d l Z d d l m Z d Z d „  Z d „  Z e ƒ  e	 d „ Z
 d „  Z d	 e f d
 „  ƒ  YZ d d „ Z d S(   sŒ   
apipkg: control the exported namespace of a python package.

see http://pypi.python.org/pypi/apipkg

(c) holger krekel, 2009 - MIT license
iÿÿÿÿN(   t
   ModuleTypes   1.4c         C   s'   |  j  d ƒ r |  St j j |  ƒ Sd S(   sU   
    special version of abspath
    that will leave paths from jython jars alone
    t   __pyclasspath__N(   t
   startswitht   ost   patht   abspath(   R   (    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   _py_abspath   s    c         C   sE   d d l  m } m } y | |  ƒ } Wn | k
 r9 n X| j Sd S(   sL   try to get the version of the named distribution,
    returs None on failureiÿÿÿÿ(   t   get_distributiont   DistributionNotFoundN(   t   pkg_resourcesR   R   t   version(   t   nameR   R   t   dist(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   distribution_version   s    c   
      C   s“  t  j j |  ƒ } i  } t | d d
 ƒ } | r? t | ƒ } n  | | d <t | d ƒ rh | j | d <n  t | d ƒ r‡ | j | d <n  t | d ƒ r¿ g  | j	 D] } t | ƒ ^ q  | d <n  d | k rí t | d d
 ƒ rí | j
 | d <n  | j | ƒ t | d ƒ r| j j | ƒ n  t |  | d |  d | ƒ} | t  j |  <d	 t  j k sY| rx3 t  j j ƒ  D] }	 t |	 t ƒ ri|	 j qiqiWn  d
 S(   s7    initialize given package from the export definitions. t   __file__t   __version__t
   __loader__t   __path__t   __doc__t   __dict__t
   implprefixt   attrt   bpythonN(   t   syst   modulest   gett   getattrt   NoneR   t   hasattrR   R   R   R   t   updateR   t	   ApiModulet   valuest
   isinstance(
   t   pkgnamet
   exportdefsR   t   eagert   oldmodt   dt   ft   pt   modt   module(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   initpkg(   s.    
)c         C   s[   t  |  d  d  d g ƒ } | s" | S| } | j d ƒ } x | D] } t | | ƒ } q> W| S(   NR   t   .(   t
   __import__R   t   splitR   (   t   modpatht   attrnameR)   t   retvalt   namest   x(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt	   importobjD   s    R   c           B   s_   e  Z d  „  Z d „  Z e e e ƒ Z d d d „ Z d „  Z d „  Z	 e	 Z
 e d „  ƒ Z RS(   c         C   s?   y |  j  SWn- t k
 r: d |  j k r; |  j d ƒ Sn Xd  S(   NR   (   t   _ApiModule__doct   AttributeErrort   __map__t   _ApiModule__makeattr(   t   self(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __docgetQ   s
    c         C   s   | |  _  d  S(   N(   R4   (   R8   t   value(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __docsetX   s    c         C   s¯  | |  _  g  | D] } | d k r | ^ q |  _ i  |  _ | pC | |  _ | r x- | j ƒ  D] \ } } t |  | | ƒ q\ Wn  x)| j ƒ  D]\ } } t | t ƒ rì d |  j  | f } t | | | ƒ } | t	 j
 | <t |  | | ƒ qŒ | j d ƒ }	 |	 j d ƒ }
 |	 r|	 d pd } |
 d d k r=| |
 }
 n  | s”d |  j  | f } t | |
 ƒ } | t	 j
 | <d | k r§t |  | | ƒ q§qŒ |
 | f |  j | <qŒ Wd  S(   Nt   __onfirstaccess__s   %s.%st   :i    t    R+   (   t   __name__t   __all__R6   t   __implprefix__t   itemst   setattrR    t   dictR   R   R   R-   t   popt   AliasModule(   R8   R   t
   importspecR   R   R2   t   valt   subnamet   apimodt   partsR.   R/   (    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __init__\   s2    	(	c         C   sŒ   g  } t  |  d ƒ r2 | j d t |  j ƒ ƒ n  t  |  d ƒ r^ | j d t |  j ƒ ƒ n  | r~ d |  j d j | ƒ f Sd |  j f S(   NR   s   version=R   s   from s   <ApiModule %r %s>t    s   <ApiModule %r>(   R   t   appendt   reprR   R   R?   t   join(   R8   t   l(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __repr__{   s    c         C   sÜ   d } d |  j k r7 |  j j d ƒ } t | Œ  ƒ  n  y |  j | \ } } WnB t k
 r’ | d k	 rƒ | d k rƒ t |  | ƒ St | ƒ ‚ nF Xt | | ƒ } t |  | | ƒ y |  j | =Wn t k
 rÓ n X| Sd S(   sA   lazily compute value for name or raise AttributeError if unknown.R<   N(   R   R6   RE   R3   t   KeyErrorR   R5   RC   (   R8   R   t   targetR.   R/   t   result(    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt
   __makeattr…   s"    c         C   su   t  j d } | j |  ƒ } | d  k	 rq t |  d ƒ x9 |  j D]+ } y |  j | ƒ Wq? t k
 ri q? Xq? Wn  | S(   NR   t   some(   R    R   t   __get__R   R   R@   R7   R5   (   R8   t	   dictdescrRD   R   (    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyR   ž   s    N(   R?   t
   __module__t   _ApiModule__docgett   _ApiModule__docsett   propertyR   R   RL   RR   R7   t   __getattr__R   (    (    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyR   P   s   			
	c            sP   g  ‰ ‡  ‡ ‡ f d †  ‰ d t  f ‡  ‡ ‡ ‡ f d †  ƒ  Y} | t ˆ ƒ ƒ S(   Nc             sK   ˆ sC t  ˆ d  ƒ }  ˆ  d  k	 r3 t |  ˆ  ƒ }  n  ˆ j |  ƒ n  ˆ d S(   Ni    (   R3   R   R   RN   (   R2   (   R/   R(   R.   (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   getmod±   s    RF   c              sJ   e  Z ‡  ‡ ‡ f d  †  Z ‡ f d †  Z ‡ f d †  Z ‡ f d †  Z RS(   c            s+   ˆ } ˆ  r | d ˆ  7} n  d ˆ | f S(   NR+   s   <AliasModule %r for %r>(    (   R8   R2   (   R/   t   modnameR.   (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyRR   »   s    c            s-   y t  ˆ  ƒ  | ƒ SWn t k
 r( d  SXd  S(   N(   R   t   ImportErrorR   (   R8   R   (   R_   (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __getattribute__Á   s    c            s   t  ˆ  ƒ  | | ƒ d  S(   N(   RC   (   R8   R   R:   (   R_   (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __setattr__Ç   s    c            s   t  ˆ  ƒ  | ƒ d  S(   N(   t   delattr(   R8   R   (   R_   (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   __delattr__Ê   s    (   R?   RZ   RR   Rb   Rc   Re   (    (   R/   R_   R`   R.   (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyRF   ¹   s   (   R    t   str(   R`   R.   R/   RF   (    (   R/   R_   R(   R`   R.   s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyRF   ®   s    %(   R   R   R   t   typesR    R   R   R   RD   t   FalseR*   R3   R   R   RF   (    (    (    s;   lib/python2.7/site-packages/py/_vendored_packages/apipkg.pyt   <module>   s   			^