Blame tests/run/pxd_signature_excvalue.srctree
|
Packit |
562c7a |
PYTHON setup.py build_ext --inplace
|
|
Packit |
562c7a |
PYTHON -c "import foo"
|
|
Packit |
562c7a |
PYTHON -c "import a; a.test()"
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
######## setup.py ########
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
from Cython.Build import cythonize
|
|
Packit |
562c7a |
from distutils.core import setup
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
setup(
|
|
Packit |
562c7a |
ext_modules = cythonize("*.pyx"),
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
######## foo.pxd ########
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef int bar(int i) except *
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef int (*var_opt)(int) except? -1
|
|
Packit |
562c7a |
cdef int (*var_orig)(int) except *
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
######## foo.pyx ########
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef int bar(int i) except *:
|
|
Packit |
562c7a |
if i == 10:
|
|
Packit |
562c7a |
raise ValueError()
|
|
Packit |
562c7a |
return i + 1
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
var_opt = bar # by 'accident' of optimisation
|
|
Packit |
562c7a |
var_orig = bar # by declaration
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
######## a.pyx ########
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cimport cython
|
|
Packit |
562c7a |
from foo cimport bar, var_orig, var_opt
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test():
|
|
Packit |
562c7a |
assert bar(-2) == -1
|
|
Packit |
562c7a |
try:
|
|
Packit |
562c7a |
bar(10)
|
|
Packit |
562c7a |
except ValueError:
|
|
Packit |
562c7a |
pass
|
|
Packit |
562c7a |
else:
|
|
Packit |
562c7a |
assert False, "exception not raised in bar()"
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert var_orig(-2) == -1
|
|
Packit |
562c7a |
try:
|
|
Packit |
562c7a |
var_orig(10)
|
|
Packit |
562c7a |
except ValueError:
|
|
Packit |
562c7a |
pass
|
|
Packit |
562c7a |
else:
|
|
Packit |
562c7a |
assert False, "exception not raised in var_orig()"
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert var_opt(-2) == -1
|
|
Packit |
562c7a |
try:
|
|
Packit |
562c7a |
var_opt(10)
|
|
Packit |
562c7a |
except ValueError:
|
|
Packit |
562c7a |
pass
|
|
Packit |
562c7a |
else:
|
|
Packit |
562c7a |
assert False, "exception not raised in var_opt()"
|