summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demo/cdef_call_python.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/demo/cdef_call_python.py b/demo/cdef_call_python.py
new file mode 100644
index 0000000..24f420f
--- /dev/null
+++ b/demo/cdef_call_python.py
@@ -0,0 +1,29 @@
+import cffi
+
+ffi = cffi.FFI()
+
+ffi.cdef("""
+ int add(int x, int y);
+ CFFI_CALL_PYTHON long mangle(int);
+""")
+
+ffi.set_source("_cdef_call_python_cffi", """
+
+ static long mangle(int);
+
+ static int add(int x, int y)
+ {
+ return mangle(x) + mangle(y);
+ }
+""")
+
+ffi.compile()
+
+
+from _cdef_call_python_cffi import ffi, lib
+
+@ffi.call_python("mangle") # optional argument, default to func.__name__
+def mangle(x):
+ return x * x
+
+assert lib.add(40, 2) == 1604