diff options
author | Martin Pitt <martinpitt@gnome.org> | 2013-07-23 09:09:15 +0200 |
---|---|---|
committer | Martin Pitt <martinpitt@gnome.org> | 2013-07-23 09:09:15 +0200 |
commit | 7c5e933efd668bbdfa6ea44a9fd1d52ebb56eebc (patch) | |
tree | f6c893444ff151293bc748244dff5a9f3653656d | |
parent | 66352821de3e5101da4adc925ec88ea151590e32 (diff) |
Port generator tools to Python 3
-rw-r--r-- | configure.ac | 4 | ||||
-rwxr-xr-x | tools/mpi2hwdb.py | 28 | ||||
-rwxr-xr-x | tools/mpi2udev.py | 28 | ||||
-rwxr-xr-x | tools/udev-syntax-check.py | 6 |
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 |