On Sep 30, 2009, at 10:08 AM, Matthew Honnibal wrote:
> Hi,
> I've only just started using Cython today, and I'm having trouble with
> the buffer interface indexing described here:
> http://wiki.cython.org/enhancements/buffer . I want to iterate over a
> unicode string getting contiguous subsequences.
I'm not sure what the intended behavior is, given that unicode
objects can be stored with various encodings, and, in particular, the
default (UTF-8) is a variable-length encoding.
> My Cython function has the following declaration:
>
> def parseDoc(object[object] string):
If you really want a 1D list of objects, I'd just use a list.
> I've tried various Python types, but I always get a runtime error
> like:
>
> TypeError: 'unicode' does not have the buffer interface
> TypeError: 'array.array' does not have the buffer interface
> TypeError: 'buffer' does not have the buffer interface
>
> The last one was obtained by calling the built-in buffer() function on
> the string.
>
> I can get a step further by doing cimport numpy and using a numpy
> array, but then unicode is not one of the supported types, and that
> doesn't seem like it was the intention --- the docs suggest at Python
> 2.6+, I shouldn't need the numpy work-around.
>
> What am I doing wrong?
I'm not sure.
I can't even get
def foo(object[double] a):
return a[0]
foo(numpy.ndarrray(5))
to work. Dag, any ideas? Is this supposed to work for Py < 3.0?
- Robert
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev