Skip to content

Commit 59b235f

Browse files
authored
Merge pull request #4 from jaraco/feature/devices-darwine
Add macOS support for devices
2 parents 4884c8c + 698a6c9 commit 59b235f

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

CHANGES.rst

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
v9.2.0
2+
======
3+
4+
#4: Added support for macOS to ``jaraco.net.devices``.
5+
16
v9.1.0
27
======
38

conftest.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import sys
22
import importlib
3-
import platform
43

54
from jaraco.context import ExceptionTrap
65

@@ -17,11 +16,8 @@ def pywin32_missing():
1716
[
1817
'jaraco/net/devices/linux.py',
1918
'jaraco/net/devices/win32.py',
19+
'jaraco/net/devices/darwin.py',
2020
]
21-
+ [
22-
'jaraco/net/devices/__init__.py',
23-
]
24-
* (platform.system() == 'Darwin')
2521
+ [
2622
# modules only import on Windows
2723
'jaraco/net/dns.py',

jaraco/net/devices/darwin.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import subprocess
2+
import operator
3+
4+
import ifconfigparser
5+
6+
from .base import BaseManager
7+
8+
9+
def if_config():
10+
cfg = subprocess.check_output(['ifconfig'], text=True)
11+
return ifconfigparser.IfconfigParser(cfg)
12+
13+
14+
class Manager(BaseManager):
15+
def get_host_mac_addresses(self):
16+
return self._iface_values('mac_addr')
17+
18+
def get_host_ip_addresses(self):
19+
return self._iface_values('ipv4_addr')
20+
21+
@staticmethod
22+
def _iface_values(key):
23+
ifaces = if_config().get_interfaces().values()
24+
return filter(None, map(operator.attrgetter(key), ifaces))

setup.cfg

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ install_requires =
3232
python-dateutil
3333
pathvalidate
3434
pywin32; sys_platform == 'win32' and python_version < "3.12"
35+
ifconfig-parser; sys_platform == 'darwin'
3536
jsonpickle != 3.0.0
3637

3738
[options.packages.find]

0 commit comments

Comments
 (0)