
    -Ph$                     .   d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dl	m
Z
 d dlmZ d dlmZ d d	lmZmZmZmZ d d
lmZ  G d d          Z G d d          Z G d d          Zd Zd Zd Z ej                    d             Zej                            d e             g g fddhdg fdhddff          d             Z!d Z"ej                            di dhddhg          d              Z#d! Z$d" Z%d# Z&e'd$k    rd dlZ ej(                     dS dS )%    )defaultdict)deepcopy)StringIO)	PosixPathN)nodes)ALL)logging)_clean_text_signatureclean_backrefsmangle_docstringsupdate_config)DEFAULT_LINKSc                       e Zd ZdZdZdZdZdZi Z e	e
          Z e            Zg ZdZdZ e            Z e            Z e            ZdS )
MockConfigFTz[a-z0-9_.-]+N)__name__
__module____qualname__numpydoc_use_plotsnumpydoc_show_class_members%numpydoc_show_inherited_class_membersnumpydoc_class_members_toctreenumpydoc_xref_param_typenumpydoc_xref_aliasesr   r   numpydoc_xref_aliases_completesetnumpydoc_xref_ignoretemplates_pathnumpydoc_citation_re!numpydoc_attributes_as_param_listnumpydoc_validation_checksnumpydoc_validation_excludedictnumpydoc_validation_overrides     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpydoc/tests/test_numpydoc.pyr   r      s        "&,0)%)"$%-Xm%<%<"355N)(,%!$"%#%%$(DFF!!!r%   r   c                   "    e Zd Z e            ZdS )MockBuilderN)r   r   r   r   configr$   r%   r&   r(   r(   %   s        Z\\FFFr%   r(   c                   @    e Zd Z e            Z e            ZdZd ZdS )MockAppNc                 H    | | j         _        d| _        d| _        d| _        d S )N   r   F)builderapp	verbosity
_warncountwarningiserror)selfs    r&   __init__zMockApp.__init__.   s(    #r%   )	r   r   r   r   r)   r(   r.   
translatorr4   r$   r%   r&   r+   r+   )   s>        Z\\FkmmGJ$ $ $ $ $r%   r+   c                     d} |                      d          }t          t                      ddt          i |           dd |D             v sJ |                      d          }t          t                      ddt          ddgi|           dd	 |D             vsJ dd
 |D             v sJ |                      d          }t          t                      ddt          dt          i|           dd |D             vsJ dd |D             vsJ |                      d          }t          t                      ddt          ddgi|           dd |D             v sJ dd |D             vsJ d S )Nz.
A top section before

.. autoclass:: str
    
classstr
rpartitionc                 6    g | ]}|                                 S r$   strip.0xs     r&   
<listcomp>z0test_mangle_docstrings_basic.<locals>.<listcomp>>        555!AGGII555r%   membersupperc                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   z0test_mangle_docstrings_basic.<locals>.<listcomp>B        999a		999r%   c                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   z0test_mangle_docstrings_basic.<locals>.<listcomp>C   s     000Qqwwyy000r%   zexclude-membersc                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   z0test_mangle_docstrings_basic.<locals>.<listcomp>G   rF   r%   c                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   z0test_mangle_docstrings_basic.<locals>.<listcomp>H        44417799444r%   c                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   z0test_mangle_docstrings_basic.<locals>.<listcomp>N   rB   r%   c                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   z0test_mangle_docstrings_basic.<locals>.<listcomp>O   rJ   r%   )splitr   r+   r9   r   )sliness     r&   test_mangle_docstrings_basicrP   6   s   	A
 GGDMMEgii%b%@@@55u5555555GGDMMEgii%y7)6LeTTT995999999900%0000000GGDMMEgii%7H#6NPUVVV995999999944e4444444GGDMME		7E3):WI(F   55u555555544e444444444r%   c                     d} |                      d          }t                      }t          |ddt          i |           d |D             }d|v sJ d|j        _        |                      d          }t          |ddt          i |           d |D             }d|vsJ t                      |j        _        |                      d          }t          |ddt          i |           d	 |D             }d|v sJ t          t                    |j        _        |                      d          }t          |ddt          i |           d
 |D             }d|vsJ d S )Nz8
A top section before

.. autoclass:: pathlib.PosixPath
r7   r8   zpathlib.PosixPathc                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   zBtest_mangle_docstrings_inherited_class_members.<locals>.<listcomp>\        &&&1QWWYY&&&r%   samefileFc                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   zBtest_mangle_docstrings_inherited_class_members.<locals>.<listcomp>a   rS   r%   c                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   zBtest_mangle_docstrings_inherited_class_members.<locals>.<listcomp>f   rS   r%   c                 6    g | ]}|                                 S r$   r<   r>   s     r&   rA   zBtest_mangle_docstrings_inherited_class_members.<locals>.<listcomp>k   rS   r%   )	rM   r+   r   r   r)   r   r"   r   bool)prO   r/   s      r&   .test_mangle_docstrings_inherited_class_membersrZ   R   st   	A
 GGDMME
))Cc7$7BNNN&&&&&E7<CJ4GGDMMEc7$7BNNN&&&&&EU""""7;vvCJ4GGDMMEc7$7BNNN&&&&&E7B47H7HCJ4GGDMMEc7$7BNNN&&&&&EU""""""r%   c                     t          d           J t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          d	k    sJ t          d
          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )Nzfunc($self)zfunc()zfunc($self, *args, **kwargs)zfunc(*args, **kwargs)z($self)z()zfunc($self, /, *args, **kwargs)z&func($self, other, /, *args, **kwargs)zfunc(other, *args, **kwargs)z	($module)zfunc($type)zfunc($self, foo="hello world")zfunc(foo="hello world")zfunc($self, foo='hello world')zfunc(foo='hello world')zfunc(foo="$self")zfunc($self, foo="$self")zfunc(self, other)zfunc($self, *args)zfunc(*args))r
   r$   r%   r&   test_clean_text_signaturer\   o   s    &&... //8;;;;<==AXXXXX ++t3333 &&$.... **h6666?@@"	# 	# 	# 	# 	FGG)	* 	* 	* 	* !--5555 //8;;;;>??$	% 	% 	% 	% 	>??$	% 	% 	% 	% !!:;;?XXXXX !4559LLLLL !;<<@SSSSS !4559LLLLL !566-GGGGGGr%   c                      d } | S )Nc                      dS )z
        A function whose docstring has no examples or see also section.

        Expect SA01 and EX01 errors if validation enabled.
        Nr$   r$   r%   r&   &_function_without_seealso_and_examplesz1f.<locals>._function_without_seealso_and_examples         r%   r$   )r_   s    r&   fra      s       21r%   )r    expected_warnnon_warningsSA01EX01)rd   re   )rd   )re   c           
      h   t                      }||j        _        t          |           t	                      t	                      }}t          j        |||           t          |dd| d | j        	                    d                     |
                                }|D ]}||v sJ 	|D ]}||vsJ 	d S )Nfunctionra   r7   )r+   r)   r    r   r   r	   setupr   __doc__rM   getvalue)	ra   r    rb   rc   r/   statuswarningwarningsws	            r&   )test_mangle_docstring_validation_warningsro      s    * ))C,FCJ)#jj(**GFM#vw'''c:sAtQY__T5J5JKKK!!H  H}}}}} ! !     ! !r%   c            
      t   d } t                      }dh|j        _        dg|j        _        t	          |           t                      t                      }}t          j        |||           t          |d| j	        | d | j
                            d                     |                                dk    sJ d S )Nc                      dS )zA
        This docstring will raise docstring validation warnings.Nr$   r$   r%   r&   function_with_bad_docstringzMtest_mangle_docstring_validation_exclude.<locals>.function_with_bad_docstring   r`   r%   all_bad_rg   r7    )r+   r)   r    r!   r   r   r	   rh   r   r   ri   rM   rj   )rr   r/   rk   rl   s       r&   (test_mangle_docstring_validation_excluderv      s    D D D ))C-2GCJ).6ZCJ*#jj(**GFM#vw'''#,##+11$77   ######r%   	overridesSS02SS03c           
         d }t                      }dh|j        _        d | D             |j        _        t	          |           t                      t                      }}t          j        |||           t          |d|j	        |d |j
                            d                     |                                }d|v sJ | D ]}d| d|vsJ d S )	Nc                      dS )zProcess something.Nr$   r$   r%   r&   process_something_noop_functionzItest_mangle_docstrings_overrides.<locals>.process_something_noop_function   r`   r%   rs   c                     i | ]}|d gS )z	^Process r$   )r?   checks     r&   
<dictcomp>z4test_mangle_docstrings_overrides.<locals>.<dictcomp>   s,     0 0 0 	~0 0 0r%   rg   r7   z EX01:  z: )r+   r)   r    r#   r   r   r	   rh   r   r   ri   rM   rj   )rw   r|   r/   rk   rl   findingsr~   s          r&    test_mangle_docstrings_overridesr      s   ! ! ! ))C-2GCJ)0 00 0 0CJ, # jj(**GFM#vw''' '0''/55d;;   !!H     - -5}}}H,,,,,- -r%   c                      t                      } t          d          | j        _        t	          j        t          d          5  t          |            d d d            d S # 1 swxY w Y   d S )Nrs   zUnrecognized validation codematch)r+   r   r)   r    pytestraises
ValueErrorr   r/   s    r&   )test_update_config_invalid_validation_setr      s    
))C,/JJCJ)	z)G	H	H	H  c                 s   A  A$'A$c                      t                      } t                      | j        _        d| j        _        t          j        t          d          5  t          |            d d d            d S # 1 swxY w Y   d S )Nzshouldnt-be-a-strz\['shouldnt-be-a-str'\]r   )	r+   r   r)   r    r!   r   r   r   r   r   s    r&   test_update_config_exclude_strr     s    
))C,/EECJ)-@CJ*	z)C	D	D	D  c                 s   A++A/2A/c                     t          j        dd          } t          j        dddg          }|t          j        ddd          z  }t          j        dddgdg	          }|t          j        d
          z  }|t          j        dd          z  }| |z  } | |z  } t          t                      | d           d|d         v sJ dS )z/Check ids are not cleaned from inline backrefs.ru   )	rawsourcetextid1)r   r   idsz[1]zr123-1)r   r   refidindex)r   docnamebackrefsr   1zAuthor. Title.)r/   docr   r   N)r   	paragraphinline	referencecitationlabelr   r+   )par
inline_refr   s      r&   test_clean_backrefsr     s    
/BR
0
0
0C%AAAJ%/BU(KKKKJ~ghZ  H C   H"3CDDDDH:C8OCwyyc7;;;;HZ(((((((r%   __main__))collectionsr   copyr   ior   pathlibr   r   docutilsr   sphinx.ext.autodocr   sphinx.utilr	   numpydoc.numpydocr
   r   r   r   numpydoc.xrefr   r   r(   r+   rP   rZ   r\   fixturera   markparametrizer   ro   rv   r   r   r   r   r   mainr$   r%   r&   <module>r      s   # # # # # #                          " " " " " "                  ( ' ' ' ' '+ + + + + + + +"       
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$5 5 58# # #:H H HD 2 2 2  
B
&	+R0
9i( ! ! !0$ $ $6 rF8ff5E&FGG- - HG-@    ) ) )  zMMMFKMMMMM r%   