pyhw 0.3.5__tar.gz → 0.3.7__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. {pyhw-0.3.5/src/pyhw.egg-info → pyhw-0.3.7}/PKG-INFO +1 -1
  2. {pyhw-0.3.5 → pyhw-0.3.7}/pyproject.toml +1 -1
  3. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/__main__.py +4 -0
  4. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/backendBase.py +1 -0
  5. pyhw-0.3.7/src/pyhw/backend/nic/__init__.py +4 -0
  6. pyhw-0.3.7/src/pyhw/backend/nic/linux.py +43 -0
  7. pyhw-0.3.7/src/pyhw/backend/nic/macos.py +11 -0
  8. pyhw-0.3.7/src/pyhw/backend/nic/nicBase.py +20 -0
  9. pyhw-0.3.7/src/pyhw/backend/nic/nicInfo.py +8 -0
  10. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwUtil/pyhwUtil.py +2 -0
  11. {pyhw-0.3.5 → pyhw-0.3.7/src/pyhw.egg-info}/PKG-INFO +1 -1
  12. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/SOURCES.txt +5 -0
  13. {pyhw-0.3.5 → pyhw-0.3.7}/LICENSE +0 -0
  14. {pyhw-0.3.5 → pyhw-0.3.7}/MANIFEST.in +0 -0
  15. {pyhw-0.3.5 → pyhw-0.3.7}/README.md +0 -0
  16. {pyhw-0.3.5 → pyhw-0.3.7}/setup.cfg +0 -0
  17. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/__init__.py +0 -0
  18. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/__init__.py +0 -0
  19. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/__init__.py +0 -0
  20. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/cpuBase.py +0 -0
  21. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/cpuInfo.py +0 -0
  22. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/linux.py +0 -0
  23. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/macos.py +0 -0
  24. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/__init__.py +0 -0
  25. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/gpuBase.py +0 -0
  26. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/gpuInfo.py +0 -0
  27. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/linux.py +0 -0
  28. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/macos.py +0 -0
  29. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/__init__.py +0 -0
  30. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/hostBase.py +0 -0
  31. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/hostInfo.py +0 -0
  32. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/linux.py +0 -0
  33. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/macos.py +0 -0
  34. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/windows.py +0 -0
  35. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/__init__.py +0 -0
  36. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/kernelBase.py +0 -0
  37. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/kernelInfo.py +0 -0
  38. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/unix.py +0 -0
  39. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/windows.py +0 -0
  40. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/__init__.py +0 -0
  41. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/linux.py +0 -0
  42. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/macos.py +0 -0
  43. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/memoryBase.py +0 -0
  44. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/memoryInfo.py +0 -0
  45. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/metal/t.py +0 -0
  46. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/__init__.py +0 -0
  47. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/linux.py +0 -0
  48. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/macos.py +0 -0
  49. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/osBase.py +0 -0
  50. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/osInfo.py +0 -0
  51. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/shell/__init__.py +0 -0
  52. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/shell/shellBase.py +0 -0
  53. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/shell/unix.py +0 -0
  54. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/__init__.py +0 -0
  55. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/titleBase.py +0 -0
  56. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/unix.py +0 -0
  57. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/windows.py +0 -0
  58. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/__init__.py +0 -0
  59. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/linux.py +0 -0
  60. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/macos.py +0 -0
  61. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/uptimeBase.py +0 -0
  62. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/uptimeInfo.py +0 -0
  63. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/__init__.py +0 -0
  64. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/__init__.py +0 -0
  65. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/colorConfig.py +0 -0
  66. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/colorSet.py +0 -0
  67. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/colorUtil.py +0 -0
  68. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/frontendBase.py +0 -0
  69. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/__init__.py +0 -0
  70. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/alpine.pyhw +0 -0
  71. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/arch.pyhw +0 -0
  72. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/armbian.pyhw +0 -0
  73. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/centos.pyhw +0 -0
  74. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/debian.pyhw +0 -0
  75. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/fedora.pyhw +0 -0
  76. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/fedora_small.pyhw +0 -0
  77. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/linux.pyhw +0 -0
  78. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/macOS.pyhw +0 -0
  79. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/raspbian.pyhw +0 -0
  80. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/ubuntu.pyhw +0 -0
  81. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/ubuntu_small.pyhw +0 -0
  82. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/logoBase.py +0 -0
  83. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/macos.py +0 -0
  84. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwException/__init__.py +0 -0
  85. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwException/pyhwException.py +0 -0
  86. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwUtil/__init__.py +0 -0
  87. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwUtil/sysctlUtil.py +0 -0
  88. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/dependency_links.txt +0 -0
  89. {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/entry_points.txt +0 -0
  90. {pyhw-0.3.5 → pyhw-0.3.7}/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.3.5
3
+ Version: 0.3.7
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pyhw"
7
- version = "0.3.5"
7
+ version = "0.3.7"
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 = [
@@ -9,6 +9,7 @@ from .backend.os import OSDetect
9
9
  from .backend.cpu import CPUDetect
10
10
  from .backend.gpu import GPUDetect
11
11
  from .backend.memory import MemoryDetect
12
+ from .backend.nic import NICDetect
12
13
  from .pyhwUtil import createDataString
13
14
  from .pyhwUtil import getOS, selectOSLogo
14
15
 
@@ -30,6 +31,9 @@ def main():
30
31
  if gpu_info.number > 0:
31
32
  data.GPU = gpu_info.gpus
32
33
  data.Memory = MemoryDetect(os=current_os).getMemoryInfo().memory
34
+ nic_info = NICDetect(os=current_os).getNICInfo()
35
+ if nic_info.number > 0:
36
+ data.NIC = nic_info.nics
33
37
 
34
38
  Printer(logo_os=selectOSLogo(OSDetect(os=current_os).getOSInfo().id), data=createDataString(data)).cPrint()
35
39
 
@@ -19,3 +19,4 @@ class Data:
19
19
  CPU = "Default Value"
20
20
  GPU = ["Default Value"]
21
21
  Memory = "Default Value"
22
+ NIC = ["Default Value"]
@@ -0,0 +1,4 @@
1
+ from .nicBase import NICDetect
2
+
3
+
4
+ __all__ = ["NICDetect"]
@@ -0,0 +1,43 @@
1
+ import subprocess
2
+ from .nicInfo import NICInfo
3
+ from ...pyhwUtil import getArch
4
+ from ...pyhwException import BackendException
5
+
6
+
7
+ class NICDetectLinux:
8
+ def __init__(self):
9
+ self.__nicInfo = NICInfo()
10
+
11
+ def getNICInfo(self):
12
+ self.__getNICInfo()
13
+ self.__sortNICList()
14
+ return self.__nicInfo
15
+
16
+ def __getNICInfo(self):
17
+ try:
18
+ pci_info = subprocess.run(["bash", "-c", "lspci"], capture_output=True, text=True).stdout.strip()
19
+ except subprocess.SubprocessError:
20
+ return
21
+ if len(pci_info) == 0: # no pcie devices found
22
+ self.__handleNonePciDevices()
23
+ return
24
+ for line in pci_info.split("\n"):
25
+ if "Ethernet controller" in line or "Network controller" in line:
26
+ nic = line.split(": ")[1]
27
+ self.__nicInfo.nics.append(self.__nicNameClean(nic))
28
+ self.__nicInfo.number += 1
29
+ if self.__nicInfo.number == 0:
30
+ self.__handleNonePciDevices() # fallback to usb detection method
31
+
32
+ def __handleNonePciDevices(self):
33
+ # placeholder for a more advanced method.
34
+ self.__nicInfo.nics.append("Not found")
35
+ self.__nicInfo.number = 1
36
+
37
+ @staticmethod
38
+ def __nicNameClean(nic_name: str):
39
+ nic_name_clean = nic_name.replace("Corporation ", "")
40
+ return nic_name_clean
41
+
42
+ def __sortNICList(self):
43
+ return self.__nicInfo.nics.sort()
@@ -0,0 +1,11 @@
1
+ from .nicInfo import NICInfo
2
+
3
+
4
+ class NICDetectMacOS:
5
+ def __init__(self):
6
+ self.__nicInfo = NICInfo()
7
+
8
+ def getNICInfo(self):
9
+ self.__nicInfo.nics.append("en0")
10
+ self.__nicInfo.number = 1
11
+ return self.__nicInfo
@@ -0,0 +1,20 @@
1
+ from .linux import NICDetectLinux
2
+ from .macos import NICDetectMacOS
3
+
4
+
5
+ class NICDetect:
6
+ """
7
+ Class for network interface (NIC) detection.
8
+ """
9
+ def __init__(self, os):
10
+ self.OS = os
11
+
12
+ def getNICInfo(self):
13
+ """
14
+ Detects the network interfaces (NICs) connected to the system.
15
+ :return: dataclass NICInfo, direct attr: nics
16
+ """
17
+ if self.OS == "linux":
18
+ return NICDetectLinux().getNICInfo()
19
+ elif self.OS == "macos":
20
+ return NICDetectMacOS().getNICInfo()
@@ -0,0 +1,8 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class NICInfo:
6
+ def __init__(self):
7
+ self.number = 0
8
+ self.nics = []
@@ -51,6 +51,8 @@ def createDataString(data: Data):
51
51
  for gpu in data.GPU:
52
52
  data_string += f" GPU: {gpu}\n"
53
53
  data_string += f" Memory: {data.Memory}\n"
54
+ for nic in data.NIC:
55
+ data_string += f" NIC: {nic}\n"
54
56
  return data_string
55
57
 
56
58
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyhw
3
- Version: 0.3.5
3
+ Version: 0.3.7
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
@@ -39,6 +39,11 @@ src/pyhw/backend/memory/macos.py
39
39
  src/pyhw/backend/memory/memoryBase.py
40
40
  src/pyhw/backend/memory/memoryInfo.py
41
41
  src/pyhw/backend/metal/t.py
42
+ src/pyhw/backend/nic/__init__.py
43
+ src/pyhw/backend/nic/linux.py
44
+ src/pyhw/backend/nic/macos.py
45
+ src/pyhw/backend/nic/nicBase.py
46
+ src/pyhw/backend/nic/nicInfo.py
42
47
  src/pyhw/backend/os/__init__.py
43
48
  src/pyhw/backend/os/linux.py
44
49
  src/pyhw/backend/os/macos.py
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