-
Notifications
You must be signed in to change notification settings - Fork 92
Comparing changes
Open a pull request
base repository: seveas/python-networkmanager
base: main
head repository: panoai/python-networkmanager
compare: main
- 8 commits
- 3 files changed
- 2 contributors
Commits on Mar 4, 2026
-
Update makeconstants.py for modern libnm header paths
Skip missing headers instead of crashing, and add modern libnm paths for VPN and error constants that moved from the deprecated libnm-glib and NetworkManager includes. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7a57e79 - Browse repository at this point
Copy the full SHA 7a57e79View commit details -
Regenerate constants and add loopback device type
Newer NetworkManager versions introduce device types absent from the static mapping (Loopback 32, HSR 33, IPVLAN 34, …). Add a Loopback subclass for the common case and fall back to Generic for any unmapped type so device_class() never raises KeyError on newer NM releases. Constants regenerated from NM 1.52.1 headers with backward-compat aliases for constants renamed in 1.48+ (master/slave to controller/port). Safe on kirkstone (1.36.2) and scarthgap (1.46.0) — unused constants are harmless integer variables. Replaces the monkeypatch in pano-ec nm_manager.py (RD-13115). Co-Authored-By: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e6d3ec4 - Browse repository at this point
Copy the full SHA e6d3ec4View commit details -
Pass explicit D-Bus signature in generated method calls
make_method already has the input arg signatures from class-level introspection. Pass them through to dbus-python so it doesn't need per-proxy introspection to determine argument types. Examples: ActivateConnection gets signature='ooo', GetSettings gets signature='' (no input args).
Configuration menu - View commit details
-
Copy full SHA for 6ca7cd6 - Browse repository at this point
Copy the full SHA 6ca7cd6View commit details -
Add explicit signature='ssv' to Properties.Set calls
The third argument to Properties.Set is a D-Bus variant ('v'). dbus-python cannot infer variant type signatures without introspection data, so an explicit signature='ssv' is required for correct marshalling when introspection is disabled.Configuration menu - View commit details
-
Copy full SHA for 9a11eb8 - Browse repository at this point
Copy the full SHA 9a11eb8View commit details -
Add explicit signature='ss' to Properties.Get calls
Completes the explicit-signatures approach: Get calls now pass signature='ss' instead of relying on dbus-python to infer it from the Python str arguments. Matches the existing signature='ssv' on Properties.Set.
Configuration menu - View commit details
-
Copy full SHA for a06b0de - Browse repository at this point
Copy the full SHA a06b0deView commit details -
Disable per-proxy D-Bus introspection (introspect=False)
With explicit signatures in make_method and make_property setter, dbus-python no longer needs per-proxy introspection. Eliminates the _introspect_block() cost (~1-5ms per proxy) and stops signal match rule accumulation for callers which do not run a glib main loop. Also removes follow_name_owner_changes=True from proxy creation. This parameter registered a D-Bus match rule to track NM name ownership changes per-proxy; it is redundant because SignalDispatcher.handle_restart() already handles NM restarts by re-creating all proxies centrally.
Configuration menu - View commit details
-
Copy full SHA for d25372e - Browse repository at this point
Copy the full SHA d25372eView commit details -
Add unit tests for introspect=False code generation
Verify that make_method, make_property, and proxy creation produce the correct explicit signatures and introspect=False flags, catching regressions without requiring a live D-Bus environment.
Configuration menu - View commit details
-
Copy full SHA for cbded0d - Browse repository at this point
Copy the full SHA cbded0dView commit details -
Guard optional dns keys in connection fixups
Connections without DNS configured lack a 'dns' key when introspect=False, causing KeyError in to_python(). Unlike addresses/routes (always present), dns is genuinely optional. Based on the fix by Sean Donohue in meta-pano 0001-nm-fix.patch. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b40d3df - Browse repository at this point
Copy the full SHA b40d3dfView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...main