§
    ãŽ’jÞ%  ã            	       ó¾   — d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZmZ dedej        e         fd„Zdej        e         defd	„Zej        d
fdedededefd„ZdS )z^Epyoc-style docstring parsing.

.. seealso:: http://epydoc.sourceforge.net/manual-fields.html
é    Né   )Ú	DocstringÚDocstringMetaÚDocstringParamÚDocstringRaisesÚDocstringReturnsÚDocstringStyleÚ
ParseErrorÚRenderingStyleÚstringÚreturnc                 óX   — |                       ¦   «         } t          | ¦  «        dk    r| S d S )Nr   )ÚstripÚlen)r   s    úEC:\Projects\DSCons\.venv\Lib\site-packages\docstring_parser\epydoc.pyÚ
_clean_strr      s(   € Ø�\Š\‰^Œ^€FÝ
ˆ6�{„{�Q‚€ØˆØˆ4ó    Útextc           
      óP  — t          t          j        ¬¦  «        }| s|S t          j        | ¦  «        } t          j        d| t
          j        ¬¦  «        }|r9| d|                     ¦   «         …         }| |                     ¦   «         d…         }n| }d}| 	                    dd¦  «        }|d         pd|_
        t          |¦  «        dk    rY|d         pd}|                     d¦  «        |_        |                     d	¦  «        |_        |                     ¦   «         pd|_        t          j        d
¦  «        }t          j        d¦  «        }t          j        d¦  «        }	t          j        d¦  «        }
t          j        d¦  «        }g }t          j        d|t
          j        t
          j        z  ¬¦  «        D �]˜}|                     d¦  «        }|sŒt          j        ||¦  «        }t          j        ||¦  «        }t          j        |	|¦  «        }t          j        |
|¦  «        }t          j        ||¦  «        }|p|p|p|p|}|st-          d|› d�¦  «        ‚||                     ¦   «         d…         }|rAd}|                     d¦  «        }|                     d¦  «                             ¦   «         g}�n2|r@d}|                     d¦  «        }|                     d¦  «                             ¦   «         g}nð|rWd}|                     d¦  «        }|                     d¦  «        €g n'|                     d¦  «                             ¦   «         g}n—|rd}|                     d¦  «        }g }n{d}|                     d¦  «        }t1          |                     d¦  «                             ¦   «         ¦  «        }|€g nt          j	        d|¦  «        }|dv rt-          d|› d�¦  «        ‚|                     ¦   «         }d|v r3| 	                    dd¦  «        \  }}|dz   t          j        |¦  «        z   }|                     ||||f¦  «         �Œši }|D ]l\  }}}}|dvrŒ|pd\  }|                     |i ¦  «        }d|v rdnd}|||<   |dk    r1|dv }|                     d |¦  «        |k    rt-          d!|› d�¦  «        ‚Œmi }|D �]Ý\  }}}}|d"v rà|                     |d         d#¦  «        sÄ|\  }||         }|                     d¦  «        } | r"|                      d$¦  «        rd%}!| dd&…         } nd#}!t          j        d'|t
          j        ¬¦  «        }|r(|                     d¦  «                             d(¦  «        nd}"t?          ||g|                     d¦  «        || |!|"¬)¦  «        }#d%||<   n×|dk    rr|                     dd#¦  «        s\|d         }tA          |g|                     d¦  «        |                     d¦  «        |                     d d#¦  «        ¬*¦  «        }#d%|d<   n_|dk    r|pd+\  } tC          |g|z   || ¬,¦  «        }#n<|dk    rtE          |g|z   |¬-¦  «        }#n |pd^}}$|                     |d#¦  «        sJ ‚�ŒÃ|j#                             |#¦  «         �Œß|S ).zZParse the epydoc-style docstring into its components.

    :returns: parsed docstring
    )Ústylez^@)ÚflagsNÚ ú
r   r   z

z-(param|keyword|type)(\s+[_A-z][_A-z0-9]*\??):z((ivar|cvar|var)(\s+[_A-z][_A-z0-9]*\??):z!(raise)(\s+[_A-z][_A-z0-9]*\??)?:z(return|rtype|yield|ytype):z.([_A-z][_A-z0-9]+)((\s+[_A-z][_A-z0-9]*\??)*):z(^@.*?)(?=^@|\Z)z%Error parsing meta information near "z".Úparamé   Ú	attributeÚraiser   Úmetaz\s+)
r   ÚivarÚcvarÚvarÚkeywordÚtyper   ÚrtypeÚyieldÚytype)r   r   r   )r   r#   Ú	type_nameÚdescription>   r%   r&   Úis_generatorz$Error parsing meta information for ")r   r   FÚ?Téÿÿÿÿz.*defaults to (.+)ú.)Úargsr(   Úarg_namer'   Úis_optionalÚdefault)r-   r(   r'   r)   )N)r-   r(   r'   )r-   r(   )$r   r	   ÚEPYDOCÚinspectÚcleandocÚreÚsearchÚMÚstartÚsplitÚshort_descriptionr   Ú
startswithÚblank_after_short_descriptionÚendswithÚblank_after_long_descriptionr   Úlong_descriptionÚcompileÚfinditerÚSÚgroupr
   Úendr   ÚappendÚ
setdefaultÚgetÚmatchÚDOTALLÚrstripr   r   r   r   r   )%r   ÚretrG   Ú
desc_chunkÚ
meta_chunkÚpartsÚlong_desc_chunkÚparam_patternÚattribute_patternÚraise_patternÚreturn_patternÚmeta_patternÚstreamÚchunkÚparam_matchÚattribute_matchÚraise_matchÚreturn_matchÚ
meta_matchÚbaseÚkeyr-   ÚtokenÚdescÚ
first_lineÚrestÚparamsr.   ÚinfoÚinfo_keyr)   Úis_doner'   r/   r0   Ú	meta_itemÚ_s%                                        r   Úparserg      sc  € õ
 �.Ô/Ð
0Ñ
0Ô
0€CØð Øˆ
åÔ˜DÑ!Ô!€DÝŒI�d˜D­¬Ð-Ñ-Ô-€EØð Ø˜/˜EŸKšK™MœM˜/Ô*ˆ
Ø˜%Ÿ+š+™-œ-˜/˜/Ô*ˆ
ˆ
àˆ
Øˆ
à×Ò˜T 1Ñ%Ô%€EØ! !œHÐ,¨€CÔÝ
ˆ5�z„z�A‚~€~Ø œ(˜. bˆØ,;×,FÒ,FÀtÑ,LÔ,LˆÔ)Ø+:×+CÒ+CÀFÑ+KÔ+KˆÔ(Ø.×4Ò4Ñ6Ô6Ð>¸$ˆÔå”JØ8ñô €Mõ œ
Ð#NÑOÔOÐÝ”JÐCÑDÔD€MÝ”ZÐ >Ñ?Ô?€NÝ”:Ø9ñô €Lð
 ;=€FÝ”Ø˜Z­r¬tµb´d©{ðñ ô ð D/ñ D/ˆð —’˜A‘”ˆØð 	Øå”i ¨uÑ5Ô5ˆÝœ)Ð$5°uÑ=Ô=ˆÝ”i ¨uÑ5Ô5ˆÝ”y °Ñ7Ô7ˆÝ”Y˜|¨UÑ3Ô3ˆ
ð ð Øðàðð ðð ð 	ð ð 	PÝÐNÀUÐNÐNÐNÑOÔOÐOà˜5Ÿ9š9™;œ;˜=˜=Ô)ˆ
Øð &	ØˆDØ—{’{ 1‘~”~ˆCØ—K’K ‘N”N×(Ò(Ñ*Ô*Ð+ˆD‰DØð "	ØˆDØ—{’{ 1‘~”~ˆCØ—K’K ‘N”N×(Ò(Ñ*Ô*Ð+ˆDˆDØð 	ØˆDØ—{’{ 1‘~”~ˆCØŸš Q™œÐ/�2�2°e·k²kÀ!±n´n×6JÒ6JÑ6LÔ6LÐ5MˆDˆDØð 	ØˆDØ—{’{ 1‘~”~ˆCØˆDˆDàˆDØ—{’{ 1‘~”~ˆCÝ˜uŸ{š{¨1™~œ~×3Ò3Ñ5Ô5Ñ6Ô6ˆEØ˜�2�2­B¬H°V¸UÑ,CÔ,CˆDð ð ð ð õ !ØE¸EÐEÐEÐEñô ð ð ×ÒÑ!Ô!ˆØ�4ˆ<ˆ<Ø#Ÿzšz¨$°Ñ2Ô2ÑˆJ˜Ø Ñ$¥wÔ'7¸Ñ'=Ô'=Ñ=ˆDØ�Š�t˜S $¨Ð-Ñ.Ô.Ð.Ñ.ð /1€FØ!'ð ð Ñˆˆc�4˜ØÐ7Ð7Ð7ØàÐ)˜k‰ˆØ× Ò  ¨2Ñ.Ô.ˆØ"(¨C - -�;�;°]ˆØˆˆX‰à�8ÒÐØÐ"4Ð4ˆLØ�Š˜~¨|Ñ<Ô<ÀÒLÐLÝ ØG¸8ÐGÐGÐGñô ð øð "$€GØ!'ð 2#ñ 2#Ñˆˆc�4˜ØÐ)Ð)Ð)°'·+²+¸dÀ1¼gÀuÑ2MÔ2MÐ)Ø‰KˆXØ˜(Ô#ˆDØŸš Ñ-Ô-ˆIàð $˜Y×/Ò/°Ñ4Ô4ð $Ø"�Ø% c r cœN�	�	à#�å”HÐ2°DÅÄ	ÐJÑJÔJˆEØ49ÐC�e—k’k !‘n”n×+Ò+¨CÑ0Ô0Ð0¸tˆGå&Ø˜8�_Ø ŸHšH ]Ñ3Ô3Ø!Ø#Ø'Øðñ ô ˆIð !%ˆG�HÑÐØ�XÒÐ g§k¢k°(¸EÑ&BÔ&BÐØ˜(Ô#ˆDÝ(Ø�UØ ŸHšH ]Ñ3Ô3ØŸ(š( ;Ñ/Ô/Ø!ŸXšX n°eÑ<Ô<ð	ñ ô ˆIð !%ˆG�HÑÐØ�WŠ_ˆ_Ø˜? 7‰LˆYÝ'Ø�U˜T‘\Ø Ø#ðñ ô ˆIˆIð
 �VŠ^ˆ^Ý%Ø�U˜T‘\Ø ðñ ô ˆIˆIð
 Ð+ ˆIˆS�1Ø—;’;˜s EÑ*Ô*Ð*Ð*Ð*ÙàŒ�Š˜	Ñ"Ô"Ð"Ñ"à€Jr   z    Ú	docstringÚrendering_styleÚindentc                 ó  ‡‡— dt           j        t                   dt          dt          fˆˆfd„}g }| j        r|                     | j        ¦  «         | j        r|                     d¦  «         | j        r|                     | j        ¦  «         | j        r|                     d¦  «         | j	        D �]Á}t          |t          ¦  «        r�|j        rG|j        r
|j        › d�n|j        }d|j        › d�}| ||d	¦  «        z  }|                     |¦  «         d
|j        › d� ||j        d¦  «        z   }|                     |¦  «         Œ™t          |t           ¦  «        rx|j        rdnd\  }}	|j        r-d|	› d� ||j        d	¦  «        z   }|                     |¦  «         |j        r-d|› d� ||j        d¦  «        z   }|                     |¦  «         �Œ&t          |t$          ¦  «        r?|j        rd|j        › d�nd}| ||j        d¦  «        z  }|                     |¦  «         �Œzdd                     |j        ¦  «        › d�}| ||j        d¦  «        z  }|                     |¦  «         �ŒÃd                     |¦  «        S )a  Render a parsed docstring into docstring text.

    :param docstring: parsed docstring representation
    :param rendering_style: the style to render docstrings
    :param indent: the characters used as indentation in the docstring string
    :returns: docstring text
    r^   Úis_typer   c                 óN  •— | sdS ‰t           j        k    s‰t           j        k    rC|sA|                      ¦   «         ^}}d                     d‰z   |z   gˆfd„|D ¦   «         z   ¦  «        S |                      ¦   «         ^}}d                     d|z   gˆfd„|D ¦   «         z   ¦  «        S )Nr   r   c                 ó   •— g | ]}‰|z   ‘ŒS © ro   ©Ú.0Úlinerj   s     €r   ú
<listcomp>z1compose.<locals>.process_desc.<locals>.<listcomp>é   s   ø€ Ð*JÐ*JÐ*J¸T¨6°D©=Ð*JÐ*JÐ*Jr   ú c                 ó   •— g | ]}‰|z   ‘ŒS ro   ro   rp   s     €r   rs   z1compose.<locals>.process_desc.<locals>.<listcomp>í   s   ø€ Ð)IÐ)IÐ)I¸D¨&°4©-Ð)IÐ)IÐ)Ir   )r   ÚEXPANDEDÚCLEANÚ
splitlinesÚjoin)r^   rl   Úfirstr`   rj   ri   s       €€r   Úprocess_desczcompose.<locals>.process_descà   sÊ   ø€ Øð 	Ø�2à�nÔ5Ò5Ð5Ø�~Ô3Ò3Ð3¸GÐ3à!Ÿ_š_Ñ.Ô.ˆNˆU�TØ—9’9Ø˜‘ Ñ&Ð'Ð*JÐ*JÐ*JÐ*JÀTÐ*JÑ*JÔ*JÑJñô ð ð ŸšÑ*Ô*ˆˆ�Ø�yŠy˜# ™+˜Ð)IÐ)IÐ)IÐ)IÀDÐ)IÑ)IÔ)IÑIÑJÔJÐJr   r   r*   z@type ú:Tz@param F)r%   r&   )r   r$   ú@z@raise z@raise:rt   r   )ÚTÚOptionalÚstrÚboolr9   rD   r;   r>   r=   r   Ú
isinstancer   r'   r/   r.   r(   r   r)   r   ry   r-   )
rh   ri   rj   r{   rM   r   r'   r   Úarg_keyÚtype_keys
    ``       r   Úcomposer…   Ó   s  øø€ ðK�1œ:¥cœ?ð KµTð K½cð Kð Kð Kð Kð Kð Kð Kð €EØÔ"ð 2Ø�Š�YÔ0Ñ1Ô1Ð1ØÔ.ð Ø�Š�RÑÔÐØÔ!ð 1Ø�Š�YÔ/Ñ0Ô0Ð0ØÔ-ð Ø�Š�RÑÔÐà”ð "ñ "ˆÝ�d�NÑ+Ô+ð !	ØŒ~ð #ð Ô'ð(�t”~Ð(Ð(Ð(Ð(àœð ð
 1 ¤Ð0Ð0Ð0�Ø˜˜ Y°Ñ5Ô5Ñ5�Ø—’˜TÑ"Ô"Ð"Ø-˜Tœ]Ð-Ð-Ð-°°ØÔ  %ñ1ô 1ñ ˆDð �LŠL˜ÑÔÐÐÝ˜Õ.Ñ/Ô/ð 	ð Ô$ð)Ð"Ð"à(ñ  ˆW�hð
 Œ~ð #Ø&˜8���¨¨°d´nÀdÑ)KÔ)KÑK�Ø—’˜TÑ"Ô"Ð"ØÔð #Ø%˜7�~�~�~¨¨°TÔ5EÀuÑ(MÔ(MÑM�Ø—’˜TÑ"Ô"Ð"ùÝ˜�oÑ.Ô.ð 	Ø26´.ÐOÐ.˜Tœ^Ð.Ð.Ð.Ð.ÀiˆDØ�L�L Ô!1°5Ñ9Ô9Ñ9ˆDØ�LŠL˜ÑÔÐÑà-�s—x’x ¤	Ñ*Ô*Ð-Ð-Ð-ˆDØ�L�L Ô!1°5Ñ9Ô9Ñ9ˆDØ�LŠL˜ÑÔÐÑØ�9Š9�UÑÔÐr   )Ú__doc__r2   r4   Útypingr~   Úcommonr   r   r   r   r   r	   r
   r   r€   r   r   rg   ÚCOMPACTr…   ro   r   r   ú<module>rŠ      sG  ððð ð
 €€€Ø 	€	€	€	Ø Ð Ð Ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð�sð ˜qœz¨#œð ð ð ð ðs�”
˜3”ð s Ið sð sð sð sðp '5Ô&<ØðIð IØðIà#ðIð ðIð 	ð	Ið Ið Ið Ið Ið Ir   