
    &e?b                     	   U d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlZ G d d      ZdZd	Zd
ZdZdZdZdZ edj+                  dj-                  e            d       edj+                  dj-                  e            d       edj+                  dj-                  e            d       edj+                  dj-                  e            d       edj+                  dj-                  e            d       edj+                  dj-                  e            d       edj+                  dj-                  e            dej.                         edj+                  dj-                  e            dej.                         edj+                  dj-                  e            dej.                         edd ej.                         ed!d"ej.                         ed#d$ej.                         ed%d&ej.                        gZe
e   ed'<    G d( d)      Z ed*d+d,-       ed.d/d,-       ed0d1d,-       ed2d3d4-       ed5d6d,-       ed7d8d4-       ed9d:d4-       ed;d<d,-      gZeD  cg c]$  }  ed=| j8                   d>| j:                        & c} Ze
e   ed?<    ed@dA       edBdC       edDdE      ge edFdG       edHdI       edJdK       edLdM       edNdO       edPdQ       edRdS       edTdOdUV       edWdXdYV      eZe
e   edZ<   h d[Z  ed\d]       ed^d_      g ed`da      gdbZ!ee"e
e   f   edc<    eddde      gZ#e
e   edf<   dge"fdhZ$ e$dU      Z% e$dY      Z&die"dje'fdkZ( G dl dme      Z) G dn doe      Z* G dp dqe*      Z+ G dr dse+      Z, G dt due+      Z- G dv dwe*      Z. G dx dye.e      Z/ G dz d{e.      Z0 G d| d}e.      Z1 G d~ de/      Z2 G d de/      Z3 G d de/      Z4 G d de/      Z5 e1        e4        e3        e5        e2        e,        e-       gZ6e D ci c]  }|d|z   dz   d e7|      z  z    c}Z8g ee#Z9dde"de'dje"fdZ:yc c} w c c}w )    )ABCabstractmethod)IntEnumauto)SimpleNamespace)UnionListDictNc            	       4    e Zd Z	 	 ddededeedf   defdZy)	DirectiveNpatternreplacementnameflagsc                 <    || _         || _        || _        || _        y N)r   r   r   r   )selfr   r   r   r   s        ;/usr/lib/python3/dist-packages/docstring_to_markdown/rst.py__init__zDirective.__init__	   s!    
 &	
    Nr   )__name__
__module____qualname__strr   intr    r   r   r   r      s:     "&),CI r   r   )	modfuncdataconstclassmethattrexcobj)	memberr    r   macrostructunionenum
enumeratortype)
anyr"   r)   r   r'   varr-   conceptr+   r,   )r   r   r#   r"   r    r$   )dirrole)r.   envvartokenkeywordoptionterm)param	parameterargargumentkeyr5   z:c:({}):`\.?(?P<name>[^`]+?)`|z
`\g<name>`)r   r   z:cpp:({}):`\.?(?P<name>[^`]+?)`z:js:({}):`\.?(?P<name>[^`]+?)`z!(:py)?:({}):`\.?(?P<name>[^`]+?)`z"(:rst)?:({}):`\.?(?P<name>[^`]+?)`z:({}):`\.?(?P<name>[^`]+?)`z'^\s*:({}) (?P<type>\S+) (?P<param>\S+):z- `\g<param>` (`\g<type>`):)r   r   r   zG^\s*:({}) (?P<param>\S+): (?P<desc>.*)(\n|\r\n?):type \2: (?P<type>.*)$z"- `\g<param>` (\g<type>): \g<desc>z^\s*:({}) (?P<param>\S+):z- `\g<param>`:z^\s*:type (?P<param>\S+):z  . Type: `\g<param>`:z^\s*:(return|returns):z
- returns:z^\s*:rtype: (?P<type>\S+)z- return type: `\g<type>`z8^\s*:(raises|raise|except|exception) (?P<exception>\S+):z- raises `\g<exception>`:SPHINX_RULESc                   B    e Zd ZddededefdZed        Zed        Zy)	
Admonitionr   labeliconc                 .    || _         || _        || _        y r   r   rA   rB   )r   r   rA   rB   s       r   r   zAdmonition.__init__   s    	
	r   c                 :    | j                    d| j                   dS )Nz **z**)rB   rA   r   s    r   block_markdownzAdmonition.block_markdown   s    ))C

|2..r   c                      | j                   dz   S )N:)rG   rF   s    r   inline_markdownzAdmonition.inline_markdown   s    ""S((r   N) )r   r   r   r   r   propertyrG   rJ   r   r   r   r@   r@      sD    S  C 
 / / ) )r   r@   cautionCautionu   ⚠️ rD   	attention	AttentiondangerDangerhintHintu   🛈	important	ImportantnoteNotetipTipwarningWarningz\.\. ::ADMONITION_DIRECTIVESz3\.\. versionchanged:: (?P<version>\S+)(?P<end>$|\n)z*Changed in \g<version>*\g<end>z1\.\. versionadded:: (?P<version>\S+)(?P<end>$|\n)z*Added in \g<version>*\g<end>z/\.\. deprecated:: (?P<version>\S+)(?P<end>$|\n)z%*Deprecated since \g<version>*\g<end>z-\.\. seealso::(?P<short_form>.*)(?P<end>$|\n)z*See also*\g<short_form>\g<end>z.:ref:`(?P<label>[^<`]+?)\s*<(?P<ref>[^>`]+?)>`z\g<label>: `\g<ref>`z,`(?P<label>[^<`]+?)(\n?)<(?P<url>[^>`]+)>`_+z[\g<label>](\g<url>)z:mod:`(?P<label>[^`]+)`z`\g<label>`z0\.\. currentmodule:: (?P<module>.+)(?P<end>$|\n)rK   z:math:`(?P<latex>[^`]+?)`z$\g<latex>$z*\.\. math:: (?P<latex>[^`]+?)(?P<end>$|\n)z$$\g<latex>$$\g<end>z.\.\. highlight:: (?P<language>.+)(?P<end>$|\n)	highlight)r   r   r   z?\.\. (code-block|productionlist)::(?P<language>.*)(?P<end>$|\n)z\g<end>z
code-blockRST_DIRECTIVES>   See AlsoNotesReturnsExamples
Attributes
Parameters
Referencesz#^(?P<other_args>\*\*kwargs|\*args)$z- `\g<other_args>`zA^(?P<arg1>[^:\s]+\d), (?P<arg2>[^:\s]+\d), \.\.\. : (?P<type>.+)$z)- `\g<arg1>`, `\g<arg2>`, `...`: \g<type>z-^\.\. \[(?P<number>\d+)\] (?P<first_line>.+)$z - [\g<number>] \g<first_line>)rf   rg   SECTION_DIRECTIVESz__(?P<text>\S+)__z\_\_\g<text>\_\_ESCAPING_RULESr   c                 l    t         D cg c]  }|j                  | k(  r| c}d   j                  S c c}w r   )r`   r   r   )r   	directives     r   _find_directive_patternrl   E  s?    #1>>T! 	 	 
 s   1valuereturnc                    t         D ]  }|dz   dt        |      z  z   dz   | v s y t        D ]/  }t        j                  |j
                  | |j                        s/ y t        t        j                  d|       xs d| v       S )N
-Tz(\s|\w)::\nz
>>> )_RST_SECTIONSlenr`   researchr   r   bool)rm   sectionrk   s      r   looks_like_rstrx   P  s      dNS3w<//$65@ $ 	99Y&&y? 		.%0EH4EFFr   c                       e Zd ZU dZeed<   y)IBlockBeginningze
    Line that does not belong to the code block and should be prepended and analysed separately
    	remainderN)r   r   r   __doc__r   __annotations__r   r   r   rz   rz   \  s     Nr   rz   c                       e Zd ZU ededefd       Zedededefd       Zededefd       Z	ededdfd       Z
ed	edefd
       Z	 dZed   ed<   y)IParserlinern   c                      y)z>Whether the line looks like a valid beginning of parsed block.Nr   r   r   s     r   	can_parsezIParser.can_parsee      r   current_languagec                      y)zInitiate parsing of given line.

        Arguments:
            line: first line to be parsed (that passed `can_parse()` test)
            current_language: language to use if highlighting code and no other language is specified in `line`
        Nr   r   r   r   s      r   initiate_parsingzIParser.initiate_parsingi  r   r   c                      y)zMWhether the line can be parsed, or does it look like an end of parsable area?Nr   r   s     r   can_consumezIParser.can_consumer  r   r   Nc                      y)zParse given line.Nr   r   s     r   consumezIParser.consumev  r   r   finalc                      y)z>Finish parsing and return the converted part of the docstring.Nr   )r   r   s     r   finish_consumptionzIParser.finish_consumptionz  r   r   r   Nfollower)r   r   r   r   r   rv   r   rz   r   r   r   r   r   r   r}   r   r   r   r   r   c  s    Mc Md M M S C O   \ \ \ \  C  D     M M M M Q'+HeO$+r   r   c                   `   e Zd ZU  G d de      Zeed<   eed<   eed<   eed<   eed<   ee   ed<   eed	<   ee   ed
<   eee      ed<   ee   ed<   eed<   d Z	d Z
dedefdZdededefdZdedefdZdeddfdZdefdZdedee   fdZej&                  fdee   defdZdedefdZy)TableParserc                   R    e Zd Z e       Z e       Z e       Z e       Z e       Zy)TableParser.StateN)	r   r   r   r   AWAITSPARSING_HEADERPARSED_HEADERPARSING_ROWSFINISHEDr   r   r   Stater     s%    v6r   r   outer_border_patterncolumn_top_prefixcolumn_top_bordercolumn_end_offset_state_column_starts_columns_end_columns_rows
_max_sizes_indentc                 $    | j                          y r   )_reset_staterF   s    r   r   zTableParser.__init__  s    r   c                     t         j                  j                  | _        g | _        d| _        g | _        g | _        g | _        d| _	        y )NrK   )
r   r   r   r   r   r   r   r   r   r   rF   s    r   r   zTableParser._reset_state  sA    !''.. 
r   r   rn   c                 T    t        t        j                  | j                  |            S r   )rv   rt   matchr   r   s     r   r   zTableParser.can_parse  s    BHHT66=>>r   r   c                 2   | j                          t        j                  | j                  |      }|sJ |j	                         }|d   xs d| _        g | _        |j                  d      | _        | j                  }t        |      D ]@  \  }}|| j                  k(  r*|| j                  k(  r| j                  j                  |       |}B | j                  D cg c]  }d c}| _        t        j                  j                   | _        t%        d      S c c}w )NindentrK   columnr   r{   )r   rt   r   r   	groupdictr   r   endr   r   	enumerater   appendr   r   r   r   r   rz   )r   r   r   r   groupspreviousichars           r   r   zTableParser.initiate_parsing  s    22D9u"h'-2 !IIh/))  	GAtt---(d>T>T2T##**1-H	 '+&9&9:1:!''66,, ;s   	Dc                 b    t        | j                  t        j                  j                  k7        S r   )rv   r   r   r   r   r   s     r   r   zTableParser.can_consume  s"    DKK;#4#4#=#==>>r   Nc                 b   t         j                  }| j                  |j                  k(  r,| j	                  |      | _        | xj                  dz  c_        y | j                  |j                  k(  r| xj                  dz  c_        y | j                  |j                  k(  r| j                  |       y y N   )	r   r   r   r   _splitr   r   r   _consume_row)r   r   statess      r   r   zTableParser.consume  s    "";;&/// KK-DMKK1K[[F000KK1K[[F///d# 0r   c                     t        j                  | j                  |      }|r| xj                  dz  c_        y | j                  j                  | j                  |             y r   )rt   r   r   r   r   r   r   )r   r   r   s      r   r   zTableParser._consume_row  sD    22D9KK1KJJdkk$/0r   c                    | j                   sJ g }t        | j                         D ]  \  }}|t        | j                         dz
  k  r| j                   |dz      | j                  z   n| j                  }||| j                         }t        |d      }t        | j                  |   t        |            | j                  |<   |j                  |        |S )Nr   F)extract_signature)
r   r   rs   r   r   striprst_to_markdownmaxr   r   )r   r   	fragmentsr   startr   fragments          r   r   zTableParser._split  s    """"	!$"5"56 		'HAu s4../!33 ##AE*T-C-CC!! 
 E#,,.H&x5IH!$T__Q%7X!GDOOAX&		' r   rowc           	          t        |      D cg c]  \  }} ||| j                  |          }}}| j                  dz   dj                  |      z   dz   S c c}}w )Nz| z | z |
)r   r   r   join)r   r   alignr   e
padded_rows         r   _wrapzTableParser._wrap  sb     "#
1 !T__Q'(

 
 ||d"ejj&<=FF	
s    Ar   c                    | j                  | j                  t        j                        }|| j                  | j                  D cg c]  }d|z  	 c}      z  }| j
                  D ]  }|| j                  |      z  } |S c c}w )N)r   rq   )r   r   r   centerr   r   )r   r   resultsizer   s        r   r   zTableParser.finish_consumption  s    DMM<$**
 $J
  	
 :: 	&Cdjjo%F	& 
s   B
)r   r   r   r   r   r   r}   r   r	   r   r   rv   r   rz   r   r   r   r   r   ljustr   r   r   r   r   r   r     s     KI3iS	?S	L?c ?d ?-S -C -O -"? ? ?	$C 	$D 	$1 13 49  +.)) Gc G G
 
 
r   r   c                       e Zd ZdZdZdZdZy)SimpleTableParserz$^(?P<indent>\s*)=+(?P<column> +=+)+$ =r   N)r   r   r   r   r   r   r   r   r   r   r   r     s    Br   r   c                   f     e Zd ZU dZdZdZdZeed<    fdZ	de
defd	Zde
defd
Zde
fdZ xZS )GridTableParserz$^(?P<indent>\s*)(?P<column>\+-+)+\+$+rq   r   _expecting_row_contentc                 0    t         |           d| _        y NT)superr   r   r   	__class__s    r   r   zGridTableParser._reset_state  s    &*#r   r   rn   c                 ~    |j                         }| j                  r|j                  d      S |j                  d      S )Nr=   z+-)lstripr   
startswith)r   r   strippeds      r   _is_correct_rowzGridTableParser._is_correct_row  s8    ;;=&&&&s++&&t,,r   c                     t        | j                  t        j                  j                  k7        xr: | j                  t        j                  j
                  k7  xs | j                  |      S r   )rv   r   r   r   r   r   r   r   s     r   r   zGridTableParser.can_consume
  sS     1 1 : ::; Z[[K--:::Xd>R>RSW>X	
r   c                     | j                  |      rI| j                  r*| j                  j                  | j	                  |             | j                   | _        y | xj
                  dz  c_        y r   )r   r   r   r   r   r   r   s     r   r   zGridTableParser._consume_row  sS    %**

!!$++d"34.2.I.I*ID'KK1Kr   )r   r   r   r   r   r   r   rv   r}   r   r   r   r   r   __classcell__r   s   @r   r   r     sX    B  +-C -D -
 
 
 r   r   c                       e Zd ZU dZdZed   ed<   ee   ed<   e	ed<   d Z
eded	e	fd
       ZdefdZdefdZde	d	efdZy)BlockParserz```Nr   r   _buffer_block_startedc                      g | _         d| _        y NF)r   r   rF   s    r   r   zBlockParser.__init__   s    #r   r   rn   c                      y)zKAll children should call _start_block in initiate_parsing() implementation.Nr   r   s     r   r   zBlockParser.can_parse$  r   r   languagec                 b    | j                   j                  | j                  |z          d| _        y r   )r   r   	enclosurer   )r   r   s     r   _start_blockzBlockParser._start_block(  s%    DNNX56"r   c                 h    | j                   st        d      | j                  j                  |       y )NzBlock has not started)r   
ValueErrorr   r   r   s     r   r   zBlockParser.consume,  s)    ""455D!r   r   c                 V   | j                   t        | j                         dz
     j                         dk(  r| j                   j                          | j                   j	                  | j
                  dz          dj                  | j                         }|s|dz  }g | _         d| _        |S )Nr   rK   rp   F)r   rs   r   popr   r   r   r   )r   r   r   s      r   r   zBlockParser.finish_consumption1  s    <<DLL)A-.446"<LLDNNT124<<(dNF#r   )r   r   r   r   r   r   r}   r	   r   rv   r   r   r   r   r   r   r   r   r   r   r     s|    I'+HeO$+#Y$ Zc Zd Z Z#S #"C "

 
 
r   r   c                        e Zd ZU eed<   eedf   ed<    fdZdef fdZ	dedefd	Z
def fd
Zdedef fdZ xZS )IndentedBlockParser_is_block_beginningN_block_indent_sizec                 8    t         t        |           d| _        y r   )r   r   r   r   r   s    r   r   zIndentedBlockParser.__init__B  s    !413#( r   r   c                 @    t         |   |       d | _        d| _        y r   )r   r   r   r   )r   r   r   s     r   r   z IndentedBlockParser._start_blockF  s     X&"&#' r   r   rn   c                     | j                   r|j                         dk(  ryt        t        |      dkD  xr t	        j
                  d|d         xs t        |      dk(        S )NrK   Tr   z^\s)r   r   rv   rs   rt   r   r   s     r   r   zIndentedBlockParser.can_consumeK  sP    ##

(:SY]@rxxQ'@SSYRS^TTr   c                     | j                   rd| _         |j                         dk(  ry | j                  *t        |      t        |j	                               z
  | _        t
        |   || j                  d         y )NFrK   )r   r   r   rs   r   r   r   r   r   r   s     r   r   zIndentedBlockParser.consumeP  sg    ##',D$zz|r!""*&)$i#dkkm2D&DD#T44567r   r   c                 >    d| _         d | _        t        |   |      S r   )r   r   r   r   )r   r   r   s     r   r   z&IndentedBlockParser.finish_consumptionZ  s#    #( "&w)%00r   )r   r   r   rv   r}   r   r   r   r   r   r   r   r   r   r   s   @r   r   r   >  sc    c4i(()(S (
U U U
8C 81 1 1 1r   r   c                   @    e Zd ZdedefdZdedefdZdededefdZy)PythonOutputBlockParserr   rn   c                 P    |j                         dk7  xr |j                  d       S )NrK   >>>)r   r   r   s     r   r   z#PythonOutputBlockParser.can_consumea  s$    zz|r!@$//%*@&@@r   c                 (    |j                         dk7  S )NrK   r   r   s     r   r   z!PythonOutputBlockParser.can_parsed  s    zz|r!!r   r   c                 ^    | j                  d       | j                  |       t        d      S NrK   r   r   r   rz   r   s      r   r   z(PythonOutputBlockParser.initiate_parsingg  s'    "T,,r   N)	r   r   r   r   rv   r   r   rz   r   r   r   r   r  r  `  sE    A A A"c "d "-S -C -O -r   r  c                   v     e Zd ZdedefdZdededefdZdedefdZdef fdZ	dedefdZ
 e       Z xZS )	PythonPromptCodeBlockParserr   rn   c                 $    |j                  d      S )Nr  r   r   s     r   r   z%PythonPromptCodeBlockParser.can_parsen  s    u%%r   r   c                 ^    | j                  d       | j                  |       t        d      S )NpythonrK   r   r  r   s      r   r   z,PythonPromptCodeBlockParser.initiate_parsingq  s'    (#T,,r   c                 J    |j                  d      xs |j                  d      S )Nr  z...r  r   s     r   r   z'PythonPromptCodeBlockParser.can_consumev  s    u%?)??r   c                 B    t         |   | j                  |             y r   )r   r   _strip_promptr  s     r   r   z#PythonPromptCodeBlockParser.consumey  s    **401r   c                 X    |j                  d      s|j                  d      rdnd}||d  S )Nz>>> z...       r  )r   r   r   s      r   r  z)PythonPromptCodeBlockParser._strip_prompt|  s+    __V,0GQEF|r   )r   r   r   r   rv   r   rz   r   r   r   r  r  r   r   r   s   @r   r  r  m  so    &c &d &-S -C -O -
@ @ @2C 2# #  '(Hr   r  c                   (    e Zd ZdefdZdedefdZy)DoubleColonBlockParserr   c                 @    |j                         j                  d      S )Nr]   )rstripendswithr   s     r   r   z DoubleColonBlockParser.can_parse  s    {{}%%d++r   r   c                     |}|j                         dk(  rd}d}nt        j                  dd|      }| j                  |       t	        |j                         dz         S )Nz.. autosummary::rK   z::$z

r   )r   rt   subr   rz   r  )r   r   r   r   s       r   r   z'DoubleColonBlockParser.initiate_parsing  sV    #::<--HD66&"d+D(#)?@@r   N)r   r   r   r   r   r   r   r   r   r  r    s$    ,c ,	AS 	AC 	Ar   r  c                   ,    e Zd ZdZdefdZdedefdZy)MathBlockParserz$$r   c                 (    |j                         dk(  S )Nz	.. math::r	  r   s     r   r   zMathBlockParser.can_parse  s    zz|{**r   r   c                 <    | j                  d       t        d      S r  )r   rz   r   s      r   r   z MathBlockParser.initiate_parsing  s    ",,r   N)r   r   r   r   r   r   r   r   r   r   r!  r!    s&    I+c +-S -C -r   r!  c                   z    e Zd ZdZeD  ci c]  }d|j
                   d| c}} ZdefdZdedefdZ	yc c}} w )	NoteBlockParserz
---z.. r]   r   c                 :    |j                         | j                  v S r   )r   
directivesr   s     r   r   zNoteBlockParser.can_parse  s    zz|t..r   r   c                     | j                   |j                            }| j                  d|j                   d       t	        d      S )Nrp   rK   r   )r'  r   r   rG   rz   )r   r   r   
admonitions       r   r   z NoteBlockParser.initiate_parsing  s?    __TZZ\2
Bz889<=,,r   N)
r   r   r   r   ADMONITIONSr   r'  r   r   r   ).0r)  s   00r   r%  r%    sX    I & joob!:-J
/c /-S -C -s   7r%  c                   0    e Zd ZdedefdZdededefdZy)ExplicitCodeBlockParserr   rn   c                 :    t        j                  t        |      d uS r   )rt   r   CODE_BLOCK_PATTERNr   s     r   r   z!ExplicitCodeBlockParser.can_parse  s    xx*D1==r   r   c                     t        j                  t        |      }|sJ | j                  |j	                  d      j                         xs |       t        d      S )Nr   rK   r   )rt   r   r/  r   groupr   rz   )r   r   r   r   s       r   r   z(ExplicitCodeBlockParser.initiate_parsing  sK    +T2u%++j1779M=MN,,r   N)r   r   r   r   rv   r   rz   r   r   r   r   r-  r-    s/    >c >d >-S -C -O -r   r-  rp   rq   textr   c                 \   d}d}d}g d}d}fd}| j                  d      D ]d  }|rG|rCt        j                  d|      }	|	r+|	j                  d      j	                         r|d	|z   d
z   z  }Kd}|j                         }
|rw|j                  |      r|j                  |       nT| |       z  }||j                  d      z  }|j                  }|r&|j                  |      r|}|j                  ||       nd}|rt        D ]5  }|j                  |      s|}|j                  ||      }|j                  } n t        j                  d|      }|r?|j                  d      dz   |j                  d      z   dz   |j                  d      z   dz   }n|t        v r[t        |   D ]O  }t        j                  |j                  |
      s$t        j                   |j                  |j"                  |
      } n |
j%                         t&        v r|
j%                         }t        j(                  t*        |      }|rA|j                  d      j-                         dk7  r|j                  d      j-                         }j/                  |       g | |       z  }|r||j                  d      z  }|S )am  
    Try to parse docstrings in following formats to markdown:
    - https://www.python.org/dev/peps/pep-0287/
    - https://www.python.org/dev/peps/pep-0257/
    - https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html
    - https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#literal-blocks

    It is intended to improve the UX while better the solutions at the backend
    are being investigated rather than provide a fully-featured implementation.

    Supported features:
    - code blocks:
      - PEP0257 (formatting of code with highlighting, formatting of output without highlighting)
      - after ::
      - production lists,
      - explicit code blocks
    - NumPy-like list items
    - external links (inline only)
    - as subset of paragraph-level and inline directives

    Arguments:
        text - the input docstring
    r  rK   NTc                     dj                        } t        D ]9  }t        j                  |j                  |j
                  | |j                        } ; t        j                         D ]  \  }}| j                  |d|z   dz         }  g | S )Nrp   )r   z
#### )
r   
DIRECTIVESrt   r  r   r   r   RST_SECTIONSitemsreplace)linesrk   rw   headerlines_buffers       r   flush_bufferz%rst_to_markdown.<locals>.flush_buffer  s    		,'# 	cIFF9,,i.C.CUR[RaRabE	c ".!3!3!5 	FWfMM&)g*=*DEE	F r   rp   z!^(?P<name>\S+)\((?P<params>.*)\)$r   z
```python
z
```
Fz5^(?P<indent>\s*)(?P<argument>[^:\s]+) : (?P<type>.+)$r   z- `r;   z`: r-   r   )splitrt   r   r1  isidentifierr   r   r   r   r   r   r   BLOCK_PARSERSr{   rh   r   r  r   r  r6  ru   HIGHLIGHT_PATTERNr   r   )r2  r   r   markdownactive_parsermost_recent_sectionis_first_liner<  r   signature_matchtrimmed_liner   parserblock_startr   section_directivehighlight_matchr;  s                    @r   r   r     s   0 HH*.M L,0M 

4  8& "$((+OQU"V"'<'<V'D'Q'Q'S 4y @@H!M{{}((.%%d+LN*M<<UCC(11 2 24 8$,M!224B$(M' ##D)$*M"("9"9$"IK&00D HHUW[\E{{8,u4u{{:7NNQVVY^YdYdekYlloqq&*<<-?@S-T ")88$5$=$=|L#%66*;*C*CEVEbEbdp#qD!"  &&(L8*6*=*=*?'
 !ii(94@O?#8#8#D#J#J#LPR#R*00<BBD%q8&t HM44T::Or   )T);abcr   r   r+   r   r   typesr   typingr   r	   r
   rt   r   SPHINX_CROSS_REF_PYTHONSPHINX_CROSS_REF_CSPHINX_CROSS_REF_CPPSPHINX_CROSS_REF_JSSPHINX_CROSS_REF_RSTSPHINX_CROSS_REF_OTHERSPHINX_PARAMformatr   	MULTILINEr>   r}   r@   r*  r   rJ   r^   r`   rr   rh   r   ri   rl   r@  r/  rv   rx   rz   r   r   r   r   r   r   r  r  r  r!  r%  r-  r?  rs   r6  r5  r   )r)  rw   s   00r   <module>rW     sR   # #  ! $ $ 		 	
 
      077AS8TU! 299#((CW:XY! 188BU9VW! 4;;CHHE\<]^! 5<<SXXFZ=[\! .55chh?U6VW! :AA#((<BXY2ll
 Zaabebjbjkwbxy9ll
 ,33CHH\4JK%ll
 ,-ll
 )!ll
 ,0ll
 K0llo<!d9o <~) )  
 
 
 
 
 
 
 I)d "* 		 ),..* tI  F6 D4 B<5# 5# @65#$ A+%5#, ?+-5#4 *"55#< C=5#D ,"E5#L =+M5#T AU5#^ R_5#h i5#Y 5p 	:-	
 	XD	
	 	D9	
2 Dd9o-. * $'#Y #  ,K8 ,\: 	G# 	G$ 	Go ,c ,>k' k\  k  F!' !H1+s 1D
-k 
-)+ ),A0 A$-) --) - 	-1 	-  ! ! TG^d"S3w<%777

j# j$ j# jo*Xs   8)RR	