private int RunCommandWorker(string command) { ScriptCode compiledCode; ModuleOptions trueDiv = (PythonContext.PythonOptions.DivisionOptions == PythonDivisionOptions.New) ? ModuleOptions.TrueDivision : ModuleOptions.None; ModuleOptions modOpt = ModuleOptions.Optimized | ModuleOptions.ModuleBuiltins | trueDiv; ; if (Options.SkipFirstSourceLine) { modOpt |= ModuleOptions.SkipFirstLine; } PythonModule module = PythonContext.CompileModule( "", // there is no file, it will be set to <module> "__main__", PythonContext.CreateSnippet(command, "-c", SourceCodeKind.File), modOpt, out compiledCode); PythonContext.PublishModule("__main__", module); Scope = module.Scope; try { compiledCode.Run(Scope); } catch (SystemExitException pythonSystemExit) { // disable introspection when exited: Options.Introspection = false; return(GetEffectiveExitCode(pythonSystemExit)); } return(0); }
private static PythonModule /*!*/ LoadPythonSource(PythonContext /*!*/ context, string /*!*/ name, PythonFile /*!*/ file, string /*!*/ fileName) { SourceUnit sourceUnit = context.CreateSnippet(file.read(), String.IsNullOrEmpty(fileName) ? null : fileName, SourceCodeKind.File); return(context.CompileModule(fileName, name, sourceUnit, ModuleOptions.Initialize)); }