
    z-PhY                     8   d 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 ddl	m
Z
mZ ddlZddl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ZdS )z=Extract reference documentation from the NumPy source tree.

    N)warn)
namedtuple)CallableMappingc                     | 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    Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/vendored/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__2   s    y|r   c                     d| _         d S )Nr   )_lr   s    r   r   zReader.reset5   s    r   c                 l    |                                  s| | j                 }| xj        dz  c_        |S dS )N    )eofr!   )r   outs     r   readzReader.read8   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_line@   sM    dghh 	 	Awwyy 1		 	r   c                 <    | j         t          | j                  k    S r   r!   lenr   r"   s    r   r&   z
Reader.eofG   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_conditionJ   s    L 	- 	-D~d## +E$'M****GGqLGGxxzz -E$'!)O,,,,-	r   c                 Z    |                                   d }|                     |          S )Nc                 ,    |                                   S r   r	   r2   s    r   is_emptyz0Reader.read_to_next_empty_line.<locals>.is_emptyW   s    zz||##r   )r+   r3   )r   r7   s     r   read_to_next_empty_linezReader.read_to_next_empty_lineT   s9    %%'''	$ 	$ 	$ %%h///r   c                 2    d }|                      |          S )Nc                     |                                  o1t          |                                           t          |           k    S r   )r
   r.   lstripr6   s    r   is_unindentedz:Reader.read_to_next_unindented_line.<locals>.is_unindented]   s0    JJLLFc$++--&8&8CII&EGr   )r3   )r   r<   s     r   read_to_next_unindented_linez#Reader.read_to_next_unindented_line\   s(    	H 	H 	H%%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.peeka   s1    7Q;TY''!$$2r   c                 \    d                     | j                                                   S r?   )joinr   r
   r"   s    r   r7   zReader.is_emptyg   s%    7749%%++----r   N)r   )__name__
__module____qualname____doc__r   r   r   r(   r+   r&   r3   r8   r=   r@   r7    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hasattrrK   )r   messages     r   __str__zParseError.__str__l   s6    )A,4%% 	=$+GGT^^<Gr   N)rC   rD   rE   rP   rG   r   r   rI   rI   k   s#            r   rI   	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ReturnsYieldsReceivesRaisesWarnsOther Parameters
AttributesMethodsSee AlsoNotesWarnings
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_parserI   rK   )r   rK   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   )rp   )r   keys     r   r   zNumpyDocString.__getitem__   s     %%r   c                 d    || j         vr|                     d|z  d           d S || j         |<   d S )NzUnknown section %sFerror)rp   _error_location)r   rv   vals      r   __setitem__zNumpyDocString.__setitem__   sH    d'''  !5!;5 IIIII%(Dc"""r   c                 *    t          | j                  S r   )iterrp   r"   s    r   __iter__zNumpyDocString.__iter__   s    D%&&&r   c                 *    t          | j                  S r   )r.   rp   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 
rx   )rl   r+   r&   r@   r
   
startswithr.   setrB   r   rz   )r   l1l2snips       r   _is_at_sectionzNumpyDocString._is_at_section   sU   	**,,,9==?? 	5Y^^##%%==&& 	4Y^^A$$&&r77a<<SWW#66CGGs2ww<N<N99TY^BQB/006D   $&BBDD"29> ! @ @ @}}SR[))GR]]3s2ww;-G-GGr   c                     d}d}t          |          D ]\  }}|                                r nt          |d d d                   D ]\  }}|                                r n||t          |          |z
           S )Nr   r   )	enumerater
   r.   )r   docijr2   s        r   _stripzNumpyDocString._strip   s     ~~ 	 	GAtzz||  !TTrT++ 	 	GAtzz||  1SXXaZ<  r   c                    | j                                         }|                                 s| j                                         s{| j                             d                                          s|dgz  }|| j                                         z  }|                                 s| j                                         {|S )Nr   r%   )rl   r8   r   r&   r@   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   )rl   r&   r   r
   r   r.   StopIterationr   )r   r   rR   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                 2   t          |          }t          |          }g }|                                s|                                                                }d|v rC|                    dd          \  }}|                                |                                }}n|rd|}}n|d}}|                                }t          |          }t          |          }|                    t          |||                     |                                |S )Nz :r$   )maxsplitr%   )
dedent_linesr   r&   r(   r
   r   r=   r   appendrQ   )	r   contentsingle_element_is_typerparamsheaderarg_namearg_typerT   s	            r   _parse_param_listz NumpyDocString._parse_param_list   s   w''7OO%%'' 	?VVXX^^%%Fv~~%+\\$\%C%C"(%-^^%5%5x~~7G7G() 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rolenextrR   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   rR   name2)	_func_rgxmatchrz   groupend)textmr   rR   r2   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   NrT   trailingzGUnexpected comma or period after function list at index %d of line "%s"Frx    allfuncsTr   ,r$   r   )r   r
   	_line_rgxr   r   rz   r   r   r   r   filter)r   r   itemsr   rest
line_matchdescriptionfuncsr   rR   r   	match_endr2   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 )	zT
        .. index: default
           :refguide: something, else, and more

        c                     d | D             S )Nc                 6    g | ]}|                                 S rG   r	   .0ss     r   
<listcomp>zFNumpyDocString._parse_index.<locals>.strip_each_in.<locals>.<listcomp>^  s     +++!AGGII+++r   rG   )lsts    r   strip_each_inz2NumpyDocString._parse_index.<locals>.strip_each_in]  s    ++s++++r   z::r$   r   r   default:r   )r   r.   )r   r   r   r   r'   r2   s         r   _parse_indexzNumpyDocString._parse_indexW  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 rG   r	   r   s     r   r   z1NumpyDocString._parse_summary.<locals>.<listcomp>r  s     #?#?#?!AGGII#?#?#?r   z^([\w., ]+=)?\s*[\w\.]+\(.*\)$rW   rX   rY   )	r   rl   r8   rB   r
   recompiler   r   )r   summarysummary_strcompileds       r   _parse_summaryzNumpyDocString._parse_summaryj  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           	         | j                                          |                                  t          |                                           }t          d |D                       }d|v }d|v }|r|rd}t          |          |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                     g | ]\  }}|S rG   rG   )r   r   r   s      r   r   z)NumpyDocString._parse.<locals>.<listcomp>  s    FFF)9'WFFFr   r[   r\   z5Docstring contains both a Returns and Yields section.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   )rZ   r`   ra   rb   )r[   r\   r^   r_   r]   T)r   r   rh   rc   )rl   r   r   r   r   r   
ValueErrorr   r   rB   getrz   r   r   r   r   )r   ro   section_nameshas_returns
has_yieldsmsgr   r   s           r   rq   zNumpyDocString._parse  s,   	++--..FFXFFFGG=0.
 	": 	"ICS//! 	"jM99ICS//!"* 	( 	(Wg%%d++ QFF7==3E3EFFF((7++88G$$ Q(((,3GGTYYty~5N5N5N*P Q Q Q  & & & $ 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)rN   r   r   r"   s    r   _objzNumpyDocString._obj  s:    4   	9T4   	7Ntr   Tc                     | j         L	 t          j        | j                   }n# t          $ r d }Y nw xY w|d| j         j         z  }||rd| dndz  }|rt          |          t          |           d S )Nz in the docstring of rL   .r%   )r   inspectgetsourcefile	TypeErrorrC   r   r   )r   r   ry   filenames       r   rz   zNumpyDocString._error_location  s    9  "0;;       ?49+=???C9%(%%%%r9C 	S//!IIIIIs   # 22r   c                 *    |t          |          |z  gS r   )r.   )r   rR   symbols      r   _str_headerzNumpyDocString._str_header  s    c$ii&''r      c                      fd|D             S )Nc                      g | ]
}d z  |z   S )r   rG   )r   r2   indents     r   r   z.NumpyDocString._str_indent.<locals>.<listcomp>  s"    222dF
T!222r   rG   )r   r   r   s     `r   _str_indentzNumpyDocString._str_indent  s    2222c2222r   c                 Z    | d         r!| d                              dd          gdgz   S dgS )NrW   *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 )NrX   r%   rG   r"   s    r   _str_summaryzNumpyDocString._str_summary  s$    	? 	*	?bT))	r   c                 .    | d         r| d         dgz   S g S )NrY   r%   rG   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 )Nz : r%   )r   rR   r   rS   rB   rT   r
   r   )r   rR   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   rR   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 ]7\  }}|r
d|d|d}	n|r
d|d|d}	nd|z  }	|                    |	           8d                    |          }	||	gz  }|r/||                     d	                    |          g          z  }d}d
}||                     | j        g          z  }|r|dgz  }|dgz  }|S )Nrc   r%   Tr   z:``z`%s`_, r   F)r   r   r   r   rB   r   empty_description)
r   	func_roler'   last_had_descr   rT   linksfuncr   links
             r   _str_see_alsozNumpyDocString._str_see_also  s   J 	It
+++t
+ 	B 	BKE4eT*****E# # #
d * *)-ttt4DD * *)2DDD9DD"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|z  gz  }|                                D ]-\  }}|dk    rd}|d|dd	                    |          gz  }.|r|S dS )
Nrh   Fr   r%   Tz.. index:: %sz   :z: r  )r   r   rB   )r   idxr'   output_indexdefault_indexr   
referencess          r   
_str_indexzNumpyDocString._str_index  s    7m	2.. 	 L-/00#&99;; 	E 	EGZ)##LCGGGTYYz-B-B-BCDDCC 	Jrr   c                    g }||                                  z  }||                                 z  }||                                 z  }dD ]}||                     |          z  }||                     d          z  }||                     |          z  }dD ]}||                     |          z  }dD ]}||                     |          z  }||                                 z  }d                    |          S )N)rZ   r[   r\   r]   r`   r^   r_   re   )rd   rf   rg   )ra   rb   r   )r   r   r   r  r  r  r  rB   )r   r  r'   
param_listr   s        r   rP   zNumpyDocString.__str__  s   t""$$$t  """t))+++B 	4 	4J4''
333CCt  ,,,t!!),,,4 	( 	(A4$$Q'''CC3 	4 	4J4''
333CCt   yy~~r   r   )F)T)r   )r   )r%   ),rC   rD   rE   rF   ro   r   r   r|   r   r   r   r   r   r   r   _role_funcbacktick
_funcplain	_funcnamer   _funcnamenext_descriptionr   r   r   r   r  r   r   r   rq   propertyr   rz   r   r   r   r   r   r  r  r  r  rP   rG   r   r   rV   rV   v   s        RB4 	B 	b	
 	2 	" 	B 	" 	 	B 	b 	2 	B 	 	B  	b!" 	B#$ 	% H*   & & &) ) )' ' '& & &H H H$! ! !	 	 	
2 
2 
2   N %E>M/Ju},t3j@4GI%%fj99M!))&*==MEL
7Y.788I
		 	!	! $1	1 4:	: 			 	 	  		 I 5 5 5n  &D D D,$( $( $(L   X    ( ( ( (3 3 3 3  
  
  
       @  "     r   rV   c                 v    t          j        d                    |                                         d          S )z"Deindent a list of lines maximallyr   )rj   rk   rB   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   getdocrV   r   )r   r  r   r   rr   s        r   r   zFunctionDoc.__init__4  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 )NrC   __call__)getattrr   	__class__rC   r   isclassr   )r   	func_namer  s      r   get_funczFunctionDoc.get_func@  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        z             |d|                    | j        d          d|dz  }|t	                                          | j        	          z  }|S )
Nr%   functionmethod)r  methzWarning: invalid role %sz.. z:: z
    

)r  )r)  r  printr   superrP   )r   r'   r  r(  rolesr&  s        r   rP   zFunctionDoc.__str__H  s    --//i#!# # : 	8z&&04:=>>>CUYYtz2-F-F-F-F-6YY8 8C 	uww444
r   )r  NN)rC   rD   rE   r   r)  rP   __classcell__)r&  s   @r   r   r   3  s[        
3 
3 
3 
3          r   r   c                       e Zd ZddZdS )ObjDocNc                 V    || _         |i }t                              | ||           d S )Nrr   )r   rV   r   )r   objr   rr   s       r   r   zObjDoc.__init__[  s4    >Fc&99999r   )NN)rC   rD   rE   r   rG   r   r   r3  r3  Z  s(        : : : : : :r   r3  c                   V    e Zd ZdgZddedfdZed             Zed             Zd Z	dS )ClassDocr$  Nr%   c                    t          j        |          s|t          d|z            || _        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 %r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   rb   ra   r%   )r   r'  r   r   sysmodulessphinx.ext.autodocr;  objectr   show_inherited_membersendswith_modpydocr"  rV   r   methods
propertiessortedr%  r   rQ   AttributeError)r   clsr   
modulenamefunc_docrr   r;  _members_excluderA  fieldr   doc_listrR   doc_items                  r   r   zClassDoc.__init__f  sf   s## 	KCcIJJJ	s{"".......((C>F&,jj*D'2 '2#  	j11#66 	#J	;{ !IJJJ,s##Cc***::i,,s??H::/44::*D11 	+hc6I6I* * *
 #,T\!:".!@!B + +uE{ +!H &u 	! 	! H,,!) -.2(.B.B$!',|GDIt4L4L'M'MH$OO )$LL4J4J K KM M M M- ! ! ! 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   rR   r  r   s      r   r   z$ClassDoc.methods.<locals>.<listcomp>  sp     1 1 1t--1T666tX.. 7((.. 7 666r   r   r   
getmembersr"   s   `r   rJ  zClassDoc.methods  G    9I1 1 1 1w'9$)'D'D 1 1 1 	1r   c                 `      j         g S  fdt          j         j                   D             S )Nc                     g | ]\\  }}|                     d           sB|)t          |t                    st          j        |          E                    |          Z|]S rX  )r   r   r  r   isdatadescriptorr[  r\  s      r   r   z'ClassDoc.properties.<locals>.<listcomp>  st     1 1 1t,,1\Zh%?%?\-d33 "((.. " !\\r   r]  r"   s   `r   rK  zClassDoc.properties  r_  r   c                 8    | j         rdS || j        j        vrdS dS )NTF)rF  r   __dict__)r   rR   s     r   r[  zClassDoc._is_show_member  s,    & 	4ty)))5tr   )
rC   rD   rE   rZ  r   r   r  rJ  rK  r[  rG   r   r   r8  r8  b  s        &< $k4+ 4+ 4+ 4+l 1 1 X1 1 1 X1    r   r8  c                 V   |Ht          j        |           rd}n1t          j        |           rd}nt          | t                    rd}nd}|i }|dk    rt          | t          ||          S |dv rt          | ||          S |t          j        |           }t          | ||          S )	Nclassmoduler+  rE  )rP  r   rr   )r+  r,  )r   rr   r5  )
r   r'  ismoduler   r   r8  r   rI  r"  r3  )r6  whatr   rr   s       r   get_doc_objectrj    s    |?3 	DDc"" 	DDX&& 	DDD~wks6JJJJ	'	'	'3C7777;,s##Cc3v....r   )NNN)rF   r   rj   r   rI  warningsr   collectionsr   collections.abcr   r   rm   rB  r   r   	ExceptionrI   rQ   rV   r   r   r3  r8  rj  rG   r   r   <module>ro     s      				        " " " " " " - - - - - - - -  



  J. J. J. J. J. J. J. J.Z        J{$<$<$<==	u u u u uW u u up9 9 9
$ $ $ $ $. $ $ $N: : : : :^ : : :S S S S S~ S S Sl/ / / / / /r   