[PATCH 03 of 10] py3: make sure we return strings from __str__ and __repr__
Pulkit Goyal
7895pulkit at gmail.com
Wed May 31 17:46:59 EDT 2017
# HG changeset patch
# User Pulkit Goyal <7895pulkit at gmail.com>
# Date 1496255410 -19800
# Thu Jun 01 00:00:10 2017 +0530
# Node ID 25718d4a6de987771b43874573e1095c9cfc5ab2
# Parent 93f5b615c900ec9b74b141aaeb162041f59d5737
py3: make sure we return strings from __str__ and __repr__
On Python 3:
>>> class abc:
... def __repr__(self):
... return b'abc'
...
>>> abc()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __repr__ returned non-string (type bytes)
>>> class abc:
... def __str__(self):
... return b'abc'
...
>>> str(abc())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __str__ returned non-string (type bytes)
So the __str__ and __repr__ must return strings.
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -77,7 +77,7 @@
return self.rev()
def __repr__(self):
- return "<%s %s>" % (type(self).__name__, str(self))
+ return r"<%s %s>" % (type(self).__name__, str(self))
def __eq__(self, other):
try:
@@ -1406,7 +1406,7 @@
self._extra['branch'] = 'default'
def __str__(self):
- return str(self._parents[0]) + "+"
+ return str(self._parents[0]) + r"+"
def __nonzero__(self):
return True
More information about the Mercurial-devel
mailing list