a
    d                      @   sz  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rddl2m3Z3 ddl3T e4e3j erddl2m5Z5 ddl5T e4e5j e6Z7zd dl8m9Z9 W n e:y<   e;Z9Y n0 ze< e<Z<W n e=yb   e>Z<Y n0 ze? e@e<fZ?W n e=y   e>fZ?Y n0 zeAeBfZCeBZBW n e=y   eAfZCeAZBY n0 eCZDzeE W n e=y   eFdZEY n0 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   V/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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p6|jp6|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   s    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   rg   rh   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oJ| dd | dd   ko.dkn  oJ| d dkoJ| 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oB| d | d   ko&dkn  oB| d dkoB| d dkS )z1Returns True if a _sunder_ name, False otherwise.r3   r   rs   rJ   rq   ru   rw   rU   rU   rV   r%      s    

r%   c                 C   s:   t tk rdS t|dd}t| o4|o4td|  |S d S )NFrj   z\.?%s\.\w+$)r   r   getattrr#   research)cls_namerp   qualnamerU   rU   rV   r&      s    r&   c                 C   s   d| f }t ||S )Nz^_%s__\w+[^_]_?$)rz   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sentinelZbaseclsrp   rU   rU   rV   r(      s
    r(   c                 C   s   t | ttfr| jS | S d S rN   )rX   autor*   rf   ro   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rd!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   )rf   __doc__)rS   rf   rT   rU   rU   rV   rW      s    zconstant.__init__c                 G   s   | j S rN   rf   )rS   argsrU   rU   rV   rk      s    zconstant.__get__c                 C   s   d| j j| jf S )Nz%s(%r))	__class__r\   rf   rS   rU   rU   rV   __repr__   s    zconstant.__repr__c                 C   s   t | jt|S rN   )r   rf   r)   rS   otherrU   rU   rV   __and__   s    zconstant.__and__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rand__   s    zconstant.__rand__c                 C   s
   t | jS rN   )r   rf   r   rU   rU   rV   
__invert__   s    zconstant.__invert__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __or__   s    zconstant.__or__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __ror__   s    zconstant.__ror__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __xor__   s    zconstant.__xor__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rxor__   s    zconstant.__rxor__c                 C   s
   t | jS rN   )r   rf   r   rU   rU   rV   __abs__   s    zconstant.__abs__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __add__   s    zconstant.__add__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __radd__   s    zconstant.__radd__c                 C   s
   t | jS rN   )r   rf   r   rU   rU   rV   __neg__   s    zconstant.__neg__c                 C   s
   t | jS rN   )r   rf   r   rU   rU   rV   __pos__   s    zconstant.__pos__c                 C   s   t | jt|S rN   )_div_rf   r)   r   rU   rU   rV   __div__   s    zconstant.__div__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rdiv__   s    zconstant.__rdiv__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __floordiv__   s    zconstant.__floordiv__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rfloordiv__   s    zconstant.__rfloordiv__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __truediv__   s    zconstant.__truediv__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rtruediv__   s    zconstant.__rtruediv__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   
__lshift__   s    zconstant.__lshift__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rlshift__   s    zconstant.__rlshift__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   
__rshift__   s    zconstant.__rshift__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rrshift__   s    zconstant.__rrshift__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __mod__   s    zconstant.__mod__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rmod__   s    zconstant.__rmod__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __mul__   s    zconstant.__mul__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rmul__   s    zconstant.__rmul__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __pow__   s    zconstant.__pow__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rpow__   s    zconstant.__rpow__c                 C   s   t | jt|S rN   )r   rf   r)   r   rU   rU   rV   __sub__   s    zconstant.__sub__c                 C   s   t t|| jS rN   )r   r)   rf   r   rU   rU   rV   __rsub__   s    zconstant.__rsub__c                 C   s   || _ |j| _d S rN   )rb   r\   Zclsname)rS   
ownerclassrb   rU   rU   rV   __set_name__   s    zconstant.__set_name__)N)'r\   ri   rj   r   rW   rk   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*      sH   
r*   c                 C   s@   dd }t | tr$|| d< d| d< n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|  d S )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>ri   N)rX   rO   setattr)rp   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   s
   || _ d S rN   r   rS   rf   rU   rU   rV   rW      s    zNonMember.__init__Nc                 C   s   | j S rN   r   )rS   instancer   rU   rU   rV   rk     s    zNonMember.__get__)N)r\   ri   rj   r   rW   rk   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   s
   || _ d S rN   r   r   rU   rU   rV   rW   	  s    zMember.__init__N)r\   ri   rj   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   rz   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   Zbaseintr!   typer   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r1   r-   r.   r0   r/   rU   rU   rU   rV   <module>   s   


L	