[pypy-commit] pypy py3k: chr() now returns unicode
amauryfa
noreply at buildbot.pypy.org
Thu Oct 13 01:53:01 CEST 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r48009:b42bce22fe28
Date: 2011-10-13 01:37 +0200
http://bitbucket.org/pypy/pypy/changeset/b42bce22fe28/
Log: chr() now returns unicode
diff --git a/pypy/module/__builtin__/__init__.py b/pypy/module/__builtin__/__init__.py
--- a/pypy/module/__builtin__/__init__.py
+++ b/pypy/module/__builtin__/__init__.py
@@ -49,7 +49,6 @@
# interp-level function definitions
'abs' : 'operation.abs',
'chr' : 'operation.chr',
- 'unichr' : 'operation.unichr',
'len' : 'operation.len',
'ord' : 'operation.ord',
'pow' : 'operation.pow',
diff --git a/pypy/module/__builtin__/operation.py b/pypy/module/__builtin__/operation.py
--- a/pypy/module/__builtin__/operation.py
+++ b/pypy/module/__builtin__/operation.py
@@ -15,19 +15,9 @@
"abs(number) -> number\n\nReturn the absolute value of the argument."
return space.abs(w_val)
-def chr(space, w_ascii):
- "Return a string of one character with the given ascii code."
- try:
- char = __builtin__.chr(space.int_w(w_ascii))
- except ValueError: # chr(out-of-range)
- raise OperationError(space.w_ValueError,
- space.wrap("character code not in range(256)"))
- return space.wrap(char)
-
@unwrap_spec(code=int)
-def unichr(space, code):
+def chr(space, code):
"Return a Unicode string of one character with the given ordinal."
- # XXX range checking!
try:
c = UNICHR(code)
except ValueError:
diff --git a/pypy/module/__builtin__/test/test_builtin.py b/pypy/module/__builtin__/test/test_builtin.py
--- a/pypy/module/__builtin__/test/test_builtin.py
+++ b/pypy/module/__builtin__/test/test_builtin.py
@@ -37,11 +37,6 @@
raises(ImportError, __import__, 'spamspam')
raises(TypeError, __import__, 1, 2, 3, 4)
- def test_chr(self):
- assert chr(65) == 'A'
- raises(ValueError, chr, -1)
- raises(TypeError, chr, 'a')
-
def test_bin(self):
assert bin(0) == "0b0"
assert bin(-1) == "-0b1"
@@ -49,18 +44,18 @@
assert bin(-2L) == "-0b10"
raises(TypeError, bin, 0.)
- def test_unichr(self):
+ def test_chr(self):
import sys
- assert unichr(65) == u'A'
- assert type(unicode(65)) is unicode
- assert unichr(0x9876) == u'\u9876'
+ assert chr(65) == 'A'
+ assert type(str(65)) is str
+ assert chr(0x9876) == '\u9876'
if sys.maxunicode > 0xFFFF:
- assert unichr(sys.maxunicode) == u'\U0010FFFF'
- assert unichr(0x10000) == u'\U00010000'
+ assert chr(sys.maxunicode) == '\U0010FFFF'
+ assert chr(0x10000) == '\U00010000'
else:
- assert unichr(sys.maxunicode) == u'\uFFFF'
- raises(ValueError, unichr, -1)
- raises(ValueError, unichr, sys.maxunicode+1)
+ assert chr(sys.maxunicode) == '\uFFFF'
+ raises(ValueError, chr, -1)
+ raises(ValueError, chr, sys.maxunicode+1)
def test_intern(self):
raises(TypeError, intern)
More information about the pypy-commit
mailing list