* [gentoo-portage-dev] [PATCH 1/3] Remove Python 2 workaround
@ 2021-03-04 19:23 Matt Turner
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 2/3] Remove outdated mention of Python 2 from comment Matt Turner
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 3/3] lib: Remove outdated Python 2 comments Matt Turner
0 siblings, 2 replies; 4+ messages in thread
From: Matt Turner @ 2021-03-04 19:23 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Matt Turner
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
lib/portage/__init__.py | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/lib/portage/__init__.py b/lib/portage/__init__.py
index 184db6ae2..1d202f557 100644
--- a/lib/portage/__init__.py
+++ b/lib/portage/__init__.py
@@ -484,11 +484,7 @@ def _eapi_is_deprecated(eapi):
return eapi in _deprecated_eapis
def eapi_is_supported(eapi):
- if not isinstance(eapi, str):
- # Only call str() when necessary since with python2 it
- # can trigger UnicodeEncodeError if EAPI is corrupt.
- eapi = str(eapi)
- eapi = eapi.strip()
+ eapi = str(eapi).strip()
return eapi in _supported_eapis
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-portage-dev] [PATCH 2/3] Remove outdated mention of Python 2 from comment
2021-03-04 19:23 [gentoo-portage-dev] [PATCH 1/3] Remove Python 2 workaround Matt Turner
@ 2021-03-04 19:23 ` Matt Turner
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 3/3] lib: Remove outdated Python 2 comments Matt Turner
1 sibling, 0 replies; 4+ messages in thread
From: Matt Turner @ 2021-03-04 19:23 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Matt Turner
Fixes: 5e9fe0f2a ("Eliminate basestring/long/_unicode py3 compat")
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
lib/portage/versions.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/portage/versions.py b/lib/portage/versions.py
index 317683b17..1dc942124 100644
--- a/lib/portage/versions.py
+++ b/lib/portage/versions.py
@@ -341,11 +341,11 @@ def catpkgsplit(mydata, silent=1, eapi=None):
class _pkg_str(str):
"""
- This class represents a cpv. It inherits from str (unicode in python2) and
- has attributes that cache results for use by functions like catpkgsplit and
- cpv_getkey which are called frequently (especially in match_from_list).
- Instances are typically created in dbapi.cp_list() or the Atom contructor,
- and propagate from there. Generally, code that pickles these objects will
+ This class represents a cpv. It inherits from str and has attributes
+ that cache results for use by functions like catpkgsplit and cpv_getkey
+ which are called frequently (especially in match_from_list). Instances
+ are typically created in dbapi.cp_list() or the Atom contructor, and
+ propagate from there. Generally, code that pickles these objects will
manually convert them to a plain unicode object first.
Instances of this class will have missing attributes for metadata that
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-portage-dev] [PATCH 3/3] lib: Remove outdated Python 2 comments
2021-03-04 19:23 [gentoo-portage-dev] [PATCH 1/3] Remove Python 2 workaround Matt Turner
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 2/3] Remove outdated mention of Python 2 from comment Matt Turner
@ 2021-03-04 19:23 ` Matt Turner
2021-03-06 9:22 ` Zac Medico
1 sibling, 1 reply; 4+ messages in thread
From: Matt Turner @ 2021-03-04 19:23 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Matt Turner
Fixes: 788c0e8bb ("Remove from __future__ import unicode_literals")
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
bin/egencache | 2 --
lib/_emerge/Package.py | 9 ---------
lib/_emerge/Scheduler.py | 2 --
lib/_emerge/UseFlagDisplay.py | 2 --
lib/_emerge/resolver/output.py | 2 --
lib/portage/cache/flat_hash.py | 3 ---
lib/portage/tests/unicode/test_string_format.py | 9 ---------
lib/portage/util/digraph.py | 3 ---
8 files changed, 32 deletions(-)
diff --git a/bin/egencache b/bin/egencache
index 9b6df2e7d..fc18b892f 100755
--- a/bin/egencache
+++ b/bin/egencache
@@ -2,8 +2,6 @@
# Copyright 2009-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-# unicode_literals for compat with TextIOWrapper in Python 2
-
import argparse
import platform
import signal
diff --git a/lib/_emerge/Package.py b/lib/_emerge/Package.py
index 995af6311..0ee25b90a 100644
--- a/lib/_emerge/Package.py
+++ b/lib/_emerge/Package.py
@@ -453,15 +453,6 @@ class Package(Task):
else:
qacat = k + ".syntax"
- # For unicode safety with python-2.x we need to avoid
- # using the string format operator with a non-unicode
- # format string, since that will result in the
- # PortageException.__str__() method being invoked,
- # followed by unsafe decoding that may result in a
- # UnicodeDecodeError. Therefore, use unicode_literals
- # to ensure that format strings are unicode, so that
- # PortageException.__unicode__() is used when necessary
- # in python-2.x.
if not self.installed:
categorized_error = False
if e.errors:
diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py
index 465f928a0..0ed2ee530 100644
--- a/lib/_emerge/Scheduler.py
+++ b/lib/_emerge/Scheduler.py
@@ -1188,8 +1188,6 @@ class Scheduler(PollScheduler):
printer.eerror(line)
printer.eerror("")
for failed_pkg in self._failed_pkgs_all:
- # Use unicode_literals to force unicode format string so
- # that Package.__unicode__() is called in python2.
msg = " %s" % (failed_pkg.pkg,)
if failed_pkg.postinst_failure:
msg += " (postinst failed)"
diff --git a/lib/_emerge/UseFlagDisplay.py b/lib/_emerge/UseFlagDisplay.py
index 5e3ba400d..fffc8144a 100644
--- a/lib/_emerge/UseFlagDisplay.py
+++ b/lib/_emerge/UseFlagDisplay.py
@@ -111,8 +111,6 @@ def pkg_use_display(pkg, opts, modified_use=None):
flags.sort(key=UseFlagDisplay.sort_combined)
else:
flags.sort(key=UseFlagDisplay.sort_separated)
- # Use unicode_literals to force unicode format string so
- # that UseFlagDisplay.__unicode__() is called in python2.
flag_displays.append('%s="%s"' % (varname,
' '.join("%s" % (f,) for f in flags)))
diff --git a/lib/_emerge/resolver/output.py b/lib/_emerge/resolver/output.py
index 0c90abefb..dea8a4be8 100644
--- a/lib/_emerge/resolver/output.py
+++ b/lib/_emerge/resolver/output.py
@@ -554,8 +554,6 @@ class Display:
"""
writemsg_stdout('\n%s\n' % (self.counters,), noiselevel=-1)
if show_repos:
- # Use unicode_literals to force unicode format string so
- # that RepoDisplay.__unicode__() is called in python2.
writemsg_stdout("%s" % (self.conf.repo_display,),
noiselevel=-1)
diff --git a/lib/portage/cache/flat_hash.py b/lib/portage/cache/flat_hash.py
index 7d48bae81..25930f0a4 100644
--- a/lib/portage/cache/flat_hash.py
+++ b/lib/portage/cache/flat_hash.py
@@ -73,9 +73,6 @@ class database(fs_template.FsBased):
v = values.get(k)
if not v:
continue
- # 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))
self._ensure_access(fp)
diff --git a/lib/portage/tests/unicode/test_string_format.py b/lib/portage/tests/unicode/test_string_format.py
index 3b994d622..54ac038a6 100644
--- a/lib/portage/tests/unicode/test_string_format.py
+++ b/lib/portage/tests/unicode/test_string_format.py
@@ -15,9 +15,6 @@ class StringFormatTestCase(TestCase):
which may be either python2 or python3.
"""
- # We need unicode_literals in order to get some unicode test strings
- # in a way that works in both python2 and python3.
-
unicode_strings = (
'\u2018',
'\u2019',
@@ -31,8 +28,6 @@ class StringFormatTestCase(TestCase):
arg_bytes = _unicode_encode(arg_unicode, encoding=_encodings['content'])
dependency_arg = DependencyArg(arg=arg_unicode)
- # Use unicode_literals for unicode format string so that
- # __unicode__() is called in Python 2.
formatted_str = "%s" % (dependency_arg,)
self.assertEqual(formatted_str, arg_unicode)
@@ -48,8 +43,6 @@ class StringFormatTestCase(TestCase):
arg_bytes = _unicode_encode(arg_unicode, encoding=_encodings['content'])
e = PortageException(arg_unicode)
- # Use unicode_literals for unicode format string so that
- # __unicode__() is called in Python 2.
formatted_str = "%s" % (e,)
self.assertEqual(formatted_str, arg_unicode)
@@ -66,8 +59,6 @@ class StringFormatTestCase(TestCase):
for arg_unicode in self.unicode_strings:
e = UseFlagDisplay(arg_unicode, enabled, forced)
- # Use unicode_literals for unicode format string so that
- # __unicode__() is called in Python 2.
formatted_str = "%s" % (e,)
self.assertEqual(isinstance(formatted_str, str), True)
diff --git a/lib/portage/util/digraph.py b/lib/portage/util/digraph.py
index c262cddee..623f2d988 100644
--- a/lib/portage/util/digraph.py
+++ b/lib/portage/util/digraph.py
@@ -311,9 +311,6 @@ class digraph:
def debug_print(self):
def output(s):
writemsg(s, noiselevel=-1)
- # Use unicode_literals to force unicode format
- # strings for python-2.x safety, ensuring that
- # node.__unicode__() is used when necessary.
for node in self.nodes:
output("%s " % (node,))
if self.nodes[node][0]:
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 3/3] lib: Remove outdated Python 2 comments
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 3/3] lib: Remove outdated Python 2 comments Matt Turner
@ 2021-03-06 9:22 ` Zac Medico
0 siblings, 0 replies; 4+ messages in thread
From: Zac Medico @ 2021-03-06 9:22 UTC (permalink / raw
To: gentoo-portage-dev, Matt Turner
[-- Attachment #1.1: Type: text/plain, Size: 1044 bytes --]
On 3/4/21 11:23 AM, Matt Turner wrote:
> Fixes: 788c0e8bb ("Remove from __future__ import unicode_literals")
> Signed-off-by: Matt Turner <mattst88@gentoo.org>
> ---
> bin/egencache | 2 --
> lib/_emerge/Package.py | 9 ---------
> lib/_emerge/Scheduler.py | 2 --
> lib/_emerge/UseFlagDisplay.py | 2 --
> lib/_emerge/resolver/output.py | 2 --
> lib/portage/cache/flat_hash.py | 3 ---
> lib/portage/tests/unicode/test_string_format.py | 9 ---------
> lib/portage/util/digraph.py | 3 ---
> 8 files changed, 32 deletions(-)
Series looks good. Merged. Thanks!
https://gitweb.gentoo.org/proj/portage.git/commit/?id=9003c5201c6503ddad9237bcffbc6f775567661b
https://gitweb.gentoo.org/proj/portage.git/commit/?id=af100c65ebf7fd84307a84819602a934ebb0741c
https://gitweb.gentoo.org/proj/portage.git/commit/?id=21c6c0c1088ded78397594bfd78102361f8d837b
--
Thanks,
Zac
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 981 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-03-06 9:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-04 19:23 [gentoo-portage-dev] [PATCH 1/3] Remove Python 2 workaround Matt Turner
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 2/3] Remove outdated mention of Python 2 from comment Matt Turner
2021-03-04 19:23 ` [gentoo-portage-dev] [PATCH 3/3] lib: Remove outdated Python 2 comments Matt Turner
2021-03-06 9:22 ` Zac Medico
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox