o
    ‘iZ  ã                   @   s  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d„ ƒZeeje
je
jƒdd	„ ƒZeeje
je
jƒd
d„ ƒZee
jdƒdd„ ƒZee
je
jƒdd„ ƒZee
jƒdd„ ƒZee
jƒdd„ ƒZede
je
jƒdd„ ƒZee
jdƒdd„ ƒZdS )z
Implementation of enums.
é    N)Úlower_builtinÚlower_getattrÚlower_getattr_genericÚ
lower_castÚlower_constantÚimpl_ret_untracked)Útypes)Úoverload_methodc           	      C   ó@   |j \}}|\}}|  |tj|j|jf||f¡}t| ||j|ƒS ©N)ÚargsÚgeneric_compareÚoperatorÚeqÚdtyper   Úreturn_type©	ÚcontextÚbuilderÚsigr   ZtuÚtvÚuÚvÚres© r   úe/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/cpython/enumimpl.pyÚenum_eq   ó   

ÿr   c           	      C   sX   |j \}}|\}}||kr|  |tj|j|jf||f¡}n|  |jd¡}t| ||j|ƒS )NF)r   r   r   r   r   Zget_constantr   r   r   r   r   r   Úenum_is   s   

ÿr   c           	      C   r
   r   )r   r   r   Úner   r   r   r   r   r   r   Úenum_ne"   r   r    Úvaluec                 C   s   |S r   r   )r   r   ÚtyÚvalr   r   r   Ú
enum_value+   s   r$   c                 C   s   |   |||j|¡S )z=
    Convert an IntEnum member to its raw integer value.
    )Úcastr   )r   r   ZfromtyZtotyr#   r   r   r   Úint_enum_to_int0   ó   r&   c                 C   s   |   ||j|j¡S )zB
    Return a LLVM constant representing enum member *pyval*.
    )Úget_constant_genericr   r!   )r   r   r"   Zpyvalr   r   r   Úenum_constant8   r'   r)   c                 C   s   t |j|ƒ}|  ||j|j¡S )z2
    Return an enum member by attribute name.
    )ÚgetattrÚinstance_classr(   r   r!   )r   r   r"   r#   ÚattrÚmemberr   r   r   Úenum_class_getattr@   s   r.   Zstatic_getitemc                 C   s(   |j \}}|j|j }|  ||j|j¡S )z.
    Return an enum member by index name.
    )r   r+   Zliteral_valuer(   r   r!   )r   r   r   r   Zenum_cls_typÚidxr-   r   r   r   Úenum_class_getitemI   s
   

ÿr0   Ú__hash__c                 C   s   dd„ }|S )Nc                 S   s
   t | jƒS r   )Úhashr!   )r#   r   r   r   Ú	hash_implW   s   
zintenum_hash.<locals>.hash_implr   )r#   r3   r   r   r   Úintenum_hashT   s   r4   )Ú__doc__r   Znumba.core.imputilsr   r   r   r   r   r   Z
numba.corer   Znumba.core.extendingr	   r   Z
EnumMemberr   Úis_r   r   r    r$   ZIntEnumMemberÚIntegerr&   r)   Z	EnumClassr.   ZStringLiteralr0   r4   r   r   r   r   Ú<module>   s.     










