/// <summary> /// Analyze python imports /// </summary> /// <returns></returns> public IList <Result> Analyze() { var results = new List <Result>(); sqlService.OpenConnection((connection) => { var scripts = connection.Query <PythonScript>("select ScriptName as Name, ScriptContent as Code from ESS_MS_Dynamic_Script").ToList(); scripts.AddRange(connection.Query <PythonScript>("select Name as Name, CodeBehind as Code from ESS_MS_Dynamic_Mask")); foreach (var script in scripts) { foreach (var line in script.Code.Split(new char[] { '\r', '\n' })) { if (line.StartsWith("import ") || line.StartsWith("from ")) { try { var scope = new DlrScriptScope(GlobalDlrHost.Host); scope.Execute(line); } catch (Exception ex) { results.Add(new Result() { AnalyzerName = Name, Name = $"{script.Name}", ResultType = ResultType.Error, Message = $"Error in python import: `{line}`\r\n {ex}", ConfigurationType = "script code" }); } } } } }); return(results); }
/// <summary> /// Create math class /// </summary> /// <param name="scriptScope"></param> /// <param name="className"></param> /// <param name="parameter"></param> internal MathClass(DlrScriptScope scriptScope, params object[] parameter) : base(scriptScope, "MathClass", parameter) { }