cache/flat_hash.py: unicode_literals
authorZac Medico <zmedico@gentoo.org>
Fri, 18 Jan 2013 17:12:25 +0000 (09:12 -0800)
committerZac Medico <zmedico@gentoo.org>
Fri, 18 Jan 2013 17:12:25 +0000 (09:12 -0800)
pym/portage/cache/flat_hash.py

index b1c94313b409efa44c59a2f14a4af280e24a0920..08dcbe8e119b35014c4153989b1e923a3904e955 100644 (file)
@@ -1,7 +1,9 @@
-# Copyright: 2005-2012 Gentoo Foundation
+# Copyright: 2005-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # Author(s): Brian Harring (ferringb@gentoo.org)
 
+from __future__ import unicode_literals
+
 from portage.cache import fs_template
 from portage.cache import cache_errors
 import errno
@@ -11,7 +13,6 @@ import sys
 import os as _os
 from portage import os
 from portage import _encodings
-from portage import _unicode_decode
 from portage import _unicode_encode
 from portage.exception import InvalidData
 from portage.versions import _pkg_str
@@ -19,10 +20,6 @@ from portage.versions import _pkg_str
 if sys.hexversion >= 0x3000000:
        long = int
 
-# Coerce to unicode, in order to prevent TypeError when writing
-# raw bytes to TextIOWrapper with python2.
-_setitem_fmt = _unicode_decode("%s=%s\n")
-
 class database(fs_template.FsBased):
 
        autocommits = True
@@ -93,7 +90,10 @@ class database(fs_template.FsBased):
                                v = values.get(k)
                                if not v:
                                        continue
-                               myf.write(_setitem_fmt % (k, v))
+                               # NOTE: This format string requires unicode_literals, so that
+                               # k and v are coerced to unicode, in order to prevent TypeError
+                               # when writing raw bytes to TextIOWrapper with Python 2.
+                               myf.write("%s=%s\n" % (k, v))
                finally:
                        myf.close()
                self._ensure_access(fp)