public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Zac Medico" <zmedico@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/dep/
Date: Wed, 20 Jun 2012 07:00:42 +0000 (UTC)	[thread overview]
Message-ID: <1340175628.0f16a6aa3e7e1f9a601eee88e117fbd141735828.zmedico@gentoo> (raw)

commit:     0f16a6aa3e7e1f9a601eee88e117fbd141735828
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 20 07:00:28 2012 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed Jun 20 07:00:28 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0f16a6aa

Atom: cleanup str()/unicode() usage

---
 pym/portage/dep/__init__.py |   40 +++++++++++++++++++++++-----------------
 1 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index e6056b1..23bafa8 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -22,7 +22,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
 	'portage.util:cmp_sort_key,writemsg',
 )
 
-from portage import _unicode_decode
+from portage import _encodings, _unicode_decode, _unicode_encode
 from portage.eapi import _get_eapi_attrs
 from portage.exception import InvalidAtom, InvalidData, InvalidDependString
 from portage.localization import _
@@ -32,6 +32,9 @@ import portage.cache.mappings
 
 if sys.hexversion >= 0x3000000:
 	basestring = str
+	_unicode = str
+else:
+	_unicode = unicode
 
 # Api consumers included in portage should set this to True.
 # Once the relevant api changes are in a portage release with
@@ -887,6 +890,14 @@ class _use_dep(object):
 			return ""
 		return "[%s]" % (",".join(self.tokens),)
 
+	if sys.hexversion < 0x3000000:
+
+		__unicode__ = __str__
+
+		def __str__(self):
+			return _unicode_encode(self.__unicode__(),
+				encoding=_encodings['content'], errors='backslashreplace')
+
 	def __repr__(self):
 		return "portage.dep._use_dep(%s)" % repr(self.tokens)
 
@@ -1131,12 +1142,7 @@ class _use_dep(object):
 		return _use_dep(tokens, self._eapi_attrs, enabled_flags=enabled_flags, disabled_flags=disabled_flags,
 			missing_enabled=missing_enabled, missing_disabled=missing_disabled, required=self.required)
 
-if sys.hexversion < 0x3000000:
-	_atom_base = unicode
-else:
-	_atom_base = str
-
-class Atom(_atom_base):
+class Atom(_unicode):
 
 	"""
 	For compatibility with existing atom string manipulation code, this
@@ -1157,7 +1163,7 @@ class Atom(_atom_base):
 
 	def __new__(cls, s, unevaluated_atom=None, allow_wildcard=False, allow_repo=None,
 		_use=None, eapi=None, is_valid_flag=None):
-		return _atom_base.__new__(cls, s)
+		return _unicode.__new__(cls, s)
 
 	def __init__(self, s, unevaluated_atom=None, allow_wildcard=False, allow_repo=None,
 		_use=None, eapi=None, is_valid_flag=None):
@@ -1165,13 +1171,13 @@ class Atom(_atom_base):
 			# This is an efficiency assertion, to ensure that the Atom
 			# constructor is not called redundantly.
 			raise TypeError(_("Expected %s, got %s") % \
-				(_atom_base, type(s)))
+				(_unicode, type(s)))
 
-		if not isinstance(s, _atom_base):
-			# Avoid TypeError from _atom_base.__init__ with PyPy.
+		if not isinstance(s, _unicode):
+			# Avoid TypeError from _unicode.__init__ with PyPy.
 			s = _unicode_decode(s)
 
-		_atom_base.__init__(s)
+		_unicode.__init__(s)
 
 		eapi_attrs = _get_eapi_attrs(eapi)
 		atom_re = _get_atom_re(eapi_attrs)
@@ -1343,7 +1349,7 @@ class Atom(_atom_base):
 			atom += _slot_separator + self.slot
 		atom += _repo_separator + repo
 		if self.use is not None:
-			atom += str(self.use)
+			atom += _unicode(self.use)
 		return Atom(atom, allow_repo=True, allow_wildcard=True)
 
 	def with_slot(self, slot):
@@ -1351,7 +1357,7 @@ class Atom(_atom_base):
 		if self.repo is not None:
 			atom += _repo_separator + self.repo
 		if self.use is not None:
-			atom += str(self.use)
+			atom += _unicode(self.use)
 		return Atom(atom, allow_repo=True, allow_wildcard=True)
 
 	def __setattr__(self, name, value):
@@ -1403,7 +1409,7 @@ class Atom(_atom_base):
 		if self.slot:
 			atom += ":%s" % self.slot
 		use_dep = self.use.evaluate_conditionals(use)
-		atom += str(use_dep)
+		atom += _unicode(use_dep)
 		return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep)
 
 	def violated_conditionals(self, other_use, is_valid_flag, parent_use=None):
@@ -1425,7 +1431,7 @@ class Atom(_atom_base):
 		if self.slot:
 			atom += ":%s" % self.slot
 		use_dep = self.use.violated_conditionals(other_use, is_valid_flag, parent_use)
-		atom += str(use_dep)
+		atom += _unicode(use_dep)
 		return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep)
 
 	def _eval_qa_conditionals(self, use_mask, use_force):
@@ -1435,7 +1441,7 @@ class Atom(_atom_base):
 		if self.slot:
 			atom += ":%s" % self.slot
 		use_dep = self.use._eval_qa_conditionals(use_mask, use_force)
-		atom += str(use_dep)
+		atom += _unicode(use_dep)
 		return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep)
 
 	def __copy__(self):



             reply	other threads:[~2012-06-20  7:00 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-20  7:00 Zac Medico [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-07-02 15:34 [gentoo-commits] proj/portage:master commit in: pym/portage/dep/ Brian Dolbec
2017-03-08 19:30 Zac Medico
2016-11-22 17:11 Zac Medico
2015-02-24 17:41 Zac Medico
2014-08-28  8:59 Michał Górny
2014-03-30 19:00 Sebastian Luther
2013-08-22  4:15 Zac Medico
2013-07-30  5:48 Zac Medico
2013-06-10  0:50 Zac Medico
2012-12-11  9:42 Arfrever Frehtes Taifersar Arahesis
2012-11-25 11:03 Arfrever Frehtes Taifersar Arahesis
2012-11-14 19:55 Zac Medico
2012-10-14 19:21 Zac Medico
2012-09-27 16:58 Zac Medico
2012-09-26  3:31 Zac Medico
2012-09-14  6:00 Zac Medico
2012-07-02 23:11 Zac Medico
2012-07-02 20:28 Zac Medico
2012-06-25 21:28 Zac Medico
2012-06-10 23:18 Zac Medico
2012-06-10 22:43 Zac Medico
2012-06-10 22:37 Zac Medico
2012-06-10 22:20 Zac Medico
2012-06-10 22:16 Zac Medico
2012-06-10 21:51 Zac Medico
2012-06-10 21:08 Zac Medico
2012-06-10 20:48 Zac Medico
2012-05-30  0:47 Arfrever Frehtes Taifersar Arahesis
2012-05-14  6:54 Zac Medico
2012-05-14  0:08 Zac Medico
2012-05-13 20:37 Zac Medico
2012-05-13 20:22 Zac Medico
2012-05-13  9:31 Zac Medico
2012-04-22 21:41 Zac Medico
2012-01-10 18:41 Zac Medico
2011-10-05 19:58 Zac Medico
2011-09-23  1:55 Zac Medico
2011-09-23  0:48 Zac Medico
2011-09-10 14:31 Zac Medico
2011-06-23 10:56 Arfrever Frehtes Taifersar Arahesis
2011-06-08 19:05 Zac Medico
2011-04-11 22:30 Zac Medico
2011-03-17 18:44 Zac Medico
2011-02-19 22:55 Zac Medico
2011-02-08 18:57 Zac Medico
2011-02-08  0:43 Zac Medico
2011-02-07 22:20 Zac Medico
2011-02-07 11:45 Zac Medico
2011-02-07 11:19 Zac Medico
2011-02-05  0:27 Zac Medico
2011-02-04 23:04 Zac Medico
2011-02-04  6:29 zmedico

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=1340175628.0f16a6aa3e7e1f9a601eee88e117fbd141735828.zmedico@gentoo \
    --to=zmedico@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-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