Skip to content

Commit 7eb0d20

Browse files
committed
style: miscellaneous style housekeeping
1 parent 1cff66b commit 7eb0d20

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

nvitop/api/device.py

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,14 @@ def receive(self) -> int | NaType:
189189
return self.rx
190190

191191

192-
_VALUE_OMITTED: str = object() # type: ignore[assignment]
192+
# pylint: disable-next=missing-class-docstring,too-few-public-methods
193+
class ValueOmitted:
194+
def __repr__(self) -> str:
195+
return '<VALUE OMITTED>'
196+
197+
198+
__VALUE_OMITTED: str = ValueOmitted() # type: ignore[assignment]
199+
del ValueOmitted
193200

194201

195202
class Device: # pylint: disable=too-many-instance-attributes,too-many-public-methods
@@ -499,7 +506,7 @@ def from_cuda_indices(
499506

500507
@staticmethod
501508
def parse_cuda_visible_devices(
502-
cuda_visible_devices: str | None = _VALUE_OMITTED,
509+
cuda_visible_devices: str | None = __VALUE_OMITTED,
503510
) -> list[int] | list[tuple[int, int]]:
504511
"""Parse the given ``CUDA_VISIBLE_DEVICES`` value into a list of NVML device indices.
505512
@@ -525,7 +532,7 @@ def parse_cuda_visible_devices(
525532
return parse_cuda_visible_devices(cuda_visible_devices)
526533

527534
@staticmethod
528-
def normalize_cuda_visible_devices(cuda_visible_devices: str | None = _VALUE_OMITTED) -> str:
535+
def normalize_cuda_visible_devices(cuda_visible_devices: str | None = __VALUE_OMITTED) -> str:
529536
"""Parse the given ``CUDA_VISIBLE_DEVICES`` value and convert it into a comma-separated string of UUIDs.
530537
531538
This is an alias of :func:`normalize_cuda_visible_devices`.
@@ -2778,7 +2785,7 @@ def is_mig_device_uuid(uuid: str | None) -> bool:
27782785

27792786

27802787
def parse_cuda_visible_devices(
2781-
cuda_visible_devices: str | None = _VALUE_OMITTED,
2788+
cuda_visible_devices: str | None = __VALUE_OMITTED,
27822789
) -> list[int] | list[tuple[int, int]]:
27832790
"""Parse the given ``CUDA_VISIBLE_DEVICES`` value into a list of NVML device indices.
27842791
@@ -2831,13 +2838,13 @@ def parse_cuda_visible_devices(
28312838
>>> parse_cuda_visible_devices('16') # invalid `CUDA_VISIBLE_DEVICES` (device ordinal out of range)
28322839
[]
28332840
""" # pylint: disable=line-too-long
2834-
if cuda_visible_devices is _VALUE_OMITTED:
2841+
if cuda_visible_devices is __VALUE_OMITTED:
28352842
cuda_visible_devices = os.getenv('CUDA_VISIBLE_DEVICES', default=None)
28362843

28372844
return _parse_cuda_visible_devices(cuda_visible_devices, format='index')
28382845

28392846

2840-
def normalize_cuda_visible_devices(cuda_visible_devices: str | None = _VALUE_OMITTED) -> str:
2847+
def normalize_cuda_visible_devices(cuda_visible_devices: str | None = __VALUE_OMITTED) -> str:
28412848
"""Parse the given ``CUDA_VISIBLE_DEVICES`` value and convert it into a comma-separated string of UUIDs.
28422849
28432850
This function is aliased by :meth:`Device.normalize_cuda_visible_devices`.
@@ -2888,7 +2895,7 @@ def normalize_cuda_visible_devices(cuda_visible_devices: str | None = _VALUE_OMI
28882895
>>> normalize_cuda_visible_devices('16') # invalid `CUDA_VISIBLE_DEVICES` (device ordinal out of range)
28892896
''
28902897
""" # pylint: disable=line-too-long
2891-
if cuda_visible_devices is _VALUE_OMITTED:
2898+
if cuda_visible_devices is __VALUE_OMITTED:
28922899
cuda_visible_devices = os.getenv('CUDA_VISIBLE_DEVICES', default=None)
28932900

28942901
return ','.join(_parse_cuda_visible_devices(cuda_visible_devices, format='uuid'))
@@ -2904,14 +2911,17 @@ class _PhysicalDeviceAttrs(NamedTuple):
29042911
support_mig_mode: bool
29052912

29062913

2907-
_PHYSICAL_DEVICE_ATTRS = None
2908-
_GLOBAL_PHYSICAL_DEVICE = None
2909-
_GLOBAL_PHYSICAL_DEVICE_LOCK = threading.RLock()
2914+
_PHYSICAL_DEVICE_ATTRS: OrderedDict[str, _PhysicalDeviceAttrs] | None = None
2915+
_GLOBAL_PHYSICAL_DEVICE: PhysicalDevice | None = None
2916+
_GLOBAL_PHYSICAL_DEVICE_LOCK: threading.RLock = threading.RLock()
29102917

29112918

2912-
def _get_all_physical_device_attrs() -> dict[str, _PhysicalDeviceAttrs]:
2919+
def _get_all_physical_device_attrs() -> OrderedDict[str, _PhysicalDeviceAttrs]:
29132920
global _PHYSICAL_DEVICE_ATTRS # pylint: disable=global-statement
29142921

2922+
if _PHYSICAL_DEVICE_ATTRS is not None:
2923+
return _PHYSICAL_DEVICE_ATTRS
2924+
29152925
with _GLOBAL_PHYSICAL_DEVICE_LOCK:
29162926
if _PHYSICAL_DEVICE_ATTRS is None:
29172927
_PHYSICAL_DEVICE_ATTRS = OrderedDict(
@@ -3099,7 +3109,7 @@ def strip_identifier(identifier: str) -> str:
30993109

31003110

31013111
def _parse_cuda_visible_devices_to_uuids(
3102-
cuda_visible_devices: str | None = _VALUE_OMITTED,
3112+
cuda_visible_devices: str | None = __VALUE_OMITTED,
31033113
verbose: bool = True,
31043114
) -> list[str]:
31053115
"""Parse the given ``CUDA_VISIBLE_DEVICES`` environment variable in a separate process and return a list of device UUIDs.
@@ -3121,7 +3131,7 @@ def _parse_cuda_visible_devices_to_uuids(
31213131
libcuda.CUDAError:
31223132
If failed to parse the ``CUDA_VISIBLE_DEVICES`` environment variable.
31233133
""" # pylint: disable=line-too-long
3124-
if cuda_visible_devices is _VALUE_OMITTED:
3134+
if cuda_visible_devices is __VALUE_OMITTED:
31253135
cuda_visible_devices = os.getenv('CUDA_VISIBLE_DEVICES', default=None)
31263136

31273137
# Do not inherit file descriptors and handles from the parent process
@@ -3138,10 +3148,7 @@ def _parse_cuda_visible_devices_to_uuids(
31383148
parser.start()
31393149
parser.join()
31403150
finally:
3141-
try:
3142-
parser.kill() # requires Python 3.7+
3143-
except AttributeError:
3144-
pass
3151+
parser.kill()
31453152
result = queue.get()
31463153

31473154
if isinstance(result, Exception):

0 commit comments

Comments
 (0)