QfmdZddlZddlmZmZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddgZ ejZejddZGddeZiZee ZdZd Zd ZGd dej2Zed zd d fedzdd fddfZdZdZdZdZdZ da!dZ"dZ#dZ$dZ%ee%jLZ'dZ(dZ)dZ*dZ+dZ,d Z-y)!aPzipimport provides support for importing Python modules from Zip archives. This module exports three objects: - zipimporter: a class; its constructor takes a path to a Zip archive. - ZipImportError: exception raised by zipimporter objects. It's a subclass of ImportError, so it can be caught as ImportError, too. - _zip_directory_cache: a dict, mapping archive paths to zip directory info dicts, as used in zipimporter._files. It is usually not needed to use the zipimport module explicitly; it is used by the builtin import mechanism for sys.path items that are paths to Zip archives. N)_unpack_uint16_unpack_uint32ZipImportError zipimporterc eZdZy)rN)__name__ __module__ __qualname__0/opt/alt/python312/lib64/python3.12/zipimport.pyrr"sr sPKicTeZdZdZdZddZdZdZdZdZ d Z d Z d Z d Z d Zy)razipimporter(archivepath) -> zipimporter object Create a new zipimporter instance. 'archivepath' must be a path to a zipfile, or to a specific path inside a zipfile. For example, it can be '/tmp/myimport.zip', or '/tmp/myimport.zip/mydirectory', if mydirectory is a valid directory inside the archive. 'ZipImportError is raised if 'archivepath' doesn't point to a valid Zip archive. The 'archive' attribute of zipimporter objects contains the name of the zipfile targeted. ct|tstdt||s t d|t r|j t t}g} tj|}|jdzdk7r t d| t|}||_||_tj(|ddd|_|j*r|xj*tz c_yy#ttf$r@tj|\}}||k(r t d||}|j|YnwxYw#t $rt#|}|t|<YwxYw)Nzexpected str, not zarchive path is emptypathiiznot a Zip file) isinstancestr TypeErrortyper alt_path_sepreplacepath_sep_bootstrap_external _path_statst_modeOSError ValueError _path_splitappend_zip_directory_cacheKeyError_read_directory_filesarchive _path_joinprefix)selfrr)stdirnamebasenamefiless r__init__zzipimporter.__init__@sY$$0d?@ @ !8tD D << h7D (33D9JJ)h6()9EE /(.E  )44fTrTlC ;; KK8 #K 1Z( (%8$C$CD$I!d?()9EE h' (( /#D)E).  & /s%C, D?,A D;:D;?EENct||}|tj|||St||}t ||rK|j t |}tj|dd}|jj||Sy)zkCreate a ModuleSpec for the specified module. Returns None if the module cannot be found. N) is_packageT)nameloaderr1) _get_module_info _bootstrapspec_from_loader_get_module_path_is_dirr'r ModuleSpecsubmodule_search_locationsr")r*fullnametarget module_infomodpathrspecs r find_speczzipimporter.find_spechs 'tX6  "..x+V V'tX6GtW%,,z';!,,(48<>//66t< r c&t||\}}}|S)zget_code(fullname) -> code object. Return the code object for the specified module. Raise ZipImportError if the module couldn't be imported. _get_module_coder*r;code ispackager>s rget_codezzipimporter.get_codes $4D(#C i r cHtr|jtt}|}|j|jtzr|t |jtzd} |j |}t|j|S#t$rtdd|wxYw)zget_data(pathname) -> string with file data. Return the data associated with 'pathname'. Raise OSError if the file wasn't found. Nr) rrr startswithr'lenr&r$r _get_data)r*pathnamekey toc_entrys rget_datazzipimporter.get_datas '' h?H   t||h6 73t||h6789C & C(Iy11 &!R% % &s %B B!c&t||\}}}|S)zget_filename(fullname) -> filename string. Return the filename for the specified module or raise ZipImportError if it couldn't be imported. rBrDs r get_filenamezzipimporter.get_filenames$4D(#C ir ct||}|td||t||}|rtj|d}n|d} |j |}t|j|jS#t $rYywxYw)zget_source(fullname) -> source string. Return the source code for the specified module. Raise ZipImportError if the module couldn't be found, return None if the archive does contain the module, but has no source for it. Ncan't find module r2 __init__.py.py) r4rr7rr(r&r$rLr'decode)r*r;mirfullpathrOs r get_sourcezzipimporter.get_sourcesdH - : #5h\!BR Rh/ *55dMJHs|H  H-Iy188::  s A== B B cBt||}|td|||S)zis_package(fullname) -> bool. Return True if the module specified by fullname is a package. Raise ZipImportError if the module couldn't be found. rTrU)r4r)r*r;rYs rr1zzipimporter.is_packages/ dH - : #5h\!BR R r cd}tj|tt||\}}}tj j |}|t|tst|}|tj |<||_ |r4t||}tj|j|}|g|_t|ds t |_tj"|j$||t'||j$ tj |}t-j.d|||S#tj |=xYw#t($rt+d|dwxYw)a@load_module(fullname) -> module. Load the module specified by 'fullname'. 'fullname' must be the fully qualified (dotted) module name. It returns the imported module, or raises ZipImportError if it could not be imported. Deprecated since Python 3.10. Use exec_module() instead. zrzipimport.zipimporter.load_module() is deprecated and slated for removal in Python 3.12; use exec_module() instead __builtins__zLoaded module z not found in sys.moduleszimport {} # loaded from Zip {}) _warningswarnDeprecationWarningrCsysmodulesgetr _module_type __loader__r7rr(r'__path__hasattrr^_fix_up_module__dict__execr$ ImportErrorr5_verbose_message) r*r;msgrErFr>modrrZs r load_modulezzipimporter.load_modulesBCs./#3D(#C ikkooh' ;jl;x(C$'CKK ! (h7.99$,,M (z 3/#/  . .s||Xw O s|| $  V++h'C ##$DhPWX   H%  Vxl:STU U VsBD5 E 5E  E%cf |j|sy ddlm}|||S#t$rYywxYw)zReturn the ResourceReader for a package in a zip file. If 'fullname' is a package within the zip file, return the 'ResourceReader' object for the package. Otherwise return None. Nr) ZipReader)r1rimportlib.readersrr)r*r;rrs rget_resource_readerzzipimporter.get_resource_readersA  ??8,- 0x((  s $ 00c t|j|_|jt|j<y#t$r*tj |jdi|_YywxYw)z)Reload the file data of the archive path.N)r%r'r&r#rpopr*s rinvalidate_cacheszzipimporter.invalidate_cachessT )$,,7DK15  .  $ $T\\4 8DK s7:0A-,A-cFd|jt|jdS)Nz)r'rr)rws r__repr__zzipimporter.__repr__s!&t||nXJt{{m2NNr N)r r r __doc__r/r@rGrPrRr[r1rprtrxrzr r rrr.sA "%$P62* ;4 (V )Or z __init__.pycTrVF)z.pycTF)rWFFcD|j|jddzS)N.)r) rpartition)r*r;s rr7r7+s! ;;,,S1!4 44r c0|tz}||jvSr{)rr&)r*rdirpaths rr8r8/sXoG dkk !!r cht||}tD]\}}}||z}||jvs|cSyr{)r7_zip_searchorderr&)r*r;rsuffix isbytecoderFrZs rr4r48s? D( +D)9% I&= t{{ " *: r c  tj|}|5|j } |j t d|j }|jt }t|t k7rtd|||ddtk7r |j dd|j }t|tz t z d} |j ||j}|jt}|dkrtd|||||t z}t|t k7rtd|||t|z |z}t|d d } t|d d } || krtd |||| krtd |||| z}|| z } | dkrtd||i} d} |j | |jd}t|dkr td|dddk7rnt|dk7r tdt|dd}t|dd }t|d d}t|dd }t|d d }t|d d}t|dd}t|dd}t|dd}t|dd}t|dd}||z|z} || kDrtd|||| z } |j|}t||k7rtd|| t|j| |z | |z k7rtd|| |dzr|j!}n |j!d}|j)dt*}t-j.||}||||||||f}|| |<| d z }  |j | dddt1j2d! | S#t$rtd||wxYw#t$rtd||wxYw#t$rtd||wxYw#t$rtd||wxYw#t$rtd||wxYw#t$rtd||wxYw#t$rtd||wxYw#t"$r(|j!dj%t&}YqwxYw#|j |wxYw#1swY8xYw)"Nzcan't open Zip file: rrcan't read Zip file: rznot a Zip file: zcorrupt Zip file: zbad central directory size: zbad central directory offset: z&bad central directory size or offset: .EOF read where not expectedsPK  "*zbad local header offset: iasciilatin1/rz!zipimport: found {} names in {!r})_io open_coderrtellseekEND_CENTRAL_DIR_SIZEreadrKSTRING_END_ARCHIVEmaxMAX_COMMENT_LENrfindrEOFErrorrrXUnicodeDecodeError translate cp437_tablerrrr(r5rm)r'fp start_offsetheader_positionbuffer file_sizemax_comment_startdatapos header_size header_offset arc_offsetr.countflagscompresstimedatecrc data_size name_size extra_size comment_size file_offsetr2rts rr%r%WsP ]]7 # wwy n " X--q1"$'')!566{22$'?%A!7GG-.779Djj!347(+;G;)G.577c#&:":;v;"66(+=g[)I.577"+c$i"7#"=(27K*6"R=9M,$'CG;%OV]^^.$'Eg[%QX_`` { *O(=8JA~$'Mg[%Y`ghhEE X(v;?"#@AA"1:.v;"$"#@AA&va|4)&B-8%fRm4%fRm4$VBr]3*6"R=9 *6"R=9 *6"R=9 +F2bM: -fRm< ,VBr]; '*4|C .(+DWK)PW^__z) \779-Dt9 )(+@ )LSZ[[\277;#:;< i@WW,/DWK-PW^__X 5=;;=DL#{{73||C2*55gtD8Y ;dTWXd  m d GGL !g h CUGT Lq P4WK@wOOP X$'>{KL GGL !g sO&S;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ctr tjdtdda ddlm} datjd|S#t $r!tjdtdwxYw#dawxYw)Nzzipimport: zlib UNAVAILABLE)can't decompress data; zlib not availableTr decompressFzzipimport: zlib available)_importing_zlibr5rmrzlibr Exceptionrs r_get_decompress_funcrs ##$ABHIIO #   ;<  J##$ABHIIJ sA *A44A77A;c|\}}}}}}}} |dkr tdtj|5} | j|| j d} t | dk7r td| dddk7rtd ||t| d d } t| d d} d| z| z}||z } | j|| j |}t ||k7r t d  ddd|dk(rS t}|dS#t$rtd||wxYw#t$rtd||wxYw#1swY^xYw#t$r td wxYw)Nrznegative data sizerrrrrsPKzbad local file header: rzzipimport: can't read datari) rrrrrrrKrrrr)r'rOdatapathrrrrrrrrrrrrraw_datars rrLrLsMVJHh 9k4s1}122 w 2 T GGK  v;" 89 9 "1: & #:7+!FWU U"6"R=1 #F2bM2 9nz1 {"  T GGK 779% x=I %67 7 &/ 41}J)+  h $$? T #8 !D7S S T  T #8 !D7S S T) B JHIIJsGE DA+E 0D,*E < ED))E ,EE  EE*c$t||z dkS)Nr)abs)t1t2s r _eq_mtimer?s rBw<1 r c\||d}tj|||}|dzdk7}|r{|dzdk7}tjdk7r|stjdk(rt ||} | tj tj | } tj|| ||nSt||\} } | rBtt|dd| rt|dd | k7rtjd |ytj|d d} t| t st#d |d | S) N)r2rrrrneveralwaysrrrzbytecode is stale for zcompiled module z is not a code object)r _classify_pyc_impcheck_hash_based_pycs_get_pyc_source source_hash_RAW_MAGIC_NUMBER_validate_hash_pyc_get_mtime_and_size_of_sourcerrr5rmmarshalloadsr _code_typer)r*rMrZr;r exc_detailsr hash_based check_source source_bytesr source_mtime source_sizerEs r_unmarshal_coderGsAK - -dHk JE!Jt|q(  & &' 1!;!;x!G*4:L'"..'99  $66+x> *$ 9 " k nT!BZ8,G"42;/;>++,XL9; ==bc #D dJ '*8,6KLMM Kr cN|jdd}|jdd}|S)Ns   )r)sources r_normalize_line_endingsrts' ^^GU +F ^^E5 )F Mr c6t|}t||ddS)NrkT) dont_inherit)rcompile)rMrs r_compile_sourcer{s $V ,F 68V$ ??r c ztj|dz dz|dz dz|dz|dz |dz dz|dzdzd d d f S) N i ?rr)rmktime)drs r_parse_dostimersY ;; a4 a3 D R a4 TQ B r c |dddvsJ|dd}|j|}|d}|d}|d}t|||fS#tttf$rYywxYw)Nrcor)rr)r&rr$ IndexErrorr)r*rrOrruncompressed_sizes rrrs~ BCyJ&&&CRyKK% ||%aLdD)+<<< j) ,s9<AAc|dddvsJ|dd} |j|}t|j|S#t$rYywxYw)Nrr)r&rLr'r$)r*rrOs rrrs[ 9 "" " 9D2KK% y11 s5 AAct||}d}tD]\}}}||z}tjd|jt |d |j |}|d} t|j|} d} |r t|| ||| } n t| | } | |d} | || fcS|rd|} t| ||td||#t$r } | }Yd} ~ Ed} ~ wwxYw#t$rYwxYw)Nz trying {}{}{}r) verbosityrzmodule load failed: rUrT) r7rr5rmr'rr&rLrrlrr$r)r*r;r import_errorrrrFrZrOr>rrEexcrns rrCrCs" D( +DL)9% I&=##OT\\8Xabc , H-I lGT\\95DD'*4(HdSD'w5|lGG+ +/*:2 (7C 84, F #5h\!BR R#'#&L'   s* C"9C  CCC" C.-C.).r|_frozen_importlib_externalrrr_frozen_importlibr5rrrrbrr___all__rpath_separatorsrrlrr#rrerrr _LoaderBasicsrrr7r8r4r%rrrrLrr__code__rrrrrrrCr r rr s3  9E&   ] +  ' '"22126  [ Cy "lO%33lOjd+ ud+ 5">{J/ : *(%\&P/** + @  & 2 Sr