+
    iD                    p  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIHt ^ RI	Ht ^ RIHtHtHt ^RIHt  ! R R	]4      t ! R
 R]P8                  4      tR]P<                  R]P>                  R]P<                  /t R]!R&   RR0t"R]!R&    ! R R]4      t# ! R R4      t$ ! R R]$4      t% ! R R]%4      t& ! R R]$4      t' ! R R]$4      t(]%]'](]&3t)]! RR 7      R! R" l4       t*R# R$ lt+R% R& lt,R' R( lt-R-R) R* llt.]! RR 7      R+ R, l4       t/R# ).    )annotationsN)IterableIteratorSequence)	lru_cache)Path)Literal
NamedTupleProtocol)utilc                  &    ] tR t^tRR R lltRtR# )_MetaPathFinderc               (    V ^8  d   QhRRRRRRRR/# )	   fullnamestrpathSequence[str] | Nonetargetztypes.ModuleType | Nonereturnz%importlib.machinery.ModuleSpec | None )formats   "B/usr/lib/python3/dist-packages/astroid/interpreter/_import/spec.py__annotate___MetaPathFinder.__annotate__   s2     4 44 #4 (	4
 
/4    c                	    R # Nr   )selfr   r   r   s   &&&&r   	find_spec_MetaPathFinder.find_spec   s    
 14r   r   N).)__name__
__module____qualname____firstlineno__r    __static_attributes__r   r   r   r   r      s    4 4r   r   c                  n   ] tR t^%tRt]P                  ! 4       t]P                  ! 4       t]P                  ! 4       t	]P                  ! 4       t
]P                  ! 4       t]P                  ! 4       t]P                  ! 4       t]P                  ! 4       t]P                  ! 4       t]P                  ! 4       tRtR# )
ModuleTypez(Python module types used for ModuleSpec.r   N)r"   r#   r$   r%   __doc__enumauto	C_BUILTINC_EXTENSIONPKG_DIRECTORYPY_CODERESOURCEPY_COMPILED	PY_FROZENPY_RESOURCE	PY_SOURCEPY_ZIPMODULEPY_NAMESPACEr&   r   r   r   r(   r(   %   ss    2		I))+KIIKMiikO))+K		I))+K		I99;L99;Lr   r(   _EditableFinder_EditableNamespaceFinder_SixMetaPathImporterzdict[str, ModuleType]_MetaPathFinderModuleTypeszset[str]_EditableFinderClassesc                  Z    ] tR t^Bt$ RtR]R&   R]R&   RtR]R&   RtR]R	&   RtR
]R&   Rt	R# )
ModuleSpeczDefines a class similar to PEP 420's ModuleSpec.

A module spec defines a name of a module, its type, location
and where submodules can be found, if the module is a package.
r   namezModuleType | NonetypeNz
str | Nonelocationoriginr   submodule_search_locationsr   )
r"   r#   r$   r%   r)   __annotations__r?   r@   rA   r&   r   r   r   r<   r<   B   s4     I
HjFJ7; 4;r   r<   c                  j    ] tR t^PtRtR
R R llt]]P                  R R l4       4       t	R R lt
R	tR# )Finderz@A finder is a class which knows how to find a particular module.Nc                    V ^8  d   QhRRRR/# )r   r   r   r   Noner   )r   s   "r   r   Finder.__annotate__S   s     & &1 &T &r   c                	D    T;'       g    \         P                  V n        R # r   )sysr   _path)r   r   s   &&r   __init__Finder.__init__S   s    %%SXX
r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# 
r   modnamer   module_partstuple[str, ...]	processedsubmodule_pathtuple[str, ...] | Noner   zModuleSpec | Noner   )r   s   "r   r   rG   X   s:      % # /	
 
r   c                    R# )a  Find the given module.

Each finder is responsible for each protocol of finding, as long as
they all return a ModuleSpec.

:param modname: The module which needs to be searched.
:param module_parts: It should be a tuple of strings,
                          where each part contributes to the module's
                          namespace.
:param processed: What parts from the module parts were processed
                       so far.
:param submodule_path: A tuple of paths where the module
                            can be looked into.
:returns: A ModuleSpec, describing how and where the module was found,
          None, otherwise.
Nr   rO   rP   rR   rS   s   &&&&r   find_moduleFinder.find_moduleV       r   c               $    V ^8  d   QhRRRRRR/# r   specr<   rR   z	list[str]r   r   r   )r   s   "r   r   rG   o   s)     F FF+4F	Fr   c                    R# )z7Get a list of extra paths where this finder can search.Nr   r   r\   rR   s   &&&r   contribute_to_pathFinder.contribute_to_patho   rY   r   )rJ   r   )r"   r#   r$   r%   r)   rK   staticmethodabcabstractmethodrW   r_   r&   r   r   r   rD   rD   P   s8    J&   .F Fr   rD   c                     ] tR t^ut$ Rt]P                  P                   U u. uF  q \        P                  3NK  	  up ]P                  P                   U u. uF  q \        P                  3NK  	  up ,           ]P                  P                   U u. uF  q \        P                  3NK  	  up ,           tR]R&   ]]! RR7      R R l4       4       tR R	 ltR
tR# u up i u up i u up i )ImportlibFinderz'A finder based on the importlib module.z Sequence[tuple[str, ModuleType]]	_SUFFIXES   maxsizec          
     ,    V ^8  d   QhRRRRRRRRRR	/# rN   r   )r   s   "r   r   ImportlibFinder.__annotate__   sA     B BB%B #B /	B
 
Br   c                	L   ^ RI Hp Vf2   V \        P                  9   d   \	        V R\
        P                  R7      # Ve   \        V4      pM\        P                  pRR\        P                  P                  ^ ,          3pV F  p\        P                  P                  Wp4      pV FY  p	RV	,           p
\        P                  P                  W4      pV! V4      '       g   K;  \	        V V\
        P                  R7      u u # 	  \        P                    FK  w  rW	,           p\        P                  P                  W}4      pV! V4      '       g   K<  \	        WVR7      u u # 	  K  	  V \        P"                  9   d	   V'       d%   V'       d   V^ ,          \        P"                  9   d    \$        P&                  ! 4       ;_uu_ 4        \$        P(                  ! R\*        R7       \        P,                  P/                  R	P                  . VOV N54      4      pRRR4       X'       dZ   TP2                  \        P                  P4                  J d2   \	        T \7        TP8                  R
R4      \
        P:                  R7      # R#   + '       g   i     Ls; i  \0         d    Rp Li ; i)r   )cached_os_path_isfileN)r=   r?   r>   z.pyz.pyirK   ignore)category.filename)astroid.modutilsrm   rI   builtin_module_namesr<   r(   r,   listr   	importlib	machineryBYTECODE_SUFFIXESosjoinr.   re   rf   stdlib_module_nameswarningscatch_warningsfilterwarningsWarningr   r    
ValueErrorloaderFrozenImportergetattrloader_stater1   )rO   rP   rR   rS   rm   search_pathssuffixesentrypackage_directorysuffixpackage_file_name	file_pathtype_	file_namer\   s   &&&&           r   rW   ImportlibFinder.find_module~   s	    	; !g1I1I&I))  %/L88L69#6#6#H#H#KL!E "U <"$.$7!GGLL):N	(33%$!2'55 	 # "1!:!:#,	GGLL:	(33%7USS	 "; "* s...y)A,#*A*AA,,..++HwG$>>33CHH=Ry=R'=R4STD / KK&&556 " $T%6%6
DI#--  # /.  s1   (J AJ J  J	J J J#"J#c               $    V ^8  d   QhRRRRRR/# r[   r   )r   s   "r   r   rk      s$     % %%+4%	%r   c           	     	>  a SP                   f   R # ^ RIHp \        \	        SP                   4      4      '       d   \
        P                   Uu. uFl  p\        P                  P                  \        P                  P                  ! V.VO5!  4      '       g   KJ  \        P                  P                  ! V.VO5!  NKn  	  ppV# SP                  R8X  d   \        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       gw   \        P                  P                  R4      pV'       d@   VP                  '       d.   \	        VP                  4      p\!        VP"                  4      .pV# SP                   .p V# SP                   .pV# u upi )N)EXT_LIB_DIRS	distutilsc              3     <"   T F<  pSP                   P                  4       P                  VP                  4       4      x  K>  	  R # 5ir   )r?   lower
startswith).0ext_lib_dirr\   s   & r   	<genexpr>5ImportlibFinder.contribute_to_path.<locals>.<genexpr>   s<      2
+ MM!,,[->->-@AA+s   AATF)r?   rr   r   _is_setuptools_namespacer   rI   r   rx   isdirry   r=   anyru   r   r    r@   r   parent)r   r\   rR   r   pr   distutils_specorigin_paths   &f&     r   r_   "ImportlibFinder.contribute_to_path   sF    == 1#D$788
 !A77==a!<)!<= ,Q++!  2 ) YY+%cc 2
+2
ccc 2
+2
 /
 /
 '^^55kBN."7"7"7"")) K../0
    MM?D3s   AF&Fr   N)r"   r#   r$   r%   r)   ru   rv   EXTENSION_SUFFIXESr(   r-   SOURCE_SUFFIXESr3   rw   r0   rf   rB   ra   r   rW   r_   r&   )ss   0r   re   re   u   s    1 /8.A.A.T.TU.TZ##	$.TU.7.A.A.Q.Q
R.Qz##$.Q
R	S090C0C0U0U
V0U1z%%&0U
V	W /  tB  BH% %W 	V
R
Vs   CCC#re   c                  T    ] tR t^tRt]]! RR7      R R l4       4       tR R ltRt	R	# )
ExplicitNamespacePackageFinderz-A finder for the explicit namespace packages.rg   rh   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# rN   r   )r   s   "r   r   +ExplicitNamespacePackageFinder.__annotate__   s:      % # /	
 
r   c                	   V'       d   R P                  . VOV N4      p \        P                  ! V 4      '       dS   V \        P                  9   d>   \        V RR\        P                  \        P                  V ,          P                  R7      # R# )rp    	namespacer=   r?   r@   r>   rA   N)	ry   r   is_namespacerI   modulesr<   r(   r5   __path__rV   s   &&&&r   rW   *ExplicitNamespacePackageFinder.find_module   sr     hh44G45GW%%'S[[*@",,+.;;w+?+H+H  r   c               $    V ^8  d   QhRRRRRR/# r[   r   )r   s   "r   r   r     $     / //+4/	/r   c                	    VP                   # r   rA   r^   s   &&&r   r_   1ExplicitNamespacePackageFinder.contribute_to_path       ...r   r   N
r"   r#   r$   r%   r)   ra   r   rW   r_   r&   r   r   r   r   r      s.    7t  $/ /r   r   c                  l   a  ] tR tRtRtR V 3R llt]]! RR7      R R l4       4       tR	 R
 lt	Rt
V ;t# )	ZipFinderi	  z8Finder that knows how to find a module inside zip files.c                    V ^8  d   QhRRRR/# )r   r   Sequence[str]r   rF   r   )r   s   "r   r   ZipFinder.__annotate__  s     	 	] 	t 	r   c                	   < \         SV `  V4       V FB  pV\        P                  9  g   K   \        P
                  ! V4      \        P                  V&   KD  	  R #   \        P                   d     K`  i ; ir   )superrK   rI   path_importer_cache	zipimportzipimporterZipImportError)r   r   
entry_path	__class__s   && r   rK   ZipFinder.__init__  se    J!8!88:C:O:O";C++J7  !// s   'AA43A4rg   rh   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# rN   r   )r   s   "r   r   r     s:     
 

%
 #
 /	

 

r   c                	d     \        V4      w  rEp\        T TRTTR7      #   \         d     R # i ; i)Neggr   )_search_zipImportErrorr<   )rO   rP   rR   rS   	file_typerq   r   s   &&&&   r   rW   ZipFinder.find_module  sH    	(3L(A%I '+
 	
  		s     //c               $    V ^8  d   QhRRRRRR/# r[   r   )r   s   "r   r   r   ,  r   r   c                	    VP                   # r   r   r^   s   &&&r   r_   ZipFinder.contribute_to_path,  r   r   r   )r"   r#   r$   r%   r)   rK   ra   r   rW   r_   r&   __classcell__)r   s   @r   r   r   	  s;    B	 	 t
  
&/ /r   r   c                  T    ] tR tRtRt]]! RR7      R R l4       4       tR R ltR	t	R
# )PathSpecFinderi2  z/Finder based on importlib.machinery.PathFinder.rg   rh   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# rN   r   )r   s   "r   r   PathSpecFinder.__annotate__7  s:      % # /	
 
r   c           
     	`   \         P                  P                  P                  WR 7      pVe   VP                  RJ pV'       g   VP                  MRpV'       d   \
        P                  MRp\        VP                  TVP                  T\        VP                  ;'       g    . 4      R7      # V# ))r   Nr   )ru   rv   
PathFinderr    r@   r(   r5   r<   r=   rt   rA   )rO   rP   rR   rS   r\   is_namespace_pkgr?   module_types   &&&&    r   rW   PathSpecFinder.find_module5  s     ""--777U#{{d2*:t{{H5E*114KYY!{{ +/0O0O0U0USU+V  r   c               $    V ^8  d   QhRRRRRR/# r[   r   )r   s   "r   r   r   K  s$      +4	r   c                	\    VP                   \        P                  8X  d   VP                  # R # r   )r>   r(   r5   rA   r^   s   &&&r   r_   !PathSpecFinder.contribute_to_pathK  s%     99
///222r   r   Nr   r   r   r   r   r   2  s.    9t  ( r   r   rg   rh   c                    V ^8  d   QhRRRR/# )r   r?   zpathlib.Pathr   boolr   )r   s   "r   r   r   \  s     
, 
,| 
, 
,r   c                    \        V R ,          R4      ;_uu_ 4       pVP                  R4      pRRR4       RX9   ;'       d    RT9   pRT9   ;'       d    RT9   pT;'       g    T#   + '       g   i     L@; i  \         d     R# i ; i)	z__init__.pyrbi   NFs   pkgutils   extend_paths   pkg_resourcess   declare_namespace(__name__))openreadOSError)r?   streamdataextend_pathdeclare_namespaces   &    r   r   r   [  s    (]*D11V;;t$D 2 $??4)?KD KK%Ct%K  ++++ 21 s-   A: A'A: 'A7	2A: 7A: :B	B	c                   V ^8  d   QhRR/# )r   r   z+Iterator[tuple[str, zipimport.zipimporter]]r   )r   s   "r   r   r   i  s     % %F %r   c               #     "   \         P                  P                  4        F2  w  rVf   K  \        V\        P
                  4      '       g   K-  W3x  K4  	  R # 5ir   )rI   r   items
isinstancer   r   )filepathimporters     r   _get_zipimportersr   i  sB     !55;;=Jx9N9N$O$O$$ >s   %AAAc                    V ^8  d   QhRRRR/# )r   modpathrQ   r   z1tuple[Literal[ModuleType.PY_ZIPMODULE], str, str]r   )r   s   "r   r   r   o  s     > >>6>r   c           	        \        4        EF  w  rVP                  V ^ ,          4      pV'       g   K(  VP                  \        P                  P                  P                  V 4      4      '       g2   \        RP                  RP                  V R,          4      W4      4      h\        P                  \        P                  P                  V4      \        P                  P                  ,           \        P                  P                  P                  V 4      ,           V3u # 	  \        RRP                  V 4       24      h)r   zNo module named {} in {}/{}rp   :   NNNo module named )r   r    rx   r   sepry   r   r   r(   r4   abspath)r   r   r   founds   &   r   r   r   o  s     01""71:.5%%bggkk&6&6w&?@@!188-x  '')BGGKK7"''++:J:J7:SS  2 ('):(;<
==r   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   search_pathr   rO   r   rP   rQ   rR   rS   rT   r   z+tuple[Finder | _MetaPathFinder, ModuleSpec]r   )r   s   "r   r   r     sL     3C 3C3C3C "3C 	3C
 +3C 13Cr   c           	     N   \          F&  pV! V 4      pVP                  WW44      pVf   K#  Wg3u # 	  \        P                   F  pVP                  P
                  p	V	\        9  d    VP
                  p	T	\        9  d   K>  \        V	,          p
\        VR4      '       g   K_  VP                  W4      pV'       g   Kz  V\        VP                  V
VP                  VP                  VP                  4      3u # 	  \        RRP                  V4       24      h  \         d     K  i ; i)Nr    r   rp   )_SPEC_FINDERSrW   rI   	meta_pathr   r"   r9   AttributeErrorhasattrr    r<   r=   r@   rA   r   ry   )r   rO   rP   rR   rS   finderfinder_instancemod_specmeta_findermeta_finder_namer   r\   s   &&&&&       r   _find_spec_with_pathr    s"      -%%gYW((   }}&0099#==#.#7#7   'AA01AB {K00$$W=4IIKKKK33	 	3 %H (,)?(@A
BB7 " s   &DD$#D$c               $    V ^8  d   QhRRRRRR/# )r   r   zIterable[str]r   zIterable[str] | Noner   r<   r   )r   s   "r   r   r     s'     E E} E,@ EJ Er   c                Z    \        \        V 4      V'       d   \        V4      4      # R4      # )a  Find a spec for the given module.

:type modpath: list or tuple
:param modpath:
  split module's name (i.e name of a module or package split
  on '.'), with leading empty strings for explicit relative import

:type path: list or None
:param path:
  optional list of path where the module or package should be
  searched (use sys.path if nothing or None is given)

:rtype: ModuleSpec
:return: A module spec, which describes how the module was
         found and where.
N)
_find_spectuple)r   r   s   &&r   r    r      s#    " eGnTeDkDDtDDr   c               $    V ^8  d   QhRRRRRR/# )r   module_pathrQ   r   rT   r   r<   r   )r   s   "r   r   r     s$     " " "(>""r   c                    T;'       g    \         P                  p\        V 4      pR p. pV'       d   VP                  ^ 4      pT;'       g    TpVe   \	        V4      p\        W&V \	        V4      V4      w  rVP                  V4       V'       dJ   \        V\        4      '       d   VP                  W4      pM!VP                  \        9   d   V	P                  pV	P                  \        P                  8X  g   K  V	P!                  VR7      p	K  X	# )Nr   )rI   r   rt   popr  r  appendr   rD   r_   r"   r:   rA   r>   r(   r.   _replace)
r  r   rJ   r   r   rR   rO   rS   r   r\   s
   &&        r   r  r    s     CHHE ;GLI
++a.%--%">2N+Ky)9>
 	!&&))%88I $::#>>99
000==L=IDKr   r   )0__conditional_annotations__
__future__r   rb   r*   ru   importlib.machineryimportlib.utilrx   pathlibrI   typesr{   r   collections.abcr   r   r   	functoolsr   r   typingr	   r
   r   r   r   r   Enumr(   r3   r5   r9   rB   r:   r<   rD   re   r   r   r   r   r   r   r   r  r    r  )r  s   @r   <module>r     sV  
 # " 
     	  
    8 8   0 0 
4h 4 " z++
 7 7J005 1  $  < <"F "FJtf tn/_ /:&/ &/RV D "	 4
, 
,%>(3ClE( 4" "r   