I am calling and executing python(.py) files from C# but before that I would like to validate file either it is valid python file or any syntax/code errors.
How can I compile python code file dynamically before executing file?
Below is my code
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using IronPython.Hosting;//for DLHE
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
try
{
var scriptSource = engine.CreateScriptSourceFromFile(@"C:\Nidec\PythonScript\download_nrlist.py", Encoding.UTF8, Microsoft.Scripting.SourceCodeKind.File);
var compiledCode = scriptSource.Compile();
compiledCode.Execute(scope);
//engine.ExecuteFile(@"C:\Nidec\PythonScript\download_nrlist.py", scope);
// get function and dynamically invoke
var calcAdd = scope.GetVariable("CalcAdd");
result = calcAdd(34, 8); // returns 42 (Int32)
}
catch (Exception ex)
{
ExceptionOperations ops = engine.GetService<ExceptionOperations>();
Console.WriteLine(ops.FormatException(ex));
}
return result;