File: //lib64/python3.9/__pycache__/zipimport.cpython-39.opt-1.pyc
a
    �DOg-x  �                   @   sR  d Z ddlZddlmZmZ ddlZddlZddlZddl	Z	ddl
Z
ddlZddgZej
Z
ejdd� ZG dd� de�Zi Zee
�ZdZd	Zd
ZG dd� d�Ze
d d
d
fe
d dd
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+G d/d0� d0�Z,dS )1aP  zipimport 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   e Zd ZdS )r   N)�__name__�
__module__�__qualname__� r
   r
   �!/usr/lib64/python3.9/zipimport.pyr   !   s   �   s   PKi��  c                   @   sl   e Zd ZdZdd� Zddd�Zddd�Zd	d
� Zdd� Zd
d� Z	dd� Z
dd� Zdd� Zdd� Z
dd� ZdS )r   a�  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              	   C   s   t |t�sdd l}|�|�}|s,td|d��tr<|�tt�}g }zt�	|�}W nF t
tfy�   t�|�\}}||kr�td|d��|}|�
|� Y q@0 |jd@ dkr�td|d��q�q@zt| }W n" ty�   t|�}|t|<