From 611591bfd3629d7f242fde73b378cc6d7d79af0b Mon Sep 17 00:00:00 2001 From: Robert Bradshaw Date: Tue, 21 Apr 2009 02:11:16 -0700 Subject: [PATCH] __name__ == "__main__" for embedded modules --- Cython/Compiler/CmdLine.py | 1 - Cython/Compiler/ModuleNode.py | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Cython/Compiler/CmdLine.py b/Cython/Compiler/CmdLine.py index f48cfb58..d70223a4 100644 --- a/Cython/Compiler/CmdLine.py +++ b/Cython/Compiler/CmdLine.py @@ -73,7 +73,6 @@ def parse_command_line(args): options = CompilationOptions(default_options) sources = [] while args: - print args if args[0].startswith("-"): option = pop_arg() if option in ("-V", "--version"): diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py index 97d5f218..8a6364fc 100644 --- a/Cython/Compiler/ModuleNode.py +++ b/Cython/Compiler/ModuleNode.py @@ -56,6 +56,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): else: env.doc = self.doc env.directives = self.directives + if Options.embed: + self.__main__cname = env.intern_identifier(EncodedString("__main__")) self.body.analyse_declarations(env) def process_implementation(self, options, result): @@ -1803,6 +1805,12 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): env.module_cname, Naming.builtins_cname, code.error_goto(self.pos))) + if Options.embed: + code.putln( + 'if (__Pyx_SetAttrString(%s, "__name__", %s) < 0) %s;' % ( + env.module_cname, + self.__main__cname, + code.error_goto(self.pos))) if Options.pre_import is not None: code.putln( '%s = PyImport_AddModule(__Pyx_NAMESTR("%s"));' % ( @@ -2459,7 +2467,7 @@ int main(int argc, char** argv) { #else PyInit_%(module_name)s(name); #endif - r = PyErr_Occurred(); + r = PyErr_Occurred() != NULL; Py_Finalize(); return r; } -- 2.26.2