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.
- {pyhw-0.3.5/src/pyhw.egg-info → pyhw-0.3.7}/PKG-INFO +1 -1
- {pyhw-0.3.5 → pyhw-0.3.7}/pyproject.toml +1 -1
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/__main__.py +4 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/backendBase.py +1 -0
- pyhw-0.3.7/src/pyhw/backend/nic/__init__.py +4 -0
- pyhw-0.3.7/src/pyhw/backend/nic/linux.py +43 -0
- pyhw-0.3.7/src/pyhw/backend/nic/macos.py +11 -0
- pyhw-0.3.7/src/pyhw/backend/nic/nicBase.py +20 -0
- pyhw-0.3.7/src/pyhw/backend/nic/nicInfo.py +8 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwUtil/pyhwUtil.py +2 -0
- {pyhw-0.3.5 → pyhw-0.3.7/src/pyhw.egg-info}/PKG-INFO +1 -1
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/SOURCES.txt +5 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/LICENSE +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/MANIFEST.in +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/README.md +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/setup.cfg +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/cpuBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/cpuInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/linux.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/cpu/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/gpuBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/gpuInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/linux.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/gpu/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/hostBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/hostInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/linux.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/host/windows.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/kernelBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/kernelInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/unix.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/kernel/windows.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/linux.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/memoryBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/memory/memoryInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/metal/t.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/linux.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/osBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/os/osInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/shell/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/shell/shellBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/shell/unix.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/titleBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/unix.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/title/windows.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/linux.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/uptimeBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/backend/uptime/uptimeInfo.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/colorConfig.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/colorSet.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/color/colorUtil.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/frontendBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/alpine.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/arch.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/armbian.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/centos.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/debian.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/fedora.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/fedora_small.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/linux.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/macOS.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/raspbian.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/ubuntu.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/ascii/ubuntu_small.pyhw +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/frontend/logo/logoBase.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/macos.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwException/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwException/pyhwException.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwUtil/__init__.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw/pyhwUtil/sysctlUtil.py +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/dependency_links.txt +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/entry_points.txt +0 -0
- {pyhw-0.3.5 → pyhw-0.3.7}/src/pyhw.egg-info/top_level.txt +0 -0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "pyhw"
|
7
|
-
version = "0.3.
|
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
|
|
@@ -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,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()
|
@@ -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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|