
    ,hhiG                        S SK Jr  S SKJ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r/ SQr\" SS5      rS\l        S	 rSS
 jrSS jr\SS j5       rSS jr\R-                  \R.                  R0                  \5         S SKrS SKJr  SS jr\R-                  \\5        S rSS jrS rS r S r!S r"Sq#S r$g! \ a     N"f = f)    )
namedtuple)singledispatchN)
ModuleType)
get_importeriter_importers
get_loaderfind_loaderwalk_packagesiter_modulesget_data	read_codeextend_path
ModuleInfor   zmodule_finder name ispkgz.A namedtuple with minimal info about a module.c                     SS K nU R                  S5      nU[        R                  R                  :w  a  g U R                  S5        UR                  U 5      $ )Nr         )marshalread	importlibutilMAGIC_NUMBERload)streamr   magics      0/opt/python-3.13.8/usr/lib/python3.13/pkgutil.pyr   r      sC     KKNE	+++
KKO<<    c              #     #    0 4S jn[        X5       H  nUv   UR                  (       d  M   [        UR                  5        [	        [
        R                  UR                     SS 5      =(       d    / n U  Vs/ s H  oS" U5      (       a  M  UPM     n n[        XR                  S-   U5       S h  vN   M     g s  snf  N! [         a    Ub  U" UR                  5         M   M  [         a    Ub  U" UR                  5         M  e f = f7f)Nc                     X;   a  gSX'   g )NT )pms     r   seenwalk_packages.<locals>.seenD   s    6r   __path__.)
r   ispkg
__import__namegetattrsysmodulesr
   ImportError	Exception)pathprefixonerrorr"   infor    s         r   r
   r
   '   s     :  
 T*
:::G499% s{{4995z4HNB $(74atAw47(yy}gFFF) +$ 8F  '&DII& ' &DII&	sR   (DC5D9B;B;D1C 2DD
!D'D
DD

Dc              #      #    U c  [        5       nO0[        U [        5      (       a  [        S5      e[	        [
        U 5      n0 nU H0  n[        XA5       H  u  pVXS;  d  M  SX5'   [        XEU5      v   M      M2     g 7f)Nz9path must be None or list of paths to look for modules in   )r   
isinstancestr
ValueErrormapr   iter_importer_modulesr   )r.   r/   	importersyieldedir(   r&   s          r   r   r   `   s{      |"$		D#		 % & 	& d+	G0;KD" ! %00 < s   AA:A:c                 J    [        U S5      (       d  / $ U R                  U5      $ )Nr   )hasattrr   )importerr/   s     r   r8   r8   z   s%    8^,,	  ((r   c              #     #    U R                   b.  [        R                   R                  U R                   5      (       d  g 0 nSS Kn [        R                  " U R                   5      nUR                  5         U H  nUR                  U5      nUS:X  d  Xb;   a  M!  [        R                   R                  U R                   U5      nSnU(       di  [        R                   R                  U5      (       aE  SU;  a?  Un [        R                  " U5      n	U	 H  nUR                  U5      n
U
S:X  d  M  Sn  O   M  U(       d  M  SU;  d  M  SX&'   X-   U4v   M     g ! [
         a    / n Nf = f! [
         a    / n	 Nhf = f7f)Nr   __init__Fr%   Tr3   )	r.   osisdirinspectlistdirOSErrorsortgetmodulenamejoin)r>   r/   r:   rC   	filenamesfnmodnamer.   r&   dircontentssubnames              r   _iter_file_finder_modulesrN      sJ    }}BGGMM(--$@$@GJJx}}-	 NN''+J'"4ww||HMM2.277==..3b=G! jj. "!//3J& E	 " 7s') G"E))3   	"  ! !sa   AE; E &BE;9E)E;-E;>E;E;E&#E;%E&&E;)E85E;7E88E;)zipimporterc              #   >  #    [        [        R                  U R                     5      nU R                  n[        U5      n0 nSS KnU H  nUR                  U5      (       d  M  XtS  R                  [        R                  5      n[        U5      S:X  a4  US   R                  S5      (       a  US   U;  a  SXWS   '   XS   -   S4v   [        U5      S:w  a  M  UR                  US   5      nUS:X  a  M  U(       d  M  SU;  d  M  X;  d  M  SXX'   X-   S4v   M     g 7f)	Nr      r3   z__init__.pyTr@   r%   F)sorted	zipimport_zip_directory_cachearchiver/   lenrC   
startswithsplitrA   seprG   )	r>   r/   dirlist_prefixplenr:   rC   rJ   rK   s	            r   iter_zipimport_modulesr]      s    778H8HIJ//7|B==))E(B2wzbe..}==a5'%&GqEN a5.$..2wz++BqE2G
"w3g-'2H#$ &--) s   C7D=DDDc                 $   [         R                  " U 5      n  [        R                  U    nU$ ! [         aX    [        R
                   H>  n U" U 5      n[        R                  R                  X5           U$ ! [         a     M<  f = f   S n U$ f = f)N)rA   fsdecoder*   path_importer_cacheKeyError
path_hooks
setdefaultr,   )	path_itemr>   	path_hooks      r   r   r      s     I&I**95 O  	I$Y/''229G
 O	   ( HO	s3   - B'A62B6
B BBBBc              #   t  #    U R                  S5      (       a  SR                  U 5      n[        U5      eSU ;   a<  U R                  S5      S   n[        R
                  " U5      n[        USS 5      nUc  g O([        R                   S h  vN   [        R                  nU H  n[        U5      v   M     g  N+7f)Nr%   'Relative module name {!r} not supportedr   r$   )rW   formatr,   
rpartitionr   import_moduler)   r*   	meta_pathr.   r   )fullnamemsgpkg_namepkgr.   items         r   r   r      s      37>>xH#
h&&s+A.%%h/sJ-<  ==  xx4    	!s   BB8
B6,B8c                 J   [         R                  " S[         R                   S3SS9  U [        R                  ;   a  [        R                  U    n U c  g [        U [        5      (       a0  U n[        USS 5      nUb  U$ [        USS 5      c  g UR                  nOU n[        U5      $ )Nzpkgutil.get_loader(; use importlib.util.find_spec() instead      remove
__loader____spec__)
warnings_deprecated_DEPRECATED_MSGr*   r+   r4   r   r)   __name__r	   )module_or_namemoduleloaderrl   s       r   r   r   
  s     -$445 6B B ') $^4!.*--t4M6:t,4??!x  r   c           	         [         R                  " S[         R                   S3SS9  U R                  S5      (       a  SR	                  U 5      n[        U5      e [        R                  R                  U 5      nUb  UR                  $ S $ ! [
        [        [        [        4 a-  nSn[        UR	                  U [        U5      U5      5      UeS nAff = f)Nzpkgutil.find_loaderrr   rs   rv   r%   rg   z,Error while finding loader for {!r} ({}: {}))rz   r{   r|   rW   rh   r,   r   r   	find_specAttributeError	TypeErrorr6   typer   )rl   rm   specexs       r   r	   r	   &  s     .$445 6B B ') 37>>xH#F~~''1 *4;;44 J? F =#**XtBx<=2EFs   B C%(CCc           	      d   [        U [        5      (       d  U $ US-   nU S S  n UR                  S5      u  p4nU(       a   [        R                  U   R
                  nO[        R                  nU GHQ  n[        U[        5      (       d  M  [        U5      nUb  / n	[        US5      (       a*  UR                  U5      n
U
b  U
R                  =(       d    / n	O$[        US5      (       a  UR                  U5      u  pIU	 H  nX;  d  M
  U R                  U5        M     [         R                  R#                  Xr5      n[         R                  R%                  U5      (       d  M   ['        U5      nU   U HD  nUR)                  S5      nU(       a  UR+                  S5      (       a  M3  U R                  U5        MF     S S S 5        GMT     U $ ! [        [        4 a    U s $ f = f! , (       d  f       GM  = f! [,         a4  n[        R.                  R1                  SU< SU< S35         S nAGM  S nAff = f)	Nz.pkgr%   r   r	   
#zCan't open z: )r4   listri   r*   r+   r$   ra   r   r.   r5   r   r=   r   submodule_search_locationsr	   appendrA   rH   isfileopenrstriprW   rE   stderrwrite)r.   r(   	sname_pkgparent_package_
final_namesearch_pathdirfinderportionsr   portionpkgfileflinerm   s                   r   r   r   ?  s   B dD!! vI7D$(OOC$8!Nz	++n5>>K hh#s##c"Hv{++''
3##>>D"H//$00<# &KK(	 $ '',,s.77>>'""*M
  !#{{40#ts';';$D)	 !" Q? L K[ .) 	 K	L Q	  1

  ")3"0 1 11s6   G G1,AGGG
G.	1
H/;(H**H/c                 .   [         R                  R                  U 5      nUc  g UR                  nUb  [	        US5      (       d  g [
        R                  R                  U 5      =(       d    [         R                  R                  U5      nUb  [	        US5      (       d  g UR                  S5      nUR                  S[        R                  R                  UR                  5      5        [        R                  R                   " U6 nUR#                  U5      $ )Nr   __file__/r   )r   r   r   r   r=   r*   r+   get
_bootstrap_loadrX   insertrA   r.   dirnamer   rH   r   )packageresourcer   r   modpartsresource_names          r   r   r     s    , >>##G,D|[[F~WVZ88;;??7# ,%%d+ 
{'#z22
 NN3E	LLBGGOOCLL12GGLL%(M??=))r   c                    [         c)  SS KnSnUR                  SU SU S3UR                  5      q [         R	                  U 5      nU(       d  [        SU < 35      eUR                  5       nUR                  S5      (       aE  [        R                  " US   5      nUR                  S	5      nU(       a  UR                  S
5      O/ nO~U R                  S
5      nUR                  S5      n[        R                  " U5      nU(       a?  US   nU S
U 3n	 [        R                  " U	5      nUR                  S5        U	nU(       a  M?  Un
U H  n[        X5      n
M     U
$ ! [         a     M%  f = f)Nr   z(?!\d)(\w+)(\.(?!\d)(\w+))*z	^(?P<pkg>z)(?P<cln>:(?P<obj>z)?)?$zinvalid format: clnro   objr%   )_NAME_PATTERNrecompileUNICODEmatchr6   	groupdictr   r   rj   rX   popr,   r)   )r(   r   dotted_wordsr!   gdr   r   rK   r    sresults              r   resolve_namer     s[   B 5

Y|n =77CnE$K#%::/ 	D!A+D8455	
B	vve}}%%bi0u$)C r 

3))A,%%g.aA)1QC A--a0		! e F# M  s   )E 
E+*E+)N N)Nr   )r   )%collectionsr   	functoolsr   simplegenericr   importlib.utilimportlib.machineryrA   os.pathr*   typesr   rz   __all__r   __doc__r   r
   r   r8   rN   register	machinery
FileFinderrS   rO   r]   r,   r   r   r   r	   r   r   r   r   r   r   r   <module>r      s    # 5    	  
   &@A
E
 
 6Gr14 ) )&*P   ""$=?#	%.8 "";0FG2!:!852[|(*V Gu  		s   !C C
	C
