pyhw 0.13.3__py3-none-any.whl → 0.14.0__py3-none-any.whl

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.
pyhw/__init__.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = '0.13.3'
1
+ __version__ = '0.14.0'
2
2
  __author__ = 'xiaoran007'
pyhw/__main__.py CHANGED
@@ -16,6 +16,27 @@ from .pyhwUtil import getOS, selectOSLogo
16
16
  from .pyhwUtil import ReleaseChecker
17
17
  from .frontend.color import colorPrefix, colorSuffix, ColorSet
18
18
  import multiprocessing
19
+ import argparse
20
+ import time
21
+ import functools
22
+
23
+
24
+ def timed_function(func):
25
+ @functools.wraps(func)
26
+ def wrapper(debug_info, os, result_dict):
27
+ if not debug_info.get('debug', False):
28
+ return func(debug_info, os, result_dict)
29
+
30
+ start_time = time.time()
31
+ result = func(debug_info, os, result_dict)
32
+ elapsed = time.time() - start_time
33
+ debug_dict = debug_info.get('debug_dict', {})
34
+ if debug_dict is not None:
35
+ debug_dict[func.__name__] = elapsed
36
+ return result
37
+
38
+ wrapper.__module__ = func.__module__
39
+ return wrapper
19
40
 
20
41
 
21
42
  def check_release(release_dict):
@@ -26,57 +47,90 @@ def check_release(release_dict):
26
47
  release_dict["is_in_pipx"] = releaseChecker.isInPIPX
27
48
 
28
49
 
29
- def detect_title(os, result_dict):
50
+ @timed_function
51
+ def detect_title(debug_info, os, result_dict):
30
52
  result_dict["title"] = TitleDetect(os=os).getTitle().title
31
53
 
32
54
 
33
- def detect_host(os, result_dict):
55
+ @timed_function
56
+ def detect_host(debug_info, os, result_dict):
34
57
  result_dict["Host"] = HostDetect(os=os).getHostInfo().model
35
58
 
36
59
 
37
- def detect_kernel(os, result_dict):
60
+ @timed_function
61
+ def detect_kernel(debug_info, os, result_dict):
38
62
  result_dict["Kernel"] = KernelDetect(os=os).getKernelInfo().kernel
39
63
 
40
64
 
41
- def detect_shell(os, result_dict):
65
+ @timed_function
66
+ def detect_shell(debug_info, os, result_dict):
42
67
  result_dict["Shell"] = ShellDetect(os=os).getShellInfo().info
43
68
 
44
69
 
45
- def detect_uptime(os, result_dict):
70
+ @timed_function
71
+ def detect_uptime(debug_info, os, result_dict):
46
72
  result_dict["Uptime"] = UptimeDetect(os=os).getUptime().uptime
47
73
 
48
74
 
49
- def detect_os(os, result_dict):
75
+ @timed_function
76
+ def detect_os(debug_info, os, result_dict):
50
77
  result_dict["OS"] = OSDetect(os=os).getOSInfo().prettyName
51
78
 
52
79
 
53
- def detect_cpu(os, result_dict):
80
+ @timed_function
81
+ def detect_cpu(debug_info, os, result_dict):
54
82
  result_dict["CPU"] = CPUDetect(os=os).getCPUInfo().cpu
55
83
 
56
84
 
57
- def detect_gpu(os, result_dict):
85
+ @timed_function
86
+ def detect_gpu(debug_info, os, result_dict):
58
87
  gpu_info = GPUDetect(os=os).getGPUInfo()
59
88
  if gpu_info.number > 0:
60
89
  result_dict["GPU"] = gpu_info.gpus
61
90
 
62
91
 
63
- def detect_memory(os, result_dict):
92
+ @timed_function
93
+ def detect_memory(debug_info, os, result_dict):
64
94
  result_dict["Memory"] = MemoryDetect(os=os).getMemoryInfo().memory
65
95
 
66
96
 
67
- def detect_nic(os, result_dict):
97
+ @timed_function
98
+ def detect_nic(debug_info, os, result_dict):
68
99
  nic_info = NICDetect(os=os).getNICInfo()
69
100
  if nic_info.number > 0:
70
101
  result_dict["NIC"] = nic_info.nics
71
102
 
72
103
 
73
- def detect_npu(os, result_dict):
104
+ @timed_function
105
+ def detect_npu(debug_info, os, result_dict):
74
106
  npu_info = NPUDetect(os=os).getNPUInfo()
75
107
  if npu_info.number > 0:
76
108
  result_dict["NPU"] = npu_info.npus
77
109
 
78
110
 
111
+ @timed_function
112
+ def detect_pci_related(debug_info, os, result_dict):
113
+ detect_gpu(debug_info, os, result_dict)
114
+ detect_nic(debug_info, os, result_dict)
115
+ detect_npu(debug_info, os, result_dict)
116
+
117
+
118
+ def print_version():
119
+ releaseChecker = ReleaseChecker(only_local=True)
120
+ print(f"pyhw v{releaseChecker.CurrentVersion}")
121
+
122
+
79
123
  def main():
124
+ parser = argparse.ArgumentParser(description='PyHw, a neofetch-like command line tool for fetching system information')
125
+ parser.add_argument('-v', '--version', action='store_true', help='Print version information and exit')
126
+ parser.add_argument('-d', '--debug', action='store_true', help='Run in debug mode')
127
+
128
+ args = parser.parse_args()
129
+
130
+ if args.version:
131
+ print_version()
132
+ return
133
+
80
134
  current_os = getOS()
81
135
  if current_os not in ["linux", "macos", "freebsd", "windows"]:
82
136
  print(f"Only Linux, macOS, FreeBSD, and Windows are supported for now. Current OS: {current_os}")
@@ -87,34 +141,48 @@ def main():
87
141
  manager = multiprocessing.Manager()
88
142
  result_dict = manager.dict()
89
143
  release_dict = manager.dict()
144
+ debug_dict = manager.dict() if args.debug else None
145
+ debug_info = {'debug': args.debug, 'debug_dict': debug_dict}
90
146
 
91
147
  processes = [
92
148
  multiprocessing.Process(target=check_release, args=(release_dict,)),
93
- multiprocessing.Process(target=detect_title, args=(current_os, result_dict)),
94
- multiprocessing.Process(target=detect_host, args=(current_os, result_dict)),
95
- multiprocessing.Process(target=detect_kernel, args=(current_os, result_dict)),
96
- multiprocessing.Process(target=detect_shell, args=(current_os, result_dict)),
97
- multiprocessing.Process(target=detect_uptime, args=(current_os, result_dict)),
98
- multiprocessing.Process(target=detect_os, args=(current_os, result_dict)),
99
- multiprocessing.Process(target=detect_cpu, args=(current_os, result_dict)),
100
- multiprocessing.Process(target=detect_gpu, args=(current_os, result_dict)),
101
- multiprocessing.Process(target=detect_memory, args=(current_os, result_dict)),
102
- multiprocessing.Process(target=detect_nic, args=(current_os, result_dict)),
103
- multiprocessing.Process(target=detect_npu, args=(current_os, result_dict)),
149
+ multiprocessing.Process(target=detect_title, args=(debug_info, current_os, result_dict)),
150
+ multiprocessing.Process(target=detect_host, args=(debug_info, current_os, result_dict)),
151
+ multiprocessing.Process(target=detect_kernel, args=(debug_info, current_os, result_dict)),
152
+ multiprocessing.Process(target=detect_shell, args=(debug_info, current_os, result_dict)),
153
+ multiprocessing.Process(target=detect_uptime, args=(debug_info, current_os, result_dict)),
154
+ multiprocessing.Process(target=detect_os, args=(debug_info, current_os, result_dict)),
155
+ multiprocessing.Process(target=detect_cpu, args=(debug_info, current_os, result_dict)),
156
+ multiprocessing.Process(target=detect_memory, args=(debug_info, current_os, result_dict)),
157
+ multiprocessing.Process(target=detect_pci_related, args=(debug_info, current_os, result_dict)),
104
158
  ]
105
159
 
160
+ start_time = time.time()
106
161
  for process in processes:
107
162
  process.start()
108
163
 
109
164
  for process in processes[1:]:
110
165
  process.join()
111
166
 
167
+ total_time = time.time() - start_time
168
+
112
169
  for key, value in result_dict.items():
113
170
  setattr(data, key, value)
114
171
 
115
172
  logo_os = selectOSLogo(OSDetect(os=current_os).getOSInfo().id)
116
173
  Printer(logo_os=logo_os, data=createDataString(data)).cPrint()
117
174
 
175
+ if args.debug:
176
+ print("\n" + "="*50)
177
+ print(f"🔍 DEBUG MODE: Timing Information")
178
+ print("="*50)
179
+ for func_name, elapsed in debug_dict.items():
180
+ detection_name = func_name.replace("detect_", "")
181
+ print(f"{detection_name:<10}: {elapsed:.4f} s")
182
+ print("-"*50)
183
+ print(f"Total execution time: {total_time:.4f} s")
184
+ print("="*50)
185
+
118
186
  timeout = 3
119
187
  processes[0].join(timeout)
120
188
  if processes[0].is_alive():
pyhw/backend/gpu/linux.py CHANGED
@@ -1,8 +1,8 @@
1
1
  from .gpuInfo import GPUInfo
2
2
  from ..cpu import CPUDetect
3
3
  from ...pyhwUtil import getArch
4
+ from ...pyhwUtil import PCIManager
4
5
  from pathlib import Path
5
- import pypci
6
6
  import ctypes
7
7
 
8
8
 
@@ -17,7 +17,7 @@ class GPUDetectLinux:
17
17
  return self.__gpuInfo
18
18
 
19
19
  def __getGPUInfo(self):
20
- gpu_devices = pypci.PCI().FindAllVGA()
20
+ gpu_devices = PCIManager.get_instance().FindAllVGA()
21
21
  if len(gpu_devices) == 0:
22
22
  self.__handleNonePciDevices()
23
23
  else:
@@ -1,5 +1,5 @@
1
1
  from .gpuInfo import GPUInfo
2
- import pypci
2
+ from ...pyhwUtil import PCIManager
3
3
 
4
4
 
5
5
  class GPUDetectWindows:
@@ -12,7 +12,7 @@ class GPUDetectWindows:
12
12
  return self.__gpuInfo
13
13
 
14
14
  def __getGPUInfo(self):
15
- gpu_devices = pypci.PCI().FindAllVGA()
15
+ gpu_devices = PCIManager.get_instance().FindAllVGA()
16
16
  if len(gpu_devices) == 0:
17
17
  self.__handleNonePciDevices()
18
18
  else:
pyhw/backend/nic/linux.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import subprocess
2
2
  from .nicInfo import NICInfo
3
- import pypci
3
+ from ...pyhwUtil import PCIManager
4
4
  import os
5
5
 
6
6
 
@@ -14,7 +14,7 @@ class NICDetectLinux:
14
14
  return self._nicInfo
15
15
 
16
16
  def _getNICInfo(self):
17
- nic_devices = pypci.PCI().FindAllNIC()
17
+ nic_devices = PCIManager.get_instance().FindAllNIC()
18
18
  if len(nic_devices) == 0:
19
19
  self.__handleNonePciDevices()
20
20
  else:
@@ -1,5 +1,5 @@
1
1
  from .nicInfo import NICInfo
2
- import pypci
2
+ from ...pyhwUtil import PCIManager
3
3
 
4
4
 
5
5
  class NICDetectWindows:
@@ -12,7 +12,7 @@ class NICDetectWindows:
12
12
  return self._nicInfo
13
13
 
14
14
  def _getNICInfo(self):
15
- nic_devices = pypci.PCI().FindAllNIC()
15
+ nic_devices = PCIManager.get_instance().FindAllNIC()
16
16
  if len(nic_devices) == 0:
17
17
  self.__handleNonePciDevices()
18
18
  else:
pyhw/backend/npu/linux.py CHANGED
@@ -1,5 +1,5 @@
1
1
  from .npuInfo import NPUInfo
2
- import pypci
2
+ from ...pyhwUtil import PCIManager
3
3
  import os
4
4
 
5
5
 
@@ -13,7 +13,7 @@ class NPUDetectLinux:
13
13
  return self._npuInfo
14
14
 
15
15
  def _getNPUInfo(self):
16
- npu_devices = pypci.PCI().FindAllNPU()
16
+ npu_devices = PCIManager.get_instance().FindAllNPU()
17
17
  if len(npu_devices) == 0:
18
18
  self._handleNonePciDevices()
19
19
  else:
@@ -1,5 +1,5 @@
1
1
  from .npuInfo import NPUInfo
2
- import pypci
2
+ from ...pyhwUtil import PCIManager
3
3
 
4
4
 
5
5
  class NPUDetectWindows:
@@ -12,7 +12,7 @@ class NPUDetectWindows:
12
12
  return self._npuInfo
13
13
 
14
14
  def _getNPUInfo(self):
15
- npu_devices = pypci.PCI().FindAllNPU()
15
+ npu_devices = PCIManager.get_instance().FindAllNPU()
16
16
  if len(npu_devices) == 0:
17
17
  self._handleNonePciDevices()
18
18
  else:
pyhw/backend/os/macos.py CHANGED
@@ -10,14 +10,15 @@ class OSDetectMacOS:
10
10
  self.__ProductVersion = ""
11
11
  self.__BuildVersion = ""
12
12
  self.__VersionName = ""
13
+ self.__Arch = self.__handleOSArch()
13
14
 
14
15
  def getOSInfo(self):
15
16
  self.__getOS()
16
17
  self.__handelOSName()
17
18
  if self.__VersionName != "":
18
- self.__osInfo.prettyName = f"{self.__ProductName} {self.__VersionName} {self.__ProductVersion} {self.__BuildVersion} {getArch()}"
19
+ self.__osInfo.prettyName = f"{self.__ProductName} {self.__VersionName} {self.__ProductVersion} {self.__BuildVersion} {self.__Arch}"
19
20
  else:
20
- self.__osInfo.prettyName = f"{self.__ProductName} {self.__ProductVersion} {self.__BuildVersion} {getArch()}"
21
+ self.__osInfo.prettyName = f"{self.__ProductName} {self.__ProductVersion} {self.__BuildVersion} {self.__Arch}"
21
22
  self.__osInfo.id = "macOS"
22
23
  return self.__osInfo
23
24
 
@@ -51,3 +52,11 @@ class OSDetectMacOS:
51
52
  version_name = macOSVersionMap.get(major, "")
52
53
  if version_name != "":
53
54
  self.__VersionName = version_name
55
+
56
+ @staticmethod
57
+ def __handleOSArch():
58
+ arch = getArch()
59
+ if arch == "aarch64":
60
+ return "arm64"
61
+ else:
62
+ return arch
pyhw/pyhwUtil/__init__.py CHANGED
@@ -1,6 +1,16 @@
1
1
  from .pyhwUtil import getOS, getArch, getDocker, getWSL, createDataString, selectOSLogo
2
2
  from .sysctlUtil import sysctlGetString, sysctlGetInt
3
3
  from .cliUtil import ReleaseChecker
4
+ from .pciUtil import PCIManager
4
5
 
5
6
 
6
- __all__ = ["getOS", "getArch", "getDocker", "getWSL", "createDataString", "selectOSLogo", "sysctlGetString", "sysctlGetInt", "ReleaseChecker"]
7
+ __all__ = ["getOS",
8
+ "getArch",
9
+ "getDocker",
10
+ "getWSL",
11
+ "createDataString",
12
+ "selectOSLogo",
13
+ "sysctlGetString",
14
+ "sysctlGetInt",
15
+ "ReleaseChecker",
16
+ "PCIManager"]
pyhw/pyhwUtil/cliUtil.py CHANGED
@@ -12,13 +12,16 @@ class ReleaseChecker:
12
12
  """
13
13
  PACKAGE_NAME = "pyhw"
14
14
 
15
- def __init__(self):
15
+ def __init__(self, only_local=False):
16
16
  """
17
17
  Initialize the ReleaseChecker.
18
18
  """
19
19
  self.isInPIPX = self.__is_running_in_pipx()
20
20
  self.CurrentVersion = self.__get_installed_version()
21
- self.LatestVersion = self.__get_latest_version()
21
+ if only_local:
22
+ self.LatestVersion = self.CurrentVersion
23
+ else:
24
+ self.LatestVersion = self.__get_latest_version()
22
25
 
23
26
  @staticmethod
24
27
  def __is_running_in_pipx():
@@ -0,0 +1,11 @@
1
+ import pypci
2
+
3
+
4
+ class PCIManager:
5
+ _instance = None
6
+
7
+ @classmethod
8
+ def get_instance(cls):
9
+ if cls._instance is None:
10
+ cls._instance = pypci.PCI()
11
+ return cls._instance
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyhw
3
- Version: 0.13.3
3
+ Version: 0.14.0
4
4
  Summary: PyHw, a neofetch-like command line tool for fetching system information but written mostly in python.
5
5
  Author: Xiao Ran
6
6
  Maintainer-email: Xiao Ran <xiaoran.007@icloud.com>
@@ -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.2.5
16
+ Requires-Dist: pypci-ng>=0.2.6
17
17
  Dynamic: license-file
18
18
 
19
19
  # PyHw, a neofetch-like system information fetching tool
@@ -1,5 +1,5 @@
1
- pyhw/__init__.py,sha256=za6jqyhmoHDFAJSHbaF-79R53cqRwMb3numElj1GevI,49
2
- pyhw/__main__.py,sha256=oZpFtvSyYTM8cMsulvi51zJV0gtmw3OCQVdgoaHbtxc,4977
1
+ pyhw/__init__.py,sha256=wekZosg4xD4li2TOfMDXcyEbSvONAIkGLEbCumUyDLA,49
2
+ pyhw/__main__.py,sha256=_8lT1XlZNR71daSu1IWs5befhb8wocCT4xIx2aMp-1Q,7168
3
3
  pyhw/backend/__init__.py,sha256=X1D1D28lSojDrUzUolgJvmbuctwBh_UxG3FwUeL8adA,51
4
4
  pyhw/backend/backendBase.py,sha256=mloo8mPEbgbIdmyQ3I4vdEXMSSjxWi_wnwACmzvHbEo,506
5
5
  pyhw/backend/cpu/__init__.py,sha256=5YfANJVRwNwTRodG0ENOgusrdN592aaSnfq5ok4dKTo,56
@@ -13,9 +13,9 @@ pyhw/backend/gpu/__init__.py,sha256=EpMjPvUaXt0LTNMvGmB8WgXbUB9keCxuOhu8NT3Re6o,
13
13
  pyhw/backend/gpu/bsd.py,sha256=ladMMIlTwb6Z1ETCLFII--lkeLCp50Wb7WFrlOXa5DQ,123
14
14
  pyhw/backend/gpu/gpuBase.py,sha256=ZPT9o7PhYpzlwign0GsCT519F9DGx-1UEMVVOM8MV_k,748
15
15
  pyhw/backend/gpu/gpuInfo.py,sha256=d_z_z5DiZAg85wP0VOBQEU0QHdaK3qFqA2Tp9Eq8-Zs,133
16
- pyhw/backend/gpu/linux.py,sha256=2UaTih2JrUKA5K-ZYZdx6oXdBHW3zkt1bnD9ZV5PKcg,3113
16
+ pyhw/backend/gpu/linux.py,sha256=myapmOCsfjBxSmXxGt33bCIN18ko5lNDKcNWQ1Vlhcg,3149
17
17
  pyhw/backend/gpu/macos.py,sha256=s-GZk_Q7K58nSOYuOIAYLRvLafwHyQtsWrPVe3CuXac,4068
18
- pyhw/backend/gpu/windows.py,sha256=9VlObAdcOXJyFFxHKHSnFdL07xiGZHNHwn6C843TfNg,1170
18
+ pyhw/backend/gpu/windows.py,sha256=kMCQmk_NLXus45iHM9eKYOno_LPBW1GsrwUy1v5ar3Q,1206
19
19
  pyhw/backend/host/__init__.py,sha256=OmlSGjg3crlFcGz2FhBDyd35R7H0rriy3eq57y8h0_s,59
20
20
  pyhw/backend/host/bsd.py,sha256=xePlHfVYv7PSWMU1a7mTbMK3mzl2ssttkI13Xi5s00w,381
21
21
  pyhw/backend/host/hostBase.py,sha256=gM49SY6rEaxec_0bUOMk7QlEfR7vjfWp3BXEUqgdncc,762
@@ -37,22 +37,22 @@ pyhw/backend/memory/memoryInfo.py,sha256=OQF165uEyuapAsi7cKacQYDRnKdrQHeldfyFwzS
37
37
  pyhw/backend/memory/windows.py,sha256=ISihGHBnV8iD4Xj8_kelFSCydPu05CYKxG5q_wM5ZbA,1201
38
38
  pyhw/backend/nic/__init__.py,sha256=eP4eOYIvMF3LcTf954hJa6TnB8R4Qahss2g-UcgypKY,57
39
39
  pyhw/backend/nic/bsd.py,sha256=6nj7XXII5dRz3FGRYAXVgTt0vSgyQo0Re9JA1vlcnuw,134
40
- pyhw/backend/nic/linux.py,sha256=99k_AJI46wRZ2TQOike2suOeI3eiVEfAve_G4Pyyq5s,1967
40
+ pyhw/backend/nic/linux.py,sha256=e6gX58RBE9IDKb0FrzZ7U2EhDNfGJsR6OvXq6qO5ZOc,2003
41
41
  pyhw/backend/nic/macos.py,sha256=J1hO7FxpQpi98Kx9EmUf5Q4_GxE8xMvb6R5Ok861V8E,853
42
42
  pyhw/backend/nic/nicBase.py,sha256=Kng5qoe7FHcnQaf6S-LUe_HyOaBJe0L1SVstdIQ_WJY,962
43
43
  pyhw/backend/nic/nicInfo.py,sha256=wuBuL-aIzD441IUDPGz5e0xctcZ-opdpgqkVxgbvZLg,133
44
- pyhw/backend/nic/windows.py,sha256=78a-7SsZFaXgNZ29QAMzDWYBIOZMLVsM5bAaX6Bs5hs,1189
44
+ pyhw/backend/nic/windows.py,sha256=4yJ0pmiXokegLEC299WLwqiW9uHAgaiVpkR2vCuzECg,1225
45
45
  pyhw/backend/npu/__init__.py,sha256=GP8IxlDyt0NWg70S8w-WWej4uVXY6eQwE0fMWFSVZPU,57
46
46
  pyhw/backend/npu/bsd.py,sha256=eKkOWZ4MBybR_KOGGcsWUpzCGgghhvuBy5VNsnEE8cI,134
47
- pyhw/backend/npu/linux.py,sha256=fPsaXClSC-Py2kHRi17y4eGWrjwRDmjsIX4lgMxRVPc,1806
47
+ pyhw/backend/npu/linux.py,sha256=fLq3tPs1EUtTBYhFrh_10uRR8bouy7Cb0voWwz1GQbw,1842
48
48
  pyhw/backend/npu/macos.py,sha256=JBmqZAbGTPzCxpUVmlPBNoluLClXnQDHJwhC2Qqp3v4,2665
49
49
  pyhw/backend/npu/npuBase.py,sha256=1cVWRmr8g-mDXrJAx2cUO4qWZft2TtT7L2-HzRot2nI,748
50
50
  pyhw/backend/npu/npuInfo.py,sha256=WCr8y1zVrIk1rVgU6PG509nn0wxxRPV14F9_VRngT3k,133
51
- pyhw/backend/npu/windows.py,sha256=jyTZiSqKzfyKRbzS-SgGxx0dKoHwo8gr8BlwBlxR58o,1194
51
+ pyhw/backend/npu/windows.py,sha256=NRzIdb1akFXh3rhThUaKE-7q3n9wkDIeVd9o2Od_LRw,1230
52
52
  pyhw/backend/os/__init__.py,sha256=RMKN332tsAhn_EiReoCq9NOmp4po5uZyaGNzpKS_ZZs,54
53
53
  pyhw/backend/os/bsd.py,sha256=RtRh_8tKHCVikGwhKGXSDqM9sqbCJJQehJMEmZ9kJOs,130
54
54
  pyhw/backend/os/linux.py,sha256=SbwNLMAUr3exJY54nmSuVkZAtOxWDVFNsS55pAO8x4k,1937
55
- pyhw/backend/os/macos.py,sha256=WsB0y1Q5cmT4RMLyMGffJFoHHIkdQ6ZKZM09_rMC854,1905
55
+ pyhw/backend/os/macos.py,sha256=zlqXhX8Hjh7rkeFwgcT8ekXzTGa_1R6nYjgFkQrpcTk,2118
56
56
  pyhw/backend/os/osBase.py,sha256=2zaOGhaXLrNJS9-9qR4hH9_uFTgA2Sv4ab7YZvNVFaE,744
57
57
  pyhw/backend/os/osInfo.py,sha256=NEr76aicI9N3SFrwi1skcpUEjzsyCryTjdE9X1nBjBM,536
58
58
  pyhw/backend/os/windows.py,sha256=4qTYaQY19BiCIpmtHkp53yvChuYzlDmynbgICwHyfl8,1468
@@ -113,13 +113,14 @@ pyhw/library/test/iokitHostLibTest.py,sha256=oz5x1g4WMdoikU3Eo6zoxcHZ4e-UMRhXg0C
113
113
  pyhw/library/test/nvmlGPULibTest.py,sha256=F4AjQGZDNj29fRtxvy41zCSFi2Eirp0CQSYuxuw0n60,785
114
114
  pyhw/pyhwException/__init__.py,sha256=juw4PdgPa-eLy0y678BQ7_Ck-BJa-P0LHyKCGePazb8,221
115
115
  pyhw/pyhwException/pyhwException.py,sha256=wxuzFQa9g7XB1q9TUKO_55lw7wMEJMpzG8w1GVTFVa0,197
116
- pyhw/pyhwUtil/__init__.py,sha256=n3jWo-q-jSouXvUHMg45DOHS5xLRG64E02A9rDQb44M,323
117
- pyhw/pyhwUtil/cliUtil.py,sha256=_zNrhzQvrtqUp6xyZ0JTs_KyL1wvLji-nBmU65XA1aI,2342
116
+ pyhw/pyhwUtil/__init__.py,sha256=sfUSG2jnSsa8SIk1P9174PgCAYewjE1TyzBxxPNkGsA,468
117
+ pyhw/pyhwUtil/cliUtil.py,sha256=IUcWun5nDwQb20Qe8YefS5j3Jji8a-F41Qd9QwCf0h0,2454
118
+ pyhw/pyhwUtil/pciUtil.py,sha256=WAluDRDb-gUbqhvSIusFzPrf6r98EkrNEAwbPyMwrTc,202
118
119
  pyhw/pyhwUtil/pyhwUtil.py,sha256=V3M6X9eTirwnwwRiSJaLUWrZKZYMbRihARJVQc879P8,8364
119
120
  pyhw/pyhwUtil/sysctlUtil.py,sha256=S-rUvqi7ZrMyMouIhxlyHEQ4agM7sCT1Y7uzs3Hu5-o,841
120
- pyhw-0.13.3.dist-info/licenses/LICENSE,sha256=hJs6RBqSVCexbTsalkMLNFI5t06kekQEsSVaOt_-yLs,1497
121
- pyhw-0.13.3.dist-info/METADATA,sha256=3FkBeXJM-w9cvoBYb9io5HK87HUzApFsf_ZHsRB-vbU,7715
122
- pyhw-0.13.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
123
- pyhw-0.13.3.dist-info/entry_points.txt,sha256=q-AB8im_QahpmNrmy4aPTJRGi0LlbNlnI3kF7s6pKss,44
124
- pyhw-0.13.3.dist-info/top_level.txt,sha256=7Inxvxt1TngEricKZEex9_WJZS3DbKYFUXDz4v5WHYU,5
125
- pyhw-0.13.3.dist-info/RECORD,,
121
+ pyhw-0.14.0.dist-info/licenses/LICENSE,sha256=hJs6RBqSVCexbTsalkMLNFI5t06kekQEsSVaOt_-yLs,1497
122
+ pyhw-0.14.0.dist-info/METADATA,sha256=co8MwLUl3T4B4RFO1Wy1_OFnqFVC0XL6h80cz2zbNsc,7715
123
+ pyhw-0.14.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
+ pyhw-0.14.0.dist-info/entry_points.txt,sha256=q-AB8im_QahpmNrmy4aPTJRGi0LlbNlnI3kF7s6pKss,44
125
+ pyhw-0.14.0.dist-info/top_level.txt,sha256=7Inxvxt1TngEricKZEex9_WJZS3DbKYFUXDz4v5WHYU,5
126
+ pyhw-0.14.0.dist-info/RECORD,,
File without changes