o
    `^h                      @   sn  d dl mZ g dZd dlZejdd Zedk ZedkZdZ	dZ
dZd	Zd
ZdZdZd dlZd dlmZmZmZmZ d dlmZmZmZ d dlm Z!m"Z#m$Z% d dlm&Z'm(Z)m*Z+m,Z- d dlm.Z/m0Z1 eruddl2m3Z3 ddl3T e4e3j erddl2m5Z5 ddl5T e4e5j e6Z7zd dl8m9Z9 W n e:y   e;Z9Y nw ze< e<Z<W n e=y   e>Z<Y nw ze? e@e<fZ?W n e=y   e>fZ?Y nw zeAeBfZCeBZBW n e=y   eAfZCeAZBY nw eCZDzeE W n e=y   eFdZEY nw G dd deGZHdd ZIdd ZJdd ZKdd  ZLd!d" ZMd#d$ ZNd%d& ZOG d'd( d(eGZPd)d* ZQG d+d, d,eGZReR ZSZTG d-d. d.eGZUeUZVdS )/    )print_function)0pyverPY2PY2_6PY3PY3_3PY3_4PY3_5PY3_6PY3_7PY3_11_or__and__xor__inv__abs__add_
_floordiv__lshift__rshift__mod__mul__neg__pos__pow_	_truediv__sub_unicode
basestringbaseintegerlongNoneType	_Addendumis_descriptor	is_dunder	is_sunderis_internal_classis_private_nameget_attr_from_chain_valueconstantmake_class_unpicklablebltin_propertyskip	nonmembermemberMember	NonMemberOrderedDictN   )   )r3      )r4   r4   )r4      )r4      )r4   r5   )r4      )r4      )or_and_xorinv)absaddfloordiv)lshiftrshiftmod)mulnegpospow)truedivsub   )_py2)*)_py3)r2   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )r"   c                 C   s   || _ || _t | _d S N)dictnssetadded)selfrO   docrP    rU   K/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/aenum/_common.py__init__T   s   z_Addendum.__init__c                 C   s\   t |ttfr|jj}nt |ttfr|jp|jp|j	j}n|j}|| j
|< | j| |S rN   )
isinstancestaticmethodclassmethod__func____name__propertyr,   fgetfsetfdelrO   rR   r?   )rS   funcnamerU   rU   rV   __call__[   s   

z_Addendum.__call__c                 C   s
   | j | S rN   rO   )rS   rb   rU   rU   rV   __getitem__e      
z_Addendum.__getitem__c                 C   s   || j |< d S rN   rd   )rS   rb   valuerU   rU   rV   __setitem__g   s   z_Addendum.__setitem__c                 C   s   | j }| jD ]}||= q| jS rN   )rP   rR   rO   )rS   rP   rb   rU   rU   rV   resolvei   s   
z_Addendum.resolveN)r\   
__module____qualname__rW   rc   re   rh   ri   rU   rU   rU   rV   r"   S   s    
r"   c                 C   s   t | dpt | dpt | dS )z5Returns True if obj is a descriptor, False otherwise.__get____set__
__delete__)hasattrobjrU   rU   rV   r#   o   s
   
r#   c                 C   sL   t | dko%| dd | dd   kodkn  o%| d dko%| d dkS )z3Returns True if a __dunder__ name, False otherwise.r6   Nr3   ___lenrb   rU   rU   rV   r$   w   s   &

r$   c                 C   sD   t | dko!| d | d   kodkn  o!| d dko!| d dkS )z1Returns True if a _sunder_ name, False otherwise.r3   r   rt   rJ   rr   rv   rx   rU   rU   rV   r%      s   

r%   c                 C   s6   t tk rdS t|dd}t| o|otd|  |S )NFrk   z\.?%s\.\w+$)r   r   getattrr#   research)cls_namerq   qualnamerU   rU   rV   r&      s   r&   c                 C   s   d| f }t ||S )Nz^_%s__\w+[^_]_?$)r{   r|   )r}   rb   patternrU   rU   rV   r'      s   
r'   c                 C   s6   t  }|  D ]}|j||}||ur|  S qd S rN   )objectmro__dict__get)clsattrsentinelbaseclsrq   rU   rU   rV   r(      s   r(   c                 C   s   t | ttfr
| jS | S rN   )rX   autor*   rg   rp   rU   rU   rV   r)      s   r)   c                   @   s&  e Zd ZdZdGddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  ZerId!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z d;d< Z!d=d> Z"d?d@ Z#dAdB Z$dCdD Z%dEdF Z&dS )Hr*   zD
    Simple constant descriptor for NamedConstant and Enum use.
    Nc                 C   s   || _ || _d S rN   )rg   __doc__)rS   rg   rT   rU   rU   rV   rW      s   
zconstant.__init__c                 G      | j S rN   rg   )rS   argsrU   rU   rV   rl         zconstant.__get__c                 C   s   d| j j| jf S )Nz%s(%r))	__class__r\   rg   rS   rU   rU   rV   __repr__   s   zconstant.__repr__c                 C      t | jt|S rN   )r   rg   r)   rS   otherrU   rU   rV   __and__      zconstant.__and__c                 C      t t|| jS rN   )r   r)   rg   r   rU   rU   rV   __rand__   r   zconstant.__rand__c                 C   
   t | jS rN   )r   rg   r   rU   rU   rV   
__invert__   rf   zconstant.__invert__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __or__   r   zconstant.__or__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __ror__   r   zconstant.__ror__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __xor__   r   zconstant.__xor__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rxor__   r   zconstant.__rxor__c                 C   r   rN   )r   rg   r   rU   rU   rV   __abs__   rf   zconstant.__abs__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __add__   r   zconstant.__add__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __radd__   r   zconstant.__radd__c                 C   r   rN   )r   rg   r   rU   rU   rV   __neg__   rf   zconstant.__neg__c                 C   r   rN   )r   rg   r   rU   rU   rV   __pos__   rf   zconstant.__pos__c                 C   r   rN   )_div_rg   r)   r   rU   rU   rV   __div__   r   zconstant.__div__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rdiv__   r   zconstant.__rdiv__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __floordiv__   r   zconstant.__floordiv__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rfloordiv__   r   zconstant.__rfloordiv__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __truediv__   r   zconstant.__truediv__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rtruediv__   r   zconstant.__rtruediv__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   
__lshift__   r   zconstant.__lshift__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rlshift__   r   zconstant.__rlshift__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   
__rshift__   r   zconstant.__rshift__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rrshift__   r   zconstant.__rrshift__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __mod__   r   zconstant.__mod__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rmod__   r   zconstant.__rmod__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __mul__   r   zconstant.__mul__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rmul__   r   zconstant.__rmul__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __pow__   r   zconstant.__pow__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rpow__   r   zconstant.__rpow__c                 C   r   rN   )r   rg   r)   r   rU   rU   rV   __sub__   r   zconstant.__sub__c                 C   r   rN   )r   r)   rg   r   rU   rU   rV   __rsub__   r   zconstant.__rsub__c                 C   s   || _ |j| _d S rN   )rb   r\   clsname)rS   
ownerclassrb   rU   rU   rV   __set_name__   s   zconstant.__set_name__rN   )'r\   rj   rk   r   rW   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rU   rU   rU   rV   r*      sJ    
r*   c                 C   sB   dd }t | tr|| d< d| d< dS t| d| t| dd dS )z]
    Make the given obj un-picklable.

    obj should be either a dictionary, on an Enum
    c                 S   s   t d|  )Nz%r cannot be pickled)	TypeError)rS   protorU   rU   rV   _break_on_call_reduce   s   z5make_class_unpicklable.<locals>._break_on_call_reduce__reduce_ex__z	<unknown>rj   N)rX   rO   setattr)rq   r   rU   rU   rV   r+      s   
r+   c                   @   s"   e Zd ZdZdd ZdddZdS )r1   zK
    Protects item from becaming an Enum member during class creation.
    c                 C   
   || _ d S rN   r   rS   rg   rU   rU   rV   rW      rf   zNonMember.__init__Nc                 C   r   rN   r   )rS   instancer   rU   rU   rV   rl     r   zNonMember.__get__rN   )r\   rj   rk   r   rW   rl   rU   rU   rU   rV   r1      s    r1   c                   @   s   e Zd ZdZdd ZdS )r0   zE
    Forces item to became an Enum member during class creation.
    c                 C   r   rN   r   r   rU   rU   rV   rW   	  rf   zMember.__init__N)r\   rj   rk   r   rW   rU   rU   rU   rV   r0     s    r0   )W
__future__r   __all__sys_sysversion_infor   r   r   r   r   r   r	   r
   r   r   r{   operatorr:   r   r;   r   r<   r   r=   r   r>   r   r?   r   r@   r   rA   r   rB   r   rC   r   rD   r   rE   r   rF   r   rG   r   rH   r   rI   r    rK   extendrM   r]   r,   collectionsr2   ImportErrorrO   r   	NameErrorstrr   bytesintr    r   baseintr!   typer   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r1   r-   r.   r0   r/   rU   rU   rU   rV   <module>   s    
L	