Blame tests/run/pxd_argument_names.srctree
|
Packit Service |
99d393 |
# mode: run
|
|
Packit Service |
99d393 |
# ticket: gh1888
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
PYTHON setup.py build_ext --inplace
|
|
Packit Service |
99d393 |
PYTHON -c "import a; a.test()"
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## setup.py ########
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
from Cython.Build.Dependencies import cythonize
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
from distutils.core import setup
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
setup(
|
|
Packit Service |
99d393 |
ext_modules=cythonize("a.pyx"),
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## a.pxd ########
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef int do_stuff(int foo) except -1
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## a.pyx ########
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef int do_stuff(int bar) except -1:
|
|
Packit Service |
99d393 |
if bar == 0:
|
|
Packit Service |
99d393 |
raise ValueError()
|
|
Packit Service |
99d393 |
return bar
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef call_do_stuff(int x):
|
|
Packit Service |
99d393 |
# The keyword argument name is surprising, but actually correct.
|
|
Packit Service |
99d393 |
# The caller signature is defined by the .pxd file, not the implementation.
|
|
Packit Service |
99d393 |
return do_stuff(foo=x)
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
def test():
|
|
Packit Service |
99d393 |
assert do_stuff(1) == 1
|
|
Packit Service |
99d393 |
assert do_stuff(foo=1) == 1
|
|
Packit Service |
99d393 |
assert call_do_stuff(1) == 1
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
try:
|
|
Packit Service |
99d393 |
do_stuff(0)
|
|
Packit Service |
99d393 |
except ValueError:
|
|
Packit Service |
99d393 |
pass
|
|
Packit Service |
99d393 |
else:
|
|
Packit Service |
99d393 |
assert False, "exception not raised"
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
try:
|
|
Packit Service |
99d393 |
call_do_stuff(0)
|
|
Packit Service |
99d393 |
except ValueError:
|
|
Packit Service |
99d393 |
pass
|
|
Packit Service |
99d393 |
else:
|
|
Packit Service |
99d393 |
assert False, "exception not raised"
|