Hi Kristof,
You can call a Python method as such.
public delegate int IntIntDelegate(int arg); engine.Execute("def IntIntMethod(a): return a * 100"); IntIntDelegate d = engine.Evaluate<IntIntDelegate>("IntIntMethod");
Console.WriteLine(d(2)); // This prints “200”
I have opened this bug http://www.codeplex.com/WorkItem/View.aspx?ProjectName=IronPython&WorkItemId=632 to track the issue with setdefaultencoding.
Shri
________ Do you want to help develop Dynamic languages on CLR? (http://members.microsoft.com/careers/search/details.aspx?JobID=6D4754DE-11F0-45DF-8B78-DC1B43134038) From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kristof Wagemans
I’ve been experimenting with a Python console control for WPF. The improvements made for IronPython beta 8 make this a lot easier thanks to several new functions on the PythonEngine: ExecuteToConsole, FormatException and ParseInteractiveInput.
One of the things I need to do to communicate with a C# application is to change the default encoding to receive non-ascii characters. For this I execute several commands after the PythonEngine instance is created.
import sys sys.setdefaultencoding('utf_16_le') del(sys)
Setting the default encoding seems like a good candidate for the options you can pass to the engine while creating a new instance. It would also be easier if I could get at the options through a PythonEngine instance.
I hope you’re not going to remove the FilterStackFrame delegate from the FormatException method as the comment seems to indicate. I think it’s very useful to filter my own C# application from the stack trace. Maybe you could add an overload with just the Exception and FilterStackFrame?
To set a variable in the PythonEngine you need to use SetGlobal with a SymbolId. Am I correct to use SymbolTable.StringToId(name) to generate a SymbolId? It used to be easier with just a string to specify the name.
A useful enhancement for the PythonEngine might be if there was a way to directly call a Python function loaded in the engine and pass parameters to it and get the return value. You could also support out parameters similar to calling a method through reflection.
If you want to specify that a number is a long you can write 10L. Is there a way to specify that a number is a double or a decimal? |
_______________________________________________ users mailing list users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com