Hosting IronPython made easier

With 2.0 Beta 5 coming out very soon, there is a new hosting helper class in there called IronPython.Hosting.Python . It has a few helper methods to create a ScriptRuntime or ScriptEngine and adds some Python-specific extension methods to ScriptRuntime and ScriptEngine. Creating a ScriptRuntime the normal way now requires a LanguageSetup as Sesh explains…

12

Passing keyword args to C# methods from IronPython

In Python one can call functions with either the argument itself or a named argument i.e f(3) or f(x=3). Python also provides syntax to absorb excess arguments for either style of argument passing with either * or **. So for example for this function f: def f(x, *args, **kwargs): pass f(3,4,5,y=6,z=7) The value passed to…

1

Static Compilation of IronPython scripts

The ability to compile IronPython scripts into .NET IL and to save them to disk existed in IronPython 1.0 but has been missing in 2.0 so far. With IronPython 2.0 Beta4 this has been added back. Why would I compile dynamic language scripts? There are a lot of reasons to compile scripts into a binary…

18

IronPython 2.0 Beta 3 is out!

The next stop on the path to IronPython 2.0 is Beta 3 and we pushed it out today. You can get the sources and binaries of IronPython here. As Jimmy mentioned in his release notes for Dynamic Silverlight last week, this release also contains the sources and binaries of IronPython and Dynamic Silverlight needed to…

1

Accessing IronPython objects from native Javascript

Today I got a question by e-mail from someone who wanted to implement something like this MSDN article in IronPython. The gist of the article is that there is a property called ObjectForScripting on a WinForms WebBrowser control. If one sets the property to an object, then that object will be available to javascript that…

2

Turning your .NET object models dynamic for IronPython

Say you want to interop with a .NET library but you also want it to behave like objects in dynamic languages do. You want to be able to add/delete methods/properties to the object dynamically. In python you can do something like this: class x(object): pass y = x() y.z = 42 dir(y) And the dir(y)…

4

I’ve lost my mile-wide screen corners!

I finally got a second monitor recently and set it up as an extended desktop. While I’m very happy with all the extra real-estate goodness I’m pretty miffed that my apps now have lost two magic corners. I’m referring here to Fitts’ law and its implications in computer screen real-estate. Fitts’ law is essentially about…

1

PyCon 2008

PyCon 2008 was a lot of fun. This was my first PyCon and until now my interaction with the python community had been nothing beyond a few mails in the IronPython forum. My experiences of conferences so far has been limited to Microsoft ones like TechEd and TechMela(the equivalent of MIX/TechEd in India). This was…

0

Decorators to convert return statements to yield statements

We have this really cool tool that parses a python file into a AST and then morphs it according to some transformation and then spits out python code corresponding to the new AST. I’ve been playing around with it lately to come up with some transformations. One of the things I wanted to do was…

0

DeepZoom in dynamic languages

There’s been a lot of talk lately about the DeepZoom technology in Silverlight 2. If you have seen it yet you should definitely goto HardRock’s memorabilia site. That is a 2 billion pixels image that you see in that 640X480 segment there. Instead of getting all those pixels down the wire and killing your system,…

5