[pypy-svn] r42004 - in pypy/dist/pypy/objspace: cpy cpy/test std
fijal at codespeak.net
fijal at codespeak.net
Thu Apr 12 19:50:21 CEST 2007
Author: fijal
Date: Thu Apr 12 19:50:20 2007
New Revision: 42004
Modified:
pypy/dist/pypy/objspace/cpy/objspace.py
pypy/dist/pypy/objspace/cpy/test/test_objspace.py
pypy/dist/pypy/objspace/std/objspace.py
Log:
Change newunicode semantics to use list of unichars
Modified: pypy/dist/pypy/objspace/cpy/objspace.py
==============================================================================
--- pypy/dist/pypy/objspace/cpy/objspace.py (original)
+++ pypy/dist/pypy/objspace/cpy/objspace.py Thu Apr 12 19:50:20 2007
@@ -236,7 +236,7 @@
def newunicode(self, codes):
# XXX inefficient
- lst = [PyUnicode_FromOrdinal(code) for code in codes]
+ lst = [PyUnicode_FromOrdinal(ord(code)) for code in codes]
w_lst = self.newlist(lst)
w_emptyunicode = PyUnicode_FromUnicode(None, 0)
return self.call_method(w_emptyunicode, 'join', w_lst)
Modified: pypy/dist/pypy/objspace/cpy/test/test_objspace.py
==============================================================================
--- pypy/dist/pypy/objspace/cpy/test/test_objspace.py (original)
+++ pypy/dist/pypy/objspace/cpy/test/test_objspace.py Thu Apr 12 19:50:20 2007
@@ -56,7 +56,7 @@
def test_newunicode():
space = CPyObjSpace()
- w = space.newunicode([65, 66])
+ w = space.newunicode([unichr(65), unichr(66)])
assert space.is_w(space.type(w), space.w_unicode)
for i in range(2):
code = space.int_w(space.ord(space.getitem(w, space.wrap(i))))
@@ -68,9 +68,9 @@
assert space.int_w(space.ord(w)) == 65
w = space.wrap('\x00')
assert space.int_w(space.ord(w)) == 0
- w = space.newunicode([65])
+ w = space.newunicode([unichr(65)])
assert space.int_w(space.ord(w)) == 65
- w = space.newunicode([0])
+ w = space.newunicode([unichr(0)])
assert space.int_w(space.ord(w)) == 0
def test_id():
Modified: pypy/dist/pypy/objspace/std/objspace.py
==============================================================================
--- pypy/dist/pypy/objspace/std/objspace.py (original)
+++ pypy/dist/pypy/objspace/std/objspace.py Thu Apr 12 19:50:20 2007
@@ -531,11 +531,6 @@
return self.wrap(''.join(chars))
def newunicode(self, chars):
- try:
- chars = [unichr(c) for c in chars]
- except ValueError, e: # unichr(out-of-range)
- msg = "character code not in range(%s)" % hex(sys.maxunicode+1)
- raise OperationError(self.w_ValueError, self.wrap(msg))
return W_UnicodeObject(chars)
def newseqiter(self, w_obj):
More information about the Pypy-commit
mailing list