nvidiautils 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@dataclass(order=True, frozen=True)
|
|
5
|
+
class DriverVersion:
|
|
6
|
+
x: int
|
|
7
|
+
y: int
|
|
8
|
+
z: int
|
|
9
|
+
|
|
10
|
+
@classmethod
|
|
11
|
+
def from_string(cls, s):
|
|
12
|
+
msg = "Malformed driver version"
|
|
13
|
+
parts = s.split(".")
|
|
14
|
+
if len(parts) != 3:
|
|
15
|
+
raise ValueError(msg)
|
|
16
|
+
for i in range(len(parts)):
|
|
17
|
+
try:
|
|
18
|
+
parts[i] = int(parts[i])
|
|
19
|
+
except ValueError:
|
|
20
|
+
raise ValueError(msg) from None
|
|
21
|
+
return cls(*parts)
|
|
22
|
+
|
|
23
|
+
def __str__(self):
|
|
24
|
+
return f"{self.x:d}.{self.y:02d}.{self.z:02d}"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@dataclass(order=True, frozen=True)
|
|
28
|
+
class CudaVersionWithUpdate:
|
|
29
|
+
major: int
|
|
30
|
+
minor: int
|
|
31
|
+
update: int
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def from_string(cls, s):
|
|
35
|
+
msg = "Malformed driver version"
|
|
36
|
+
parts = s.split(".")
|
|
37
|
+
if len(parts) != 3:
|
|
38
|
+
raise ValueError(msg)
|
|
39
|
+
for i in range(len(parts)):
|
|
40
|
+
try:
|
|
41
|
+
parts[i] = int(parts[i])
|
|
42
|
+
except ValueError:
|
|
43
|
+
raise ValueError(msg) from None
|
|
44
|
+
return cls(*parts)
|
|
45
|
+
|
|
46
|
+
def __str__(self):
|
|
47
|
+
return f"{self.major:d}.{self.minor:d}.{self.update:d}"
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@dataclass(frozen=True)
|
|
51
|
+
class DriverDockerImageTag:
|
|
52
|
+
version: DriverVersion
|
|
53
|
+
os: str
|
|
54
|
+
|
|
55
|
+
@classmethod
|
|
56
|
+
def from_string(cls, s):
|
|
57
|
+
msg = "Malformed driver Docker image tag"
|
|
58
|
+
parts = s.split("-", 1)
|
|
59
|
+
if len(parts) != 2:
|
|
60
|
+
raise ValueError(msg)
|
|
61
|
+
version, os = parts
|
|
62
|
+
try:
|
|
63
|
+
version = DriverVersion.from_string(version)
|
|
64
|
+
except ValueError:
|
|
65
|
+
raise ValueError(msg)
|
|
66
|
+
if not any(os.startswith(e) for e in ("ubuntu", "centos", "rhcos", "rhel")):
|
|
67
|
+
raise ValueError(msg)
|
|
68
|
+
return cls(version, os)
|
|
69
|
+
|
|
70
|
+
def __str__(self):
|
|
71
|
+
return f"{self.version!s:s}-{self.os:s}"
|