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
Sent: Sunday, June 25, 2006 1:09 AM
To: users@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.

   

    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

Reply via email to