[pypy-commit] pypy utf8-unicode2: Fix text_index when run on a translated PyPy

waedt noreply at buildbot.pypy.org
Mon Aug 11 20:06:43 CEST 2014


Author: Tyler Wade <wayedt at gmail.com>
Branch: utf8-unicode2
Changeset: r72754:42f8daeaba72
Date: 2014-08-11 03:06 -0500
http://bitbucket.org/pypy/pypy/changeset/42f8daeaba72/

Log:	Fix text_index when run on a translated PyPy

diff --git a/pypy/interpreter/utf8.py b/pypy/interpreter/utf8.py
--- a/pypy/interpreter/utf8.py
+++ b/pypy/interpreter/utf8.py
@@ -174,9 +174,14 @@
         return pos
 
     def __getitem__(self, char_pos):
-        if not isinstance(char_pos, int):
-            raise TypeError("string index must be an integer, not %r" %
-                              type(char_pos))
+        if not we_are_translated():
+            if hasattr(char_pos, '__index__'):
+                char_pos = char_pos.__index__()
+
+            if not isinstance(char_pos, (int, long)):
+                raise TypeError("string index must be an integer, not %r" %
+                                type(char_pos))
+
         # This if statement is needed for [-1:0] to slice correctly
         if char_pos >= self._len:
             raise IndexError()


More information about the pypy-commit mailing list