From c1dcce8c2c7161689580b933b8ae0a43202996eb Mon Sep 17 00:00:00 2001 From: codefiles <11915375+codefiles@users.noreply.github.com> Date: Sat, 25 Jul 2026 01:32:22 -0400 Subject: [PATCH] Add constant for path /sys/class/net (#4667) --- archinstall/lib/network/wifi_handler.py | 9 +++------ archinstall/lib/networking.py | 14 +++++++++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/archinstall/lib/network/wifi_handler.py b/archinstall/lib/network/wifi_handler.py index a0a3f05a..7acef9fa 100644 --- a/archinstall/lib/network/wifi_handler.py +++ b/archinstall/lib/network/wifi_handler.py @@ -1,5 +1,4 @@ from dataclasses import dataclass -from pathlib import Path from typing import assert_never, override from archinstall.lib.command import SysCommand @@ -7,6 +6,7 @@ from archinstall.lib.exceptions import SysCallError from archinstall.lib.log import debug from archinstall.lib.models.network import WifiConfiguredNetwork, WifiNetwork from archinstall.lib.network.wpa_supplicant import WpaSupplicantConfig +from archinstall.lib.networking import SYS_NET from archinstall.lib.translationhandler import tr from archinstall.tui.components import ConfirmationScreen, InputScreen, InstanceRunnable, LoadingScreen, NotifyScreen, TableSelectionScreen, tui from archinstall.tui.menu_item import MenuItem, MenuItemGroup @@ -86,11 +86,8 @@ class WifiHandler(InstanceRunnable[bool]): return False def _find_wifi_interface(self) -> str | None: - net_path = Path('/sys/class/net') - - for iface in net_path.iterdir(): - maybe_wireless_path = net_path / iface / 'wireless' - if maybe_wireless_path.is_dir(): + for iface in SYS_NET.iterdir(): + if (iface / 'wireless').is_dir(): return iface.name return None diff --git a/archinstall/lib/networking.py b/archinstall/lib/networking.py index 2c27ea6e..4520732e 100644 --- a/archinstall/lib/networking.py +++ b/archinstall/lib/networking.py @@ -6,8 +6,9 @@ import socket import ssl import struct import time +from pathlib import Path from types import FrameType, TracebackType -from typing import Self +from typing import Final, Self from urllib.error import URLError from urllib.parse import urlencode from urllib.request import urlopen @@ -16,6 +17,8 @@ from archinstall.lib.exceptions import DownloadTimeout, SysCallError from archinstall.lib.log import debug, error, info from archinstall.lib.pacman.pacman import Pacman +SYS_NET: Final = Path('/sys/class/net') + class DownloadTimer: """ @@ -105,13 +108,14 @@ def enrich_iface_types(interfaces: list[str]) -> dict[str, str]: result = {} for iface in interfaces: - if os.path.isdir(f'/sys/class/net/{iface}/bridge/'): + path = SYS_NET / iface + if (path / 'bridge').is_dir(): result[iface] = 'BRIDGE' - elif os.path.isfile(f'/sys/class/net/{iface}/tun_flags'): + elif (path / 'tun_flags').is_file(): # ethtool -i {iface} result[iface] = 'TUN/TAP' - elif os.path.isdir(f'/sys/class/net/{iface}/device'): - if os.path.isdir(f'/sys/class/net/{iface}/wireless/'): + elif (path / 'device').is_dir(): + if (path / 'wireless').is_dir(): result[iface] = 'WIRELESS' else: result[iface] = 'PHYSICAL'