σ
¦V]c           @@ s   d  d l  m Z m Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 m
 Z
 d d l m Z d	 e f d
     YZ d e f d     YZ d S(   i    (   t   absolute_importt   print_functioni   (   t   CythonTransform(   t   EncodedString(   t   Options(   t
   PyrexTypest	   ExprNodesi   (   t   ExpressionWritert   AnnotationWriterc           B@ s   e  Z d    Z d   Z RS(   c         C@ s   |  j  d  d  S(   Nu   <???>(   t   put(   t   selft   node(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt
   visit_Node   s    c         C@ s   |  j  d  d  S(   Ns   <lambda>(   R	   (   R
   R   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   visit_LambdaNode   s    (   t   __name__t
   __module__R   R   (    (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyR   
   s   	t   EmbedSignaturec           B@ sͺ   e  Z d    Z d   Z d   Z d   Z d d d d e d  Z d   Z	 d d d d d d e d  Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z RS(   c         C@ s,   t  t |   j |  d  |  _ d  |  _ d  S(   N(   t   superR   t   __init__t   Nonet
   class_namet
   class_node(   R
   t   context(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyR      s    	c         C@ s   t    } | j |  } | S(   N(   R   t   write(   R
   R   t   writert   result(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt	   _fmt_expr   s    	c         C@ sΚ   | j  t j k s | j r' | j } n | j  j | j d d } | j r |  j | j  } | d | } | j rΖ |  j | j  } | d | } qΖ n, | j rΖ |  j | j  } | d | } n  | S(   Nt   for_displayi   s   : %ss    = %ss   =%s(	   t   typeR   t   py_object_typet   is_self_argt   namet   declaration_codet
   annotationR   t   default(   R
   t   argt   docR!   R"   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   _fmt_arg!   s    			c         C@ s9   | j  } | j r5 |  j | j  } | d | } n  | S(   Ns   : %s(   R   R!   R   (   R
   R#   t   arg_docR!   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   _fmt_star_arg2   s
    		i    c   
      C@ sΌ   g  } xA | D]9 } | s' | j  j r |  j |  }	 | j |	  q q W| rv |  j |  }	 | j | d |	  n | r | j | d  n  | rΈ |  j |  }	 | j d |	  n  | S(   Ns   *%st   *s   **%s(   t   entryR   R%   t   appendR'   t   insert(
   R
   t   argst   npargst   pargst   nkargst   kargst	   hide_selft   arglistR#   R&   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   _fmt_arglist9   s    c         C@ s*   | t  j k r d  S| j d d d Sd  S(   Nt    R   i   (   R   R   R   R    (   R
   t   ret(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   _fmt_ret_typeL   s    c         C@ s¬   |  j  | | | | | d |
 } d j |  } d | | f } | rY d | | f } n  d  } | rw |  j |  } n |	 r |  j |	  } n  | r¨ d | | f } n  | S(   NR1   s   , s   %s(%s)s   %s.%ss   %s -> %s(   R3   t   joinR   R   R6   (   R
   t   cls_namet	   func_nameR,   R-   R.   R/   R0   t   return_exprt   return_typeR1   R2   t   arglist_doct   func_doct   ret_doc(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   _fmt_signatureR   s     			c         C@ s   | r d | | f S| Sd  S(   Ns   %s
%s(    (   R
   t	   signaturet   node_doc(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   _embed_signatureh   s    c         C@ s'   t  j s | St t |   j |  Sd  S(   N(   R   t
   docstringsR   R   t   __call__(   R
   R   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyRD   n   s    	c         C@ sn   |  j  } |  j } | |  _ y | j |  _  Wn t k
 rJ | j  |  _  n X|  j |  | |  _  | |  _ | S(   N(   R   R   R   t   AttributeErrort   visitchildren(   R
   R   t   oldnamet   oldclass(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   visit_ClassDefNodet   s    					c         C@ s   | S(   N(    (   R
   R   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyR      s    c         C@ sΆ  |  j  d s | St } t } | j j rd |  j o> | j d k } | sK | Sd  |  j } } t } n |  j | j } } t	 | d d  } t
 | j  | } |  j | | | j | | j | | j d | j d d  d | } | r²| rό |  j j j j }	 n	 | j }	 |	 j d  k	 r |	 j }
 n7 | rQt	 | d d   d  k	 rQ| j j j }
 n d  }
 |  j | |
  } t |  |	 _ | r²t	 | d d   d  k	 r²t |  | j j _ q²n  | S(	   Nt   embedsignatureR   t   num_kwonly_argsi    R:   R;   R1   t   py_func(   t   current_directivest   FalseR)   t
   is_specialR   R   R   R   t   Truet   getattrt   lenR,   R?   t   star_argt   starstar_argt   return_type_annotationR   t   scopeR$   RL   RB   R   (   R
   R   t   is_constructorR1   R   R9   R/   R-   R@   t
   doc_holdert   old_doct   new_doc(    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   visit_DefNode   sB    				c         C@ s  |  j  d s | S| j s | S|  j |  j | j j j | j j d | j } | r| j	 j
 d  k	 ru | j	 j
 } n0 t | d d   d  k	 r | j j	 j
 } n d  } |  j | |  } t |  | j	 _
 t | d  r| j d  k	 rt |  | j j	 _
 qn  | S(   NRJ   R;   RL   (   RM   t   overridableR?   R   t
   declaratort   baseR   R,   R;   R)   R$   R   RQ   RL   RB   R   t   hasattr(   R
   R   R@   RY   RZ   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   visit_CFuncDefNode°   s&    	c         C@ s»   |  j  d s | S| j } | j d k r· | j j d d d } | j j sZ d | } n# | j j r} | j j d | } n  d | j | f } |  j	 | | j
  } t |  | _
 n  | S(	   NRJ   t   publicR4   R   i   s   '%s't   .s   %s: %s(   RM   R)   t
   visibilityR   R    t   is_pyobjectt   is_extension_typet   module_nameR   RB   R$   R   (   R
   R   R)   t	   type_nameR@   RZ   (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   visit_PropertyNodeΗ   s    	N(   R   R   R   R   R%   R'   R   RN   R3   R6   R?   RB   RD   RI   R   R[   R`   Rh   (    (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyR      s&   										)	N(   t
   __future__R    R   t   VisitorR   t   StringEncodingR   R4   R   R   R   t
   CodeWriterR   R   R   (    (    (    s@   lib/python2.7/site-packages/Cython/Compiler/AutoDocTransforms.pyt   <module>   s   
