Use bytes instead of unicode with isinstance.
authorZac Medico <zmedico@gentoo.org>
Sat, 29 Oct 2011 00:12:11 +0000 (17:12 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 29 Oct 2011 00:12:11 +0000 (17:12 -0700)
This is preferred since the bytes type is available in all supported
python versions, while the unicode type is only available in python2.

bin/repoman
bin/xpak-helper.py
pym/portage/elog/mod_syslog.py
pym/portage/util/__init__.py

index 2099241d9ff30aab099226520a9d10895af17670..42a61542050f22f3137607d4d5330ca7ba780ba8 100755 (executable)
@@ -156,7 +156,7 @@ def ParseArgs(argv, qahelp):
          (opts, args), just like a call to parser.parse_args()
        """
 
-       if argv and sys.hexversion < 0x3000000 and not isinstance(argv[0], unicode):
+       if argv and isinstance(argv[0], bytes):
                argv = [portage._unicode_decode(x) for x in argv]
 
        modes = {
index 4766d990dfed9e9b7ee32b51c3430b726727de29..ef74920dbf77a8c58ce2836ccd054b943267b1ed 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/python
-# Copyright 2009 Gentoo Foundation
+# Copyright 2009-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 import optparse
@@ -36,7 +36,7 @@ def command_recompose(args):
 
 def main(argv):
 
-       if argv and sys.hexversion < 0x3000000 and not isinstance(argv[0], unicode):
+       if argv and isinstance(argv[0], bytes):
                for i, x in enumerate(argv):
                        argv[i] = portage._unicode_decode(x, errors='strict')
 
index 79b11a68c1dcdf0265d3da694ce3d8bbdaf3fc87..64558410d6eef00f2274f638195e9dafcac7308a 100644 (file)
@@ -23,7 +23,7 @@ def process(mysettings, key, logentries, fulltext):
                for msgtype,msgcontent in logentries[phase]:
                        for line in msgcontent:
                                line = "%s: %s: %s" % (key, phase, line)
-                               if sys.hexversion < 0x3000000 and isinstance(line, unicode):
+                               if sys.hexversion < 0x3000000 and not isinstance(line, bytes):
                                        # Avoid TypeError from syslog.syslog()
                                        line = line.encode(_encodings['content'], 
                                                'backslashreplace')
index 20eecd65a68e25801839bc5099130847605f6b6c..54e683985f4997375786dbb6d96c07e55ddc0814 100644 (file)
@@ -503,14 +503,15 @@ def writedict(mydict,myfilename,writekey=True):
 
 def shlex_split(s):
        """
-       This is equivalent to shlex.split but it temporarily encodes unicode
-       strings to bytes since shlex.split() doesn't handle unicode strings.
+       This is equivalent to shlex.split, but if the current interpreter is
+       python2, it temporarily encodes unicode strings to bytes since python2's
+       shlex.split() doesn't handle unicode strings.
        """
-       is_unicode = sys.hexversion < 0x3000000 and isinstance(s, unicode)
-       if is_unicode:
+       convert_to_bytes = sys.hexversion < 0x3000000 and not isinstance(s, bytes)
+       if convert_to_bytes:
                s = _unicode_encode(s)
        rval = shlex.split(s)
-       if is_unicode:
+       if convert_to_bytes:
                rval = [_unicode_decode(x) for x in rval]
        return rval