pyhw 0.4.0__tar.gz → 0.5.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. {pyhw-0.4.0/src/pyhw.egg-info → pyhw-0.5.0}/PKG-INFO +2 -2
  2. {pyhw-0.4.0 → pyhw-0.5.0}/pyproject.toml +2 -2
  3. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/__main__.py +4 -0
  4. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/backendBase.py +1 -0
  5. pyhw-0.5.0/src/pyhw/backend/nic/macos.py +27 -0
  6. pyhw-0.5.0/src/pyhw/backend/npu/__init__.py +5 -0
  7. pyhw-0.5.0/src/pyhw/backend/npu/linux.py +42 -0
  8. pyhw-0.5.0/src/pyhw/backend/npu/macos.py +39 -0
  9. pyhw-0.5.0/src/pyhw/backend/npu/npuBase.py +17 -0
  10. pyhw-0.5.0/src/pyhw/backend/npu/npuInfo.py +10 -0
  11. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/pyhwUtil/pyhwUtil.py +2 -0
  12. {pyhw-0.4.0 → pyhw-0.5.0/src/pyhw.egg-info}/PKG-INFO +2 -2
  13. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw.egg-info/SOURCES.txt +5 -0
  14. pyhw-0.5.0/src/pyhw.egg-info/requires.txt +1 -0
  15. pyhw-0.4.0/src/pyhw/backend/nic/macos.py +0 -18
  16. pyhw-0.4.0/src/pyhw.egg-info/requires.txt +0 -1
  17. {pyhw-0.4.0 → pyhw-0.5.0}/LICENSE +0 -0
  18. {pyhw-0.4.0 → pyhw-0.5.0}/MANIFEST.in +0 -0
  19. {pyhw-0.4.0 → pyhw-0.5.0}/README.md +0 -0
  20. {pyhw-0.4.0 → pyhw-0.5.0}/setup.cfg +0 -0
  21. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/__init__.py +0 -0
  22. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/__init__.py +0 -0
  23. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/cpu/__init__.py +0 -0
  24. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/cpu/cpuBase.py +0 -0
  25. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/cpu/cpuInfo.py +0 -0
  26. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/cpu/linux.py +0 -0
  27. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/cpu/macos.py +0 -0
  28. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/gpu/__init__.py +0 -0
  29. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/gpu/gpuBase.py +0 -0
  30. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/gpu/gpuInfo.py +0 -0
  31. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/gpu/linux.py +0 -0
  32. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/gpu/macos.py +0 -0
  33. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/host/__init__.py +0 -0
  34. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/host/hostBase.py +0 -0
  35. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/host/hostInfo.py +0 -0
  36. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/host/linux.py +0 -0
  37. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/host/macos.py +0 -0
  38. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/host/windows.py +0 -0
  39. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/kernel/__init__.py +0 -0
  40. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/kernel/kernelBase.py +0 -0
  41. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/kernel/kernelInfo.py +0 -0
  42. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/kernel/unix.py +0 -0
  43. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/kernel/windows.py +0 -0
  44. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/memory/__init__.py +0 -0
  45. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/memory/linux.py +0 -0
  46. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/memory/macos.py +0 -0
  47. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/memory/memoryBase.py +0 -0
  48. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/memory/memoryInfo.py +0 -0
  49. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/metal/t.py +0 -0
  50. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/nic/__init__.py +0 -0
  51. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/nic/linux.py +0 -0
  52. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/nic/nicBase.py +0 -0
  53. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/nic/nicInfo.py +0 -0
  54. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/os/__init__.py +0 -0
  55. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/os/linux.py +0 -0
  56. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/os/macos.py +0 -0
  57. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/os/osBase.py +0 -0
  58. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/os/osInfo.py +0 -0
  59. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/shell/__init__.py +0 -0
  60. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/shell/shellBase.py +0 -0
  61. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/shell/unix.py +0 -0
  62. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/title/__init__.py +0 -0
  63. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/title/titleBase.py +0 -0
  64. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/title/unix.py +0 -0
  65. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/title/windows.py +0 -0
  66. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/uptime/__init__.py +0 -0
  67. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/uptime/linux.py +0 -0
  68. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/uptime/macos.py +0 -0
  69. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/uptime/uptimeBase.py +0 -0
  70. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/backend/uptime/uptimeInfo.py +0 -0
  71. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/__init__.py +0 -0
  72. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/color/__init__.py +0 -0
  73. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/color/colorConfig.py +0 -0
  74. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/color/colorSet.py +0 -0
  75. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/color/colorUtil.py +0 -0
  76. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/frontendBase.py +0 -0
  77. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/__init__.py +0 -0
  78. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/alpine.pyhw +0 -0
  79. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/arch.pyhw +0 -0
  80. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/armbian.pyhw +0 -0
  81. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/centos.pyhw +0 -0
  82. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/debian.pyhw +0 -0
  83. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/fedora.pyhw +0 -0
  84. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/fedora_small.pyhw +0 -0
  85. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/linux.pyhw +0 -0
  86. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/macOS.pyhw +0 -0
  87. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/raspbian.pyhw +0 -0
  88. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/ubuntu.pyhw +0 -0
  89. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/ascii/ubuntu_small.pyhw +0 -0
  90. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/frontend/logo/logoBase.py +0 -0
  91. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/macos.py +0 -0
  92. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/pyhwException/__init__.py +0 -0
  93. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/pyhwException/pyhwException.py +0 -0
  94. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/pyhwUtil/__init__.py +0 -0
  95. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw/pyhwUtil/sysctlUtil.py +0 -0
  96. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw.egg-info/dependency_links.txt +0 -0
  97. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw.egg-info/entry_points.txt +0 -0
  98. {pyhw-0.4.0 → pyhw-0.5.0}/src/pyhw.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyhw
3
- Version: 0.4.0
3
+ Version: 0.5.0
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.1
16
+ Requires-Dist: pypci-ng>=0.0.3
17
17
 
18
18
  # PyHw
19
19
  [![Downloads](https://static.pepy.tech/badge/pyhw)](https://pepy.tech/project/pyhw)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pyhw"
7
- version = "0.4.0"
7
+ version = "0.5.0"
8
8
  description = "PyHw, a neofetch-like command line tool for fetching system information but written mostly in python."
9
9
  keywords = ["neofetch", "system information", "command line tool", "python", "hardware information", "fastfetch", "fetching"]
10
10
  authors = [
@@ -14,7 +14,7 @@ readme = "README.md"
14
14
  license = {text = "BSD-3-Clause"}
15
15
  requires-python = ">=3.9"
16
16
  dependencies = [
17
- "pypci-ng>=0.0.1"
17
+ "pypci-ng>=0.0.3"
18
18
  ]
19
19
  classifiers = [
20
20
  "Development Status :: 4 - Beta",
@@ -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
 
@@ -20,3 +20,4 @@ class Data:
20
20
  GPU = ["Default Value"]
21
21
  Memory = "Default Value"
22
22
  NIC = ["Default Value"]
23
+ NPU = ["Default Value"]
@@ -0,0 +1,27 @@
1
+ from .nicInfo import NICInfo
2
+ import subprocess
3
+
4
+
5
+ class NICDetectMacOS:
6
+ def __init__(self):
7
+ self.__nicInfo = NICInfo()
8
+
9
+ def getNICInfo(self):
10
+ self.__getNICInfo()
11
+ return self.__nicInfo
12
+
13
+ def __getNICInfo(self):
14
+ # Placeholder for a more advanced method.
15
+ try:
16
+ interface = subprocess.run(["bash", "-c", "route get default | grep interface"], capture_output=True, text=True).stdout.strip().split(":")[1]
17
+ if_ip = subprocess.run(["bash", "-c", f"ipconfig getifaddr {interface}"], capture_output=True, text=True).stdout.strip()
18
+ self.__nicInfo.nics.append(f"{interface} @ {if_ip}")
19
+ self.__nicInfo.number += 1
20
+ except:
21
+ self.__handleError()
22
+
23
+ def __handleError(self):
24
+ self.__nicInfo.nics.append("en0")
25
+ self.__nicInfo.number = 1
26
+
27
+
@@ -0,0 +1,5 @@
1
+ from .npuBase import NPUDetect
2
+
3
+ __all__ = ['NPUDetect']
4
+
5
+
@@ -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("Apple 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
+
@@ -0,0 +1,10 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class NPUInfo:
6
+ def __init__(self):
7
+ self.number = 0
8
+ self.npus = []
9
+
10
+
@@ -53,6 +53,8 @@ def createDataString(data: Data):
53
53
  data_string += f" Memory: {data.Memory}\n"
54
54
  for nic in data.NIC:
55
55
  data_string += f" NIC: {nic}\n"
56
+ for npu in data.NPU:
57
+ data_string += f" NPU: {npu}\n"
56
58
  return data_string
57
59
 
58
60
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyhw
3
- Version: 0.4.0
3
+ Version: 0.5.0
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.1
16
+ Requires-Dist: pypci-ng>=0.0.3
17
17
 
18
18
  # PyHw
19
19
  [![Downloads](https://static.pepy.tech/badge/pyhw)](https://pepy.tech/project/pyhw)
@@ -45,6 +45,11 @@ src/pyhw/backend/nic/linux.py
45
45
  src/pyhw/backend/nic/macos.py
46
46
  src/pyhw/backend/nic/nicBase.py
47
47
  src/pyhw/backend/nic/nicInfo.py
48
+ src/pyhw/backend/npu/__init__.py
49
+ src/pyhw/backend/npu/linux.py
50
+ src/pyhw/backend/npu/macos.py
51
+ src/pyhw/backend/npu/npuBase.py
52
+ src/pyhw/backend/npu/npuInfo.py
48
53
  src/pyhw/backend/os/__init__.py
49
54
  src/pyhw/backend/os/linux.py
50
55
  src/pyhw/backend/os/macos.py
@@ -0,0 +1 @@
1
+ pypci-ng>=0.0.3
@@ -1,18 +0,0 @@
1
- from .nicInfo import NICInfo
2
- import subprocess
3
-
4
-
5
- class NICDetectMacOS:
6
- def __init__(self):
7
- self.__nicInfo = NICInfo()
8
-
9
- def getNICInfo(self):
10
- self.__nicInfo.nics.append("en0")
11
- self.__nicInfo.number = 1
12
- return self.__nicInfo
13
-
14
- def __getNICInfo(self):
15
- # Placeholder for a more advanced method.
16
- interfaces = subprocess.run(["bash", "-c", "route get default | grep interface"], capture_output=True, text=True).stdout.strip()
17
-
18
-
@@ -1 +0,0 @@
1
- pypci-ng>=0.0.1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes