File: //lib64/python3.9/__pycache__/enum.cpython-39.opt-1.pyc
a
    �DOg�  �                   @   s�   d dl Z d dlmZmZ g d�Zdd� Zdd� Zdd	� Zd
d� Zdd
� Z	e
� ZG dd� d�ZG dd� de
�ZdZG dd� de�ZG dd� ded�ZG dd� dee�Zdd� ZG dd� de�ZG dd� dee�Zdd � Zd!d"� Zd#d$� ZdS )%�    N)�MappingProxyType�DynamicClassAttribute)�EnumMeta�Enum�IntEnum�Flag�IntFlag�auto�uniquec                 C   s   t | d�pt | d�pt | d�S )z?
    Returns True if obj is a descriptor, False otherwise.
    �__get__�__set__�
__delete__)�hasattr)�obj� r   �/usr/lib64/python3.9/enum.py�_is_descriptor   s
    
��r   c                 C   sL   t | �dkoJ| dd� | dd�   ko.dkn  oJ| d dkoJ| d dkS )z=
    Returns True if a __dunder__ name, False otherwise.
    �   N�   ����__�_�����len��namer   r   r   �
_is_dunder   s    &�
�
�r   c                 C   sL   t | �dkoJ| d | d   ko&dkn  oJ| dd� dkoJ| dd� dkS )z;
    Returns True if a _sunder_ name, False otherwise.
    r   r   ���r   �   r   r   r   r   r   r   �
_is_sunder!   s    ���r    c                 C   sT   d| f }t |�dkrL|�|�rL|t |� dkrL|d dksH|d dkrLdS dS d S )Nz_%s__�   r   r   r   TF)r   �
startswith)�cls_namer   �patternr   r   r   �_is_private,   s    
���
�
�r%   c                 C   s   dd� }|| _ d| _dS )z,
    Make the given class un-picklable.
    c                 S   s   t d|  ��d S )Nz%r cannot be pickled)�	TypeError��self�protor   r   r   �_break_on_call_reduce=   s    z6_make_class_unpicklable.<locals>._break_on_call_reducez	<unknown>N)�
__reduce_ex__�
__module__)�clsr*   r   r   r   �_make_class_unpicklable9   s    r.   c                   @   s   e Zd ZdZeZdS )r	   zP
    Instances are replaced with an appropriate value in Enum class suites.
    N)�__name__r,   �__qualname__�__doc__�
_auto_null�valuer   r   r   r   r	   C   s   r	   c                       s,   e Zd ZdZ� fdd�Z� fdd�Z�  ZS )�	_EnumDictz�
    Track enum member order and ensure member names are not reused.
    EnumMeta will use the names found in self._member_names as the
    enumeration member names.
    c                    s&