
    hMh [                     $   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dZd ZddZ G d de          Z G d de          ZdS )aK  Extract reference documentation from the NumPy source tree.

Copyright (C) 2008 Stefan van der Walt <stefan@mentat.za.net>, Pauli Virtanen <pav@iki.fi>

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in
    the documentation and/or other materials provided with the
    distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

    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/seaborn/external/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 )zr
        Parameters
        ----------
        data : str
           String with lines separated by '
'.

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

4((DI

r   c                     | j         |         S N)r   r   ns     r   __getitem__zReader.__getitem__D   s    y|r   c                     d| _         d S )Nr   )_lr   s    r   r   zReader.resetG   s    r   c                 l    |                                  s| | j                 }| xj        dz  c_        |S dS )N    )eofr!   )r   outs     r   readzReader.readJ   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_lineR   sM    dghh 	 	Awwyy 1		 	r   c                 <    | j         t          | j                  k    S r   r!   lenr   r"   s    r   r&   z
Reader.eofY   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_condition\   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_emptyi   s    zz||##r   )r+   r3   )r   r7   s     r   read_to_next_empty_linezReader.read_to_next_empty_linef   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_unindentedo   s0    JJLLFc$++--&8&8CII&EGr   )r3   )r   r<   s     r   read_to_next_unindented_linez#Reader.read_to_next_unindented_linen   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.peeks   s1    7Q;TY''!$$2r   c                 \    d                     | j                                                   S r?   )joinr   r
   r"   s    r   r7   zReader.is_emptyy   s%    7749%%++----r   N)r   )__name__
__module____qualname____doc__r   r   r   r(   r+   r&   r3   r8   r=   r@   r7    r   r   r   r   1   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__~   s9    )A,4%% 	9 88dn88Gr   N)rC   rD   rE   rP   rG   r   r   rI   rI   }   s#            r   rI   	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i fdZd Zd Zd Zd Z	d Z
d Zd Zd ZdEd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   d/z   d%z   d0z   ez             Zd1Zd2 Zd3 Zd4 Zd5 ZdFd7ZdGd9Z dHd;Z!d< Z"d= Z#d> Z$d? Z%d@ Z&dA Z'dB Z(dIdCZ)dDS )J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indexc                    |}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   )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                                          }|                    dt          |          z            p$|                    dt          |          z            S )NF
.. index::Tr$   -=)rm   r+   r&   r@   r
   
startswithr.   )r   l1l2s      r   _is_at_sectionzNumpyDocString._is_at_section   s    	**,,,9==?? 	5Y^^##%%==&& 	4Y^^A$$&&}}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%   )rm   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$      )rm   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                    t          |          }g }|                                s|                                                                }d|v r!|                    d          d d         \  }}n|rd|}}n|d}}|                                }t          |          }t          |          }|                    t          |||                     |                                |S )N : r   r%   )
r   r&   r(   r
   r   r=   dedent_linesr   appendrQ   )	r   contentsingle_element_is_typerparamsheaderarg_namearg_typerT   s	            r   _parse_param_listz NumpyDocString._parse_param_list   s    7OO%%'' 	?VVXX^^%%F%+\\%%8%8!%<"(() 4)+VhHH)/hH1133D%%D$T**DMM)Hh==>>> %%'' 	?  r   z:(?P<role>\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                     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           t          | 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t          |  d          |                    d          }|r|                    d          n|                    d          }|||                                fS )zMatch ':role:`name`' or 'name'. is not a item namer   rR   name2)	_func_rgxmatchrI   groupend)textmr   rR   r   s       r   parse_item_namez7NumpyDocString._parse_see_also.<locals>.parse_item_name6  s    $$T**A ? D!=!=!=>>>776??D&*@1776???0@0@Dquuww&&r   NrT   trailingzGUnexpected comma or period after function list at index %d of line "%s"Fry    allfuncsTr   ,r$   r   )r
   	_line_rgxr   r   r{   r   r   r   r   filterrI   )r   r   itemsr   restr2   
line_matchdescriptionfuncsr   rR   r   	match_ends   `            r   _parse_see_alsozNumpyDocString._parse_see_also+  s    	' 	' 	' 	' 	'  	? 	?D::<< --d33JK %(..v66##J// %K %(($'1~~j'A'A4&HI# ) % % %  ?4??3#7#7 ?DJJLL)))) ?!''
330::<< ,;OD,A,A)D$	LL$...	

+1133D 0Q3#ABBx~~//0 F4+7788eT]++++ D!=!=!=>>>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>g  s     +++!AGGII+++r   rG   )lsts    r   strip_each_inz2NumpyDocString._parse_index.<locals>.strip_each_inf  s    ++s++++r   z::r$   r   r   default:r   )r   r.   )r   r   r   r   r'   r2   s         r   _parse_indexzNumpyDocString._parse_index`  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>{  s     #?#?#?!AGGII#?#?#?r   z^([\w., ]+=)?\s*[\w\.]+\(.*\)$rW   rX   rY   )	r   rm   r8   rB   r
   recompiler   r   )r   summarysummary_strcompileds       r   _parse_summaryzNumpyDocString._parse_summarys  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                 D   | j                                          |                                  t          |                                           }d |D             }d|v }d|v }|r|rd}t          |          |sd|v rd}t          |          |D ]\  }}|                    d          sbd |                    d	          D             }d	                    |          }| 	                    |          r| 
                    d
| d           |dv r|                     |          | |<   |dv r|                     |d          | |<   |                    d          r|                     ||          | d<   |dk    r|                     |          | d<   || |<   d S )Nc                     h | ]\  }}|S rG   rG   )r   r   r   s      r   	<setcomp>z(NumpyDocString._parse.<locals>.<setcomp>  s    BBB%5WgBBBr   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)rZ   r`   ra   rb   )r[   r\   r^   r_   r]   T)r   r   rh   rc   )rm   r   r   r   r   
ValueErrorr   r   rB   getr{   r   r   r   )r   rp   section_nameshas_returns
has_yieldsmsgr   r   s           r   rr   zNumpyDocString._parse  s   	++--..BBBBB=0.
 	": 	"ICS//! 	"jM99ICS//!"* 	( 	(Wg%%d++ QFF7==3E3EFFF((7++88G$$ Q(()O)O)O)OPPP & & & $ 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   Tc                     t          | d          r>	 t          j        | j                  }n# t          $ r d }Y nw xY w|d| j         d| dz   }|rt          |          t          |           d S )N_objz in the docstring of rL   .)rN   inspectgetsourcefiler   	TypeErrorr   r   )r   r   rz   filenames       r   r{   zNumpyDocString._error_location  s    4   	K "0;;       J	JJxJJJJC 	S//!IIIIIs   , ;;r   c                 *    |t          |          |z  gS r   r.   )r   rR   symbols      r   _str_headerzNumpyDocString._str_header  s    c$ii&''r      c                 ,    g }|D ]}|d|z  |z   gz  }|S )Nr   rG   )r   r   indentr'   r2   s        r   _str_indentzNumpyDocString._str_indent  s3     	' 	'DCJ%&&CC
r   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;     	%--c599:bTAA4Kr   c                 .    | d         r| d         dgz   S g S )NrX   r%   rG   r"   s    r   _str_summaryzNumpyDocString._str_summary  s$    	? 		?bT))Ir   c                 .    | d         r| d         dgz   S g S )NrY   r%   rG   r"   s    r   _str_extended_summaryz$NumpyDocString._str_extended_summary  s(    "# 	*+rd22Ir   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   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 ]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 )Nrc   r%   Tr   z:``z`_, 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 (.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 )
Nrh   Fr   r%   Tz.. index:: z   :z: r  )r   r   rB   )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2r   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   N)F)Tr   r   )r%   )*rC   rD   rE   rF   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   r{   r   r   r   r   r   r   r   r	  r  rP   rG   r   r   rV   rV      s        RB4 	B 	b	
 	2 	" 	B 	" 	 	B 	b 	2 	B 	 	B  	b!" 	B#$ 	% H* *,    & & &) ) )' ' '& & &H H H! ! !	 	 	
2 
2 
2   J E>M/Ju},t3j@4GI%%fj99M!))&*==MEL
7Y.788I
		 	!	! $1	1 4:	: 			
 	 	  		 I 3 3 3j  &D D D,#( #( #(J   ( ( ( (                @  $     r   rV   r   c                     d|z  | S |                      d          }d                    fd|D                       S )Nr   r   c              3   "   K   | ]	}|z   V  
d S r   rG   )r   r   
indent_strs     r   r   zindent.<locals>.<genexpr>9  s'      33Z!^333333r   )r   rB   )strr   linesr  s      @r   r   r   4  sM    VJ
{IIdOOE993333U333333r   c                 v    t          j        d                    |                                         d          S )z"Deindent a list of lines maximallyr   )rk   rl   rB   r   )r  s    r   r   r   <  s,    ?499U++,,224888r   r   c                 8    | dz   |t          |           z  z   dz   S rj   r   )r   styles     r   r   r   A  s     $;s4yy(4//r   c                   2     e Zd Zddi fdZd Z fdZ xZS )FunctionDocr  Nc                 H   || _         || _        |'|t          d          t          j        |          pd}t
                              | ||           | d         s||                                 \  }}	 	 t          t          j	        |                    }nd# t          t          f$ rP t          j        d         dk    rt          j        |          }nt          j        |          }t          j        | }Y nw xY w| | }n# t           $ r | d}Y nw xY w|| d<   d S d S d S )NzNo function or docstring givenr%   rW   r      z())_fr  r   r   getdocrV   r   get_funcr  	signatureAttributeErrorsysversion_infogetfullargspec
getargspecformatargspecr   )r   r  r   r   rs   	func_namer)  argspecs           r   r   zFunctionDoc.__init__F  sh   
;| !ABBB.&&,"Cc6222K  	*T%5"mmooOD)-@ #G$5d$;$; < <II&
3 @ @ @'*a//")"8">">")"4T":": ' 5w ?III@  )5)55		 - - -(,,,			- )D	* 	*%5%5s1   7!B D AC:7D 9C::	D DD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   r0  r  s      r   r(  zFunctionDoc.get_funca  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   superrP   )r   r'   r  r0  rolesr5  s        r   rP   zFunctionDoc.__str__i  s    --//i#!# # : 	Mz&&;tz;;<<<L4:r22LLyLLLLCuww444
r   )rC   rD   rE   r   r(  rP   __classcell__)r5  s   @r   r#  r#  E  sb        "(d2 * * * *6          r   r#  c                   V    e Zd ZdgZddei fdZed             Zed             Zd Z	dS )ClassDocr3  Nr%   c                    t          j        |          s|t          d|          || _        dt          j        v rddlm} nt                      }|	                    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   rb   ra   r%   )r   r6  r   _clsr+  modulessphinx.ext.autodocrC  objectr   show_inherited_membersendswith_modpydocr'  rV   r   methods
propertiessortedr4  r   rQ   r*  )r   clsr   
modulenamefunc_docrs   rC  _members_excluderI  fieldr   doc_listrR   doc_items                  r   r   zClassDoc.__init__~  s_   s## 	KI#IIJJJ	s{"".......((C&,jj2D': ':#  	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F55
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     5 5 5t--5 999"422 :,,T22 : 999r   rJ  r   
getmembersr"   s   `r   rR  zClassDoc.methods  G    9I5 5 5 5w'9$)'D'D 5 5 5 	5r   c                 `      j         g S  fdt          j         j                   D             S )Nc                     g | ]\\  }}|                     d           sB|)t          |t                    st          j        |          E                    |          Z|]S r_  )r   r   propertyr   isdatadescriptorrb  rc  s      r   r   z'ClassDoc.properties.<locals>.<listcomp>  st     5 5 5t,,5\Zh%?%?\-d33 ",,T22 " !\\r   rd  r"   s   `r   rS  zClassDoc.properties  rf  r   c                 8    | j         rdS || j        j        vrdS dS )NTF)rN  rJ  __dict__)r   rR   s     r   rb  zClassDoc._is_show_member  s,    & 	4ty)))5tr   )
rC   rD   rE   ra  r#  r   ri  rR  rS  rb  rG   r   r   r@  r@  z  s        &< $k2+ 2+ 2+ 2+h 5 5 X5 5 5 X5    r   r@  r  r  )rF   r   rk   r   rQ  warningsr   collectionsr   collections.abcr   r   rn   r+  r   r   	ExceptionrI   rQ   rV   r   r   r   r#  r@  rG   r   r   <module>rq     s   8   				        " " " " " " - - - - - - - -  



  I. I. I. I. I. I. I. I.X        J{$<$<$<==	i i i i iW i i iX4 4 4 49 9 9
0 0 0 02 2 2 2 2. 2 2 2jQ Q Q Q Q~ Q Q Q Q Qr   