Cython has moved to github.
cython-devel
view tests/run/charptr_len.pyx @ 2698:d2b963bc03f2
support len(char*) efficiently by calling strlen() instead
| author | Stefan Behnel <scoder@users.berlios.de> |
|---|---|
| date | Thu Nov 26 20:49:09 2009 +0100 (2 years ago) |
| parents | |
| children | 23f7b8f2bd88 |
line source
1 __doc__ = """
2 >>> lentest_char()
3 7
4 >>> lentest_char_c()
5 7
7 >>> lentest_uchar()
8 7
9 >>> lentest_uchar_c()
10 7
12 >>> lentest_py()
13 7
14 >>> lentest_py_c()
15 7
16 """
19 cimport cython
21 cdef char* s = b"abcdefg"
22 cdef unsigned char* us = b"abcdefg"
23 cdef bytes pystr = b"abcdefg"
26 @cython.test_assert_path_exists(
27 "//PythonCapiCallNode",
28 )
29 def lentest_char():
30 return len(s)
32 @cython.test_assert_path_exists(
33 "//PythonCapiCallNode",
34 )
35 def lentest_char_c():
36 cdef Py_ssize_t l = len(s)
37 return l
40 @cython.test_assert_path_exists(
41 "//PythonCapiCallNode",
42 )
43 def lentest_uchar():
44 return len(us)
46 @cython.test_assert_path_exists(
47 "//PythonCapiCallNode",
48 )
49 def lentest_uchar_c():
50 cdef Py_ssize_t l = len(us)
51 return l
54 @cython.test_assert_path_exists(
55 "//SimpleCallNode",
56 )
57 def lentest_py():
58 return len(pystr)
60 @cython.test_assert_path_exists(
61 "//SimpleCallNode",
62 )
63 def lentest_py_c():
64 cdef Py_ssize_t l = len(pystr)
65 return l
