
    G j	                     B    S r SSKJrJr   " S S\5      r " S S\\S9rg)	a/  
This is a replacement for the stdlib enum.IntEnum.

Notably, it has much better import time performance, since it doesn't generate
and evaluate Python code at startup time.

It supports the most important subset of the IntEnum API.  See `test_enum` in
`cuda_bindings/tests/test_basics.py` for details.
    )AnyIteratorc                   j   ^  \ rS rSrU 4S jrS\4S jrS\4S jrS\	S   4S jr
S\S\4S	 jrS
rU =r$ )FastEnumMetaclass   c                 $  > [         TU ]  XU5        0 U l        0 U l        U R                  R                  5        H  u  pUR                  S5      (       a  UR                  S5      (       a  M3  [        U[        5      (       a  Uu  pEO[        U[        5      (       a  S nOMg  [        R                  X5      nXVl        Xl        X`R                  U'   X`R                  U'   M     U R                  R                  5        H  u  p[        XU5        M     g )N__)super__init____singletons____members____dict__items
startswithendswith
isinstancetupleint__new____doc___namesetattr)	clsnamebases	namespacevaluedoc	singletonmember	__class__s	           s/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/cuda/bindings/_internal/_fast_enum.pyr   FastEnumMetaclass.__init__   s    i0<<--/KDt$$t)<)<%''"
sE3''C/I #"O(1u%$-OOD! 0"  OO113LDCv& 4    returnc                 "    SU R                    S3$ )Nz<enum 'z'>)__name__r   s    r"   __repr__FastEnumMetaclass.__repr__/   s    b))r$   c                 ,    [        U R                  5      $ N)lenr   r(   s    r"   __len__FastEnumMetaclass.__len__2   s    3??##r$   FastEnumc                 H    [        U R                  R                  5       5      $ r,   )iterr   valuesr(   s    r"   __iter__FastEnumMetaclass.__iter__5   s    COO**,--r$   itemc                     XR                   ;   $ r,   )r   )r   r6   s     r"   __contains__FastEnumMetaclass.__contains__8   s    ))))r$    )r'   
__module____qualname____firstlineno__r   strr)   r   r.   r   r4   r   boolr8   __static_attributes____classcell__)r!   s   @r"   r   r      sI    '2* *$ $.*- .* * * *r$   r   c                   d    \ rS rSrS\SS 4S jrS\4S jr\S\4S j5       r	\S\4S j5       r
Srg	)
r0   <   r   r%   c                 v    U R                   R                  U5      nUc  [        U SU R                   35      eU$ )Nz is not a valid )r   get
ValueErrorr'   )r   r   r   s      r"   r   FastEnum.__new__=   s?    !0044U;	w&6s||nEFFr$   c                 h    SU R                   R                   SU R                   S[        U 5       S3$ )N<.z: >)r!   r'   r   r   selfs    r"   r)   FastEnum.__repr__C   s0    4>>**+1TZZL3t9+QGGr$   c                     U R                   $ r,   )r   rL   s    r"   r   FastEnum.nameF   s    zzr$   c                     [        U 5      $ r,   )r   rL   s    r"   r   FastEnum.valueJ   s    4yr$   r:   N)r'   r;   r<   r=   r   r   r>   r)   propertyr   r   r@   r:   r$   r"   r0   r0   <   sY    C J H# H c   s  r$   r0   )	metaclassN)r   typingr   r   typer   r   r0   r:   r$   r"   <module>rW      s+    !$* $*Ns/ r$   