Ë
    £�DjžX  ã                   óº   — d Z ddlmZ ddlmZ ddlZddlZddlZddlZddl	m
Z
 d„ Zd„ Z G d„ d	«      Z ed
g d¢«      Z G d„ de«      Z G d„ d«      Zd„ Zdd„Zy)z,
Substantially copied from NumpyDoc 1.0pre.
é    )Ú
namedtuple)ÚMappingN)Ú
ParseErrorc                 óh   — t        j                  dj                  | «      «      j                  d«      S )z"Deindent a list of lines maximallyú
)ÚtextwrapÚdedentÚjoinÚsplit)Úliness    ú_C:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\statsmodels\tools\docstring.pyÚdedent_linesr      s%   € ä�?‰?˜4Ÿ9™9 UÓ+Ó,×2Ñ2°4Ó8Ð8ó    c                 ó¾   — | r,| d   j                  «       s| d= | r| d   j                  «       sŒ| r,| d   j                  «       s| d= | r| d   j                  «       sŒ| S )z<Remove leading and trailing blank lines from a list of linesr   éÿÿÿÿ©Ústrip©Úlines    r   Ústrip_blank_linesr      sW   € á
�t˜A‘w—}‘}”Ø�ˆGñ �t˜A‘w—}‘}•á
�t˜B‘x—~‘~Ô'Ø�ˆHñ �t˜B‘x—~‘~Õ'à€Kr   c                   óT   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zdd„Zd„ Zy)ÚReaderz%
    A line-based string reader.
    c                 ó€   — t        |t        «      r|| _        n|j                  d«      | _        | j	                  «        y)zq
        Parameters
        ----------
        data : str
           String with lines separated by '
'.
        r   N)Ú
isinstanceÚlistÚ_strr   Úreset)ÚselfÚdatas     r   Ú__init__zReader.__init__!   s.   € ô �dœDÔ!ØˆD�IàŸ
™
 4Ó(ˆDŒIà�
‰
�r   c                 ó    — | j                   |   S ©N)r   ©r   Úns     r   Ú__getitem__zReader.__getitem__/   s   € Ø�y‰y˜‰|Ðr   c                 ó   — d| _         y )Nr   )Ú	_line_num©r   s    r   r   zReader.reset2   s	   € Øˆ�r   c                 óp   — | j                  «       s&| | j                     }| xj                  dz  c_        |S y)Né   Ú )Úeofr'   )r   Úouts     r   ÚreadzReader.read5   s/   € Ø�x‰xŒzØ�t—~‘~Ñ&ˆCØ�NŠN˜aÑ�NØˆJàr   c                 óz   — | | j                   d  D ])  }|j                  «       r y | xj                   dz  c_         Œ+ y ©Nr*   )r'   r   )r   r   s     r   Úseek_next_non_empty_linezReader.seek_next_non_empty_line=   s7   € Ø˜Ÿ™Ð)Ð*ò 	$ˆDØ�z‰zŒ|Ùà—’ !Ñ#–ñ		$r   c                 óF   — | j                   t        | j                  «      k\  S r"   ©r'   Úlenr   r(   s    r   r,   z
Reader.eofD   s   € Ø�~‰~¤ T§Y¡Y£Ñ/Ð/r   c                 óÖ   — | j                   }| |d  D ]T  } ||«      r| || j                    c S | xj                   dz  c_         | j                  «       sŒB| || j                   dz    c S  g S r0   )r'   r,   )r   Úcondition_funcÚstartr   s       r   Úread_to_conditionzReader.read_to_conditionG   sm   € Ø—‘ˆØ˜˜�Lò 	8ˆDÙ˜dÔ#Ø˜E D§N¡NÐ3Ò3Ø�NŠN˜aÑ�NØ�x‰x�zØ˜E D§N¡N°QÑ$6Ð7Ò7ð	8ð ˆ	r   c                 óJ   — | j                  «        d„ }| j                  |«      S )Nc                 ó$   — | j                  «        S r"   r   r   s    r   Úis_emptyz0Reader.read_to_next_empty_line.<locals>.is_emptyT   s   € Ø—z‘z“|Ð#Ð#r   )r1   r8   )r   r;   s     r   Úread_to_next_empty_linezReader.read_to_next_empty_lineQ   s&   € Ø×%Ñ%Ô'ò	$ð ×%Ñ% hÓ/Ð/r   c                 ó*   — d„ }| j                  |«      S )Nc                 óp   — | j                  «       xr% t        | j                  «       «      t        | «      k(  S r"   )r   r4   Úlstripr   s    r   Úis_unindentedz:Reader.read_to_next_unindented_line.<locals>.is_unindentedZ   s'   € Ø—:‘:“<ÒE¤S¨¯©«Ó%7¼3¸t»9Ñ%DÐEr   )r8   )r   r@   s     r   Úread_to_next_unindented_linez#Reader.read_to_next_unindented_lineY   s   € ò	Fð ×%Ñ% mÓ4Ð4r   c                 ór   — | j                   |z   t        | j                  «      k  r| | j                   |z      S y©Nr+   r3   r#   s     r   ÚpeekzReader.peek_   s2   € Ø�>‰>˜AÑ¤ D§I¡I£Ò.Ø˜Ÿ™¨Ñ*Ñ+Ð+àr   c                 óV   — dj                  | j                  «      j                  «        S rC   )r
   r   r   r(   s    r   r;   zReader.is_emptye   s!   € Ø—7‘7˜4Ÿ9™9Ó%×+Ñ+Ó-Ð-Ð-r   N©r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r%   r   r.   r1   r,   r8   r<   rA   rD   r;   © r   r   r   r      s>   „ ñòòòòò$ò0òò0ò5óó.r   r   Ú	Parameter)ÚnameÚtypeÚdescc                   ó  — e Zd ZdZi dd“ddg“dg “dg “dg “dg “d	g “d
g “dg “dg “dg “dg “dg “dg “dg “dd“dd“di i¥Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ ZdAd„ZdZd Zd!Zd"ez   ez   d#z   ez   d$z   Zej'                  d%d&«      Zej'                  d'd(«      Zd)Z ej.                  d*ez   d+z   «      Z ej.                  d,ez   d-z   ez   d.z   d$z   d/z   ez   «      Zd0Zd1„ Zd2„ Zd3„ Zd4„ Zd5„ ZdBd6„Z dCd7„Z!d8„ Z"d9„ Z#d:„ Z$d;„ Z%d<„ Z&d=„ Z'd>„ Z(dDd?„Z)y@)EÚNumpyDocStringz‚Parses a numpydoc string to an abstract representation

    Instances define a mapping from section title to structured data.
    Ú	Signaturer+   ÚSummaryúExtended SummaryÚ
ParametersÚReturnsÚYieldsÚReceivesÚRaisesÚWarnsúOther ParametersÚ
AttributesÚMethodsúSee AlsoÚNotesÚWarningsÚ
ReferencesÚExamplesÚindexc                 ó  — |}t        j                  |«      j                  d«      }t        |«      | _        t        j                  | j                  «      | _        	 | j                  «        y # t        $ r}||_        ‚ d }~ww xY w)Nr   )r   r	   r   r   Ú_docÚcopyÚdeepcopyÚsectionsÚ_parsed_dataÚ_parser   Ú	docstring)r   rk   Úorig_docstringÚes       r   r    zNumpyDocString.__init__‡   si   € Ø"ˆÜ—O‘O IÓ.×4Ñ4°TÓ:ˆ	ä˜9Ó%ˆŒ	Ü ŸM™M¨$¯-©-Ó8ˆÔð	Ø�K‰K�MøÜò 	Ø(ˆAŒKØûð	ús   ÁA- Á-	BÁ6A>Á>Bc                 ó    — | j                   |   S r"   )ri   )r   Úkeys     r   r%   zNumpyDocString.__getitem__”   s   € Ø× Ñ  Ñ%Ð%r   c                 óh   — || j                   vr| j                  d|z  «       y || j                   |<   y )NzUnknown section %s)ri   Ú_error_location)r   ro   Úvals      r   Ú__setitem__zNumpyDocString.__setitem__—   s4   € Ø�d×'Ñ'Ñ'Ø× Ñ Ð!5¸Ñ!;Õ<à%(ˆD×Ñ˜cÒ"r   c                 ó,   — t        | j                  «      S r"   )Úiterri   r(   s    r   Ú__iter__zNumpyDocString.__iter__�   s   € Ü�D×%Ñ%Ó&Ð&r   c                 ó,   — t        | j                  «      S r"   )r4   ri   r(   s    r   Ú__len__zNumpyDocString.__len__    s   € Ü�4×$Ñ$Ó%Ð%r   c                 óª  — | j                   j                  «        | j                   j                  «       ry| j                   j                  «       j	                  «       }|j                  d«      ry| j                   j                  d«      j	                  «       }|j                  dt        |«      z  «      xs |j                  dt        |«      z  «      S )NFú
.. index::Tr*   ú-ú=)re   r1   r,   rD   r   Ú
startswithr4   )r   Úl1Úl2s      r   Ú_is_at_sectionzNumpyDocString._is_at_section£   s’   € Ø�	‰	×*Ñ*Ô,à�9‰9�=‰=Œ?Øà�Y‰Y�^‰^Ó×#Ñ#Ó%ˆà�=‰=˜Ô&Øà�Y‰Y�^‰^˜AÓ×$Ñ$Ó&ˆØ�}‰}˜S¤3 r£7™]Ó+ÒK¨r¯}©}¸SÄ3ÀrÃ7¹]Ó/KÐKr   c                 óÌ   — d}d}t        |«      D ]  \  }}|j                  «       sŒ n t        |d d d…   «      D ]  \  }}|j                  «       sŒ n ||t        |«      |z
   S )Nr   r   )Ú	enumerater   r4   )r   ÚdocÚiÚjr   s        r   Ú_stripzNumpyDocString._strip±   st   € ØˆØˆÜ  “~ò 	‰GˆAˆtØ�z‰z�|Ùð	ô ! ¡T r T¡Ó+ò 	‰GˆAˆtØ�z‰z�|Ùð	ð �1”s˜3“x !‘|Ð$Ð$r   c                 ó|  — | j                   j                  «       }| j                  «       s‘| j                   j                  «       sw| j                   j	                  d«      j                  «       s|dgz  }|| j                   j                  «       z  }| j                  «       s| j                   j                  «       sŒw|S )Nr   r+   )re   r<   r€   r,   rD   r   )r   Úsections     r   Ú_read_to_next_sectionz$NumpyDocString._read_to_next_section¾   sˆ   € Ø—)‘)×3Ñ3Ó5ˆà×%Ñ%Ô'°·	±	·±´Ø—9‘9—>‘> "Ó%×+Ñ+Ô-Ø˜B˜4‘�à�t—y‘y×8Ñ8Ó:Ñ:ˆGð	 ×%Ñ%Ô'°·	±	·±µð ˆr   c              #   óR  K  — | j                   j                  «       s‰| j                  «       }|d   j                  «       }|j	                  d«      r
||dd  f–— n/t        |«      dk  r	t        –— n|| j                  |dd  «      f–— | j                   j                  «       sŒˆy y ­w)Nr   ú..r*   é   )re   r,   r‰   r   r}   r4   ÚStopIterationr†   )r   r   rM   s      r   Ú_read_sectionszNumpyDocString._read_sectionsÉ   s†   è ø€ Ø—)‘)—-‘-”/Ø×-Ñ-Ó/ˆDØ˜‘7—=‘=“?ˆDà�‰˜tÔ$Ø˜D  ˜H�nÓ$Ü�T“˜Q’Ü#Ó#à˜DŸK™K¨¨Q¨R¨Ó1Ð1Ò1ð —)‘)—-‘-—/ùs   ‚B"B'Â%B'c                 óp  — t        |«      }g }|j                  «       s˜|j                  «       j                  «       }d|v r|j	                  d«      d d \  }}n|rd|}}n|d}}|j                  «       }t        |«      }t        |«      }|j                  t        |||«      «       |j                  «       sŒ˜|S )Nú : rŒ   r+   )
r   r,   r.   r   r   rA   r   r   ÚappendrL   )	r   ÚcontentÚsingle_element_is_typeÚrÚparamsÚheaderÚarg_nameÚarg_typerO   s	            r   Ú_parse_param_listz NumpyDocString._parse_param_listÕ   sª   € Ü�7‹OˆØˆØ—%‘%”'Ø—V‘V“X—^‘^Ó%ˆFØ˜‰Ø%+§\¡\°%Ó%8¸¸!Ð%<Ñ"�™(á)Ø)+¨V˜h‘Hà)/°˜h�Hà×1Ñ1Ó3ˆDÜ Ó%ˆDÜ$ TÓ*ˆDà�M‰Mœ) H¨h¸Ó=Ô>ð —%‘%•'ð  ˆr   z:(?P<role>\w+):z'`(?P<name>(?:~\w+\.)?[a-zA-Z0-9_\.-]+)`z(?P<name2>[a-zA-Z0-9_\.-]+)ú(ú|ú)ÚroleÚrolenextrM   Únamenextz/(?P<description>\s*:(\s+(?P<desc>\S+.*))?)?\s*$z^\s*z\s*z^\s*(?P<allfuncs>z(?P<morefuncs>([,]\s+z)*)z(?P<trailing>[,\.])?r‹   c                 óà  ‡ — g }ˆ fd„}g }|D �]]  }|j                  «       sŒ‰ j                  j                  |«      }d}|rI|j                  d«      }|j                  d«      r'|r%‰ j	                  d|j                  d«      |fz  «       |s1|j                  d«      r |j                  |j                  «       «       Œ°|r g }|j                  d«      }		 |	j                  «       snP ||	«      \  }
}}|j                  |
|f«       |	|d j                  «       }	|	r|	d   d	k(  r|	d
d j                  «       }	Œat        t        d|g«      «      }|j                  ||f«       �ŒRt        |› d�«      ‚ |S )z´
        func_name : Descriptive text
            continued text
        another_func_name : Descriptive text
        func_name1, func_name2, :meth:`func_name`, func_name3
        c                 óê   •— ‰j                   j                  | «      }|st        | › d�«      ‚|j                  d«      }|r|j                  d«      n|j                  d«      }|||j	                  «       fS )zMatch ':role:`name`' or 'name'.ú is not a item namer�   rM   Úname2)Ú	_func_rgxÚmatchr   ÚgroupÚend)ÚtextÚmr�   rM   r   s       €r   Úparse_item_namez7NumpyDocString._parse_see_also.<locals>.parse_item_name  sg   ø€ à—‘×$Ñ$ TÓ*ˆAÙÜ  D 6Ð)<Ð!=Ó>Ð>Ø—7‘7˜6“?ˆDÙ&*�1—7‘7˜6”?°·±¸Ó0@ˆDØ˜˜qŸu™u›wÐ&Ð&r   NrO   ÚtrailingzGUnexpected comma or period after function list at index %d of line "%s"ú Úallfuncsr   ú,r*   r¢   )r   Ú	_line_rgxr¥   r¦   rq   r§   r}   r‘   r   Úfilterr   )r   r’   Úitemsrª   Úrestr   Ú
line_matchÚdescriptionÚfuncsr¨   rM   r�   Ú	match_ends   `            r   Ú_parse_see_alsozNumpyDocString._parse_see_also  sy  ø€ ð ˆô	'ð ˆØó 	?ˆDØ—:‘:”<ØàŸ™×-Ñ-¨dÓ3ˆJØˆKÙØ(×.Ñ.¨vÓ6�Ø×#Ñ# JÔ/±KØ×(Ñ(ðà",§.¡.°Ó"<¸dÐ!CñDôñ
  4§?¡?°3Ô#7Ø—‘˜DŸJ™J›LÕ)ÙØ�Ø!×'Ñ'¨
Ó3�ØØŸ:™:œ<ØÙ,;¸DÓ,AÑ)�D˜$ 	Ø—L‘L $¨ Ô.Ø 	 
Ð+×1Ñ1Ó3�DÙ  Q¡¨3¢Ø# A B˜xŸ~™~Ó/˜ð ô œF 4¨+¨Ó7Ó8�Ø—‘˜e T˜]Ö+ä  D 6Ð)<Ð!=Ó>Ð>ð=	?ð> ˆr   c                 ó  — d„ }i }|j                  d«      }t        |«      dkD  r  ||d   j                  d«      «      d   |d<   |D ]B  }|j                  d«      }t        |«      dkD  sŒ# ||d   j                  d«      «      ||d   <   ŒD |S )	zS
        .. index: default
           :refguide: something, else, and more
        c                 óH   — | D �cg c]  }|j                  «       ‘Œ c}S c c}w r"   r   )ÚlstÚss     r   Ústrip_each_inz2NumpyDocString._parse_index.<locals>.strip_each_inN  s   € Ø'*Ö+ !�A—G‘G•IÒ+Ð+ùÒ+s   …z::r*   r®   r   Údefaultú:rŒ   )r   r4   )r   rˆ   r’   r¼   r-   r   s         r   Ú_parse_indexzNumpyDocString._parse_indexH  s™   € ò	,ð ˆØ—-‘- Ó%ˆÜˆw‹<˜!ÒÙ*¨7°1©:×+;Ñ+;¸CÓ+@ÓAÀ!ÑDˆC�	‰NØò 	AˆDØ—:‘:˜c“?ˆDÜ�4‹y˜1‹}Ù,¨T°!©W¯]©]¸3Ó-?Ó@��D˜‘G’ð	Að ˆ
r   c                 ó¬  — | j                  «       ry	 | j                  j                  «       }dj                  |D �cg c]  }|j	                  «       ‘Œ c}«      j	                  «       }t        j                  d«      }|j                  |«      r|| d<   | j                  «       sŒ’	 |�|| d<   | j                  «       s| j                  «       | d<   yyc c}w )z%Grab signature (if given) and summaryNr¬   z^([\w., ]+=)?\s*[\w\.]+\(.*\)$rR   rS   rT   )	r€   re   r<   r
   r   ÚreÚcompiler¥   r‰   )r   Úsummaryr»   Úsummary_strÚcompileds        r   Ú_parse_summaryzNumpyDocString._parse_summary[  sÁ   € à×ÑÔ Øð Ø—i‘i×7Ñ7Ó9ˆGØŸ(™(°wÖ#?°! A§G¡G¥IÒ#?Ó@×FÑFÓHˆKÜ—z‘zÐ"CÓDˆHØ�~‰~˜kÔ*Ø$/��[Ñ!Ø×*Ñ*Ô,ØØàÐØ%ˆD�‰Oà×"Ñ"Ô$Ø'+×'AÑ'AÓ'CˆDÐ#Ò$ð %ùò $@s   ¼Cc                 óÜ  — | j                   j                  «        | j                  «        t        | j	                  «       «      }|D ��ch c]  \  }}|’Œ	 }}}d|v }d|v }|r|rd}t        |«      ‚|sd|v rd}t        |«      ‚|D ]Þ  \  }}|j                  d«      sNd„ |j                  d«      D «       }dj                  |«      }| j                  |«      r| j                  d	|z  «       |d
v r| j                  |«      | |<   Œ~|dv r| j                  |d¬«      | |<   Œ™|j                  d«      r| j                  ||«      | d<   ŒÀ|dk(  r| j                  |«      | d<   ŒÚ|| |<   Œà y c c}}w )NrV   rW   z5Docstring contains both a Returns and Yields section.rX   z5Docstring contains a Receives section but not Yields.r‹   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   )Ú
capitalize)Ú.0r»   s     r   ú	<genexpr>z(NumpyDocString._parse.<locals>.<genexpr>„  s   è ø€ ÒF¨a˜1Ÿ<™<Ÿ>ÑFùs   ‚r¬   zThe section %s appears twice)rU   r[   r\   r]   )rV   rW   rY   rZ   rX   T)r“   rz   rc   r^   )re   r   rÆ   r   rŽ   Ú
ValueErrorr}   r   r
   Úgetrq   r™   r¿   r·   )r   rh   rˆ   r’   Úsection_namesÚhas_returnsÚ
has_yieldsÚmsgs           r   rj   zNumpyDocString._parseq  s‘  € Ø�	‰	�‰ÔØ×ÑÔä˜×+Ñ+Ó-Ó.ˆØ9A×BÑ%5 W¨gšÐBˆÑBà =Ð0ˆØ Ð.ˆ
á™:ØIˆCÜ˜S“/Ð!Ù˜j¨MÑ9ØIˆCÜ˜S“/Ð!à"*ò 	(ÑˆW�gØ×%Ñ% dÔ+ÙF°7·=±=ÀÓ3EÔF�ØŸ(™( 7Ó+�Ø—8‘8˜GÔ$Ø×(Ñ(Ø6¸Ñ@ôð ð ñ ð !%× 6Ñ 6°wÓ ?��W’Øð ñ ð !%× 6Ñ 6Ø°Dð !7ó !��W’ð ×#Ñ# LÔ1Ø $× 1Ñ 1°'¸7Ó C��W’Ø˜JÒ&Ø#'×#7Ñ#7¸Ó#@��ZÒ à '��W’ñ?	(ùó Cs   Á	E(c                 ó¾   — t        | d«      r6	 t        j                  | j                  «      }|d| j                  › d|› d�z   }t        |«      ‚# t        $ r d }Y Œ.w xY w)NÚ_objz in the docstring of z in ú.)ÚhasattrÚinspectÚgetsourcefilerÓ   Ú	TypeErrorrÌ   )r   rÑ   Úfilenames      r   rq   zNumpyDocString._error_location£  si   € Ü�4˜Ô ð Ü"×0Ñ0°·±Ó;�ð Ø'¨¯	©	 {°$°x°jÀÐBñˆCô ˜‹oÐøô ò  Ø’ð ús   ŽA ÁAÁAc                 ó"   — |t        |«      |z  gS r"   )r4   )r   rM   Úsymbols      r   Ú_str_headerzNumpyDocString._str_header²  s   € Ø”c˜$“i &Ñ(Ð)Ð)r   c                 ó0   — g }|D ]  }|d|z  |z   gz  }Œ |S )Nr¬   rK   )r   rƒ   Úindentr-   r   s        r   Ú_str_indentzNumpyDocString._str_indentµ  s1   € ØˆØò 	)ˆDØ�C˜&‘L 4Ñ'Ð(Ñ(‰Cð	)àˆ
r   c                 óF   — | d   r| d   j                  dd«      gdgz   S dgS )NrR   Ú*z\*r+   )Úreplacer(   s    r   Ú_str_signaturezNumpyDocString._str_signature»  s3   € Ø�ÒØ˜Ñ%×-Ñ-¨c°5Ó9Ð:¸b¸TÑAÐAà�4ˆKr   c                 ó"   — | d   r	| d   dgz   S g S )NrS   r+   rK   r(   s    r   Ú_str_summaryzNumpyDocString._str_summaryÁ  s   € Ø�	Š?Ø˜	‘? b TÑ)Ð)àˆIr   c                 ó"   — | d   r	| d   dgz   S g S )NrT   r+   rK   r(   s    r   Ú_str_extended_summaryz$NumpyDocString._str_extended_summaryÇ  s#   € ØÐ"Ò#ØÐ*Ñ+¨r¨dÑ2Ð2àˆIr   c                 óÐ  — g }| |   rÞ|| j                  |«      z  }| |   D ]¼  }g }|j                  r|j                  |j                  «       |j                  r|j                  |j                  «       |dj	                  |«      gz  }|j
                  sŒudj	                  |j
                  «      j                  «       sŒŸ|| j                  |j
                  «      z  }Œ¾ |dgz  }|S )Nr�   r+   )rÜ   rM   r‘   rN   r
   rO   r   rß   )r   rM   r-   ÚparamÚpartss        r   Ú_str_param_listzNumpyDocString._str_param_listÍ  sÉ   € ØˆØ�Š:Ø�4×#Ñ# DÓ)Ñ)ˆCØ˜d™ò 8�Ø�Ø—:’:Ø—L‘L §¡Ô,Ø—:’:Ø—L‘L §¡Ô,Ø˜Ÿ
™
 5Ó)Ð*Ñ*�Ø—:“: "§'¡'¨%¯*©*Ó"5×";Ñ";Õ"=Ø˜4×+Ñ+¨E¯J©JÓ7Ñ7‘Cð8ð �B�4‰KˆCØˆ
r   c                 óX   — g }| |   r"|| j                  |«      z  }|| |   z  }|dgz  }|S rC   )rÜ   )r   rM   r-   s      r   Ú_str_sectionzNumpyDocString._str_sectionÝ  sA   € ØˆØ�Š:Ø�4×#Ñ# DÓ)Ñ)ˆCØ�4˜‘:ÑˆCØ�B�4‰KˆCØˆ
r   c                 óÈ  — | d   sg S g }|| j                  d«      z  }d}| d   D ]²  \  }}t        |t        «      sJ ‚g }|D ]3  \  }}|r
d|› d|› d�}	n|r
d|› d|› d�}	nd|z  }	|j                  |	«       Œ5 dj	                  |«      }	||	gz  }|r'|| j                  dj	                  |«      g«      z  }d}Œ’d	}|| j                  | j                  g«      z  }Œ´ |r|d
gz  }|S )Nr^   Tr¾   z:`ú`z%sú, r¬   Fr+   )rÜ   r   r   r‘   r
   rß   Úempty_description)
r   Ú	func_roler-   Úlast_had_descrµ   rO   ÚlinksÚfuncr�   Úlinks
             r   Ú_str_see_alsozNumpyDocString._str_see_alsoå  s+  € Ø�JÒØˆIØˆØˆt×Ñ 
Ó+Ñ+ˆØˆØ 
Ñ+ò 	B‰KˆE�4Ü˜e¤TÔ*Ñ*ØˆEØ#ò #‘
��dÙØ˜t˜f B t f¨AÐ.‘DÙØ˜y˜k¨¨D¨6°Ð3‘Dà $™;�DØ—‘˜TÕ"ð#ð —9‘9˜UÓ#ˆDØ�D�6‰MˆCÙØ�t×'Ñ'¨¯©°$«Ð(8Ó9Ñ9�Ø $‘à %�Ø�t×'Ñ'¨×)?Ñ)?Ð(@ÓAÑA‘ð%	Bñ( Ø�B�4‰KˆCØˆ
r   c                 óæ   — | d   }g }d}|j                  dd«      }|rd}|d|z  gz  }|j                  «       D ]2  \  }}|dk(  rŒd}|dj                  |dj                  |«      «      gz  }Œ4 |r|S y)	Nrc   Fr½   r+   Tz.. index:: %sz
   :{}: {}rð   )rÍ   r±   Úformatr
   )r   Úidxr-   Úoutput_indexÚdefault_indexrˆ   Ú
referencess          r   Ú
_str_indexzNumpyDocString._str_index  s›   € Ø�7‰mˆØˆØˆØŸ™ 	¨2Ó.ˆÙØˆLØ� -Ñ/Ð0Ñ0ˆØ#&§9¡9£;ò 	IÑˆG�ZØ˜)Ò#ØØˆLØ�L×'Ñ'¨°·±¸:Ó1FÓGÐHÑH‰Cð		Iñ
 ØˆJàr   c                 ó²  — g }|| j                  «       z  }|| j                  «       z  }|| j                  «       z  }dD ]  }|| j                  |«      z  }Œ || j	                  d«      z  }|| j                  |«      z  }dD ]  }|| j	                  |«      z  }Œ dD ]  }|| j                  |«      z  }Œ || j                  «       z  }dj                  |«      S )N)rU   rV   rW   rX   r[   rY   rZ   r`   )r_   ra   rb   )r\   r]   r   )rã   rå   rç   rë   rí   r÷   rþ   r
   )r   rò   r-   Ú
param_listr»   s        r   Ú__str__zNumpyDocString.__str__  sû   € ØˆØˆt×"Ñ"Ó$Ñ$ˆØˆt× Ñ Ó"Ñ"ˆØˆt×)Ñ)Ó+Ñ+ˆð
ò 		4ˆJð �4×'Ñ'¨
Ó3Ñ3‰Cð		4ð 	ˆt× Ñ  Ó,Ñ,ˆØˆt×!Ñ! )Ó,Ñ,ˆØ4ò 	(ˆAØ�4×$Ñ$ QÓ'Ñ'‰Cð	(à3ò 	4ˆJØ�4×'Ñ'¨
Ó3Ñ3‰Cð	4àˆt�‰Ó Ñ ˆØ�y‰y˜‹~Ðr   N)F)r{   )é   )r+   )*rG   rH   rI   rJ   rh   r    r%   rs   rv   rx   r€   r†   r‰   rŽ   r™   Ú_roleÚ_funcbacktickÚ
_funcplainÚ	_funcnamerâ   Ú_funcnamenextÚ_descriptionrÁ   rÂ   r¤   r¯   rñ   r·   r¿   rÆ   rj   rq   rÜ   rß   rã   rå   rç   rë   rí   r÷   rþ   r  rK   r   r   rQ   rQ   l   s8  „ ñð
Ø�Rðà�B�4ðð 	˜Bðð 	�bð	ð
 	�2ðð 	�"ðð 	�Bðð 	�"ðð 	�ðð 	˜Bðð 	�bðð 	�2ðð 	�Bðð 	�ðð 	�Bðð  	�bð!ð" 	�Bð#ð$ 	�ñ%€Hò*ò&ò)ò'ò&òLò%ò	ò
2óðJ €EØ>€MØ/€JØ�u‘˜}Ñ,¨tÑ3°jÑ@À4ÑG€IØ×%Ñ% f¨jÓ9€MØ!×)Ñ)¨&°*Ó=€MØE€LØ�—
‘
˜7 YÑ.°Ñ7Ó8€IØ�—
‘
ð	à
ñ	ð #ñ	#ð ñ		ð
 ñ	ð ñ	ð 	 ñ		 ð ñ
	ó€Ið Ðò3òjò&Dò,0(òdó*óòòòòò òò<ô$r   rQ   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd	d„Zd„ Z	y)
Ú	Docstringzu
    Docstring modification.

    Parameters
    ----------
    docstring : str
        The docstring to modify.
    c                 óF   — d | _         || _        |€y t        |«      | _         y r"   )Ú_dsÚ
_docstringrQ   )r   rk   s     r   r    zDocstring.__init__8  s%   € ØˆŒØ#ˆŒØÐØÜ! )Ó,ˆ�r   c                 ó6  — | j                   €yt        |t        «      r|g}| j                  d   D �cg c]  }|j                  |vr|‘Œ }}t        |«      t        |«      z   t        | j                  d   «      k7  rt        d«      ‚|| j                  d<   yc c}w )z†
        Parameters
        ----------
        parameters : str, list[str]
            The names of the parameters to remove.
        NrU   z&One or more parameters were not found.)r  r   Ústrr  rM   r4   rÌ   )r   Ú
parametersré   Úrepls       r   Úremove_parameterszDocstring.remove_parameters?  sš   € ð �?‰?Ð"àÜ�j¤#Ô&Ø$˜ˆJð Ÿ™ ,Ñ/ö
àØ�z‰z Ñ+ò ð
ˆð 
ô
 ˆt‹9”s˜:“Ñ&¬#¨d¯h©h°|Ñ.DÓ*EÒEÜÐEÓFÐFØ!%ˆ�‰�Òùò
s   ²Bc                 óˆ  — | j                   €yt        |t        «      r|g}|€ || j                  d   z   | j                  d<   yd}t	        | j                  d   «      D ]  \  }}|j
                  |k(  sŒ|dz   } n |dk  r
t        «       ‚| j                  d   d| |z   }|| j                  d   |d z  }|| j                  d<   y)a  
        Parameters
        ----------
        after : {None, str}
            If None, inset the parameters before the first parameter in the
            docstring.
        parameters : Parameter, list[Parameter]
            A Parameter of a list of Parameters.
        NrU   r   r*   r   )r  r   rL   r  r‚   rM   rÌ   )r   Úafterr  Úlocr„   ré   r•   s          r   Úinsert_parameterszDocstring.insert_parametersT  sÔ   € ð �?‰?Ð"àÜ�j¤)Ô,Ø$˜ˆJØˆ=Ø%/°$·(±(¸<Ñ2HÑ%HˆD�H‰H�\Ò"àˆCÜ% d§h¡h¨|Ñ&<Ó=ò ‘��5Ø—:‘: Ó&Ø˜a™%�CÙðð �QŠwÜ “lÐ"Ø—X‘X˜lÑ+¨D¨SÐ1°JÑ>ˆFØ�d—h‘h˜|Ñ,¨S¨TÐ2Ñ2ˆFØ%+ˆD�H‰H�\Ò"r   c                 ó\  — | j                   €ydj                  t        t        j                  |j                  d«      «      «      }|| j                  vrt        dj                  |«      «      ‚t        |t        «      s t        | j                  |   t        «      r|g}|| j                  |<   y)a&  
        Parameters
        ----------
        block_name : str
            Name of the block to replace, e.g., 'Summary'.
        block : object
            The replacement block. The structure of the replacement block must
            match how the block is stored by NumpyDocString.
        Nr¬   z"{} is not a block in the docstring)r  r
   Úmapr  rÉ   r   r  rÌ   rù   r   r   )r   Ú
block_nameÚblocks      r   Úreplace_blockzDocstring.replace_blockq  s”   € ð �?‰?Ð"àØ—X‘Xœc¤#§.¡.°*×2BÑ2BÀ3Ó2GÓHÓIˆ
Ø˜TŸX™XÑ%ÜØ7×>Ñ>¸zÓJóð ô ˜%¤Ô&¬:Ø�H‰H�ZÑ ¤$ô,
ð �GˆEØ$ˆ�‰�Òr   c                 óš  — | j                   €y t        |t        «      r|g}| j                  d   D �ci c]  }|j                  |“Œ }}t        |«      j                  |j                  «       «      }|r)t        dj                  dj                  |«      «      «      ‚|D �cg c]  }||   ‘Œ	 }}t        j                  | j                  «      }|D ]  }|dk7  r|dk7  rg ni ||<   Œ|||<   Œ t        |«      j                  «       }	|rt        j                  |	d|z  «      }	dj                  |	j!                  d«      dd  «      }	|	S c c}w c c}w )NrU   z"{} were not found in the docstringr®   rc   r¬   r   rŒ   )r  r   r  r  rM   ÚsetÚ
differenceÚkeysrÌ   rù   r
   rf   rg   r   r   rÞ   r   )
r   r  rÞ   ré   Ú	ds_paramsÚmissingÚfinalÚdsro   r-   s
             r   Úextract_parameterszDocstring.extract_parameters‰  s:  € Ø�?‰?Ð"àÜ�j¤#Ô&Ø$˜ˆJØ48·H±H¸\Ñ4JÖK¨5�U—Z‘Z Ñ&ÐKˆ	ÐKÜ�j“/×,Ñ,¨Y¯^©^Ó-=Ó>ˆÙÜðß"™F 3§8¡8¨GÓ#4Ó5óð ð 0:Ö: e�˜5Ó!Ð:ˆÐ:Ü�]‰]˜4Ÿ8™8Ó$ˆØò 	 ˆCØ�lÒ"Ø # w¢™"°B��3’à��3’ð		 ô
 �"‹g�m‰m‹oˆÙÜ—/‘/ # s¨V¡|Ó4ˆCà�i‰i˜Ÿ	™	 $›¨¨Ð+Ó,ˆØˆ
ùò' Lùò ;s   ²EÂEc                 ó,   — t        | j                  «      S r"   )r  r  r(   s    r   r  zDocstring.__str__¤  s   € Ü�4—8‘8‹}Ðr   NrF   )
rG   rH   rI   rJ   r    r  r  r  r$  r  rK   r   r   r
  r
  .  s%   „ ñò-ò&ò*,ò:%ó0ó6r   r
  c                 óV   — | €yt        | «      }|j                  |«       t        |«      S )zè
    Parameters
    ----------
    docstring : str
        The docstring to modify.
    parameters : str, list[str]
        The names of the parameters to remove.

    Returns
    -------
    str
        The modified docstring.
    N)r
  r  r  )rk   r  r#  s      r   r  r  ¨  s.   € ð ÐØÜ	�9Ó	€BØ×Ñ˜Ô$Üˆr‹7€Nr   c                 ó8   — | €yt        j                  | ||¬«      S )a  
    Non-protected indent

    Parameters
    ----------
    text : {None, str}
        If None, function always returns ""
    prefix : str
        Prefix to add to the start of each line
    predicate : callable, optional
        If provided, 'prefix' will only be added to the lines
        where 'predicate(line)' is True. If 'predicate' is not provided,
        it will default to adding 'prefix' to all non-empty lines that do not
        consist solely of whitespace characters.

    Returns
    -------

    r+   )Ú	predicate)r   rÞ   )r¨   Úprefixr(  s      r   rÞ   rÞ   ½  s   € ð( €|ØÜ�?‰?˜4 °9Ô=Ð=r   r"   )rJ   Úcollectionsr   Úcollections.abcr   rf   rÖ   rÁ   r   Ústatsmodels.tools.sm_exceptionsr   r   r   r   rL   rQ   r
  r  rÞ   rK   r   r   ú<module>r-     sm   ðñõ #Ý #Û Û Û 	Û å 6ò9ò
÷J.ñ J.ñZ �{Ò$<Ó=€	ô�Wô ÷Dwñ wòtô*>r   