
    &e                         U d dl Z d dlmZ d dlmZ g dZee   ed<   g dZee   ed<   dd	iZ	 G d
 d      Z
 G d d      ZdedefdZdedefdZddededefdZy)    N)dedent)List)	ArgsReturnsRaisesYieldsExampleExamples
AttributesNoteTodoSECTION_HEADERS)r
   r	   r   r   PLAIN_TEXT_SECTIONSz__(?P<text>\S+)__z\_\_\g<text>\_\_c                   <    e Zd ZdededdfdZdeddfdZdefdZy)SectionnamecontentreturnNc                 B    || _         d| _        | j                  |       y N )r   r   _parse)selfr   r   s      >/usr/lib/python3/dist-packages/docstring_to_markdown/google.py__init__zSection.__init__!   s    	G    c           	      p   |j                  d      }| j                  t        v rt        |      | _        y g }g }|j                  d      D ]`  }|j                  ddd      }|j                  d      r|j                  |       9|r|j                  |       |g}P|j                  |       b |j                  |       |D ]S  }d}d}d|d   v r|d   j                  d      }|d   }	dj                  |dd        j                         }
t        |	      d	z   dz  }|
r&| xj                  d
j                  |	|
      z  c_        nNd}| xj                  dj                  |	      z  c_        n'| xj                  dj                  |d         z  c_        t        |dd        D ]r  \  }}|r8|dk(  r3| xj                  dj                  |j                               z  c_        @| xj                  dj                  ||j                               z  c_        t V | j                  j                  d      | _        y )N
z    r       F:r      z- `{}`: {}
Tz- `{}`: z- {}
z{}
z{}{}
)rstripr   r   r   r   splitreplace
startswithappendjoinlstriplenformat	enumerate)r   r   partscur_partlinepartindentation
skip_firstsplargdescriptionns               r   r   zSection._parse'   s   ..&99++!'?DLMM$' 	&D<<A.Ds#%X& 6 %	&" 	X  	LDKJd1g~1gmmC(!f!hhs12w/668"3x!|s2LLN$9$9#{$KKL!%JLLJ$5$5c$::LQ 88$T!"X. L4!q& LLFMM$++-$@@LT[[] KKL'	L8 ||**40r   c                 N    dj                  | j                  | j                        S )Nz#### {}

{}

)r+   r   r   )r   s    r   as_markdownzSection.as_markdownc   s    "))$))T\\BBr   __name__
__module____qualname__strr   r   r8    r   r   r   r       s>    S 3 4 :1c :1d :1xCS Cr   r   c                   8    e Zd ZdeddfdZdeddfdZdefdZy)GoogleDocstring	docstringr   Nc                 B    g | _         d| _        | j                  |       y r   )sectionsr5   r   )r   rA   s     r   r   zGoogleDocstring.__init__h   s    ') "Ir   c                 p   g | _         d| _        d}d}|j                  d      D ]k  }t        |      r;|r'| j                   j	                  t        ||             d}|j                  d      }I|r	||dz   z  }T| xj                  |dz   z  c_        m | j                   j	                  t        ||             y )Nr   r   r!   )rC   r5   r$   
is_sectionr'   r   r#   )r   rA   bufcur_sectionr/   s        r   r   zGoogleDocstring._parsen   s    OOD) 	0D$MM((c)BCC #kk#. td{"   D4K/ #	0( 	W[#67r   c                     | j                   }| j                  D ]  }||j                         z  } |j                  d      dz   S )Nr   )r5   rC   r8   r#   )r   textsections      r   r8   zGoogleDocstring.as_markdown   sI    }} 	*GG''))D	* {{4 4''r   r9   r>   r   r   r@   r@   g   s4    # $ 8 8 8:(S (r   r@   r/   r   c                 h    t         D ])  }t        j                  dj                  |      |       s) y y)Nz{}:TFr   researchr+   )r/   rJ   s     r   rE   rE      s0    " 99V]]7+T2 r   valuec                 h    t         D ])  }t        j                  dj                  |      |       s) y y)Nz{}:\nTFrL   )rO   rJ   s     r   looks_like_googlerQ      s0    " 99X__W-u5 r   rI   extract_signaturec                     t         j                         D ]  \  }}t        j                  |||       }  t	        |       }|j                         S )N)ESCAPE_RULESitemsrM   subr@   r8   )rI   rR   patternreplacementrA   s        r   google_to_markdownrY      sL     , 2 2 4 2vvg{D12  %I  ""r   )T)rM   textwrapr   typingr   r   r=   __annotations__r   rT   r   r@   boolrE   rQ   rY   r>   r   r   <module>r^      s    	  
c 
" T#Y  -DC DCN*( *(ZS T S T #S #T #S #r   