
    xKgZ                        d Z ddlZddlmZmZmZmZmZmZ ddl	m
Z
 ddlmZ  eej                  e
j                  e
j                        d        Z eej                   e
j                  e
j                        d        Z eej$                  e
j                  e
j                        d        Z ee
j                  d	      d
        Z ee
j*                  e
j,                        d        Z ee
j                        d        Z ee
j2                        d        Z ede
j2                  e
j6                        d        Z ee
j*                  d      d        Zy)z
Implementation of enums.
    N)lower_builtinlower_getattrlower_getattr_generic
lower_castlower_constantimpl_ret_untracked)types)overload_methodc                     |j                   \  }}|\  }}| j                  |t        j                  |j                  |j                  f||f      }t        | ||j                  |      S N)argsgeneric_compareoperatoreqdtyper   return_type	contextbuildersigr   tutvuvress	            Z/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cpython/enumimpl.pyenum_eqr      \    XXFBDAq

!
!'8;;#%88RXX"6A@CgwEE    c                    |j                   \  }}|\  }}||k(  r;| j                  |t        j                  |j                  |j                  f||f      }n| j                  |j                  d      }t        | ||j                  |      S )NF)r   r   r   r   r   get_constantr   r   r   s	            r   enum_isr"      s{    XXFBDAq	Rx%%gx{{')xx&:QFD ""3??E:gwEEr   c                     |j                   \  }}|\  }}| j                  |t        j                  |j                  |j                  f||f      }t        | ||j                  |      S r   )r   r   r   ner   r   r   r   s	            r   enum_ner%   "   r   r   valuec                     |S r    )r   r   tyvals       r   
enum_valuer+   +   s    Jr   c                 >    | j                  |||j                  |      S )z=
    Convert an IntEnum member to its raw integer value.
    )castr   )r   r   fromtytotyr*   s        r   int_enum_to_intr0   0   s    
 <<fllD99r   c                 P    | j                  ||j                  |j                        S )zB
    Return a LLVM constant representing enum member *pyval*.
    )get_constant_genericr   r&   )r   r   r)   pyvals       r   enum_constantr4   8   s!    
 ''5;;GGr   c                 |    t        |j                  |      }| j                  ||j                  |j                        S )z2
    Return an enum member by attribute name.
    )getattrinstance_classr2   r   r&   )r   r   r)   r*   attrmembers         r   enum_class_getattrr:   @   s3    
 R&&-F''6<<HHr   static_getitemc                     |j                   \  }}|j                  |j                     }| j                  ||j                  |j
                        S )z.
    Return an enum member by index name.
    )r   r7   literal_valuer2   r   r&   )r   r   r   r   enum_cls_typidxr9   s          r   enum_class_getitemr@   I   sL    
 L#(():):;F''1C1C(.6 6r   __hash__c                     d }|S )Nc                 ,    t        | j                        S r   )hashr&   )r*   s    r   	hash_implzintenum_hash.<locals>.hash_implW   s    CIIr   r(   )r*   rE   s     r   intenum_hashrF   T   s    r   )__doc__r   numba.core.imputilsr   r   r   r   r   r   
numba.corer	   numba.core.extendingr
   r   
EnumMemberr   is_r"   r$   r%   r+   IntEnumMemberIntegerr0   r4   	EnumClassr:   StringLiteralr@   rF   r(   r   r   <module>rQ      s   E E  0 x{{E,,e.>.>?F @F x||U--u/?/?@F AF x{{E,,e.>.>?F @F u) * E/: 0:   !H "H u'I (I %2E2EF6 G6 $$j1 2r   