
    ^Mh ]                     P   d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl	m
Z
mZ ddlmZ ddlmZ d Z G d d	          Z G d
 de          Z edg d          Z G d de          Zd Z G d de          Z G d de          Z G d de          ZdddeeefdZdS )z;Extract reference documentation from the NumPy source tree.    N)
namedtuple)CallableMapping)cached_property)warnc                     | r9| d                                          s| d= | r| d                                          | r9| d                                          s| d= | r| d                                          | S )z<Remove leading and trailing blank lines from a list of linesr   strip)ls    U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/_lib/_docscrape.pystrip_blank_linesr      s    
 AaDJJLL aD  AaDJJLL 
 AbEKKMM bE  AbEKKMM H    c                   V    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dS )ReaderzA line-based string reader.c                     t          |t                    r|| _        n|                    d          | _        |                                  dS )zs
        Parameters
        ----------
        data : str
           String with lines separated by '\n'.

        
N)
isinstancelist_strsplitreset)selfdatas     r   __init__zReader.__init__   sC     dD!! 	)DII

4((DI

r   c                     | j         |         S N)r   r   ns     r   __getitem__zReader.__getitem__+   s    y|r   c                     d| _         d S )Nr   )_lr   s    r   r   zReader.reset.   s    r   c                 l    |                                  s| | j                 }| xj        dz  c_        |S dS )N    )eofr"   )r   outs     r   readzReader.read1   s6    xxzz 	tw-CGGqLGGJ2r   c                 x    | | j         d          D ])}|                                r d S | xj         dz  c_         *d S Nr%   )r"   r   )r   r   s     r   seek_next_non_empty_linezReader.seek_next_non_empty_line9   sM    dgii 	 	Awwyy 1		 	r   c                 <    | j         t          | j                  k    S r   r"   lenr   r#   s    r   r'   z
Reader.eof@   s    w#di..((r   c                     | j         }| |d          D ]V} ||          r| || j                  c S | xj         dz  c_         |                                 r| || j         dz            c S Wg S r+   )r"   r'   )r   condition_funcstartlines       r   read_to_conditionzReader.read_to_conditionC   s    L 	1 	1D~d## -EDGO,,,,GGqLGGxxzz 1EDGaK/00001	r   c                 Z    |                                   d }|                     |          S )Nc                 ,    |                                   S r   r
   r3   s    r   is_emptyz0Reader.read_to_next_empty_line.<locals>.is_emptyP   s    zz||##r   )r,   r4   )r   r8   s     r   read_to_next_empty_linezReader.read_to_next_empty_lineM   s9    %%'''	$ 	$ 	$ %%h///r   c                 2    d }|                      |          S )Nc                     |                                  o1t          |                                           t          |           k    S r   )r   r/   lstripr7   s    r   is_unindentedz:Reader.read_to_next_unindented_line.<locals>.is_unindentedV   s0    ::<<ES%7%73t99%DEr   )r4   )r   r=   s     r   read_to_next_unindented_linez#Reader.read_to_next_unindented_lineU   s*    	F 	F 	F %%m444r   r   c                 f    | j         |z   t          | j                  k     r| | j         |z            S dS Nr&   r.   r   s     r   peekzReader.peek[   s1    7Q;TY''!$$2r   c                 \    d                     | j                                                   S r@   )joinr   r   r#   s    r   r8   zReader.is_emptya   s%    7749%%++----r   N)r   )__name__
__module____qualname____doc__r   r    r   r)   r,   r'   r4   r9   r>   rA   r8    r   r   r   r      s        %%          ) ) )  0 0 05 5 5   . . . . .r   r   c                       e Zd Zd ZdS )
ParseErrorc                 X    | j         d         }t          | d          r| d| j        }|S )Nr   	docstring in )argshasattrrL   )r   messages     r   __str__zParseError.__str__f   s9    )A,4%% 	9 88dn88Gr   N)rD   rE   rF   rQ   rH   r   r   rJ   rJ   e   s#            r   rJ   	Parameter)nametypedescc                   B   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dFdZd Zd Zd Zd Z	d Z
d Zd Zd ZdGd Zd!Zd"Zd#Zd$ez   ez   d%z   ez   d&z   Ze                    d'd(          Ze                    d)d*          Zd+Z ej        d,ez   d-z             Z ej        d.ez   d/z   ez   d0z   d&z   d1z   ez             Zd2Zd3 Zd4 Zd5 Zd6 Zed7             Z dHd9Z!dId;Z"dJd=Z#d> Z$d? Z%d@ Z&dA Z'dB Z(dC Z)dD Z*dKdEZ+dS )LNumpyDocStringzParses a numpydoc string to an abstract representation

    Instances define a mapping from section title to structured data.

    	Signaturer&   SummaryExtended Summary
Parameters
AttributesMethodsReturnsYieldsReceivesOther ParametersRaisesWarnsWarningsSee AlsoNotes
ReferencesExamplesindexNc                    |}t          j        |                              d          }t          |          | _        t          j        | j                  | _        	 | 	                                 d S # t          $ r}||_         d }~ww xY w)Nr   )textwrapdedentr   r   _doccopydeepcopysections_parsed_data_parserJ   rL   )r   rL   configorig_docstringes        r   r   zNumpyDocString.__init__   s    "OI..44T::	9%%	 M$-88	KKMMMMM 	 	 	(AK	s   A3 3
B
=BB
c                     | j         |         S r   )rq   )r   keys     r   r    zNumpyDocString.__getitem__   s     %%r   c                 d    || j         vr|                     d| d           d S || j         |<   d S )NzUnknown section Ferror)rq   _error_location)r   rw   vals      r   __setitem__zNumpyDocString.__setitem__   sK    d'''  !9C!9!9 GGGGG%(Dc"""r   c                 *    t          | j                  S r   )iterrq   r#   s    r   __iter__zNumpyDocString.__iter__   s    D%&&&r   c                 *    t          | j                  S r   )r/   rq   r#   s    r   __len__zNumpyDocString.__len__   s    4$%%%r   c                    | j                                          | j                                         rdS | j                                                                         }|                    d          rdS | j                             d                                          }t          |          dk    rt          |          dhdhfv rjt          |          t          |          k    rJd                    | j         j	        d d	                   d
z   }| 
                    d| d| d| d           |                    dt          |          z            p$|                    dt          |          z            S )NF
.. index::Tr%      -=r      z...z'potentially wrong underline length... 
z 
z in 
ry   )rm   r,   r'   rA   r   
startswithr/   setrC   r   r{   )r   l1l2snips       r   _is_at_sectionzNumpyDocString._is_at_section   sV   	**,,,9==?? 	5Y^^##%%==&& 	4Y^^A$$&&r77a<<SWW#66CGGs2ww<N<N99TY^BQB/0058D  R2RR"RRDRR !    }}S3r77]++Kr}}S3r77]/K/KKr   c                     d}d}t          |          D ]\  }}|                                r nt          |d d d                   D ]\  }}|                                r n||t          |          |z
           S )Nr   r	   )	enumerater   r/   )r   docijr3   s        r   _stripzNumpyDocString._strip   s     ~~ 	 	GAtzz||  !TTrT++ 	 	GAtzz||  1s3xx!|#$$r   c                    | j                                         }|                                 s| j                                         s{| j                             d                                          s|dgz  }|| j                                         z  }|                                 s| j                                         {|S )Nr	   r&   )rm   r9   r   r'   rA   r   )r   sections     r   _read_to_next_sectionz$NumpyDocString._read_to_next_section   s    )3355%%'' 	;	 	;9>>"%%++--  B4ty88:::G	 %%'' 	;	 	; r   c              #     K   | j                                         s|                                 }|d                                         }|                    d          r||dd          fV  n>t          |          dk     r
t          V  n!||                     |dd                    fV  | j                                         d S d S )Nr   ..r%   r   )rm   r'   r   r   r   r/   StopIterationr   )r   r   rS   s      r   _read_sectionszNumpyDocString._read_sections   s      )--// 		2--//D7==??Dt$$ 2DHn$$$$TQ#####DKKQRR111111 )--// 		2 		2 		2 		2 		2r   Fc                     t          |          }t          |          }g }|                                s|                                                                }d|v r|                    dd          \  }}n*|                    d          r
|d d         }|rd|}}n|d}}|                                }t          |          }t          |          }|	                    t          |||                     |                                |S )N : r%   )maxsplitz :r&   )dedent_linesr   r'   r)   r   r   endswithr>   r   appendrR   )	r   contentsingle_element_is_typerparamsheaderarg_namearg_typerU   s	            r   _parse_param_listz NumpyDocString._parse_param_list   s   w''7OO%%'' 	?VVXX^^%%F%+\\%!\%D%D"((
 ??4(( )#CRC[F) 4)+VhHH)/hH1133D%%D$T**DMM)Hh==>>>' %%'' 	?* r   z:(?P<role>(py:)?\w+):z'`(?P<name>(?:~\w+\.)?[a-zA-Z0-9_\.-]+)`z(?P<name2>[a-zA-Z0-9_\.-]+)(|)rolerolenextrS   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                     t          |          }g } fd}g }|D ]                                s j                                      }d}|r[|                    d          }|                    d          r1|r/                     d|                    d          fz  d           |s=                    d          r(|                                                               |rg }|                    d	          }	 |                                snm ||          \  }	}
}|                    |	|
f           ||d                                         }|r(|d         dk    r|dd                                         }t          t          d|g                    }|                    ||f                                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                             |           }|s                    d           |                    d          }|r|                    d          n|                    d          }|||                                fS )zMatch ':role:`name`' or 'name'.Error parsing See Also entry r   rS   name2)	_func_rgxmatchr{   groupend)textmr   rS   r3   r   s       r   parse_item_namez7NumpyDocString._parse_see_also.<locals>.parse_item_name/  s    $$T**A O$$%MT%M%MNNN776??D&*@1776???0@0@Dquuww&&r   NrU   trailingzGUnexpected comma or period after function list at index %d of line "%s"Fry    allfuncsTr   ,r%   r   )r   r   	_line_rgxr   r   r{   r   r   r   r   filter)r   r   itemsr   rest
line_matchdescriptionfuncsr   rS   r   	match_endr3   s   `           @r   _parse_see_alsozNumpyDocString._parse_see_also"  s6    w''	' 	' 	' 	' 	' 	'  	O 	OD::<< --d33JK (..v66##J// K (($'1~~j'A'A4&HI# )   
  O4??3#7#7 ODJJLL)))) O!''
330::<< ,;OD,A,A)D$	LL$...	

+1133D 0Q3#ABBx~~//0 F4+7788eT]++++$$%MT%M%MNNNNr   c                 n   d }i }|                     d          }t          |          dk    r- ||d                              d                    d         |d<   |D ]W}|                     d          }t          |          dk    r- ||d                              d                    ||d         <   X|S )	zU
        .. index:: default
           :refguide: something, else, and more

        c                     d | D             S )Nc                 6    g | ]}|                                 S rH   r
   .0ss     r   
<listcomp>zFNumpyDocString._parse_index.<locals>.strip_each_in.<locals>.<listcomp>b  s     +++!AGGII+++r   rH   )lsts    r   strip_each_inz2NumpyDocString._parse_index.<locals>.strip_each_ina  s    ++s++++r   z::r%   r   r   default:r   )r   r/   )r   r   r   r   r(   r3   s         r   _parse_indexzNumpyDocString._parse_indexZ  s    	, 	, 	, --%%w<<!*]71:+;+;C+@+@AA!DC	N 	A 	AD::c??D4yy1}},}T!W]]3-?-?@@DG
r   c                    |                                  rdS 	 | j                                        }d                    d |D                                                       }t          j        d          }|                    |          r|| d<   |                                  s	 ||| d<   |                                  s|                                 | d<   dS dS )	z%Grab signature (if given) and summaryNTr   c                 6    g | ]}|                                 S rH   r
   r   s     r   r   z1NumpyDocString._parse_summary.<locals>.<listcomp>v  s     #?#?#?!AGGII#?#?#?r   z^([\w., ]+=)?\s*[\w\.]+\(.*\)$rX   rY   rZ   )	r   rm   r9   rC   r   recompiler   r   )r   summarysummary_strcompileds       r   _parse_summaryzNumpyDocString._parse_summaryn  s       	F	i7799G((#?#?w#?#?#?@@FFHHKz"CDDH~~k** $/[!**,, %DO""$$ 	D'+'A'A'C'CD#$$$	D 	Dr   c           	      R   | j                                          |                                  t          |                                           }d |D             }d|v }|sd|v rd}t          |          |D ]-\  }}|                    d          sd |                    d          D             }d                    |          }| 	                    |          r8| 
                    d|d	d
                    | j         j                             |dv r|                     |          | |<   |dv r|                     |d          | |<   |                    d          r|                     ||          | d<   |dk    r|                     |          | d<   (|| |<   /d S )Nc                     h | ]\  }}|S rH   rH   )r   r   r   s      r   	<setcomp>z(NumpyDocString._parse.<locals>.<setcomp>  s    BBB%5WgBBBr   r_   r`   z5Docstring contains a Receives section but not Yields.r   c              3   >   K   | ]}|                                 V  d S r   )
capitalizer   s     r   	<genexpr>z(NumpyDocString._parse.<locals>.<genexpr>  s*      FFa1<<>>FFFFFFr   r   zThe section z appears twice in  r   )r[   ra   r\   r]   )r^   r_   rb   rc   r`   T)r   r   ri   re   )rm   r   r   r   r   
ValueErrorr   r   rC   getr{   r   r   r   r   )r   rp   section_names
has_yieldsmsgr   r   s          r   rr   zNumpyDocString._parse  s   	++--..BBBBB.
 	"jM99ICS//! ( 	( 	(GW%%d++ FF7==3E3EFFF((7++88G$$ ((("77DIIdin$=$=$=?  
 UUU $ 6 6w ? ?WPPP $ 6 6D !7 ! !W ##L11 ( $ 1 1'7 C CWJ&&#'#7#7#@#@Z   'W+	( 	(r   c                 b    t          | d          r| j        S t          | d          r| j        S d S )N_cls_f)rO   r   r   r#   s    r   _objzNumpyDocString._obj  s:    4   	9T4   	7Ntr   Tc                 Z   | j         	 t          j        | j                   }n# t          $ r d }Y nw xY wt	          | j         dd           }|%t	          t	          | j         dd           dd           }||d| z  }||rd| dndz  }|rt          |          t          |d           d S )	NrD   	__class__z in the docstring of rM   .r&   r   )
stacklevel)r   inspectgetsourcefile	TypeErrorgetattrr   r   )r   r   rz   filenamerS   s        r   r{   zNumpyDocString._error_location  s    9  "0;;        49j$77D|wty+tDDjRVWW5t5559%(%%%%r9C 	$S//!######s   # 22r   c                 *    |t          |          |z  gS r   )r/   )r   rS   symbols      r   _str_headerzNumpyDocString._str_header  s    c$ii&())r      c                      fd|D             S )Nc                      g | ]
}d z  |z   S )r   rH   )r   r3   indents     r   r   z.NumpyDocString._str_indent.<locals>.<listcomp>  s"    444ft#444r   rH   )r   r   r   s     `r   _str_indentzNumpyDocString._str_indent  s    44444444r   c                 Z    | d         r!| d                              dd          gdgz   S dgS )NrX   *z\*r&   )replacer#   s    r   _str_signaturezNumpyDocString._str_signature  s<     	B%--c599:bTAAtr   c                 .    | d         r| d         dgz   S g S )NrY   r&   rH   r#   s    r   _str_summaryzNumpyDocString._str_summary  s$    	? 	*	?bT))	r   c                 .    | d         r| d         dgz   S g S )NrZ   r&   rH   r#   s    r   _str_extended_summaryz$NumpyDocString._str_extended_summary  s(    "# 	3*+rd22	r   c                    g }| |         r||                      |          z  }| |         D ]}g }|j        r|                    |j                   |j        r|                    |j                   |d                    |          gz  }|j        rId                    |j                                                  r||                     |j                  z  }|dgz  }|S )Nr   r&   )r   rS   r   rT   rC   rU   r   r   )r   rS   r(   parampartss        r   _str_param_listzNumpyDocString._str_param_list  s    : 	4##D)))Cd 8 8: -LL,,,: -LL,,,

5))**: 8"''%*"5"5";";"="= 84++EJ777CB4KC
r   c                 l    g }| |         r)||                      |          z  }|| |         z  }|dgz  }|S r@   )r   )r   rS   r(   s      r   _str_sectionzNumpyDocString._str_section  sI    : 	4##D)))C4:CB4KC
r   c                    | d         sg S g }||                      d          z  }|dgz  }d}| d         D ]\  }}t          |t                    sJ g }|D ]8\  }}|r
d| d| d}	n|r
d| d| d}	nd| d}	|                    |	           9d                    |          }	||	gz  }|r/||                     d	                    |          g          z  }d}d
}||                     | j        g          z  }|r|dgz  }|dgz  }|S )Nre   r&   Tr   z:``z`_, r   F)r   r   r   r   rC   r   empty_description)
r   	func_roler(   last_had_descr   rU   linksfuncr   links
             r   _str_see_alsozNumpyDocString._str_see_also  s   J 	It
+++t
+ 	B 	BKE4eT*****E# # #
d (.t..t...DD (3y33D333DD't<<<DT""""99U##DD6MC Bt''$(8999 $ %t'')?(@AAA 	B4KCt
r   c                     | d         }g }d}|                     dd          }|rd}|d| gz  }|                                D ]-\  }}|dk    rd}|d| dd	                    |           gz  }.|r|S dS )
Nri   Fr   r&   Tz.. index:: z   :z: r  )r   r   rC   )r   idxr(   output_indexdefault_indexr   
referencess          r   
_str_indexzNumpyDocString._str_index  s    7m	2.. 	 L-m--..#&99;; 	? 	?GZ)##L=7==dii
&;&;==>>CC 	Jrr   c                 &   g }||                                  z  }||                                 z  }||                                 z  }||                     d          z  }dD ]}||                     |          z  }dD ]}||                     |          z  }||                     d          z  }||                     |          z  }dD ]}||                     |          z  }||                                 z  }d                    |          S )Nr[   )r\   r]   )r^   r_   r`   ra   rb   rc   rd   )rf   rg   rh   r   )r   r  r  r  r
  r  r  rC   )r   r  r(   
param_listr   s        r   rQ   zNumpyDocString.__str__$  s4   t""$$$t  """t))+++t##L1113 	4 	4J4''
333CC
 	4 	4J 4''
333CCt  ,,,t!!),,,4 	( 	(A4$$Q'''CCt   yy~~r   r   )F)T)r   )r   )r&   ),rD   rE   rF   rG   rp   r   r    r}   r   r   r   r   r   r   r   _role_funcbacktick
_funcplain	_funcnamer   _funcnamenext_descriptionr   r   r   r   r  r   r   r   rr   propertyr   r{   r   r   r   r  r  r  r
  r  r  rQ   rH   r   r   rW   rW   p   s        RB4 	B 	b	
 	b 	2 	2 	" 	B 	B 	" 	 	B 	B 	  	b!" 	B#$ 	% H*   & & &) ) )' ' '& & &L L L(% % %	 	 	
2 
2 
2   V %E>M/Ju},t3j@4GI%%fj99M!))&*==MEL
7Y.788I
	
	 #	# 		
 	 	 "	" 	
 
I 6 6 6p  (D D D,"( "( "(H   X$ $ $ $,* * * *5 5 5 5  
  
  
       @  "     r   rW   c                 v    t          j        d                    |                                         d          S )z"Deindent a list of lines maximallyr   )rk   rl   rC   r   )liness    r   r   r   =  s,    ?499U++,,224888r   c                   ,     e Zd ZddZd Z fdZ xZS )FunctionDocr  Nc                     || _         || _        |'|t          d          t          j        |          pd}|i }t
                              | ||           d S )NzNo function or docstring givenr&   )r   r  r   r   getdocrW   r   )r   r  r   r   rs   s        r   r   zFunctionDoc.__init__C  se    
;| !ABBB.&&,"C>Fc622222r   c                     t          | j        d| j        j                  }t	          j        | j                  r!t          | j        d| j        j                  }n| j        }||fS )NrD   __call__)r   r   r   rD   r   isclassr   )r   	func_namer  s      r   get_funczFunctionDoc.get_funcO  sY    DGZ1HII	?47## 	47J0@AADD7DYr   c                 0   d}|                                  \  }}ddd}| j        rE| j        |vrt          d| j                    |d|                    | j        d           d| dz  }|t	                                          | j        	          z  }|S )
Nr&   functionmethod)r  methzWarning: invalid role z.. z:: z
    

)r  )r.  r  printr   superrQ   )r   r(   r  r-  rolesr   s        r   rQ   zFunctionDoc.__str__W  s    --//i#X66: 	Mz&&;tz;;<<<L4:r22LLyLLLLCuww444
r   )r  NN)rD   rE   rF   r   r.  rQ   __classcell__)r   s   @r   r'  r'  B  s[        
3 
3 
3 
3          r   r'  c                       e Zd ZddZdS )ObjDocNc                 V    || _         |i }t                              | ||           d S )Nrs   )r   rW   r   )r   objr   rs   s       r   r   zObjDoc.__init__h  s4    >Fc&99999r   )NN)rD   rE   rF   r   rH   r   r   r8  r8  g  s(        : : : : : :r   r8  c                   l    e Zd ZdgZddedfdZed             Zed             Ze	d             Z
d ZdS )	ClassDocr+  Nr&   c                    t          j        |          s|t          d|          || _        dt          j        v rddlm} nt                      }|i }|	                    dd          | _
        |r|                    d          s|dz  }|| _        |%|t          d          t          j        |          }t                              | |           |	                    d	g           }||u rd }|	                    d
g           }|	                    dd          r||urd }	d| j        fd| j        ffD ]\  }
}| |
         sg }t'          |          D ]r}||v s|r||vr	 t          j        t)          | j        |                    }|                    t-          |d |	|                               c# t.          $ r Y ow xY w|| |
<   d S d S d S )Nz"Expected a class or None, but got sphinxr   )ALLshow_inherited_class_membersTr   z&No class or documentation string givenmemberszexclude-membersshow_class_membersc                 2    | sg S |                                  S r   )
splitlines)r   s    r   splitlines_xz'ClassDoc.__init__.<locals>.splitlines_x  s     *I<<>>)r   r]   r\   r&   )r   r,  r   r   sysmodulessphinx.ext.autodocr@  objectr   show_inherited_membersr   _modpydocr)  rW   r   methods
propertiessortedr   r   rR   AttributeError)r   clsr   
modulenamefunc_docrs   r@  _members_excluderF  fieldr   doc_listrS   doc_items                  r   r   zClassDoc.__init__r  sT   s## 	KI#IIJJJ	s{"".......((C>F&,jj1OQU&V&V# 	j11#66 	#J	;{ !IJJJ,s##Cc***::i,,s??H::/44::*D11 	+hc6I6I* * * DL)t/! + +u E{ 
+!H &u ! !8+++T=Q=Q$!',|GDIt4L4L'M'MH$OOIdBX@V@V,W,WXXXX- ! ! ! D!"*DK-	+ 	+6I6I+ +s   $AF99
GGc                 `      j         g S  fdt          j         j                   D             S )Nc                     g | ]O\  }}|                     d           r	|j        v #t          |t                    8                    |          M|PS _)r   extra_public_methodsr   r   _is_show_memberr   rS   r  r   s      r   r   z$ClassDoc.methods.<locals>.<listcomp>  sx     
 
 
d__S))	
 .2T5N-N-NtX.. .O((.. .O  .O-N-Nr   r   r   
getmembersr#   s   `r   rN  zClassDoc.methods  sH    9I
 
 
 
%0;;
 
 
 	
r   c                 `      j         g S  fdt          j         j                   D             S )Nc                    g | ]~\  }}|                     d           sd                    |j                  sI|0t          |t          t
          f          st          j        |          g                    |          ||S r\  )	r   _should_skip_memberr   r   r#  r   r   isdatadescriptorr_  r`  s      r   r   z'ClassDoc.properties.<locals>.<listcomp>  s     
 
 
dOOC((	

 00tyAA
 L!$?(CDD !/55 ! ((..	 !  !LLr   ra  r#   s   `r   rO  zClassDoc.properties  sH    9I
 
 
 
%0;;
 
 
 	
r   c                 ~    t          |t                    o(t          |d          ot          |d          o| |j        v S )N_asdict_fields)
issubclasstuplerO   ri  )rS   klasss     r   re  zClassDoc._should_skip_member  sK    
 ue$$ &y))&y))& %	
r   c                 ,    | j         p|| j        j        v S r   )rK  r   __dict__)r   rS   s     r   r_  zClassDoc._is_show_member  s!     ' *ty))		
r   )rD   rE   rF   r^  r'  r   r#  rN  rO  staticmethodre  r_  rH   r   r   r=  r=  o  s        &< $kRV 4+ 4+ 4+ 4+l 
 
 X
 
 
 X
$ 
 
 \

 
 
 
 
r   r=  c                 4   |Ht          j        |           rd}n1t          j        |           rd}nt          | t                    rd}nd}|i }|dk    r || |||          S |dv r || ||          S |t          j        |           } || ||          S )	Nclassmoduler0  rJ  )rT  r   rs   )r0  r1  )r   rs   r:  )r   r,  ismoduler   r   rM  r)  )r;  whatr   rs   	class_docrT  obj_docs          r   get_doc_objectrw    s     |?3 	DDc"" 	DDX&& 	DDD~wyxSHHHH	'	'	'xV4444;,s##CwsC////r   )rG   rn   r   rM  r   rG  rk   collectionsr   collections.abcr   r   	functoolsr   warningsr   r   r   	ExceptionrJ   rR   rW   r   r'  r8  r=  rw  rH   r   r   <module>r}     s   A A    				 



  " " " " " " - - - - - - - - % % % % % %        I. I. I. I. I. I. I. I.X        J{$<$<$<==	J J J J JW J J JZ9 9 9
" " " " ". " " "J: : : : :^ : : :k
 k
 k
 k
 k
~ k
 k
 k
` 
0 0 0 0 0 0r   