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

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. 

5 

6 

7""" 

8This is a replacement for the stdlib enum.IntEnum. 

9 

10Notably, it has much better import time performance, since it doesn't generate 

11and evaluate Python code at startup time. 

12 

13It supports the most important subset of the IntEnum API. See `test_enum` in 

14`cuda_bindings/tests/test_basics.py` for details. 

15""" 

16 

17from typing import Any, Iterator 

18 

19 

20class FastEnumMetaclass(type): 

21 def __init__(cls, name, bases, namespace): 

22 super().__init__(name, bases, namespace) 1ab

23 

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

29 

30 if isinstance(value, tuple): 1ab

31 value, doc = value 1ab

32 elif isinstance(value, int): 

33 doc = None 

34 else: 

35 continue 

36 

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

42 

43 for name, member in cls.__members__.items(): 1ab

44 setattr(cls, name, member) 1ab

45 

46 def __repr__(cls) -> str: 

47 return f"<enum '{cls.__name__}'>" 1c

48 

49 def __len__(cls) -> int: 

50 return len(cls.__members__) 1cd

51 

52 def __iter__(cls) -> Iterator["FastEnum"]: 

53 return iter(cls.__members__.values()) 2a c k d l Dh

54 

55 def __contains__(cls, item: Any) -> bool: 

56 return item in cls.__singletons__ 1c

57 

58 

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

65 

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

68 

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

72 

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