Skip to content

Commit 3197d3f

Browse files
committed
Python 3 compatibility
1 parent 407a2d7 commit 3197d3f

File tree

9 files changed

+116
-110
lines changed

9 files changed

+116
-110
lines changed

NetworkManager.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import dbus
22
import sys
33

4+
if sys.version_info >= (3,0):
5+
basestring = str
6+
47
class NMDbusInterface(object):
58
bus = dbus.SystemBus()
69
dbus_service = 'org.freedesktop.NetworkManager'
@@ -13,15 +16,17 @@ def __init__(self, object_path=None):
1316
self.proxy = self.bus.get_object(self.dbus_service, self.object_path)
1417
self.interface = dbus.Interface(self.proxy, self.interface_name)
1518

19+
properties = []
1620
try:
1721
properties = self.proxy.GetAll(self.interface_name,
1822
dbus_interface='org.freedesktop.DBus.Properties')
19-
for p in properties:
20-
if not hasattr(self.__class__, p):
21-
setattr(self.__class__, p, self._make_property(p))
22-
except dbus.exceptions.DBusException, e:
23+
except dbus.exceptions.DBusException as e:
2324
if e.get_dbus_name() != 'org.freedesktop.DBus.Error.UnknownMethod':
2425
raise
26+
for p in properties:
27+
p = str(p)
28+
if not hasattr(self.__class__, p):
29+
setattr(self.__class__, p, self._make_property(p))
2530

2631
def _make_property(self, name):
2732
def get(self):
@@ -33,10 +38,12 @@ def set(self, value):
3338
return property(get, set)
3439

3540
def unwrap(self, val):
41+
if isinstance(val, dbus.ByteArray):
42+
return "".join([str(x) for x in val])
3643
if isinstance(val, (dbus.Array, list, tuple)):
3744
return [self.unwrap(x) for x in val]
3845
if isinstance(val, (dbus.Dictionary, dict)):
39-
return dict([(self.unwrap(x), self.unwrap(y)) for x,y in val.iteritems()])
46+
return dict([(self.unwrap(x), self.unwrap(y)) for x,y in val.items()])
4047
if isinstance(val, dbus.ObjectPath):
4148
if val.startswith('/org/freedesktop/NetworkManager/'):
4249
classname = val.split('/')[4]
@@ -45,12 +52,8 @@ def unwrap(self, val):
4552
'Devices': 'Device',
4653
}.get(classname, classname)
4754
return globals()[classname](val)
48-
if isinstance(val, dbus.ByteArray):
49-
return "".join([str(x) for x in val])
5055
if isinstance(val, (dbus.Signature, dbus.String)):
5156
return str(val)
52-
if isinstance(val, dbus.UTF8String):
53-
return unicode(val)
5457
if isinstance(val, dbus.Boolean):
5558
return bool(val)
5659
if isinstance(val, (dbus.Int16, dbus.UInt16, dbus.Int32, dbus.UInt32, dbus.Int64, dbus.UInt64)):
@@ -62,14 +65,12 @@ def wrap(self, val):
6265
return val.object_path
6366
if hasattr(val, '__iter__') and not isinstance(val, basestring):
6467
if hasattr(val, 'items'):
65-
return dict([(x, self.wrap(y)) for x, y in val.iteritems()])
68+
return dict([(x, self.wrap(y)) for x, y in val.items()])
6669
else:
6770
return [self.wrap(x) for x in val]
6871
return val
6972

7073
def __getattr__(self, name):
71-
if name == 'object_path':
72-
print name
7374
try:
7475
return super(NMDbusInterface, self).__getattribute__(name)
7576
except AttributeError:
@@ -148,9 +149,10 @@ class IP6Config(NMDbusInterface):
148149
class VPNConnection(NMDbusInterface):
149150
interface_name = 'org.freedesktop.NetworkManager.VPN.Connection'
150151

152+
151153
def const(prefix, val):
152154
prefix = 'NM_' + prefix.upper() + '_'
153-
for key, vval in globals().iteritems():
155+
for key, vval in globals().items():
154156
if 'REASON' in key and 'REASON' not in prefix:
155157
continue
156158
if key.startswith(prefix) and val == vval:
@@ -176,6 +178,8 @@ def const(prefix, val):
176178
NM_DEVICE_TYPE_WIMAX = 7
177179
NM_DEVICE_TYPE_MODEM = 8
178180
NM_DEVICE_TYPE_INFINIBAND = 9
181+
NM_DEVICE_TYPE_BOND = 10
182+
NM_DEVICE_TYPE_VLAN = 11
179183
NM_DEVICE_CAP_NONE = 0
180184
NM_DEVICE_CAP_NM_SUPPORTED = 1
181185
NM_DEVICE_CAP_CARRIER_DETECT = 2
@@ -274,6 +278,7 @@ def const(prefix, val):
274278
NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED = 47
275279
NM_DEVICE_STATE_REASON_GSM_SIM_WRONG = 48
276280
NM_DEVICE_STATE_REASON_INFINIBAND_MODE = 49
281+
NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED = 50
277282
NM_DEVICE_STATE_REASON_LAST = 65535
278283
NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0
279284
NM_ACTIVE_CONNECTION_STATE_ACTIVATING = 1

examples/activate_connection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
if dev.State == NetworkManager.NM_DEVICE_STATE_ACTIVATED and dev.Managed:
1919
break
2020
else:
21-
print >>sys.stderr, "No active, managed device found"
21+
print("No active, managed device found")
2222
sys.exit(1)
2323
else:
2424
dtype = {
@@ -32,7 +32,7 @@
3232
if dev.DeviceType == dtype and dev.State == NetworkManager.NM_DEVICE_STATE_DISCONNECTED:
3333
break
3434
else:
35-
print >>sys.stderr, "No suitable and available %s device found" % ctype
35+
print("No suitable and available %s device found" % ctype)
3636
sys.exit(1)
3737

3838
# And connect

examples/connection_detail.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,38 @@
99

1010
for conn in NetworkManager.NetworkManager.ActiveConnections:
1111
settings = conn.Connection.GetSettings()
12-
for s in settings.keys():
12+
for s in list(settings.keys()):
1313
if 'data' in settings[s]:
1414
settings[s + '-data'] = settings[s].pop('data')
1515

1616
devices = ""
1717
if conn.Devices:
1818
devices = " (on %s)" % ", ".join([x.Interface for x in conn.Devices])
19-
print "Active connection: %s%s" % (settings['connection']['id'], devices)
20-
size = max([max([len(y) for y in x.iterkeys()]) for x in settings.itervalues()])
19+
print("Active connection: %s%s" % (settings['connection']['id'], devices))
20+
size = max([max([len(y) for y in x.keys()]) for x in settings.values()])
2121
format = " %%-%ds %%s" % (size + 5)
22-
for key, val in sorted(settings.iteritems()):
23-
print " %s" % key
24-
for name, value in val.iteritems():
22+
for key, val in sorted(settings.items()):
23+
print(" %s" % key)
24+
for name, value in val.items():
2525
if name == 'ssid':
2626
value = "".join([str(x) for x in value])
27-
print format % (name, value)
27+
print(format % (name, value))
2828
for dev in conn.Devices:
29-
print "Device: %s" % dev.Interface
30-
print " Type %s" % c('device_type', dev.DeviceType)
31-
# print " IPv4 address %s" % socket.inet_ntoa(struct.pack('L', dev.Ip4Address))
29+
print("Device: %s" % dev.Interface)
30+
print(" Type %s" % c('device_type', dev.DeviceType))
31+
# print(" IPv4 address %s" % socket.inet_ntoa(struct.pack('L', dev.Ip4Address)))
3232
devicedetail = dev.SpecificDevice()
3333
if not callable(devicedetail.HwAddress):
34-
print " MAC address %s" % devicedetail.HwAddress
35-
print " IPv4 config"
36-
print " Addresses"
34+
print(" MAC address %s" % devicedetail.HwAddress)
35+
print(" IPv4 config")
36+
print(" Addresses")
3737
for addr in dev.Ip4Config.Addresses:
38-
print " %s/%d -> %s" % (socket.inet_ntoa(struct.pack('L', addr[0])), addr[1],
39-
socket.inet_ntoa(struct.pack('L', addr[2])))
40-
print " Routes"
38+
print(" %s/%d -> %s" % (socket.inet_ntoa(struct.pack('L', addr[0])), addr[1],
39+
socket.inet_ntoa(struct.pack('L', addr[2]))))
40+
print(" Routes")
4141
for addr in dev.Ip4Config.Routes:
42-
print " %s/%d -> %s (%d)" % (socket.inet_ntoa(struct.pack('L', route[0])), route[1],
43-
socket.inet_ntoa(struct.pack('L', route[2])), socket.ntohl(route[3]))
44-
print " Nameservers"
42+
print(" %s/%d -> %s (%d)" % (socket.inet_ntoa(struct.pack('L', route[0])), route[1],
43+
socket.inet_ntoa(struct.pack('L', route[2])), socket.ntohl(route[3])))
44+
print(" Nameservers")
4545
for ns in dev.Ip4Config.Nameservers:
46-
print " %s" % socket.inet_ntoa(struct.pack('L', ns))
46+
print(" %s" % socket.inet_ntoa(struct.pack('L', ns)))

examples/info.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,43 @@
66
import NetworkManager
77
c = NetworkManager.const
88

9-
print "%-30s %s" % ("Version:", NetworkManager.NetworkManager.Version)
10-
print "%-30s %s" % ("Hostname:", NetworkManager.Settings.Hostname)
11-
print "%-30s %s" % ("Can modify:", NetworkManager.Settings.CanModify)
12-
print "%-30s %s" % ("Networking enabled:", NetworkManager.NetworkManager.NetworkingEnabled)
13-
print "%-30s %s" % ("Wireless enabled:", NetworkManager.NetworkManager.WirelessEnabled)
14-
print "%-30s %s" % ("Wireless hw enabled:", NetworkManager.NetworkManager.WirelessHardwareEnabled)
15-
print "%-30s %s" % ("Wwan enabled:", NetworkManager.NetworkManager.WwanEnabled)
16-
print "%-30s %s" % ("Wwan hw enabled:", NetworkManager.NetworkManager.WwanHardwareEnabled)
17-
print "%-30s %s" % ("Wimax enabled:", NetworkManager.NetworkManager.WimaxEnabled)
18-
print "%-30s %s" % ("Wimax hw enabled:", NetworkManager.NetworkManager.WimaxHardwareEnabled)
19-
print "%-30s %s" % ("Overall state:", c('state', NetworkManager.NetworkManager.State))
20-
21-
print ""
22-
23-
print "Permissions"
9+
print("%-30s %s" % ("Version:", NetworkManager.NetworkManager.Version))
10+
print("%-30s %s" % ("Hostname:", NetworkManager.Settings.Hostname))
11+
print("%-30s %s" % ("Can modify:", NetworkManager.Settings.CanModify))
12+
print("%-30s %s" % ("Networking enabled:", NetworkManager.NetworkManager.NetworkingEnabled))
13+
print("%-30s %s" % ("Wireless enabled:", NetworkManager.NetworkManager.WirelessEnabled))
14+
print("%-30s %s" % ("Wireless hw enabled:", NetworkManager.NetworkManager.WirelessHardwareEnabled))
15+
print("%-30s %s" % ("Wwan enabled:", NetworkManager.NetworkManager.WwanEnabled))
16+
print("%-30s %s" % ("Wwan hw enabled:", NetworkManager.NetworkManager.WwanHardwareEnabled))
17+
print("%-30s %s" % ("Wimax enabled:", NetworkManager.NetworkManager.WimaxEnabled))
18+
print("%-30s %s" % ("Wimax hw enabled:", NetworkManager.NetworkManager.WimaxHardwareEnabled))
19+
print("%-30s %s" % ("Overall state:", c('state', NetworkManager.NetworkManager.State)))
20+
21+
print("")
22+
23+
print("Permissions")
2424
for perm, val in sorted(NetworkManager.NetworkManager.GetPermissions().items()):
25-
print "%-30s %s" % (perm[31:] + ':', val)
25+
print("%-30s %s" % (perm[31:] + ':', val))
2626

27-
print ""
27+
print("")
2828

29-
print "Available network devices"
30-
print "%-10s %-19s %-20s %s" % ("Name", "State", "Driver", "Managed?")
29+
print("Available network devices")
30+
print("%-10s %-19s %-20s %s" % ("Name", "State", "Driver", "Managed?"))
3131
for dev in NetworkManager.NetworkManager.GetDevices():
32-
print "%-10s %-19s %-20s %s" % (dev.Interface, c('device_state', dev.State), dev.Driver, dev.Managed)
32+
print("%-10s %-19s %-20s %s" % (dev.Interface, c('device_state', dev.State), dev.Driver, dev.Managed))
3333

34-
print ""
34+
print("")
3535

36-
print "Available connections"
37-
print "%-30s %s" % ("Name", "Type")
36+
print("Available connections")
37+
print("%-30s %s" % ("Name", "Type"))
3838
for conn in NetworkManager.Settings.ListConnections():
3939
settings = conn.GetSettings()['connection']
40-
print "%-30s %s" % (settings['id'], settings['type'])
40+
print("%-30s %s" % (settings['id'], settings['type']))
4141

42-
print ""
42+
print("")
4343

44-
print "Active connections"
45-
print "%-30s %-20s %-10s %s" % ("Name", "Type", "Default", "Devices")
44+
print("Active connections")
45+
print("%-30s %-20s %-10s %s" % ("Name", "Type", "Default", "Devices"))
4646
for conn in NetworkManager.NetworkManager.ActiveConnections:
4747
settings = conn.Connection.GetSettings()['connection']
48-
print "%-30s %-20s %-10s %s" % (settings['id'], settings['type'], conn.Default, ", ".join([x.Interface for x in conn.Devices]))
48+
print("%-30s %-20s %-10s %s" % (settings['id'], settings['type'], conn.Default, ", ".join([x.Interface for x in conn.Devices])))

examples/listener.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
import dbus.mainloop.glib; dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
6-
import gobject
6+
from gi.repository import GObject
77
import NetworkManager
88

99
d_args = ('sender', 'destination', 'interface', 'member', 'path')
@@ -16,17 +16,17 @@ def main():
1616
NetworkManager.NetworkManager.connect_to_signal('DeviceAdded', display_sig, **d_args)
1717
NetworkManager.NetworkManager.connect_to_signal('DeviceRemoved', display_sig, **d_args)
1818

19-
print "Waiting for signals"
20-
print "-------------------"
19+
print("Waiting for signals")
20+
print("-------------------")
2121

22-
loop = gobject.MainLoop()
22+
loop = GObject.MainLoop()
2323
loop.run()
2424

2525
def display_sig(*args, **kwargs):
26-
print "Received signal: %s.%s" % (kwargs['d_interface'], kwargs['d_member'])
27-
print "Sender: (%s)%s" % (kwargs['d_sender'], kwargs['d_path'])
28-
print "Arguments: (%s)" % ", ".join([str(x) for x in args])
29-
print "-------------------"
26+
print("Received signal: %s.%s" % (kwargs['d_interface'], kwargs['d_member']))
27+
print("Sender: (%s)%s" % (kwargs['d_sender'], kwargs['d_path']))
28+
print("Arguments: (%s)" % ", ".join([str(x) for x in args]))
29+
print("-------------------")
3030

3131
if __name__ == '__main__':
3232
main()

examples/openvpn_over_ssh.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
sock.connect(('localhost', LOCALPORT))
2525
except socket.error:
2626
# Set up the SSH tunnel if it isn't
27-
print "Connecting to " + SSH_HOST
27+
print("Connecting to " + SSH_HOST)
2828
if subprocess.call([SSH, '-L%s:%s' % (LOCALPORT, VPN_HOST), '-f', '-n', '-N', SSH_HOST]) != 0:
29-
print >>sys.stderr, "SSH to %s failed" % SSH_HOST
29+
print("SSH to %s failed" % SSH_HOST)
3030
sys.exit(1)
3131

3232
for conn in NetworkManager.Settings.ListConnections():
@@ -37,23 +37,23 @@
3737
uuid = settings['connection']['uuid']
3838
break
3939
else:
40-
print >>sys.stderr, "VPN with name %s not found" % VPN_NAME
40+
print("VPN with name %s not found" % VPN_NAME)
4141
sys.exit(1)
4242

4343
# Bail out of another vpn is active
4444
for conn in NetworkManager.NetworkManager.ActiveConnections:
4545
if conn.Vpn:
4646
vid = conn.Connection.GetSettings()['connection']['id']
47-
print >>sys.stderr, "The vpn %s is already active" % vid
47+
print("The vpn %s is already active" % vid)
4848
sys.exit(1)
4949

5050
# Activate VPN
5151
for dev in NetworkManager.NetworkManager.GetDevices():
5252
if dev.State == NetworkManager.NM_DEVICE_STATE_ACTIVATED and dev.Managed:
5353
break
5454
else:
55-
print >>sys.stderr, "No active, managed device found"
55+
print("No active, managed device found")
5656
sys.exit(1)
5757

58-
print "Activating VPN"
58+
print("Activating VPN")
5959
NetworkManager.NetworkManager.ActivateConnection(vpn, dev, "/")

makeconstants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
else:
2121
val = last + 1
2222
key = key.strip()
23-
print '%s = %d' % (key, val)
23+
print('%s = %d' % (key, val))
2424
last = val
2525

0 commit comments

Comments
 (0)