diff options
Diffstat (limited to 'docs/examples/tutorial/external')
-rw-r--r-- | docs/examples/tutorial/external/atoi.py | 6 | ||||
-rw-r--r-- | docs/examples/tutorial/external/atoi.pyx | 11 | ||||
-rw-r--r-- | docs/examples/tutorial/external/cpdef_sin.pyx | 14 | ||||
-rw-r--r-- | docs/examples/tutorial/external/keyword_args.pyx | 4 | ||||
-rw-r--r-- | docs/examples/tutorial/external/keyword_args_call.py | 7 | ||||
-rw-r--r-- | docs/examples/tutorial/external/keyword_args_call.pyx | 14 | ||||
-rw-r--r-- | docs/examples/tutorial/external/libc_sin.py | 5 | ||||
-rw-r--r-- | docs/examples/tutorial/external/libc_sin.pyx | 9 | ||||
-rw-r--r-- | docs/examples/tutorial/external/py_version_hex.py | 4 | ||||
-rw-r--r-- | docs/examples/tutorial/external/py_version_hex.pyx | 8 | ||||
-rw-r--r-- | docs/examples/tutorial/external/setup.py | 25 | ||||
-rw-r--r-- | docs/examples/tutorial/external/strstr.pxd | 2 |
12 files changed, 67 insertions, 42 deletions
diff --git a/docs/examples/tutorial/external/atoi.py b/docs/examples/tutorial/external/atoi.py new file mode 100644 index 000000000..250b26a5c --- /dev/null +++ b/docs/examples/tutorial/external/atoi.py @@ -0,0 +1,6 @@ +from cython.cimports.libc.stdlib import atoi + +@cython.cfunc +def parse_charptr_to_py_int(s: cython.p_char): + assert s is not cython.NULL, "byte string value is NULL" + return atoi(s) # note: atoi() has no error detection! diff --git a/docs/examples/tutorial/external/atoi.pyx b/docs/examples/tutorial/external/atoi.pyx index 48643bbf2..ef1219854 100644 --- a/docs/examples/tutorial/external/atoi.pyx +++ b/docs/examples/tutorial/external/atoi.pyx @@ -1,5 +1,6 @@ -from libc.stdlib cimport atoi
-
-cdef parse_charptr_to_py_int(char* s):
- assert s is not NULL, "byte string value is NULL"
- return atoi(s) # note: atoi() has no error detection!
+from libc.stdlib cimport atoi + + +cdef parse_charptr_to_py_int(char* s): + assert s is not NULL, "byte string value is NULL" + return atoi(s) # note: atoi() has no error detection! diff --git a/docs/examples/tutorial/external/cpdef_sin.pyx b/docs/examples/tutorial/external/cpdef_sin.pyx index 47e09f433..eee2326a4 100644 --- a/docs/examples/tutorial/external/cpdef_sin.pyx +++ b/docs/examples/tutorial/external/cpdef_sin.pyx @@ -1,7 +1,7 @@ -"""
->>> sin(0)
-0.0
-"""
-
-cdef extern from "math.h":
- cpdef double sin(double x)
+""" +>>> sin(0) +0.0 +""" + +cdef extern from "math.h": + cpdef double sin(double x) diff --git a/docs/examples/tutorial/external/keyword_args.pyx b/docs/examples/tutorial/external/keyword_args.pyx index 327e4e08b..7c2a786cc 100644 --- a/docs/examples/tutorial/external/keyword_args.pyx +++ b/docs/examples/tutorial/external/keyword_args.pyx @@ -1,2 +1,2 @@ -cdef extern from "string.h":
- char* strstr(const char *haystack, const char *needle)
+cdef extern from "string.h": + char* strstr(const char *haystack, const char *needle) diff --git a/docs/examples/tutorial/external/keyword_args_call.py b/docs/examples/tutorial/external/keyword_args_call.py new file mode 100644 index 000000000..b3b3f5049 --- /dev/null +++ b/docs/examples/tutorial/external/keyword_args_call.py @@ -0,0 +1,7 @@ +from cython.cimports.strstr import strstr + +def main(): + data: cython.p_char = "hfvcakdfagbcffvschvxcdfgccbcfhvgcsnfxjh" + + pos = strstr(needle='akd', haystack=data) + print(pos is not cython.NULL) diff --git a/docs/examples/tutorial/external/keyword_args_call.pyx b/docs/examples/tutorial/external/keyword_args_call.pyx index 4be5f755d..de2b6f2b2 100644 --- a/docs/examples/tutorial/external/keyword_args_call.pyx +++ b/docs/examples/tutorial/external/keyword_args_call.pyx @@ -1,7 +1,7 @@ -cdef extern from "string.h":
- char* strstr(const char *haystack, const char *needle)
-
-cdef char* data = "hfvcakdfagbcffvschvxcdfgccbcfhvgcsnfxjh"
-
-cdef char* pos = strstr(needle='akd', haystack=data)
-print(pos is not NULL)
+cdef extern from "string.h": + char* strstr(const char *haystack, const char *needle) + +cdef char* data = "hfvcakdfagbcffvschvxcdfgccbcfhvgcsnfxjh" + +cdef char* pos = strstr(needle='akd', haystack=data) +print(pos is not NULL) diff --git a/docs/examples/tutorial/external/libc_sin.py b/docs/examples/tutorial/external/libc_sin.py new file mode 100644 index 000000000..f4223253d --- /dev/null +++ b/docs/examples/tutorial/external/libc_sin.py @@ -0,0 +1,5 @@ +from cython.cimports.libc.math import sin + +@cython.cfunc +def f(x: cython.double) -> cython.double: + return sin(x * x) diff --git a/docs/examples/tutorial/external/libc_sin.pyx b/docs/examples/tutorial/external/libc_sin.pyx index 25a4430e3..2de8444d6 100644 --- a/docs/examples/tutorial/external/libc_sin.pyx +++ b/docs/examples/tutorial/external/libc_sin.pyx @@ -1,4 +1,5 @@ -from libc.math cimport sin
-
-cdef double f(double x):
- return sin(x * x)
+from libc.math cimport sin + + +cdef double f(double x): + return sin(x * x) diff --git a/docs/examples/tutorial/external/py_version_hex.py b/docs/examples/tutorial/external/py_version_hex.py new file mode 100644 index 000000000..3b19d0d02 --- /dev/null +++ b/docs/examples/tutorial/external/py_version_hex.py @@ -0,0 +1,4 @@ +from cython.cimports.cpython.version import PY_VERSION_HEX + +# Python version >= 3.2 final ? +print(PY_VERSION_HEX >= 0x030200F0) diff --git a/docs/examples/tutorial/external/py_version_hex.pyx b/docs/examples/tutorial/external/py_version_hex.pyx index d732b00e7..e33f207c1 100644 --- a/docs/examples/tutorial/external/py_version_hex.pyx +++ b/docs/examples/tutorial/external/py_version_hex.pyx @@ -1,4 +1,4 @@ -from cpython.version cimport PY_VERSION_HEX
-
-# Python version >= 3.2 final ?
-print(PY_VERSION_HEX >= 0x030200F0)
+from cpython.version cimport PY_VERSION_HEX + +# Python version >= 3.2 final ? +print(PY_VERSION_HEX >= 0x030200F0) diff --git a/docs/examples/tutorial/external/setup.py b/docs/examples/tutorial/external/setup.py index 653214c84..289bc9534 100644 --- a/docs/examples/tutorial/external/setup.py +++ b/docs/examples/tutorial/external/setup.py @@ -1,13 +1,12 @@ -from distutils.core import setup
-from distutils.extension import Extension
-from Cython.Build import cythonize
-
-ext_modules = [
- Extension("demo",
- sources=["demo.pyx"],
- libraries=["m"] # Unix-like specific
- )
-]
-
-setup(name="Demos",
- ext_modules=cythonize(ext_modules))
+from setuptools import Extension, setup +from Cython.Build import cythonize + +ext_modules = [ + Extension("demo", + sources=["demo.pyx"], + libraries=["m"] # Unix-like specific + ) +] + +setup(name="Demos", + ext_modules=cythonize(ext_modules)) diff --git a/docs/examples/tutorial/external/strstr.pxd b/docs/examples/tutorial/external/strstr.pxd new file mode 100644 index 000000000..7c2a786cc --- /dev/null +++ b/docs/examples/tutorial/external/strstr.pxd @@ -0,0 +1,2 @@ +cdef extern from "string.h": + char* strstr(const char *haystack, const char *needle) |