
    (ph ]                     &   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSK	J
r
Jr  SSKJr  SSKJr  S r " S S	5      r " S
 S\5      r\" S/ SQ5      r " S S\5      rS r " S S\5      r " S S\5      r " S S\5      rSSS\\\4S jrg)z;Extract reference documentation from the NumPy source tree.    N)
namedtuple)CallableMapping)cached_property)warnc                    U (       a<  U S   R                  5       (       d$  U S	 U (       a  U S   R                  5       (       d  M$  U (       a<  U S   R                  5       (       d$  U S	 U (       a  U S   R                  5       (       d  M$  U $ )z<Remove leading and trailing blank lines from a list of linesr   strip)ls    H/var/www/html/venv/lib/python3.13/site-packages/scipy/_lib/_docscrape.pystrip_blank_linesr      s]    
AaDJJLLaD AaDJJLL
AbEKKMMbE AbEKKMMH    c                   ^    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rSS jrS rSrg)Reader   zA line-based string reader.c                     [        U[        5      (       a  Xl        OUR                  S5      U l        U R	                  5         g)zK
Parameters
----------
data : str
   String with lines separated by '\n'.


N)
isinstancelist_strsplitreset)selfdatas     r   __init__Reader.__init__   s/     dD!!I

4(DI

r   c                      U R                   U   $ N)r   r   ns     r   __getitem__Reader.__getitem__+   s    yy|r   c                     SU l         g )Nr   )_lr   s    r   r   Reader.reset.   s	    r   c                 x    U R                  5       (       d%  X R                     nU =R                  S-  sl        U$ g)N    )eofr%   )r   outs     r   readReader.read1   s-    xxzzww-CGGqLGJr   c                     X R                   S   H/  nUR                  5       (       a    g U =R                   S-  sl         M1     g Nr)   )r%   r   )r   r   s     r   seek_next_non_empty_lineReader.seek_next_non_empty_line9   s/    ggiAwwyy1	 !r   c                 F    U R                   [        U R                  5      :  $ r   r%   lenr   r&   s    r   r+   
Reader.eof@   s    ww#dii.((r   c                     U R                   nXS   H]  nU" U5      (       a  XU R                    s  $ U =R                   S-  sl         U R                  5       (       d  ML  XU R                   S-    s  $    / $ r0   )r%   r+   )r   condition_funcstartlines       r   read_to_conditionReader.read_to_conditionC   se    LDd##DGG,,GGqLGxxzzDGGaK00 ! 	r   c                 J    U R                  5         S nU R                  U5      $ )Nc                 ,    U R                  5       (       + $ r   r
   r:   s    r   is_empty0Reader.read_to_next_empty_line.<locals>.is_emptyP   s    zz|##r   )r1   r;   )r   r@   s     r   read_to_next_empty_lineReader.read_to_next_empty_lineM   s&    %%'	$ %%h//r   c                 *    S nU R                  U5      $ )Nc                 z    U R                  5       =(       a%    [        U R                  5       5      [        U 5      :H  $ r   )r   r5   lstripr?   s    r   is_unindented:Reader.read_to_next_unindented_line.<locals>.is_unindentedV   s'    ::<ES%73t9%DEr   )r;   )r   rG   s     r   read_to_next_unindented_line#Reader.read_to_next_unindented_lineU   s    	F %%m44r   c                 r    U R                   U-   [        U R                  5      :  a  X R                   U-      $ gNr*   r4   r    s     r   peekReader.peek[   s.    77Q;TYY'!$$r   c                 ^    SR                  U R                  5      R                  5       (       + $ rL   )joinr   r   r&   s    r   r@   Reader.is_emptya   s!    77499%++---r   )r%   r   N)r   )__name__
__module____qualname____firstlineno____doc__r   r"   r   r-   r1   r+   r;   rB   rI   rM   r@   __static_attributes__ r   r   r   r      s<    %)05.r   r   c                       \ rS rSrS rSrg)
ParseErrore   c                 j    U R                   S   n[        U S5      (       a  U SU R                  < 3nU$ )Nr   	docstring in )argshasattrr]   )r   messages     r   __str__ParseError.__str__f   s6    ))A,4%% 	dnn%78Gr   rX   N)rR   rS   rT   rU   rb   rW   rX   r   r   rZ   rZ   e   s    r   rZ   	Parameter)nametypedescc                   F   \ rS rSrSr0 SS_SS/_S/ _S/ _S/ _S	/ _S
/ _S/ _S/ _S/ _S/ _S/ _S/ _S/ _S/ _SS_SS_S0 0ErSDS jrS rS rS r	S r
S rS rS rS rSES  jrS!rS"rS#rS$\-   \-   S%-   \-   S&-   r\R)                  S'S(5      r\R)                  S)S*5      rS+r\R0                  " S,\-   S--   5      r\R0                  " S.\-   S/-   \-   S0-   S&-   S1-   \-   5      rS2rS3 rS4 rS5 rS6 r\ S7 5       r!SFS8 jr"SGS9 jr#SHS: jr$S; r%S< r&S= r'S> r(S? r)S@ r*SA r+SISB jr,SCr-g)JNumpyDocStringp   z{Parses 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                    Un[         R                  " U5      R                  S5      n[        U5      U l        [
        R                  " U R                  5      U l         U R                  5         g ! [         a  nX4l        e S nAff = f)Nr   )textwrapdedentr   r   _doccopydeepcopysections_parsed_data_parserZ   r]   )r   r]   configorig_docstringes        r   r   NumpyDocString.__init__   sg    "OOI.44T:	9%	 MM$--8	KKM 	(K	s   A/ /
B9B  Bc                      U R                   U   $ r   )r   )r   keys     r   r"   NumpyDocString.__getitem__   s      %%r   c                 f    XR                   ;  a  U R                  SU 3SS9  g X R                   U'   g )NzUnknown section Ferror)r   _error_location)r   r   vals      r   __setitem__NumpyDocString.__setitem__   s7    '''  #3C5!9 G%(c"r   c                 ,    [        U R                  5      $ r   )iterr   r&   s    r   __iter__NumpyDocString.__iter__   s    D%%&&r   c                 ,    [        U R                  5      $ r   )r5   r   r&   s    r   __len__NumpyDocString.__len__   s    4$$%%r   c                    U R                   R                  5         U R                   R                  5       (       a  gU R                   R                  5       R	                  5       nUR                  S5      (       a  gU R                   R                  S5      R	                  5       n[        U5      S:  ao  [        U5      S1S14;   a\  [        U5      [        U5      :w  aD  SR                  U R                   R                  S S	 5      S
-   nU R                  SU SU SU 3SS9  UR                  S[        U5      -  5      =(       d    UR                  S[        U5      -  5      $ )NF
.. index::Tr)      -=r      z...z'potentially wrong underline length... 
z 
z in 
r   )r   r1   r+   rM   r   
startswithr5   setrP   r   r   )r   l1l2snips       r   _is_at_sectionNumpyDocString._is_at_section   s   		**,99==??YY^^##%==&&YY^^A$$&r7a<SW#6CGs2w<N99TYY^^BQ/058D  :2$c"VD6R !  }}S3r7]+Kr}}S3r7]/KKr   c                     SnSn[        U5       H  u  p$UR                  5       (       d  M    O   [        US S S2   5       H  u  p4UR                  5       (       d  M    O   X[        U5      U-
   $ )Nr   r	   )	enumerater   r5   )r   docijr:   s        r   _stripNumpyDocString._strip   sh     ~GAzz|| & !TrT+GAzz|| , s3x!|$$r   c                    U R                   R                  5       nU R                  5       (       d  U R                   R                  5       (       d  U R                   R	                  S5      R                  5       (       d  US/-  nXR                   R                  5       -  nU R                  5       (       d!  U R                   R                  5       (       d  M  U$ )Nr	   r*   )r   rB   r   r+   rM   r   )r   sections     r   _read_to_next_section$NumpyDocString._read_to_next_section   s    ))335%%''		99>>"%++--B4yy88::G	 %%''		 r   c              #   p  #    U R                   R                  5       (       d  U R                  5       nUS   R                  5       nUR	                  S5      (       a	  X!SS  4v   O/[        U5      S:  a	  [        v   OX R                  USS  5      4v   U R                   R                  5       (       d  M  g g 7f)Nr   ..r)   r   )r   r+   r   r   r   r5   StopIterationr   )r   r   re   s      r   _read_sectionsNumpyDocString._read_sections   s     ))--//--/D7==?Dt$$Hn$TQ##KKQR111 ))--//s   B0B64B6c                    [        U5      n[        U5      n/ nUR                  5       (       d  UR                  5       R	                  5       nSU;   a  UR                  SSS9u  pgO)UR                  S5      (       a  US S nU(       a  SUpvOUSpvUR                  5       n[        U5      n[        U5      nUR                  [        XgU5      5        UR                  5       (       d  M  U$ )N : r)   )maxsplitz :r*   )dedent_linesr   r+   r-   r   r   endswithrI   r   appendrd   )	r   contentsingle_element_is_typerparamsheaderarg_namearg_typerg   s	            r   _parse_param_list NumpyDocString._parse_param_list   s    w'7O%%''VVX^^%F%+\\%!\%D"(
 ??4((#CR[F))+Vh)/h113D%D$T*DMM)H=>' %%''* r   z:(?P<role>(py:)?\w+):z'`(?P<name>(?:~\w+\.)?[a-zA-Z0-9_\.-]+)`z(?P<name2>[a-zA-Z0-9_\.-]+)(|)rolerolenextre   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                 l  ^ ^ [        U5      n/ nUU 4S jn/ nU GH  mTR                  5       (       d  M  T R                  R                  T5      nSnU(       aR  UR	                  S5      nUR	                  S5      (       a+  U(       a$  T R                  SUR                  S5      T4-  SS9  U(       d7  TR                  S5      (       a!  UR                  TR                  5       5        M  U(       a  / nUR	                  S	5      n UR                  5       (       d  OTU" U5      u  pnUR                  X45        XS R                  5       nU(       a  US
   S:X  a  USS R                  5       nMj  [        [        SU/5      5      nUR                  Xt45        GM  T R                  ST< 35        GM     U$ )z
func_name : Descriptive text
    continued text
another_func_name : Descriptive text
func_name1, func_name2, :meth:`func_name`, func_name3

c                 
  > TR                   R                  U 5      nU(       d  TR                  ST< 35        UR                  S5      nU(       a  UR                  S5      OUR                  S5      nX2UR	                  5       4$ )zMatch ':role:`name`' or 'name'.Error parsing See Also entry r   re   name2)	_func_rgxmatchr   groupend)textmr   re   r:   r   s       r   parse_item_name7NumpyDocString._parse_see_also.<locals>.parse_item_name/  sh    $$T*A$$'DTH%MN776?D&*1776?0@Dquuw&&r   Nrg   trailingzGUnexpected comma or period after function list at index %d of line "%s"Fr    allfuncsr   ,r)   r   )r   r   	_line_rgxr   r   r   r   r   r   r   filter)r   r   itemsr   rest
line_matchdescriptionfuncsr   re   r   	match_endr:   s   `           @r   _parse_see_alsoNumpyDocString._parse_see_also"  s    w'	' D::<<--d3JK(..v6##J//K(($'1~~j'A4&HI# ) 
 4??3#7#7DJJL)!''
3::<<,;D,A)D	LL$.
+113DQ3#ABx~~/  F4+78e]+$$'DTH%MN= > r   c                 $   S n0 nUR                  S5      n[        U5      S:  a   U" US   R                  S5      5      S   US'   U HD  nUR                  S5      n[        U5      S:  d  M%  U" US   R                  S5      5      XES   '   MF     U$ )	z=
.. index:: default
   :refguide: something, else, and more

c                 L    U  Vs/ s H  oR                  5       PM     sn$ s  snf r   r
   )lstss     r   strip_each_in2NumpyDocString._parse_index.<locals>.strip_each_ina  s    '*+s!GGIs+++s   !z::r)   r   r   default:r   )r   r5   )r   r   r   r   r,   r:   s         r   _parse_indexNumpyDocString._parse_indexZ  s    	, --%w<!*71:+;+;C+@A!DC	ND::c?D4y1},T!W]]3-?@G  
r   c                    U R                  5       (       a  g U R                  R                  5       nSR                  U Vs/ s H  o"R	                  5       PM     sn5      R	                  5       n[
        R                  " S5      nUR                  U5      (       a  X0S'   U R                  5       (       d  M   Ub  XS'   U R                  5       (       d  U R                  5       U S'   ggs  snf )z%Grab signature (if given) and summaryNr   z^([\w., ]+=)?\s*[\w\.]+\(.*\)$rk   rl   rm   )	r   r   rB   rP   r   recompiler   r   )r   summaryr   summary_strcompileds        r   _parse_summaryNumpyDocString._parse_summaryn  s       ii779G((w#?w!GGIw#?@FFHKzz"CDH~~k**$/[!**,,%O""$$'+'A'A'CD#$ % $@s   C(c           	      @   U R                   R                  5         U R                  5         [        U R	                  5       5      nU VVs1 s H  u  p#UiM	     nnnSU;   nU(       d  SU;   a  Sn[        U5      eU GH  u  p#UR                  S5      (       d{  S UR                  S5       5       nSR                  U5      nU R                  U5      (       a<  U R                  SU< SS	R                  U R                   R                  5      < 35        US
;   a  U R                  U5      X'   M  US;   a  U R                  USS9X'   M  UR                  S5      (       a  U R                  X#5      U S'   M  US:X  a  U R                  U5      U S'   GM  X0U'   GM     g s  snnf )Nrr   rs   z5Docstring contains a Receives section but not Yields.r   c              3   @   #    U  H  oR                  5       v   M     g 7fr   )
capitalize).0r   s     r   	<genexpr>(NumpyDocString._parse.<locals>.<genexpr>  s     F3Ea<<>>3Es   r   zThe section z appears twice in  r   )rn   rt   ro   rp   )rq   rr   ru   rv   rs   T)r   r   r|   rx   )r   r   r   r   r   
ValueErrorr   r   rP   getr   r   r   r   r   )r   r   r   r   section_names
has_yieldsmsgs          r   r   NumpyDocString._parse  ss   		++-.9AB%5WB.
jM9ICS/! (G%%d++F7==3EF((7+88G$$(("DIIdiinn$=?
 UU $ 6 6w ?PP $ 6 6D !7 ! ##L11 $ 1 1' CWJ&#'#7#7#@Z  'W+ !) Cs   	Fc                 x    [        U S5      (       a  U R                  $ [        U S5      (       a  U R                  $ g )N_cls_f)r`   r  r  r&   s    r   _objNumpyDocString._obj  s2    4  99T4  77Nr   c                 l   U R                   by   [        R                  " U R                   5      n[	        U R                   SS 5      nUc"  [	        [	        U R                   SS 5      SS 5      nUb  USU 3-  nX(       a  SU S3OS-  nU(       a  [        U5      e[        USS9  g ! [         a    S n Nf = f)	NrR   	__class__z in the docstring of r^   .r*   r   )
stacklevel)r	  inspectgetsourcefile	TypeErrorgetattrr   r   )r   r  r   filenamere   s        r   r   NumpyDocString._error_location  s    99  "00;
 499j$7D|wtyy+tDjRVW.tf55T(1%r9CS/!#    s    B$ $B32B3c                 "    U[        U5      U-  /$ r   )r5   )r   re   symbols      r   _str_headerNumpyDocString._str_header  s    c$i&())r   c                 >    U Vs/ s H  nSU-  U-   PM     sn$ s  snf )Nr   rX   )r   r   indentr:   s       r   _str_indentNumpyDocString._str_indent  s#    034ft#444s   c                 P    U S   (       a  U S   R                  SS5      /S/-   $ S/$ )Nrk   *z\*r*   )replacer&   s    r   _str_signatureNumpyDocString._str_signature  s3    %--c59:bTAAtr   c                 ,    U S   (       a	  U S   S/-   $ / $ )Nrl   r*   rX   r&   s    r   _str_summaryNumpyDocString._str_summary  s    	?	?bT))	r   c                 ,    U S   (       a	  U S   S/-   $ / $ )Nrm   r*   rX   r&   s    r   _str_extended_summary$NumpyDocString._str_extended_summary  s#    "#*+rd22	r   c                    / nX   (       a  X R                  U5      -  nX    H  n/ nUR                  (       a  UR                  UR                  5        UR                  (       a  UR                  UR                  5        USR	                  U5      /-  nUR
                  (       d  M  SR	                  UR
                  5      R                  5       (       d  M  X R                  UR
                  5      -  nM     US/-  nU$ )Nr   r*   )r  re   r   rf   rP   rg   r   r  )r   re   r,   parampartss        r   _str_param_listNumpyDocString._str_param_list  s    :##D))C::LL,::LL,

5)**:::"''%**"5";";"="=++EJJ77C $ B4KC
r   c                 \    / nX   (       a   X R                  U5      -  nX U   -  nUS/-  nU$ rL   )r  )r   re   r,   s      r   _str_sectionNumpyDocString._str_section  s;    :##D))C:CB4KC
r   c                    U S   (       d  / $ / nX R                  S5      -  nUS/-  nSnU S    H  u  pE[        U[        5      (       d   e/ nU H>  u  pxU(       a
  SU SU S3n	OU(       a
  SU SU S3n	OSU S3n	UR                  U	5        M@     SR	                  U5      n	X)/-  nU(       a'  X R                  S	R	                  U5      /5      -  nSnM  S
nX R                  U R                  /5      -  nM     U(       a  US/-  nUS/-  nU$ )Nrx   r*   Tr   z:``z`_, r   F)r  r   r   r   rP   r  empty_description)
r   	func_roler,   last_had_descr   rg   linksfuncr   links
             r   _str_see_alsoNumpyDocString._str_see_also  s3   JI
++t
+KEeT****E#
tfBtfA.DykD63DtfB<DT" $ 99U#D6MC''$(899 $ %'')?)?(@AA% ,( B4KCt
r   c                     U S   n/ nSnUR                  SS5      nU(       a  SnUSU 3/-  nUR                  5        H*  u  pVUS:X  a  M  SnUSU SS	R                  U5       3/-  nM,     U(       a  U$ g)
Nr|   Fr   r*   Tz.. index:: z   :z: r2  )r  r   rP   )r   idxr,   output_indexdefault_indexr   
referencess          r   
_str_indexNumpyDocString._str_index  s    7m	2.L+m_-..#&99;G)#Ld7)2dii
&;%<=>>C	 $/
 Jr   c                    / nX R                  5       -  nX R                  5       -  nX R                  5       -  nX R                  S5      -  nS H  nX R                  U5      -  nM     S H  nX R                  U5      -  nM     X R	                  S5      -  nX R                  U5      -  nS H  nX R	                  U5      -  nM     X R                  5       -  nSR                  U5      $ )Nrn   )ro   rp   )rq   rr   rs   rt   ru   rv   rw   )ry   rz   r{   r   )r   r#  r&  r+  r.  r9  r@  rP   )r   r4  r,   
param_listr   s        r   rb   NumpyDocString.__str__$  s    ""$$  ""))++##L113J''
33C 4
J ''
33C
 	  ,,!!),,4A$$Q''C 5  yy~r   )r   r   r   )F)T)r   )   )r*   ).rR   rS   rT   rU   rV   r   r   r"   r   r   r   r   r   r   r   r   _role_funcbacktick
_funcplain	_funcnamer  _funcnamenext_descriptionr   r   r   r   r3  r   r   r   r   propertyr	  r   r  r  r   r#  r&  r+  r.  r9  r@  rb   rW   rX   r   r   ri   ri   p   sI   RB4 	B 	b	
 	b 	2 	2 	" 	B 	B 	" 	 	B 	B 	  	b!" 	B#$ 	%H*&)'&L(%	
2V %E>M/Ju},t3j@4GI%%fj9M!))&*=MEL

7Y.78I

	
	 #	# 		
 	 	 "	" 	
I 6p(D,"(H  $,*5


 @"r   ri   c                 j    [         R                  " SR                  U 5      5      R                  S5      $ )z"Deindent a list of lines maximallyr   )r~   r   rP   r   )liness    r   r   r   =  s%    ??499U+,22488r   c                   8   ^  \ rS rSrSS jrS rU 4S jrSrU =r$ )FunctionDociB  c                     Xl         X l        Uc-  Uc  [        S5      e[        R                  " U5      =(       d    SnUc  0 n[
        R                  XU5        g )NzNo function or docstring givenr*   )r  rF  r   r  getdocri   r   )r   r7  r   r   r   s        r   r   FunctionDoc.__init__C  sO    
;| !ABB..&,"C>F62r   c                    [        U R                  SU R                  R                  5      n[        R
                  " U R                  5      (       a.  [        U R                  SU R                  R                  5      nX!4$ U R                  nX!4$ )NrR   __call__)r  r  r  rR   r  isclassr   )r   	func_namer7  s      r   get_funcFunctionDoc.get_funcO  sj    DGGZ1H1HI	??477##477J0@0@AD  77Dr   c                 ,  > SnU R                  5       u  p#SSS.nU R                  (       aN  U R                  U;  a  [        SU R                   35        USUR                  U R                  S5       SU S3-  nU[        TU ]  U R                  S	9-  nU$ )
Nr*   functionmethod)r7  methzWarning: invalid role z.. z:: z
    

)r4  )rX  rF  printr  superrb   )r   r,   r7  rW  rolesr  s        r   rb   FunctionDoc.__str__W  s    --/#X6::zz&.tzzl;<S4::r233ykLLCuw44
r   )r  rF  )r7  NN)	rR   rS   rT   rU   r   rX  rb   rW   __classcell__)r  s   @r   rP  rP  B  s    
3 r   rP  c                       \ rS rSrSS jrSrg)ObjDocig  Nc                 B    Xl         Uc  0 n[        R                  XUS9  g )Nr   )r  ri   r   )r   objr   r   s       r   r   ObjDoc.__init__h  s$    >F&9r   )r  )NN)rR   rS   rT   rU   r   rW   rX   r   r   rd  rd  g  s    :r   rd  c                   b    \ rS rSrS/rSS\S4S jr\S 5       r\S 5       r	\
S 5       rS	 rS
rg)ClassDocio  rU  Nr*   c                    [         R                  " U5      (       d  Ub  [        SU< 35      eXl        S[        R
                  ;   a  SSKJn  O
[        5       nUc  0 nUR                  SS5      U l
        U(       a  UR                  S5      (       d  US-  nX0l        Uc$  Uc  [        S5      e[        R                  " U5      n[        R!                  X5        UR                  S	/ 5      nXvL a  S nUR                  S
/ 5      nUR                  SS5      (       a  XLa  S n	SU R"                  4SU R$                  44 H  u  pX
   (       a  M  / n['        U5       Hc  nX;   d  U(       a  X;  a  M   [        R                  " [)        U R                  U5      5      nUR+                  [-        USU	" U5      5      5        Me     XU
'   M     g g g ! [.         a     M  f = f)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                 4    U (       d  / $ U R                  5       $ r   )
splitlines)r   s    r   splitlines_x'ClassDoc.__init__.<locals>.splitlines_x  s    I<<>)r   rp   ro   r*   )r  rV  r   r  sysmodulessphinx.ext.autodocrm  objectr  show_inherited_membersr   _modpydocrR  ri   r   methods
propertiessortedr  r   rd   AttributeError)r   clsr   
modulenamefunc_docr   rm  _members_excluders  fieldr   doc_listre   doc_items                  r   r   ClassDoc.__init__r  s   s##A#IJJ	s{{".(C>F&,jj1OQU&V#j11#66#J	;{ !IJJ,,s#C*::i,?H::/4::*D11h6I* DLL)t/! {{!H &u+T=Q$!',||GDIIt4L'MH$OOIdBX@V,WX !. #+K! 7J1(  . ! !s   1AG
GGc                 B   U R                   c  / $ [        R                  " U R                   5       VVs/ s H]  u  pUR                  S5      (       a  XR                  ;   d  M,  [        U[        5      (       d  MC  U R                  U5      (       d  M[  UPM_     snn$ s  snnf N_)r  r  
getmembersr   extra_public_methodsr   r   _is_show_memberr   re   r7  s      r   r|  ClassDoc.methods  s    99I &00;
;
__S))T5N5N-N  tX.	 
 ((. ;
 	
 
s   +B"B9BBc           	         U R                   c  / $ [        R                  " U R                   5       VVs/ s H  u  pUR                  S5      (       a  M  U R	                  XR                   5      (       a  M?  Ub8  [        U[        [        45      (       d  [        R                  " U5      (       d  Mz  U R                  U5      (       d  M  UPM     snn$ s  snnf r  )
r  r  r  r   _should_skip_memberr   rL  r   isdatadescriptorr  r  s      r   r}  ClassDoc.properties  s    99I &00;
;
OOC(  00yyA	  L!$?(CDD//5  ((. ;
 	
 
s   CC57C0CCc                     [        U[        5      =(       a4    [        US5      =(       a!    [        US5      =(       a    XR                  ;   $ )N_asdict_fields)
issubclasstupler`   r  )re   klasss     r   r  ClassDoc._should_skip_member  sB    
 ue$ &y)&y)& %	
r   c                 X    U R                   =(       d    XR                  R                  ;   $ r   )ry  r  __dict__)r   re   s     r   r  ClassDoc._is_show_member  s'     '' *yy)))		
r   )r  rz  ry  )rR   rS   rT   rU   r  rP  r   rL  r|  r}  staticmethodr  r  rW   rX   r   r   rj  rj  o  s[    &< $kRV 4+l 
 
 
 
$ 
 

r   rj  c                 2   UcV  [         R                  " U 5      (       a  SnO8[         R                  " U 5      (       a  SnO[        U [        5      (       a  SnOSnUc  0 nUS:X  a  U" XX#S9$ US;   a  U" XUS9$ Uc  [
        R                  " U 5      nU" XUS9$ )	Nclassmoduler[  rx  )r  r   r   )r[  r\  )r   r   rf  )r  rV  ismoduler   r   r{  rR  )rg  whatr   r   	class_docr  obj_docs          r   get_doc_objectr    s     |??3Dc""DX&&DD~wSHH	'	'V44;,,s#Cs//r   )rV   r   r  r{  r   ru  r~   collectionsr   collections.abcr   r   	functoolsr   warningsr   r   r   	ExceptionrZ   rd   ri   r   rP  rd  rj  r  rX   r   r   <module>r     s    A    	 
  " - % I. I.X  {$<=	JW JZ9
". "J:^ :k
~ k
` 
0r   