public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Zac Medico <zmedico@gentoo.org>
To: gentoo-portage-dev@lists.gentoo.org
Cc: Zac Medico <zmedico@gentoo.org>
Subject: [gentoo-portage-dev] [PATCH] chpathtool.py: avoid unnecessary optparse import
Date: Mon, 19 Jan 2015 01:13:17 -0800	[thread overview]
Message-ID: <1421658797-19090-1-git-send-email-zmedico@gentoo.org> (raw)

Since commit d217db2bc76e4c1a2e75685b4a00e25f7d8142a8, the optparse
module has been imported unconditionally, even when the argparse module
is available. Fix it to import optparse only if the argparse import
fails.

Fixes: d217db2bc76e ("Make use of optparse to fix argument parsing for Python 2.6 in bin/chpathtool.py.")
---
 bin/chpathtool.py | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/bin/chpathtool.py b/bin/chpathtool.py
index 9b26086..842f1f4 100755
--- a/bin/chpathtool.py
+++ b/bin/chpathtool.py
@@ -13,14 +13,12 @@ import os
 import stat
 import sys
 
-from portage.util._argparse import ArgumentParser
-
-# Argument parsing compatibility for Python 2.6 using optparse.
-if sys.hexversion < 0x2070000:
+try:
+	from argparse import ArgumentParser
+except ImportError:
+	ArgumentParser = None
 	from optparse import OptionParser
 
-from optparse import OptionError
-
 CONTENT_ENCODING = 'utf_8'
 FS_ENCODING = 'utf_8'
 
@@ -154,8 +152,8 @@ def chpath_inplace_symlink(filename, st, old, new):
 
 def main(argv):
 
-	parser = ArgumentParser(description=doc)
-	try:
+	if ArgumentParser is not None:
+		parser = ArgumentParser(description=doc)
 		parser.add_argument('location', default=None,
 			help='root directory (e.g. $D)')
 		parser.add_argument('old', default=None,
@@ -165,9 +163,8 @@ def main(argv):
 		opts = parser.parse_args(argv)
 
 		location, old, new = opts.location, opts.old, opts.new
-	except OptionError:
+	else:
 		# Argument parsing compatibility for Python 2.6 using optparse.
-		if sys.hexversion < 0x2070000:
 			parser = OptionParser(description=doc,
 				usage="usage: %prog [-h] location old new\n\n" + \
 				"  location: root directory (e.g. $D)\n" + \
@@ -178,13 +175,10 @@ def main(argv):
 
 			if len(args) != 3:
 				parser.print_usage()
-				print("%s: error: expected 3 arguments, got %i"
+				parser.error("%s: error: expected 3 arguments, got %i"
 					% (__file__, len(args)))
-				return
 
 			location, old, new = args[0:3]
-		else:
-			raise
 
 	is_text_file = IsTextFile()
 
-- 
2.0.5



             reply	other threads:[~2015-01-19  9:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-19  9:13 Zac Medico [this message]
2015-01-19 15:33 ` [gentoo-portage-dev] [PATCH] chpathtool.py: avoid unnecessary optparse import Brian Dolbec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1421658797-19090-1-git-send-email-zmedico@gentoo.org \
    --to=zmedico@gentoo.org \
    --cc=gentoo-portage-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox