summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pitt <martinpitt@gnome.org>2013-07-23 09:09:15 +0200
committerMartin Pitt <martinpitt@gnome.org>2013-07-23 09:09:15 +0200
commit7c5e933efd668bbdfa6ea44a9fd1d52ebb56eebc (patch)
treef6c893444ff151293bc748244dff5a9f3653656d
parent66352821de3e5101da4adc925ec88ea151590e32 (diff)
Port generator tools to Python 3
-rw-r--r--configure.ac4
-rwxr-xr-xtools/mpi2hwdb.py28
-rwxr-xr-xtools/mpi2udev.py28
-rwxr-xr-xtools/udev-syntax-check.py6
4 files changed, 33 insertions, 33 deletions
diff --git a/configure.ac b/configure.ac
index ab239f5..1c749b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,9 +14,9 @@ fi
# supports hwdb?
AM_CONDITIONAL([HAVE_HWDB], [pkg-config --atleast-version=196 udev])
-AC_CHECK_PROG([PYTHON], [python2], [python2])
+AC_CHECK_PROG([PYTHON], [python3], [python3])
if test "x$PYTHON" = "x"; then
- AC_MSG_ERROR([python2 not found])
+ AC_MSG_ERROR([python3 not found])
fi
AC_MSG_NOTICE([installing udev rules in ${ac_with_udevdir}/rules.d])
diff --git a/tools/mpi2hwdb.py b/tools/mpi2hwdb.py
index 64942e6..b54c4ec 100755
--- a/tools/mpi2hwdb.py
+++ b/tools/mpi2hwdb.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
# Generate hwdb file from music player identification (.mpi) files
#
# (C) 2009 Canonical Ltd.
@@ -19,12 +19,12 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-import sys, ConfigParser, os.path
+import sys, configparser, os.path
def parse_mpi(mpi):
'''Print hwdb file for given ConfigParser object.'''
- cp = ConfigParser.RawConfigParser()
+ cp = configparser.RawConfigParser()
assert cp.read(mpi)
# if we have more info than just idVendor+idProduct we need to use an udev rule,
@@ -33,13 +33,13 @@ def parse_mpi(mpi):
try:
cp.get('Device', name)
return
- except ConfigParser.NoOptionError:
+ except configparser.NoOptionError:
continue
try:
m = cp.get('Device', 'product')
- print '#', m
- except ConfigParser.NoOptionError:
+ print('#', m)
+ except configparser.NoOptionError:
pass
try:
@@ -50,28 +50,28 @@ def parse_mpi(mpi):
(subsystem, vid, pid) = usbid.split(':')
if subsystem != "usb":
continue
- if usbids.has_key(vid):
+ if vid in usbids:
usbids[vid].append(pid)
else:
usbids[vid] = [ pid ]
- for vid, pids in usbids.iteritems():
- for pid in pids:
- print 'usb:v%sp%s*\n'% (vid.upper(), pid.upper()),
- print ' ID_MEDIA_PLAYER=%s\n' % os.path.splitext(os.path.basename(mpi))[0],
+ for vid, pids in usbids.items():
+ for pid in pids:
+ print('usb:v%sp%s*'% (vid.upper(), pid.upper()))
+ print(' ID_MEDIA_PLAYER=%s' % os.path.splitext(os.path.basename(mpi))[0])
# do we have an icon?
try:
icon = cp.get('Device', 'icon')
# breaks media player detection : https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/657609
#print ' UDISKS_PRESENTATION_ICON_NAME=%s\n' % icon,
- except ConfigParser.NoOptionError:
+ except configparser.NoOptionError:
pass
# terminate line
- print
+ print()
- except ConfigParser.NoOptionError:
+ except configparser.NoOptionError:
pass
#
diff --git a/tools/mpi2udev.py b/tools/mpi2udev.py
index 3357d3f..c6ac33f 100755
--- a/tools/mpi2udev.py
+++ b/tools/mpi2udev.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
# Generate udev rules from music player identification (.mpi) files
#
# (C) 2009 Canonical Ltd.
@@ -18,7 +18,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-import sys, ConfigParser, os.path
+import sys, configparser, os.path
# translation of mpi Device keys to udev attributes
mpi2udev = {
@@ -33,7 +33,7 @@ mpi2udev = {
def parse_mpi(mpi, hwdb):
'''Print udev rule for given ConfigParser object.'''
- cp = ConfigParser.RawConfigParser()
+ cp = configparser.RawConfigParser()
assert cp.read(mpi)
rule = ''
@@ -42,7 +42,7 @@ def parse_mpi(mpi, hwdb):
try:
value = cp.get('Device', name)
rule += mpi2udev[name] % value + ', '
- except ConfigParser.NoOptionError:
+ except configparser.NoOptionError:
continue
@@ -59,14 +59,14 @@ def parse_mpi(mpi, hwdb):
(subsystem, vid, pid) = usbid.split(':')
if subsystem != "usb":
continue
- if usbids.has_key(vid):
+ if vid in usbids:
usbids[vid].append(pid)
else:
usbids[vid] = [ pid ]
- for vid, pids in usbids.iteritems():
+ for vid, pids in usbids.items():
rule += 'ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s"'% (vid, '|'.join(pids)) + ', '
- except ConfigParser.NoOptionError:
+ except configparser.NoOptionError:
pass
# if no information was found, don't write a rule at all
@@ -75,8 +75,8 @@ def parse_mpi(mpi, hwdb):
try:
m = cp.get('Device', 'product')
- print '#', m
- except ConfigParser.NoOptionError:
+ print('# ' + m)
+ except configparser.NoOptionError:
pass
rule += 'ENV{ID_MEDIA_PLAYER}="%s"' % os.path.splitext(os.path.basename(mpi))[0]
@@ -86,18 +86,18 @@ def parse_mpi(mpi, hwdb):
icon = cp.get('Device', 'icon')
# breaks media player detection : https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/657609
# rule += ', ENV{UDISKS_PRESENTATION_ICON_NAME}="%s"' % icon
- except ConfigParser.NoOptionError:
+ except configparser.NoOptionError:
pass
# print out the rule
- print rule + '\n'
+ print(rule + '\n')
#
# main
#
# udev rules header
-print '''ACTION!="add|change", GOTO="media_player_end"
+print('''ACTION!="add|change", GOTO="media_player_end"
# catch MTP devices
ENV{DEVTYPE}=="usb_device", GOTO="media_player_start"
@@ -107,7 +107,7 @@ SUBSYSTEMS=="usb", GOTO="media_player_start"
GOTO="media_player_end"
LABEL="media_player_start"
-'''
+''')
# the first argument should be "hwdb" or "udev"
hwdb = False
@@ -122,4 +122,4 @@ for f in sys.argv[2:]:
parse_mpi(f, hwdb)
# udev rules footer
-print '\nLABEL="media_player_end"'
+print('\nLABEL="media_player_end"')
diff --git a/tools/udev-syntax-check.py b/tools/udev-syntax-check.py
index 89739c9..71490de 100755
--- a/tools/udev-syntax-check.py
+++ b/tools/udev-syntax-check.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
# Simple udev rules syntax checker
#
# (C) 2010 Canonical Ltd.
@@ -22,7 +22,7 @@ import re
import sys
if len(sys.argv) < 2:
- print >> sys.stderr, 'Usage: %s <rules file> [...]' % sys.argv[0]
+ sys.stderr.write('Usage: %s <rules file> [...]\n' % sys.argv[0])
sys.exit(2)
no_args_tests = re.compile('(ACTION|DEVPATH|KERNELS?|NAME|SYMLINK|SUBSYSTEMS?|DRIVERS?|TAG|PROGRAM|RESULT)\s*(?:=|!)=\s*"([^"]*)"$')
@@ -47,7 +47,7 @@ for path in sys.argv[1:]:
if not (no_args_tests.match(clause) or args_tests.match(clause) or
no_args_assign.match(clause) or args_assign.match(clause)):
- print 'Invalid line %s:%i: "%s"' % (path, lineno, line)
+ sys.stderr.write('Invalid line %s:%i: "%s"\n' % (path, lineno, line))
sys.exit(1)
result = 1
break