I would like to run Python strings and get an object return from .NET.
To this end I added PyRun_String to the Runtime object and another
method to PythonEngine ala the existing SimpleString implementation.
Everything compiles, but Runtime.PyRun_String always returns a NULL,
and it does not look like the code is being run.
Is there any trick to adding new methods to the Runtime?
// From Runtime.cs
[DllImport(Runtime.dll, CallingConvention=CallingConvention.Cdecl,
ExactSpelling=true, CharSet=CharSet.Ansi)]
internal unsafe static extern IntPtr
PyRun_String(string code, int start, IntPtr globals, IntPtr locals);
// From Python.cs
public static PyObject RunString(string code)
{
IntPtr globals = Runtime.PyEval_GetGlobals();
IntPtr locals = Runtime.PyEval_GetLocals();
IntPtr ret;
ret = Runtime.PyRun_String(code, 257,globals, locals);
Runtime.Decref(globals);
Runtime.Decref(locals);
if (ret == IntPtr.Zero)
{
throw new PythonException();
}
return new PyObject(ret);
}
_________________________________________________
Python.NET mailing list - [email protected]
http://mail.python.org/mailman/listinfo/pythondotnet