File: //lib/python3.9/site-packages/google/protobuf/__pycache__/descriptor.cpython-39.pyc
a
x��g1� � @ s� d Z dZddlZddlZddlZddlmZ dZe�� dkr\ddl Z ddl
Z
ddlmZ dZG d d
� d
e
�ZG dd� de�Zer�G d
d� de�ZneZG dd� de�Ze�� Zdd� Zde_e� ZG dd� de�e��ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG d d!� d!e�Z G d"d#� d#e�Z!G d$d%� d%e�Z"G d&d'� d'e�Z#d(d)� Z$d*d+� Z%d,d-� Z&d.d/� Z'd3d1d2�Z(dS )4z�Descriptors essentially contain exactly the information found in a .proto
file, in types that make this information accessible in Python.
z#[email protected] (Will Robinson)� N)�api_implementationF�cpp)�_messageTc @ s e Zd ZdZdS )�ErrorzBase error for this module.N��__name__�
__module__�__qualname__�__doc__� r r �>/usr/lib/python3.9/site-packages/google/protobuf/descriptor.pyr 4 s r c @ s e Zd ZdZdS )�TypeTransformationErrorzHError transforming between python proto type and corresponding C++ type.Nr r r r r r
8 s r
c s e Zd Z� fdd�Z� ZS )�DescriptorMetaclassc s( t t| ��|�rdS t|| j�r$dS dS )NTF)�superr �__instancecheck__�
isinstance�_C_DESCRIPTOR_CLASS)�cls�obj�� __class__r r r B s
z%DescriptorMetaclass.__instancecheck__)r r r r �
__classcell__r r r r r A s r c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �_Lockz>Wrapper class of threading.Lock(), which is allowed by 'with'.c C s t �| �}t�� |_|S �N)�object�__new__� threading�Lock�_lock)r �selfr r r r P s
z
_Lock.__new__c C s | j �� d S r )r �acquire�r r r r � __enter__U s z_Lock.__enter__c C s | j �� d S r )r �release)r �exc_type� exc_valueZexc_tbr r r �__exit__X s z_Lock.__exit__N)r r r r
r r"