pyhw 0.4.0__py3-none-any.whl → 0.4.1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pyhw/__main__.py +4 -0
- pyhw/backend/backendBase.py +1 -0
- pyhw/backend/npu/__init__.py +5 -0
- pyhw/backend/npu/linux.py +42 -0
- pyhw/backend/npu/macos.py +39 -0
- pyhw/backend/npu/npuBase.py +17 -0
- pyhw/backend/npu/npuInfo.py +10 -0
- pyhw/pyhwUtil/pyhwUtil.py +2 -0
- {pyhw-0.4.0.dist-info → pyhw-0.4.1.dist-info}/METADATA +2 -2
- {pyhw-0.4.0.dist-info → pyhw-0.4.1.dist-info}/RECORD +14 -9
- {pyhw-0.4.0.dist-info → pyhw-0.4.1.dist-info}/WHEEL +1 -1
- {pyhw-0.4.0.dist-info → pyhw-0.4.1.dist-info}/LICENSE +0 -0
- {pyhw-0.4.0.dist-info → pyhw-0.4.1.dist-info}/entry_points.txt +0 -0
- {pyhw-0.4.0.dist-info → pyhw-0.4.1.dist-info}/top_level.txt +0 -0
pyhw/__main__.py
CHANGED
@@ -10,6 +10,7 @@ from .backend.cpu import CPUDetect
|
|
10
10
|
from .backend.gpu import GPUDetect
|
11
11
|
from .backend.memory import MemoryDetect
|
12
12
|
from .backend.nic import NICDetect
|
13
|
+
from .backend.npu import NPUDetect
|
13
14
|
from .pyhwUtil import createDataString
|
14
15
|
from .pyhwUtil import getOS, selectOSLogo
|
15
16
|
|
@@ -34,6 +35,9 @@ def main():
|
|
34
35
|
nic_info = NICDetect(os=current_os).getNICInfo()
|
35
36
|
if nic_info.number > 0:
|
36
37
|
data.NIC = nic_info.nics
|
38
|
+
npu_info = NPUDetect(os=current_os).getNPUInfo()
|
39
|
+
if npu_info.number > 0:
|
40
|
+
data.NPU = npu_info.npus
|
37
41
|
|
38
42
|
Printer(logo_os=selectOSLogo(OSDetect(os=current_os).getOSInfo().id), data=createDataString(data)).cPrint()
|
39
43
|
|
pyhw/backend/backendBase.py
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
import subprocess
|
2
|
+
from .npuInfo import NPUInfo
|
3
|
+
from ..cpu import CPUDetect
|
4
|
+
from ...pyhwUtil import getArch
|
5
|
+
import pypci
|
6
|
+
|
7
|
+
|
8
|
+
class NPUDetectLinux:
|
9
|
+
def __init__(self):
|
10
|
+
self.__npuInfo = NPUInfo()
|
11
|
+
|
12
|
+
def getNPUInfo(self):
|
13
|
+
self.__getNPUInfo()
|
14
|
+
self.__sortNPUList()
|
15
|
+
return self.__npuInfo
|
16
|
+
|
17
|
+
def __getNPUInfo(self):
|
18
|
+
npu_devices = pypci.PCI().FindAllNPU()
|
19
|
+
if len(npu_devices) == 0:
|
20
|
+
self.__handleNonePciDevices()
|
21
|
+
else:
|
22
|
+
for device in npu_devices:
|
23
|
+
if device.subsystem_device_name != "":
|
24
|
+
device_name = f"{device.vendor_name} {device.device_name} ({device.subsystem_device_name})"
|
25
|
+
else:
|
26
|
+
device_name = f"{device.vendor_name} {device.device_name}"
|
27
|
+
self.__npuInfo.npus.append(self.__npuNameClean(device_name))
|
28
|
+
self.__npuInfo.number += 1
|
29
|
+
|
30
|
+
def __handleNonePciDevices(self):
|
31
|
+
# Place Holder for unknown NPU
|
32
|
+
self.__npuInfo.number = 1
|
33
|
+
self.__npuInfo.npus.append("Not found")
|
34
|
+
|
35
|
+
@staticmethod
|
36
|
+
def __npuNameClean(npu_name: str):
|
37
|
+
npu_name_clean = npu_name.replace("Corporation ", "")
|
38
|
+
return npu_name_clean
|
39
|
+
|
40
|
+
def __sortNPUList(self):
|
41
|
+
self.__npuInfo.npus.sort()
|
42
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
from .npuInfo import NPUInfo
|
2
|
+
from ...pyhwUtil import getArch
|
3
|
+
import json
|
4
|
+
import subprocess
|
5
|
+
|
6
|
+
|
7
|
+
class NPUDetectMacOS:
|
8
|
+
def __init__(self):
|
9
|
+
self.__npuInfo = NPUInfo()
|
10
|
+
self.__arch = getArch()
|
11
|
+
|
12
|
+
def getNPUInfo(self):
|
13
|
+
if self.__arch == "aarch64":
|
14
|
+
self.__getNPUAppleSilicon()
|
15
|
+
else: # Does not consider powerPC based Macs.
|
16
|
+
self.__getNPUIntel()
|
17
|
+
return self.__npuInfo
|
18
|
+
|
19
|
+
def __getNPUAppleSilicon(self):
|
20
|
+
# Place holder
|
21
|
+
self.__npuInfo.npus.append("Neural Engine [SOC Integrated]")
|
22
|
+
self.__npuInfo.number += 1
|
23
|
+
|
24
|
+
def __getNPUIntel(self):
|
25
|
+
# Place holder
|
26
|
+
self.__npuInfo.npus.append("Not Found")
|
27
|
+
self.__npuInfo.number += 1
|
28
|
+
|
29
|
+
@staticmethod
|
30
|
+
def __handleVendor(vendor):
|
31
|
+
if vendor == "sppci_vendor_Apple":
|
32
|
+
return "Apple"
|
33
|
+
elif vendor == "sppci_vendor_intel":
|
34
|
+
return "Intel"
|
35
|
+
elif vendor == "sppci_vendor_amd":
|
36
|
+
return "AMD"
|
37
|
+
else:
|
38
|
+
return vendor
|
39
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
from .linux import NPUDetectLinux
|
2
|
+
from .macos import NPUDetectMacOS
|
3
|
+
|
4
|
+
|
5
|
+
class NPUDetect:
|
6
|
+
def __init__(self, os):
|
7
|
+
self.OS = os
|
8
|
+
|
9
|
+
def getNPUInfo(self):
|
10
|
+
if self.OS == "linux":
|
11
|
+
return NPUDetectLinux().getNPUInfo()
|
12
|
+
elif self.OS == "macos":
|
13
|
+
return NPUDetectMacOS().getNPUInfo()
|
14
|
+
else:
|
15
|
+
raise NotImplementedError("Unsupported operating system")
|
16
|
+
|
17
|
+
|
pyhw/pyhwUtil/pyhwUtil.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pyhw
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.1
|
4
4
|
Summary: PyHw, a neofetch-like command line tool for fetching system information but written mostly in python.
|
5
5
|
Author-email: Xiao Ran <xiaoran.007@icloud.com>
|
6
6
|
License: BSD-3-Clause
|
@@ -13,7 +13,7 @@ Classifier: Operating System :: OS Independent
|
|
13
13
|
Requires-Python: >=3.9
|
14
14
|
Description-Content-Type: text/markdown
|
15
15
|
License-File: LICENSE
|
16
|
-
Requires-Dist: pypci-ng>=0.0.
|
16
|
+
Requires-Dist: pypci-ng>=0.0.3
|
17
17
|
|
18
18
|
# PyHw
|
19
19
|
[](https://pepy.tech/project/pyhw)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
pyhw/__init__.py,sha256=IMjkMO3twhQzluVTo8Z6rE7Eg-9U79_LGKMcsWLKBkY,22
|
2
|
-
pyhw/__main__.py,sha256=
|
2
|
+
pyhw/__main__.py,sha256=3iVi-P0ciOYQPUrelB48gGOWlzFFkEw8n7MzX1K5Pck,1765
|
3
3
|
pyhw/macos.py,sha256=kF973QvtEFky4m8RnYTJ-HWPuJi3625tvnWqJAT_DHM,4598
|
4
4
|
pyhw/backend/__init__.py,sha256=knn_3Yroow1h0dqdrozk3zyy3vz-kQyNBRjR6OLmVoY,50
|
5
|
-
pyhw/backend/backendBase.py,sha256=
|
5
|
+
pyhw/backend/backendBase.py,sha256=mloo8mPEbgbIdmyQ3I4vdEXMSSjxWi_wnwACmzvHbEo,506
|
6
6
|
pyhw/backend/cpu/__init__.py,sha256=5YfANJVRwNwTRodG0ENOgusrdN592aaSnfq5ok4dKTo,56
|
7
7
|
pyhw/backend/cpu/cpuBase.py,sha256=AGWqVjdvb82NiH4kxk3GERdBLwBNhkR23j2ei_l3S18,464
|
8
8
|
pyhw/backend/cpu/cpuInfo.py,sha256=A_nNGElq9W7oZ5DFJowLdFBE0ZvXKr5h29E6TGAvbRc,251
|
@@ -35,6 +35,11 @@ pyhw/backend/nic/linux.py,sha256=2IDhesM77qLt7QK8HzYiMeLyuKWOVVrrDtkLHs7R6lU,132
|
|
35
35
|
pyhw/backend/nic/macos.py,sha256=Gi-XAf2ZvJcWbwJvTlkpdyKaRDSXXiI2WhISeASxbvc,481
|
36
36
|
pyhw/backend/nic/nicBase.py,sha256=hmVbiPOrDFClQrOBgAUgE8GVkC5nVH280jnlb65CDV4,539
|
37
37
|
pyhw/backend/nic/nicInfo.py,sha256=wuBuL-aIzD441IUDPGz5e0xctcZ-opdpgqkVxgbvZLg,133
|
38
|
+
pyhw/backend/npu/__init__.py,sha256=PgLKbwpgT5vw9xpa294Zxb94McyxNXW46_vMbT2Iqyc,58
|
39
|
+
pyhw/backend/npu/linux.py,sha256=eQLozhGOh3iHoFXdRYp_Fn9OsrmJ7tsyxcOPUvopOSw,1286
|
40
|
+
pyhw/backend/npu/macos.py,sha256=-eoZXMcwiYUeO_ba9lLqWyhV8jmBYkgMi7iMlmVsbeY,1031
|
41
|
+
pyhw/backend/npu/npuBase.py,sha256=6lPYmsOGHO-lT-GqaJ2hNXRV_FLYqguuZ_7L6JJCG-g,411
|
42
|
+
pyhw/backend/npu/npuInfo.py,sha256=82dK6XvW_XKw4O5-RfR4-qQRR7Plh8qqJLj0YDzISmU,135
|
38
43
|
pyhw/backend/os/__init__.py,sha256=rPHQYdQK3qU6ZwwodqVoEWeqBnKffXlJyi4k3-8ViPY,53
|
39
44
|
pyhw/backend/os/linux.py,sha256=UDUSbCMQQJZqfRFHS270u-ZrW4KfqZxcS_vQZl6VbPo,1977
|
40
45
|
pyhw/backend/os/macos.py,sha256=DwgpwRD1a2oTANR_XL3kkMzNawqrt23F79dqBw3ULK8,1906
|
@@ -75,11 +80,11 @@ pyhw/frontend/logo/ascii/ubuntu_small.pyhw,sha256=Xf8LSZdZUu9aEG3efhb1FUlUEuJ-3U
|
|
75
80
|
pyhw/pyhwException/__init__.py,sha256=8JsFvtF13g0Y5t4z9fRndDXtfCzuBM59jDf6PhWSFSk,220
|
76
81
|
pyhw/pyhwException/pyhwException.py,sha256=wxuzFQa9g7XB1q9TUKO_55lw7wMEJMpzG8w1GVTFVa0,197
|
77
82
|
pyhw/pyhwUtil/__init__.py,sha256=PzeP9fXsIhvr3sUpJ4DxW9_H25DEIasBFfXd_NztfR4,226
|
78
|
-
pyhw/pyhwUtil/pyhwUtil.py,sha256=
|
83
|
+
pyhw/pyhwUtil/pyhwUtil.py,sha256=CKXJrt6KGhZCV1J7MjsQ21c_jPmC1I3wZBPCKJfdqbM,2478
|
79
84
|
pyhw/pyhwUtil/sysctlUtil.py,sha256=S-rUvqi7ZrMyMouIhxlyHEQ4agM7sCT1Y7uzs3Hu5-o,841
|
80
|
-
pyhw-0.4.
|
81
|
-
pyhw-0.4.
|
82
|
-
pyhw-0.4.
|
83
|
-
pyhw-0.4.
|
84
|
-
pyhw-0.4.
|
85
|
-
pyhw-0.4.
|
85
|
+
pyhw-0.4.1.dist-info/LICENSE,sha256=hJs6RBqSVCexbTsalkMLNFI5t06kekQEsSVaOt_-yLs,1497
|
86
|
+
pyhw-0.4.1.dist-info/METADATA,sha256=unr5Vf2YvG3dQfGma2Ahm1BzNwC5lGyJdLNbvdNCFng,4136
|
87
|
+
pyhw-0.4.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
88
|
+
pyhw-0.4.1.dist-info/entry_points.txt,sha256=q-AB8im_QahpmNrmy4aPTJRGi0LlbNlnI3kF7s6pKss,44
|
89
|
+
pyhw-0.4.1.dist-info/top_level.txt,sha256=7Inxvxt1TngEricKZEex9_WJZS3DbKYFUXDz4v5WHYU,5
|
90
|
+
pyhw-0.4.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|