
    -PhI                    :   U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( er0ddl)m*Z*m+Z+ ddlm,Z, ddl-m.Z. ddlm/Z/m0Z0 ddl1m2Z2  G d de0          Z3 e4dhe          Z5de6d<    e j7        e8          Z9dHd Z:dId&Z;dJd)Z<dKd+Z=dLdMd/Z>dNd3Z? G d4 d5e          Z@dOd8ZAd9e'fdPd=ZB G d> d?e          ZC	 dQdRdCZD	 dSdTdGZEdS )UzImporter utilities for autodoc    )annotationsN)Enum)
FileLoader)EXTENSION_SUFFIXES)decode_source	find_specmodule_from_specspec_from_loader)Path)TYPE_CHECKING
NamedTuple)PycodeError)ismock
undecorate)ModuleAnalyzer)logging)getannotationsgetmrogetslotsisclassisenumclasssafe_getattr
unwrap_all)IteratorMapping)
ModuleSpec)
ModuleType)AnyProtocol)ObjectMemberc                      e Zd Zd
ddZd	S )_AttrGetter.objr   namestrdefaultreturnc                   d S N )selfr#   r$   r&   s       [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/ext/autodoc/importer.py__call__z_AttrGetter.__call__)   s          N).)r#   r   r$   r%   r&   r   r'   r   )__name__
__module____qualname__r-   r*   r.   r,   r"   r"   (   s        RRRRRRRr.   r"   z.pyxzfrozenset[str]_NATIVE_SUFFIXES
enum_class
type[Enum]
attrgetterenum_class_dictMapping[str, object]r'   Iterator[tuple[str, type, Any]]c              #  (   K   t                      }h dddht          j        }t          j                                        |z
  dfd}t                      d fd j        D ]o}| t          t          hv r |di           }|                                D ]9\  }}	 |||	          r|                    |            ||          x}
|
V  :pt          j                                        |z
  t          d fd|D                       E d{V  |z  }||                                z  }|t          j                                        z  }|D ]*}t          ||         |          s |           x}
|
V  +dS )aC  Find the attributes to document of an enumeration class.

    The output consists of triplets ``(attribute name, defining class, value)``
    where the attribute name can appear more than once during the iteration
    but with different defining class. The order of occurrence is guided by
    the MRO of *enum_class*.
    >   _name__order__value_	_missing__generate_next_value_r$   valuer%   r   r'   boolc                4    | v rt          ||           S | v S r)   )_is_native_enum_api)r$   r?   ignore_namessunder_namess     r,   should_ignorez(_filter_enum_dict.<locals>.should_ignoreL   s)    <&ud333|##r.   defining_classtypetuple[str, type, Any] | Nonec                4     |           }|ur| ||fS d S r)   r*   )r$   rF   r?   r5   r3   sentinels      r,   queryz _filter_enum_dict.<locals>.queryS   s3    
:tX66  ..tr.   __dict__Nc              3  8   K   | ]}|v |          V  d S r)   r*   ).0r$   r3   excluded_membersrK   s     r,   	<genexpr>z$_filter_enum_dict.<locals>.<genexpr>m   sG       	
 	
+++ E$
##++++	
 	
r.   )r$   r%   r?   r   r'   r@   )r$   r%   rF   rG   r'   rH   )
setobjectrL   r   keys__mro__itemsaddfilterrB   )r3   r5   r6   candidate_in_mropublic_namesrE   parentparent_dictr$   r?   itemspecial_namesrO   rC   rK   rJ   rD   s   ``          @@@@@r,   _filter_enum_dictr^   0   sf      "%  L GEfoEEL=%%'',6L$ $ $ $ $ $ $
 xxH        $  j$/// jR88&,,.. 	 	KD%}T5))   &&&dF+++8


	 }))++.>>	
 	
 	
 	
 	
 	
'	
 	
 	
         !</M_))+++MT]'')))M  #OD$94@@	tZ000=JJJ r.   r#   rR   r$   r%   r@   c                ^    t          |           t          t          j        |                   u S )z;Check whether *obj* is the same as ``Enum.__dict__[name]``.)r   r   rL   )r#   r$   s     r,   rB   rB      s"    c??jt)<====r.   subjectr   c                    	 t          |           r6|                    d          r!|                    d          sd| j         | S n# t          $ r Y nw xY w|S )zMangle the given name.___)r   
startswithendswithr/   AttributeError)r`   r$   s     r,   manglerg      s{    7 	0 5 5 	0dmmD>Q>Q 	0/w'////    Ks   AA 
AA
str | Nonec                :   	 t          |           ry|                    d          sdd| j         d}|                    |          r|                    |dd          S | j        D ]%}d|j         d}|                    |          r dS &n# t          $ r Y nw xY w|S )zUnmangle the given name.rb   rc      N)r   re   r/   rd   replacerT   rf   )r`   r$   prefixclss       r,   unmanglern      s    7 		$DMM$$7$7 		$-)---Fv&& $||FD!444"? $ $C1111Fv.. $#tt$     Ks   AB *B 	B 
BBFmodname
try_reloadc                b  
 | t           j        v rt           j        |          S t          t           j                  
	 t          |           }|d| }t	          ||           t          ||           \  }}|t          j        |           }nW|j        d}t          ||j
                  t          |          xt           j        | <   }|j                            |           n># t          $ r  t          $ r'}t          |t          j                              |d }~ww xY w|r	t           j                            d          r
fdt           j        D             }	 dt&          _        t+          j        t          t.                    5  |D ]Z}t1          t           j        |         dd          }	|	r|	                    d	          r;t5          t           j        |                    [	 d d d            n# 1 swxY w Y   d
t&          _        n# d
t&          _        w xY wt           j        |          }|S )NzNo module named )r$   zmissing loaderSPHINX_AUTODOC_RELOAD_MODULESc                    g | ]}|v|	S r*   r*   )rN   moriginal_module_namess     r,   
<listcomp>z!import_module.<locals>.<listcomp>   s$    PPPQ:O1O1Oq1O1O1Or.   T__file__ .pyiF)sysmodules	frozensetr   ModuleNotFoundError_find_type_stub_spec	importlibimport_moduleloaderImportErrorr$   r	   exec_moduleBaseException	traceback
format_excosenvirongettypingr   
contextlibsuppressKeyErrorgetattrre   _reload_module)ro   rp   specmsgpyi_pathmoduleexcnew_modulesrt   mod_pathru   s             @r,   r   r      s{   #+{7##%ck22@!!<0W00C%c8888-dG<<h,W55FF{"&!#DI6666,<T,B,BBCK 6K##F+++    @ @ @ #y35566C?@  &bjnn%DEE &PPPP#+PPP
	)#'F $[(;; 3 3$ 3 3A&s{1~z2FFH !H$5$5f$=$= ! "3;q>2222	33 3 3 3 3 3 3 3 3 3 3 3 3 3 3 $)F  5F ((((W%MsI   B(C% %D 9"DD +H 	AG4(H 4G88H ;G8<H Hr   r   tuple[ModuleSpec, Path | None]c                V   | j         | dfS t          D ]}| j                             |          st          | j                             |          dz             }|                                s\t          |t          |                    }t          ||          }|||fc S | dfS )zETry finding a spec for a PEP 561 '.pyi' stub file for native modules.Nry   )path)r   )	originr2   re   r   removesuffixis_file_StubFileLoaderr%   r
   )r   ro   suffixr   
pyi_loaderpyi_specs         r,   r~   r~      s     {Tz" 	& 	&{##F++ 	00886ABB!! 	$W3x==AAA
#GJ???X%%%%  :r.   c                      e Zd ZdZddZdS )r   z&Load modules from ``.pyi`` stub files.fullnamer%   r'   c                   |                      |          }t          D ]0}|                    |          s|                    |          dz   }1	 |                     |          }n# t
          $ r}t          |d }~ww xY wt          |          S )Nry   )get_filenamer2   re   r   get_dataOSErrorr   r   )r+   r   r   r   source_bytesr   s         r,   
get_sourcez_StubFileLoader.get_source   s      **& 	6 	6F==(( $$V,,v5DD	'==..LL 	' 	' 	'3&	'\***s   A% %
A</A77A<N)r   r%   r'   r%   )r/   r0   r1   __doc__r   r*   r.   r,   r   r      s.        00
+ 
+ 
+ 
+ 
+ 
+r.   r   r   r   c                    	 t          j        |           S # t          $ r'}t          |t	          j                              |d}~ww xY w)z@Call importlib.reload(module), convert exceptions to ImportErrorN)r   reloadr   r   r   r   )r   r   s     r,   r   r      sY    @''' @ @ @ #y35566C?@s    
A"AArx   objpath	list[str]objtypec                   |r0t                               d| d                    |                     nt                               d|            	 d }d }|                                }|	 t	          | d          }t                               d| |           ni# t
          $ r\}t                               d|            |}d| v r0|                     dd          \  } }|                    d	|           n Y d }~nd }~ww xY w||}d }	d }
|D ]}|}	t                               d
|           t          ||          } |||          }	 t                               d|           n,# t          $ r t                               d|f           Y nw xY w|}
||	|
|gS # t          t
          f$ r}t          |t                    r|r|}|rd|dd                    |          d| }nd| d| }t          |t
                    ru|j        d	         }t          j        |          }t          |t                    r|dz  }nRt          |t
                    r|j        r|d|j        d	         z  z  }n"|d|z  z  }n|dt          j                    z  z  }t                               |           t          |          |d }~ww xY w)Nz[autodoc] from %s import %s.z[autodoc] import %sT)rp   z[autodoc] import %s => %rz[autodoc] import %s => failedrj   r   z[autodoc] getattr(_, %r)z[autodoc] => %rzautodoc: failed to import  z from module zJ; the module executes module level statement and it might call sys.exit().z(; the following exception was raised:
%s)loggerdebugjoincopyr   r   rsplitinsertrg   	TypeErrorrf   
isinstanceargsr   format_exception
SystemExitr   )ro   r   r   r5   r   exc_on_importingr   r$   r#   rZ   object_nameattrnamemangled_nameerrmsgreal_exctraceback_msgs                   r,   import_objectr      sb     52GSXXg=N=NOOOO*G444F+,,..n&w4@@@8'6JJJJ   <gFFF#& '>>$+NN3$:$:MGTNN1d++++ ,++++	 n  	# 	#HFLL3X>>>!#x00L*S,//C8.4444 8 8 8 .777778
 #KKS11K( "+ "+ "+c>** 	#/? 	#"C 	H 	H!!!!FF H'GGGGGFc;'' 	 x{H%6s;;M(J// V4 Hk22 Vx} VEVWHXXXEUU;i>R>T>TTF 	V&!!s*E"+si   F *-B F 
C>"AC94F 9C>>AF E#"F #&F	F FF J>*DJ99J>c                  .    e Zd ZU ded<   ded<   ded<   dS )	Attributer%   r$   r@   directly_definedr   r?   N)r/   r0   r1   __annotations__r*   r.   r,   r   r   P  s.         IIIJJJJJr.   r   analyzerModuleAnalyzer | Nonedict[str, Attribute]c                b   ddl m}  || di           }i }t          |           rAt          | ||          D ]/\  }}}	t	          ||          x}
rt          |
|| u |	          ||
<   0	 t          |           }|r ddl m} |D ]}t          |d|          ||<   n# t          t          f$ r Y nw xY wt          |           D ]N}	  || |          }	||v }t	          | |          }
|
r|
|vrt          |
||	          ||
<   ?# t          $ r Y Kw xY wt          |           D ]A}t          |          D ]/}t	          ||          }
|
r|
|vrt          |
|| u |          ||
<   0B|rNd                    |          }|                                D ]$\  }}||k    r||vrt          |d|          ||<   %|S )z,Get members and attributes of target object.r   )INSTANCEATTRrL   )r$   r   r?   	SLOTSATTRTr   )sphinx.ext.autodocr   r   r^   rn   r   r   r   r   
ValueErrordirrf   r   r   r   find_attr_docs)r`   r   r5   r   r   obj_dictmembersr$   rF   r?   	unmangledsubject___slots__r   r   rm   	namespacenss                    r,   get_object_membersr   V  s    0///// z':r22H$&G 7 +<Z,
 ,
 
	 
	'D.%
 %^T:::y %."%3w%>& & &	"
$W-- 	444444)   )I! ! ! z"    G 
 
		Jw--E#x/ $//I Yg55%."5EU& & &	"  	 	 	H	 g  "3'' 	 	D d++I Yg55%."SG^<& & &	"	  HHW%%	 //11 	 	HBB4w#6#6 )L! ! ! Ns$   '1B B-,B-;C>>
D
DTinherit_docstringsdict[str, ObjectMember]c           
        ddl m}m}  || di           }i }t          |           r;t	          | ||          D ])\  }}	}
t          |	|          x}r |||
|	          ||<   *	 t          |           }|r2ddl m} |                                D ]\  }} |||| |          ||<   n# t          t          f$ r Y nw xY wt          |           D ]x}	  || |          }
t          |
          rt          |
          }
t          | |          }|r)||vr%||v r |||
|           ||<   n |||
          ||<   i# t          $ r Y uw xY w	 t          |           D ]}	 t!          |d          }t!          |d          }t#          j        |          }|                                 n!# t          $ r d	}d	}Y nt(          $ r d	}Y nw xY wt+          |          D ]\}t          ||          }|rH||vrD|r.||f|j        v r#d
                    |j        ||f                   }nd	} |||||          ||<   ]|r|j                                        D ]\  \  }}}||k    r*||vr& ||||d
                    |                    ||<   8||k    rN|rLt1          ||         |          r6||         j        s)|| k    r|sld
                    |          ||         _        n# t          $ r Y nw xY w|S )z+Get members and attributes of target class.r   )r   r    rL   )class_r   )r   	docstringr0   r1   N
)r   r   r    r   r^   rn   r   r   rU   r   r   r   r   r   rf   r   r   r   
for_moduleanalyzer   r   	attr_docsr   r   r   )r`   r   r5   r   r   r    r   r   r$   rF   r?   r   r   r   r   rm   ro   qualnamer   r   s                       r,   get_class_membersr     sk    >======= z':r22H')G 7 	+<Z,
 ,
 	 	'D.%
 %^T:::y %1\u^& & &	"

$W-- 	444444#4#:#:#<#<  i ,)Gy! ! ! z"    G  	Jw--Ee}} *"5)) $//I HYg558##)5iw)W)W)WGI&&)5i)G)GGI& 	 	 	H	4'?? 1	G 1	GC	 &sL99'^<<)4W==  """"!              's++ 
 
$S$//	 '!9!9 )Xy$9X=O$O$O$(IIh.@9AT.U$V$V		$(	)5!<y* * *GI&
  G-5-?-E-E-G-G G G)JR	X~~$g*=*=(4 (#&&*ii	&:&:	) ) ) h% '&wt}lCC ' !( 7 '
 '>>2D> % 37))I2F2F/c1	Gd     Nsj   #AB' 'B;:B;A%D66
EEK AF#"K #G1K 3G>K  GDK 
K('K()r3   r4   r5   r"   r6   r7   r'   r8   )r#   rR   r$   r%   r'   r@   )r`   r   r$   r%   r'   r%   )r`   r   r$   r%   r'   rh   )F)ro   r%   rp   r@   r'   r   )r   r   ro   r%   r'   r   )r   r   r'   r   )
ro   r%   r   r   r   r%   r5   r"   r'   r   r)   )
r`   r   r   r   r5   r"   r   r   r'   r   )T)
r`   r   r   r   r5   r"   r   r@   r'   r   )Fr   
__future__r   r   r   r   rz   r   r   enumr   importlib.abcr   importlib.machineryr   importlib.utilr   r   r	   r
   pathlibr   r   r   sphinx.errorsr   sphinx.ext.autodoc.mockr   r   sphinx.pycoder   sphinx.utilr   sphinx.util.inspectr   r   r   r   r   r   r   collections.abcr   r   r   typesr   r   r   r   r    r"   r|   r2   r   	getLoggerr/   r   r^   rB   rg   rn   r   r~   r   r   r   r   r   r   r*   r.   r,   <module>r      s   $ $ $ " " " " " "         				 



            $ $ $ $ $ $ 2 2 2 2 2 2 W W W W W W W W W W W W       , , , , , , , , % % % % % % 6 6 6 6 6 6 6 6 ( ( ( ( ( (                         	S11111111......      $$$$$$$$//////S S S S Sh S S S $-9f-J7I-J#K#K  K K K K		8	$	$M M M M`> > > >
      &( ( ( ( (V   (+ + + + +j + + + @ @ @ @ *	Q+ Q+ Q+ Q+ Q+h    
    '+	H H H H HX UYj j j j j j jr.   