Coverage for cuda/bindings/_internal/_fast_enum.py: 100.00%
43 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-13 01:38 +0000
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-13 01:38 +0000
1# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
3#
4# This code was automatically generated across versions from 12.9.1 to 13.3.0, generator version 0.3.1.dev1719+g565f73f4e. Do not modify it directly.
7"""
8This is a replacement for the stdlib enum.IntEnum.
10Notably, it has much better import time performance, since it doesn't generate
11and evaluate Python code at startup time.
13It supports the most important subset of the IntEnum API. See `test_enum` in
14`cuda_bindings/tests/test_basics.py` for details.
15"""
17from typing import Any, Iterator
20class FastEnumMetaclass(type):
21 def __init__(cls, name, bases, namespace):
22 super().__init__(name, bases, namespace) 1ab
24 cls.__singletons__ = {} 1ab
25 cls.__members__ = {} 1ab
26 for name, value in cls.__dict__.items(): 1ab
27 if name.startswith("__") and name.endswith("__"): 1ab
28 continue 1ab
30 if isinstance(value, tuple): 1ab
31 value, doc = value 1ab
32 elif isinstance(value, int):
33 doc = None
34 else:
35 continue
37 singleton = int.__new__(cls, value) 1ab
38 singleton.__doc__ = doc 1ab
39 singleton._name = name 1ab
40 cls.__singletons__[value] = singleton 1ab
41 cls.__members__[name] = singleton 1ab
43 for name, member in cls.__members__.items(): 1ab
44 setattr(cls, name, member) 1ab
46 def __repr__(cls) -> str:
47 return f"<enum '{cls.__name__}'>" 1c
49 def __len__(cls) -> int:
50 return len(cls.__members__) 1cd
52 def __iter__(cls) -> Iterator["FastEnum"]:
53 return iter(cls.__members__.values()) 2a c k d l Dh
55 def __contains__(cls, item: Any) -> bool:
56 return item in cls.__singletons__ 1c
59class FastEnum(int, metaclass=FastEnumMetaclass):
60 def __new__(cls, value: int) -> "FastEnum":
61 singleton: FastEnum = cls.__singletons__.get(value) 2a /b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcR S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 WcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c! # $ % ' ( ) * + , - [c]c^c_c`c{c|c}c~c. adbdcdddedfdgdhdid/ jdkdld: mdndodpd; = ? @ [ ] qd^ _ ` { | } rdsdtdudvdwdxd~ abbbydcbdbzdebfbAdgbBdCdDdEdFdGdHdIdJdKdLdhbMdibNdOdjbkblbmbPdnbobQdRdpbqbrbSdsbTdUdtbubvbc VdWdXdYdk Zd0d1d2d3d4d5d6d7d8d9d!d#d$d%dwb'dxbm yb(dzb)d*d+d,dn -d.d/dd AbBbl :d;d=d?d@d[d]d^d_d`d{d|d}d~daebeceo deeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHee IeJef KeLeg MeNep OePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4eq 5e6er 7e8eh 9e!ei #e$ej %e'e(e)es *e+e,e-e.e/et :e;eu =e?ev @e[ew ]e^e_e`e{e|ex }e~eafbfy cfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfCbDbEbyfzfAfBfCfDfEfFbFfGfHfIfJfKfLfMfNfOfPfQfRfGbSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fz A HbIbJb;f=fKb?fLbMb@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b8g.b9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|gB }gC ~gahbhD chdhehfhghhhihjhE F khlhmhnhohG H phI J K L qhM N rhshthuhO vhP Q whxhyhzhAhBhCh
62 if singleton is None: 2a /b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcR S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 WcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c! # $ % ' ( ) * + , - [c]c^c_c`c{c|c}c~c. adbdcdddedfdgdhdid/ jdkdld: mdndodpd; = ? @ [ ] qd^ _ ` { | } rdsdtdudvdwdxd~ abbbydcbdbzdebfbAdgbBdCdDdEdFdGdHdIdJdKdLdhbMdibNdOdjbkblbmbPdnbobQdRdpbqbrbSdsbTdUdtbubvbc VdWdXdYdk Zd0d1d2d3d4d5d6d7d8d9d!d#d$d%dwb'dxbm yb(dzb)d*d+d,dn -d.d/dd AbBbl :d;d=d?d@d[d]d^d_d`d{d|d}d~daebeceo deeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHee IeJef KeLeg MeNep OePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4eq 5e6er 7e8eh 9e!ei #e$ej %e'e(e)es *e+e,e-e.e/et :e;eu =e?ev @e[ew ]e^e_e`e{e|ex }e~eafbfy cfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfCbDbEbyfzfAfBfCfDfEfFbFfGfHfIfJfKfLfMfNfOfPfQfRfGbSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fz A HbIbJb;f=fKb?fLbMb@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b8g.b9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|gB }gC ~gahbhD chdhehfhghhhihjhE F khlhmhnhohG H phI J K L qhM N rhshthuhO vhP Q whxhyhzhAhBhCh
63 raise ValueError(f"{value} is not a valid {cls.__name__}") 1ckn
64 return singleton 2a /b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcR S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 WcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c! # $ % ' ( ) * + , - [c]c^c_c`c{c|c}c~c. adbdcdddedfdgdhdid/ jdkdld: mdndodpd; = ? @ [ ] qd^ _ ` { | } rdsdtdudvdwdxd~ abbbydcbdbzdebfbAdgbBdCdDdEdFdGdHdIdJdKdLdhbMdibNdOdjbkblbmbPdnbobQdRdpbqbrbSdsbTdUdtbubvbc VdWdXdYdk Zd0d1d2d3d4d5d6d7d8d9d!d#d$d%dwb'dxbm yb(dzb)d*d+d,dn -d.d/dd AbBbl :d;d=d?d@d[d]d^d_d`d{d|d}d~daebeceo deeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHee IeJef KeLeg MeNep OePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4eq 5e6er 7e8eh 9e!ei #e$ej %e'e(e)es *e+e,e-e.e/et :e;eu =e?ev @e[ew ]e^e_e`e{e|ex }e~eafbfy cfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfCbDbEbyfzfAfBfCfDfEfFbFfGfHfIfJfKfLfMfNfOfPfQfRfGbSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fz A HbIbJb;f=fKb?fLbMb@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b8g.b9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|gB }gC ~gahbhD chdhehfhghhhihjhE F khlhmhnhohG H phI J K L qhM N rhshthuhO vhP Q whxhyhzhAhBhCh
66 def __repr__(self) -> str:
67 return f"<{self.__class__.__name__}.{self._name}: {int(self)}>" 2a c m n d AbEho e f g h i j FbFh
69 @property
70 def name(self) -> str:
71 return self._name 2a R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 . GhHhIh~ abbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbc Bbl e f g p q r h i j s t u v w x y z A B C D E F G H I J K L M N O P Q
73 @property
74 def value(self) -> int:
75 return int(self) 2a ! # $ % ' ( ) * + , - JhKhLhMhNhOhPhQh/ RhShThUhVhWh: XhYhZh0h1h2h3h4h; = ? @ 5h[ ] ^ _ ` { | } c wbxbm ybzb6ho e f g p q r h i j s t u v w x y CbDbEbGbz A HbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.bB C D E F G H I J K L M N O P Q