100 $ˆl–äY>” je¶…8 Cq§nÅ1hßÊ „ ¡mÿÉ¿Ç?÷a ´i-xã@sRdZddlZddlmZmZddlZddlZddlZddl Z ddl Z ddl Z ddgZ ej Z ejdd…ZGdd„deƒZiZee ƒZdZd Zd ZGd d„dƒZe d d d fe ddd fddfZdd„Zdd„Zdd„Zdd„ZdZdadd„Z dd„Z!dd „Z"d!d"„Z#ee#j$ƒZ%d#d$„Z&d%d&„Z'd'd(„Z(d)d*„Z)d+d,„Z*d-d.„Z+Gd/d0„d0ƒZ,dS)1aPzipimport 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_uint32ÚZipImportErrorÚ zipimporteréc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú!/usr/lib64/python3.9/zipimport.pyr!sésPKiÿÿc@sleZdZdZdd„Zddd„Zddd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)raÿzipimporter(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. c Cs t|tƒsddl}| |¡}|s,td|d�‚tr<| tt¡}g}zt  |¡}WnFt t fy”t  |¡\}}||kr‚td|d�‚|}|  |¡Yq@0|jd@dkr´td|d�‚q´q@z t|}Wn"tyât|ƒ}|t|<Yn0||_||_tj|ddd…Ž|_|j�r|jt7_dS)Nrzarchive path is empty©Úpathznot a Zip fileiði€éÿÿÿÿ)Ú isinstanceÚstrÚosÚfsdecoderÚ alt_path_sepÚreplaceÚpath_sepÚ_bootstrap_externalÚ _path_statÚOSErrorÚ ValueErrorÚ _path_splitÚappendÚst_modeÚ_zip_directory_cacheÚKeyErrorÚ_read_directoryÚ_filesÚarchiveÚ _path_joinÚprefix)Úselfrrr$ÚstÚdirnameÚbasenameÚfilesr r r Ú__init__?s:        zzipimporter.__init__NcCsNt||ƒ}|dur|gfSt||ƒ}t||ƒrFd|j›t›|›�gfSdgfS)aïfind_loader(fullname, path=None) -> self, str or None. Search for a module specified by 'fullname'. 'fullname' must be the fully qualified (dotted) module name. It returns the zipimporter instance itself if the module was found, a string containing the full path name if it's possibly a portion of a namespace package, or None otherwise. The optional 'path' argument is ignored -- it's there for compatibility with the importer protocol. N)Ú_get_module_infoÚ_get_module_pathÚ_is_dirr"r)r%ÚfullnamerÚmiÚmodpathr r r Ú find_loaderms   zzipimporter.find_loadercCs| ||¡dS)a‹find_module(fullname, path=None) -> self or None. Search for a module specified by 'fullname'. 'fullname' must be the fully qualified (dotted) module name. It returns the zipimporter instance itself if the module was found, or None if it wasn't. The optional 'path' argument is ignored -- it's there for compatibility with the importer protocol. r)r1)r%r.rr r r Ú find_module�s zzipimporter.find_modulecCst|