pyhw 0.12.0__py3-none-any.whl → 0.12.2__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.12.0'
1
+ __version__ = '0.12.2'
2
2
  __author__ = 'xiaoran007'
pyhw/backend/gpu/macos.py CHANGED
@@ -63,6 +63,10 @@ class GPUDetectMacOS:
63
63
  lib.getGPUInfo.restype = ctypes.c_char_p
64
64
  gpu_info = lib.getGPUInfo()
65
65
  gpus = gpu_info.decode('utf-8').split("; ")
66
+ # if the first element is "Error", it means that the library failed to get the GPU info
67
+ # Fall back to the default implementation
68
+ if gpus[0] == "Error":
69
+ return False
66
70
  self.__gpuInfo.number = len(gpus)
67
71
  for gpu in gpus:
68
72
  info_list = gpu.split(", ")
@@ -1,7 +1,4 @@
1
- """
2
- In dev.
3
- """
4
- from ...pyhwUtil import getArch, getDocker
1
+ from ...pyhwUtil import getArch, getDocker, getWSL
5
2
  from .hostInfo import HostInfo
6
3
  import os
7
4
 
@@ -11,6 +8,7 @@ class HostDetectLinux:
11
8
  self._hostInfo = HostInfo()
12
9
  self._arch = getArch()
13
10
  self._docker = getDocker()
11
+ self._wsl = getWSL()
14
12
 
15
13
  def getHostInfo(self):
16
14
  self._getModel()
@@ -21,6 +19,10 @@ class HostDetectLinux:
21
19
  self._hostInfo.name = f"General {self._arch} Docker Host"
22
20
  self._hostInfo.version = ""
23
21
  self._hostInfo.model = self._hostInfo.name + " " + self._hostInfo.version
22
+ if self._wsl:
23
+ self._hostInfo.name = f"Windows WSL {self._arch} Host"
24
+ self._hostInfo.version = ""
25
+ self._hostInfo.model = self._hostInfo.name + " " + self._hostInfo.version
24
26
  else:
25
27
  if self._arch in ["x86_64", "x86"]:
26
28
  try:
@@ -26,6 +26,10 @@ class HostDetectMacOS:
26
26
  lib.getHostInfo.restype = ctypes.c_char_p
27
27
  host_info = lib.getHostInfo()
28
28
  product_name = host_info.decode('utf-8').split("; ")
29
+ # If the first element is "Error", it means that the library failed to get the product name.
30
+ # Fall back to sysctl.
31
+ if product_name[0] == "Error":
32
+ return False
29
33
  self.__hostInfo.model = product_name[0]
30
34
  return True
31
35
  except Exception as e:
pyhw/pyhwUtil/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
- from .pyhwUtil import getOS, getArch, getDocker, createDataString, selectOSLogo
1
+ from .pyhwUtil import getOS, getArch, getDocker, getWSL, createDataString, selectOSLogo
2
2
  from .sysctlUtil import sysctlGetString, sysctlGetInt
3
3
  from .cliUtil import ReleaseChecker
4
4
 
5
- __all__ = ["getOS", "getArch", "getDocker", "createDataString", "selectOSLogo", "sysctlGetString", "sysctlGetInt", "ReleaseChecker"]
5
+ __all__ = ["getOS", "getArch", "getDocker", "getWSL", "createDataString", "selectOSLogo", "sysctlGetString", "sysctlGetInt", "ReleaseChecker"]
pyhw/pyhwUtil/pyhwUtil.py CHANGED
@@ -51,6 +51,22 @@ def getDocker() -> bool:
51
51
  return os.path.exists("/.dockerenv")
52
52
 
53
53
 
54
+ def getWSL() -> bool:
55
+ """
56
+ Check if the current environment is running in Windows Subsystem for Linux.
57
+ :return: bool, True if running in WSL, False otherwise.
58
+ """
59
+ try:
60
+ result = subprocess.run(['uname', '-r'], capture_output=True, text=True)
61
+ version = result.stdout.strip()
62
+ if "WSL" in version or "microsoft" in version:
63
+ return True
64
+ else:
65
+ return False
66
+ except subprocess.SubprocessError:
67
+ return False
68
+
69
+
54
70
  class DataStringProcessor:
55
71
  def __init__(self, data: Data):
56
72
  self.data = data
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: pyhw
3
- Version: 0.12.0
3
+ Version: 0.12.2
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>
@@ -15,6 +15,7 @@ Requires-Python: >=3.9
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Requires-Dist: pypci-ng>=0.2.2
18
+ Dynamic: license-file
18
19
 
19
20
  # PyHw
20
21
  [![Downloads](https://static.pepy.tech/badge/pyhw)](https://pepy.tech/project/pyhw)
@@ -1,4 +1,4 @@
1
- pyhw/__init__.py,sha256=1Nlmoo_j_4-q3SPtcXRtyStFAWAOmvM8GbKrDECw-7c,49
1
+ pyhw/__init__.py,sha256=1QLfcahq49a_qUvq04gBcKIq8vXdWeRvqxzFXc6ou4g,49
2
2
  pyhw/__main__.py,sha256=oZpFtvSyYTM8cMsulvi51zJV0gtmw3OCQVdgoaHbtxc,4977
3
3
  pyhw/backend/__init__.py,sha256=knn_3Yroow1h0dqdrozk3zyy3vz-kQyNBRjR6OLmVoY,50
4
4
  pyhw/backend/backendBase.py,sha256=mloo8mPEbgbIdmyQ3I4vdEXMSSjxWi_wnwACmzvHbEo,506
@@ -14,14 +14,14 @@ pyhw/backend/gpu/bsd.py,sha256=hNFiCek770CXOh3DK3I3-g272-a1S5D7LolGJBsLXaU,124
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
16
  pyhw/backend/gpu/linux.py,sha256=M6pRlu3GREMw1Gm7MA-dY_yYI94MliHW3tyS8JjMw5Q,1617
17
- pyhw/backend/gpu/macos.py,sha256=6p5Sxs2eN4ffWVx3nnpmfWmXVsuMRbp11TGcZOk-Zhg,3850
17
+ pyhw/backend/gpu/macos.py,sha256=s-GZk_Q7K58nSOYuOIAYLRvLafwHyQtsWrPVe3CuXac,4068
18
18
  pyhw/backend/gpu/windows.py,sha256=Hv-vtWQGKv6_Nxc8raEBq7NNm5TR6xg6x6BK3Aa2uP4,1249
19
19
  pyhw/backend/host/__init__.py,sha256=Efaj7-Oya7H8HdpZHQCLrwn-mcfPb-d6yfh4dzsE_7I,58
20
20
  pyhw/backend/host/bsd.py,sha256=9gKnM6yysHBKwS3EQvb0pCeylh3dzHvoEuPe14zo9wQ,382
21
21
  pyhw/backend/host/hostBase.py,sha256=gM49SY6rEaxec_0bUOMk7QlEfR7vjfWp3BXEUqgdncc,762
22
22
  pyhw/backend/host/hostInfo.py,sha256=grz15M2t3f_enqQvc7Qn6HlEfYwa66bu2NYvm8VpJ-g,452
23
- pyhw/backend/host/linux.py,sha256=aU-tWTI2Wjg1HCx2lGFenoaiM94axutXmL7Auu8ilhM,2925
24
- pyhw/backend/host/macos.py,sha256=Ax3LVz1iYgm1G2XMWYEvhI4s6hLDYyaOn34NyhGZaxE,16083
23
+ pyhw/backend/host/linux.py,sha256=xvbZrwlKN--tKMf4_YyN20cGTSIcV5yLG3Gez7M15Pk,3157
24
+ pyhw/backend/host/macos.py,sha256=RgDjvi8RsAs9i-bHkcSdK--TaeyaxYzLXFZFMl8T6Eo,16295
25
25
  pyhw/backend/host/windows.py,sha256=qn2QiTK2wIijyyw_QKdiSizY3teyS-9RNBu5RxEPRSw,1185
26
26
  pyhw/backend/kernel/__init__.py,sha256=fGjwjpOhwA_PnsWbwoq102hwhTay2ufYKaTqxjSV2-I,65
27
27
  pyhw/backend/kernel/kernelBase.py,sha256=3ZmkRkvwoWk3R-by2cgBlZnMSQzVjTC8Owmv53Pm4II,539
@@ -109,13 +109,13 @@ pyhw/library/lib/iokitHostLib.dylib,sha256=0sdPRA-dtogsgPEgb-VN32on6oIJMT9PmRZ0w
109
109
  pyhw/library/test/iokitHostLibTest.py,sha256=oz5x1g4WMdoikU3Eo6zoxcHZ4e-UMRhXg0C0Lflo-ac,272
110
110
  pyhw/pyhwException/__init__.py,sha256=8JsFvtF13g0Y5t4z9fRndDXtfCzuBM59jDf6PhWSFSk,220
111
111
  pyhw/pyhwException/pyhwException.py,sha256=wxuzFQa9g7XB1q9TUKO_55lw7wMEJMpzG8w1GVTFVa0,197
112
- pyhw/pyhwUtil/__init__.py,sha256=34ygvVBBqfJ_9OMzHToCcV_BVahixNsa_Z5yh6VsaPQ,304
112
+ pyhw/pyhwUtil/__init__.py,sha256=KA7Bo0Equm5kKAE22mfTiRIJzCphZhT-K9YeWiR4e0k,322
113
113
  pyhw/pyhwUtil/cliUtil.py,sha256=42Gdi9wTg5XOYuEvGHEgOaZJ6dJk1qSuHIprR8pCA-g,2344
114
- pyhw/pyhwUtil/pyhwUtil.py,sha256=RokrE7X99pkS0LtN4wyJS_ZQmjtMwiNxA7MwXMoO96c,7664
114
+ pyhw/pyhwUtil/pyhwUtil.py,sha256=9xiZ5_32-mR5HwiL8RUjkgGhzCWyASPsYl7D_8P0N6c,8152
115
115
  pyhw/pyhwUtil/sysctlUtil.py,sha256=S-rUvqi7ZrMyMouIhxlyHEQ4agM7sCT1Y7uzs3Hu5-o,841
116
- pyhw-0.12.0.dist-info/LICENSE,sha256=hJs6RBqSVCexbTsalkMLNFI5t06kekQEsSVaOt_-yLs,1497
117
- pyhw-0.12.0.dist-info/METADATA,sha256=mfp6kau--LwlCWXgX50udCY88uqeQMtq73bLM04QNMU,6753
118
- pyhw-0.12.0.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
119
- pyhw-0.12.0.dist-info/entry_points.txt,sha256=q-AB8im_QahpmNrmy4aPTJRGi0LlbNlnI3kF7s6pKss,44
120
- pyhw-0.12.0.dist-info/top_level.txt,sha256=7Inxvxt1TngEricKZEex9_WJZS3DbKYFUXDz4v5WHYU,5
121
- pyhw-0.12.0.dist-info/RECORD,,
116
+ pyhw-0.12.2.dist-info/licenses/LICENSE,sha256=hJs6RBqSVCexbTsalkMLNFI5t06kekQEsSVaOt_-yLs,1497
117
+ pyhw-0.12.2.dist-info/METADATA,sha256=WN4x-ulpxcKhcyd1PyqfkEtfyXP8dfez1N7Cbz1_qZU,6775
118
+ pyhw-0.12.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
119
+ pyhw-0.12.2.dist-info/entry_points.txt,sha256=q-AB8im_QahpmNrmy4aPTJRGi0LlbNlnI3kF7s6pKss,44
120
+ pyhw-0.12.2.dist-info/top_level.txt,sha256=7Inxvxt1TngEricKZEex9_WJZS3DbKYFUXDz4v5WHYU,5
121
+ pyhw-0.12.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5