Commit 3cb95b76 authored by Stefan Behnel's avatar Stefan Behnel

Mark error raising code in PEP 489 init phase as TODO.

parent 429936a2
......@@ -2325,20 +2325,20 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.put_declare_refcount_context()
code.putln("#if CYTHON_PEP489_MULTI_PHASE_INIT")
# Most extension modules simply can't deal with it, and Cython isn't ready either.
# See issues listed here: https://docs.python.org/3/c-api/init.html#sub-interpreter-support
code.putln("if (%s) {" % Naming.module_cname)
# Hack: enforce single initialisation.
code.putln("if (%s && %s == %s) return 0;" % (
Naming.module_cname,
code.putln("if (%s == %s) return 0;" % (
Naming.module_cname,
Naming.pymodinit_module_arg,
))
# # Most extension modules simply can't deal with it, and Cython isn't ready either.
# # See issues listed here: https://docs.python.org/3/c-api/init.html#sub-interpreter-support
# code.putln("if (%s) {" % Naming.module_cname)
# TODO: We should raise an exception here, as long as Cython cannot actually support reinitialisation.
# code.putln('PyErr_SetString(PyExc_RuntimeError,'
# ' "Module \'%s\' has already been imported. Re-initialisation is not supported");' %
# env.module_name)
# code.putln("return -1;")
# code.putln("}")
code.putln("}")
code.putln("#elif PY_MAJOR_VERSION >= 3")
# Hack: enforce single initialisation also on reimports under different names on Python 3 (with PEP 3121/489).
code.putln("if (%s) return __Pyx_NewRef(%s);" % (
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment