Python Programming, news on the Voidspace Python Projects and all things techie.

Resolver One 1.6.5 Released

It isn't long since we released version 1.6 of Resolver One, but we're trying to increase the frequency of our releases and get features into the hands of our users faster.

Resolver One is a highly programmable spreadsheet for Windows. Resolver One is written in IronPython and is fully programmable in IronPython. Through the integration of Ironclad you can use Python C extensions like Numpy in the spreadsheet grid and user code.

We've pushed out a new release of Resolver One, and as it is a medium-sized release we've called it version 1.6.5.

The new features in this release our

Load new files and import from Excel in the background and display a progress bar (leaving the UI usable).

Support for a new VerticalAlignment property (from user code only - user interface integration is on its way!)

property (from user code only - user interface integration is on its way!) Fixed bug #2303: Code that checked whether there was a new version to update to could make it look like Resolver One was sending usage information against the user's wishes, even though it wasn't.

Fixed bug #2268: Memory usage problem when saving huge spreadsheets.

Fixed bug #2291: Memory usage problem with spreadsheets with very large numbers of errors.

(Plus a few minor bugfixes since the 1.6 release.)

We already have more features completed and on the way, so hopefully we'll be able to do a 1.7 release soon...

In his email to the IronPython mailing list announcing the releas Resolver Systems boss Giles Thomas included the following information about Resolver One:

We are proud to announce the release of Resolver One, version 1.6.5. Resolver One is a Windows-based spreadsheet that integrates IronPython deeply into its recalculation loop, making the models you build more reliable and more maintainable. It's also still (we think) the largest IronPython application in the world, with 56,000 lines of code backed up by 176,000 lines of unit and functional tests. For versions 1.6 and 1.6.5, we've made it easier for people to share their spreadsheets. A new free "player" version means you can pass your work on to other people, and they can use it without having to buy anything, while a new Resolverlib makes calling your spreadsheets from IronPython programs as easy as calling a function. You can read more about Resolver One here: http://www.resolversystems.com/products/resolver-one/ We have a 31-day free trial version, so if you would like to take a look, you can download it from our website: http://www.resolversystems.com/download/ If you want to use Resolver One in an Open Source project, we offer free licenses for that: http://www.resolversystems.com/opensource/

Try Python: Python Tutorial and Interpreter in the Browser

Ever since Silverlight, with the capability of running Python code in the browser, I've wanted to create something to help people learn Python.

Try Python is the Python tutorial, with an interactive Python interpreter, running in the browser. It runs on Safari, Firefox and IE on Windows and the Mac and needs Silverlight 2 or 3 installed. At the moment it doesn't work with Moonlight 2 due to a bug in the beta, but hopefully it will work with the final release meaning you will be able to use Try Python with Linux and Firefox.

Try Python has the complete Python tutorial in it, formatted for display in Silverlight by rst2xaml and Pygments. The tutorial is on the left of the UI.

Every code example has a button that allows you to execute it the interpreter that is on the right of the interface:

Try Python has the following features:

Auto-resizes with the browser

Navigation bar through the tutorial pages at the top and bottom

Individual pages are bookmarkable and the URL fragment auto-updates when you change page

Mouse scroll wheel supported over the tutorial and console scroll viewers

Control-C interrupts the running code with a keyboard interrupt

raw_input and input work in the interpreter

and work in the interpreter Basic auto-indent and auto-dedent in the console

Console history, including multiline history

Syntax highlighting in the console

reset command to clear the console

command to clear the console Assign to sys.ps1 and sys.ps2 from the console

Not much of the Python standard library is included. I intend to expand the tutorial adding new modules as they are needed (the whole standard library is about 5mb and would make Try Python take much longer to load).

Some of the console history code was contributed by Resolver Systems.

There are various possible ways forward (there are some ideas on the issues list). I'm about one quarter of the way through an implementation of file and open that uses local browser storage - so users can follow the part of the tutorial that does file I/O. A simple text editor (and import hook) that lets you create and import modules and packages in local browser storage would also be good.

More tests are also needed. You can see the start of an in browser test framework at: unittest in the browser.

I think what I'd like to do is something more interactive though - that presents short snippets of code with explanation and lets you work through them one at a time. This would be more interactive than the page by page style at the moment. Ideas and contributions welcomed of course...

Introduction to Testing with unittest

I've put a new article on my website, it's an introduction to testing in Python with the standard library test framework, unittest:

Introduction to Testing with unittest The article is an introduction to the basic API and classes of unittest , from creating individual test modules to setting up a testing framework. It covers the different assert methods provided by the unittest test fixture and also topics like automatic test discovery, and testing techniques from mock objects to monkey patching to dependency injection.

Between the articles section and the IronPython section have quite a collection of articles I've written over the last few years. Some of the most popular articles are:

Archives