public void Run() { MacroManager.Listener = this; try { PythonEngine engine = new PythonEngine(); ScriptingEnv.InitializeEngine(engine); engine.Globals["root"] = m_window; engine.Globals["procedure"] = m_mywindowproc; engine.Globals["GetLastOpenedWindow"] = (Func <Form>) delegate() { return(MacroManager.LastOpenedWindow); }; engine.Globals["DoEvents"] = (Action)DoEvents; engine.Globals["SetWindowProc"] = (Action <object>)SetWindowProc; engine.Globals["FindNodeByPath"] = (Func <object, object, object>)FindNodeByPath; engine.Globals["RunPopupMenuCommand"] = (Action <object, object>)DoRunPopupMenuCommand; engine.Globals["GetPropertyDescriptor"] = (Func <object, object, object>)GetPropertyDescriptor; engine.Globals["SetProperty"] = (Action <object, object, object>)SetProperty; engine.Globals["GetProperty"] = (Func <object, object, object>)GetProperty; foreach (string var in m_vars.Keys) { engine.Globals[var] = m_vars[var]; } engine.ExecuteFile(m_pyfile); } finally { MacroManager.Listener = null; } }
private NameTemplateEngine() { m_engine = new PythonEngine(); ScriptingEnv.InitializeEngine(m_engine); m_engine.Globals["guid"] = (Func <string>)GuidFunc; m_engine.Globals["date"] = (Func <string, string>)DateFunc; m_engine.Globals["utcdate"] = (Func <string, string>)UtcDateFunc; }
private void WantEngine() { if (m_engine != null) { return; } m_engine = new PythonEngine(); ScriptingEnv.InitializeEngine(m_engine); }
public static RunTextWriterDelegate CompileScript(string code, TextGeneratorLanguage language) { switch (language) { case TextGeneratorLanguage.Python: return(delegate(Stream fw, IDictionary <string, object> extnames, IDictionary <string, object> outnames) { PythonEngine engine = new PythonEngine(); ScriptingEnv.InitializeEngine(engine); engine.SetStandardOutput(fw); CompiledCode compiled = engine.Compile(code); //if (node != null) node.GetScriptingNS(engine.DefaultModule.Globals); if (extnames != null) { foreach (string key in extnames.Keys) { engine.DefaultModule.Globals[key] = extnames[key]; } } compiled.Execute(); if (outnames != null) { foreach (string key in engine.DefaultModule.Globals.Keys) { outnames[key] = engine.DefaultModule.Globals[key]; } } }); case TextGeneratorLanguage.Template: return(delegate(Stream fw, IDictionary <string, object> extnames, IDictionary <string, object> outnames) { PythonEngine engine = new PythonEngine(); engine.SetStandardOutput(fw); ScriptingEnv.InitializeEngine(engine); //if (node != null) node.GetScriptingNS(engine.DefaultModule.Globals); if (extnames != null) { foreach (string key in extnames.Keys) { engine.DefaultModule.Globals[key] = extnames[key]; } } Template tpl = new Template(code, engine); StreamWriter sw = new StreamWriter(fw); TemplateEnviroment env = new TemplateEnviroment(sw); tpl.Run(env); }); } throw new Exception("DAE-00258 internal error"); }