Your IP : 18.117.168.40
a
R�f�� � @ s� d Z dadd� Zdd� Zi Zi ZG dd� de�ZG dd � d �ZG d
d� d�Z G dd
� d
�Z
dd� Zdd� Zdd� Z
dd�dd�Zdd� Zdd� Zdd� Zdd� ZG d d!� d!�Zddd"�d#d$�Zd^d%d&�Zd'd(�d)d*�Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� ZG d7d8� d8�ZG d9d:� d:�ZG d;d<� d<�Zd=d>� Z d?d@� Z!d_dAdB�Z"dCdD� Z#dEZ$e$dF Z%dGdH� Z&e'� Z(dIdJ� Z)d`dLdM�Z*d'dN�dOdP�Z+dQdR� Z,dadTdU�Z-dVdW� Z.dXdY� Z/dZd[� Z0d\d]� Z1dS )baS Core implementation of import.
This module is NOT meant to be directly imported! It has been designed such
that it can be bootstrapped into Python as the implementation of import. As
such it requires the injection of specific modules and attributes in order to
work. One should use importlib as the public-facing version of this module.
Nc C s8 dD ] }t ||�rt| |t||�� q| j�|j� dS )z/Simple substitute for functools.update_wrapper.)�
__module__�__name__�__qualname__�__doc__N)�hasattr�setattr�getattr�__dict__�update)�new�old�replace� r
�9/opt/alt/python39/lib64/python3.9/importlib/_bootstrap.py�_wrap s
r c C s t t�| �S �N)�type�sys��namer
r
r �_new_module# s r c @ s e Zd ZdS )�_DeadlockErrorN)r r r r
r
r
r r 0 s r c @ s8 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� ZdS )
�_ModuleLockz�A recursive lock implementation which is able to detect deadlocks
(e.g. thread 1 trying to take locks A then B, and thread 2 trying to
take locks B then A).
c C s0 t �� | _t �� | _|| _d | _d| _d| _d S �N� )�_thread�
allocate_lock�lock�wakeupr �owner�count�waiters��selfr r
r
r �__init__: s
z_ModuleLock.__init__c C sX t �� }| j}t� }t�|�}|d u r*dS |j}||kr<dS ||v rHdS |�|� qd S )NFT)r � get_identr �set�_blocking_on�get�add)r"