summaryrefslogtreecommitdiff
path: root/Cython/Compiler/ModuleNode.py
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2015-04-24 21:59:07 +0200
committerStefan Behnel <stefan_ml@behnel.de>2015-04-24 23:07:33 +0200
commitcf63ff71c06b16c3a30facdc7859743f4cd495f6 (patch)
treede0d442d32c5b7856458f06b3683911dc4178cdb /Cython/Compiler/ModuleNode.py
parentbb4d9c2de71b7c7e1e02d9dfeae53f4547fa9d7d (diff)
downloadcython-cf63ff71c06b16c3a30facdc7859743f4cd495f6.tar.gz
patch Generator ABC into "collections.abc" when using Cython generators so that foreign code can test for the Generator protocol instead of the generator type
Diffstat (limited to 'Cython/Compiler/ModuleNode.py')
-rw-r--r--Cython/Compiler/ModuleNode.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py
index 9f6b734b8..7a9413f3a 100644
--- a/Cython/Compiler/ModuleNode.py
+++ b/Cython/Compiler/ModuleNode.py
@@ -2151,6 +2151,10 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln("/*--- Execution code ---*/")
code.mark_pos(None)
+ code.putln("#ifdef __Pyx_Generator_USED")
+ code.put_error_if_neg(self.pos, "__Pyx_patch_abc()")
+ code.putln("#endif")
+
if profile or linetrace:
code.put_trace_call(header3, self.pos, nogil=not code.funcstate.gil_owned)
code.funcstate.can_trace = True