Coverage for cuda / bindings / _internal / _fast_enum.py: 100.00%

43 statements  

« prev     ^ index     » next       coverage.py v7.14.0, created at 2026-05-22 01:37 +0000

1# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 

2# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE 

3 

4 

5# This code was automatically generated across versions from 12.9.1 to 13.2.0, generator version 0.3.1.dev1422+gf4812259e.d20260318. Do not modify it directly. 

6 

7 

8""" 

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

10 

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

12and evaluate Python code at startup time. 

13 

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

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

16""" 

17 

18from typing import Any, Iterator 

19 

20 

21class FastEnumMetaclass(type): 

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

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

24 

25 cls.__singletons__ = {} 1ab

26 cls.__members__ = {} 1ab

27 for name, value in cls.__dict__.items(): 1ab

28 if name.startswith("__") and name.endswith("__"): 1ab

29 continue 1ab

30 

31 if isinstance(value, tuple): 1ab

32 value, doc = value 1ab

33 elif isinstance(value, int): 

34 doc = None 

35 else: 

36 continue 

37 

38 singleton = int.__new__(cls, value) 1ab

39 singleton.__doc__ = doc 1ab

40 singleton._name = name 1ab

41 cls.__singletons__[value] = singleton 1ab

42 cls.__members__[name] = singleton 1ab

43 

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

45 setattr(cls, name, member) 1ab

46 

47 def __repr__(cls) -> str: 

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

49 

50 def __len__(cls) -> int: 

51 return len(cls.__members__) 1cd

52 

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

54 return iter(cls.__members__.values()) 2a c k d l xh

55 

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

57 return item in cls.__singletons__ 1c

58 

59 

60class FastEnum(int, metaclass=FastEnumMetaclass): 

61 def __new__(cls, value: int) -> "FastEnum": 

62 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. ~cadbdcdddedfdgdhd/ idjdkd: ldmdnd; odpdqd= ? @ [ rd] ^ sdtd_ ` { | } ~ udvdwdxdydabzdbbAdcbBddbebCdfbDdgbEdFdGdHdIdJdKdLdMdNdhbOdibPdQdjbRdkblbmbnbobSdTdpbqbrbUdsbVdWdtbubvbc XdYdZdk 0d1d2d3d4d5d6d7d8d9d!d#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~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 cfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfCbDbEbyfzfAfBfCfDfFbEfFfGfHfIfJfKfLfMfNfOfGbPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!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{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4gNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b5g.b6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^gB _gC `g{g|gD }g~gahbhchdhehfhE F ghhhihjhkhG H I J K L M N lhmhnhohO P Q phqhrhshthuhvhwh

63 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. ~cadbdcdddedfdgdhd/ idjdkd: ldmdnd; odpdqd= ? @ [ rd] ^ sdtd_ ` { | } ~ udvdwdxdydabzdbbAdcbBddbebCdfbDdgbEdFdGdHdIdJdKdLdMdNdhbOdibPdQdjbRdkblbmbnbobSdTdpbqbrbUdsbVdWdtbubvbc XdYdZdk 0d1d2d3d4d5d6d7d8d9d!d#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~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 cfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfCbDbEbyfzfAfBfCfDfFbEfFfGfHfIfJfKfLfMfNfOfGbPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!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{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4gNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b5g.b6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^gB _gC `g{g|gD }g~gahbhchdhehfhE F ghhhihjhkhG H I J K L M N lhmhnhohO P Q phqhrhshthuhvhwh

64 raise ValueError(f"{value} is not a valid {cls.__name__}") 1ckn

65 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. ~cadbdcdddedfdgdhd/ idjdkd: ldmdnd; odpdqd= ? @ [ rd] ^ sdtd_ ` { | } ~ udvdwdxdydabzdbbAdcbBddbebCdfbDdgbEdFdGdHdIdJdKdLdMdNdhbOdibPdQdjbRdkblbmbnbobSdTdpbqbrbUdsbVdWdtbubvbc XdYdZdk 0d1d2d3d4d5d6d7d8d9d!d#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~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 cfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfCbDbEbyfzfAfBfCfDfFbEfFfGfHfIfJfKfLfMfNfOfGbPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!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{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4gNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b5g.b6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^gB _gC `g{g|gD }g~gahbhchdhehfhE F ghhhihjhkhG H I J K L M N lhmhnhohO P Q phqhrhshthuhvhwh

66 

67 def __repr__(self) -> str: 

68 return f"<{self.__class__.__name__}.{self._name}: {int(self)}>" 2a c m n d Abyho e f g h i j Fbzh

69 

70 @property 

71 def name(self) -> str: 

72 return self._name 2R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 . AhBhChabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbc 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 

74 @property 

75 def value(self) -> int: 

76 return int(self) 2! # $ % ' ( ) * + , - DhEhFhGhHhIhJhKh/ LhMhNhOhPhQh: RhShThUhVhWh; = Xh? @ [ Yh] ^ _ ` { | } ~ c wbxbm ybzbZho 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