John Ehresman, 27.05.2011 21:55:
ord() applied to a Py_UNICODE typed variable seems to yield a 1 character
unicode string rather than an integer. The following doctest fails when
added to unicodefunction.pyx:
def Py_UNICODE_ord(unicode s):
"""
>>> Py_UNICODE_ord(u' ')
32
"""
cdef Py_UNICODE u
u = s[0]
return ord(u)
ord() is actually unpacked in this case (see Optimise.py), but the result
type is incorrect. It's Py_UNICODE (which coerces back to a unicode
string), whereas it should be int (thus coercing to a Python integer object).
I pushed a fix, and also the obvious optimisation for calling ord() on
single character string literals.
Thanks for the report.
Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel