[IronPython] Python console control for WPF
Shri.Borde at microsoft.com
Tue Jun 27 15:04:47 PDT 2006
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.
Do you want to help develop Dynamic languages on CLR?<http://members.microsoft.com/careers/search/details.aspx?JobID=6D4754DE-11F0-45DF-8B78-DC1B43134038> (http://members.microsoft.com/careers/search/details.aspx?JobID=6D4754DE-11F0-45DF-8B78-DC1B43134038)
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Kristof Wagemans
Sent: Sunday, June 25, 2006 1:09 AM
To: users at lists.ironpython.com
Subject: [IronPython] Python console control for WPF
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.
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?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the users