Archive for the 'News' Category

rconsole - Remote Python Console

rconsole is a new Python console that you can attach to a running script to inspect and modify its namespace. I hacked it up since I did not find a simple to use alternative to inspect a daemon process.

rconsole is included with the rfoo package at http://code.google.com/p/rfoo/.

To invoke it within a script add the following to its code:

from rfoo.utils import rconsole
rconsole.spawn_server()

To attach from another shell do:

$ rconsole

rconsole is not a debugger and does not freeze the script. You can think of it as a window into the belly of a long running script. It is lightweight and non-disruptive. You may leave it inside production code and attach when you need to check in on the health of a long running script:

  • Import guppy.hpy into a running script to investigate memory leaks.
  • Change function definitions and reload modules on the fly.
  • Inspect live internal data structures.

Winpdb 1.4.8 Tychod Released

Winpdb 1.4.8 was released. This is a maintenance release that fixes compatibility issues with Python 2.7 and 3.x. You can download it from winpdb.org/download. Work on this version was sponsored by Investortools Inc.

160,000 IPC Calls per Second in Python

rfoo is a new Python RPC package which can do 160,000 IPC calls per second on a regular PC. It includes a fast serialization module called rfoo.marsh which extends the Python built in marshal module by eliminating serialization of code objects and protecting against bad input. The result is a safe to use ultra fast serializer. Go get it at http://code.google.com/p/rfoo/

Interface of rfoo.marsh

rfoo.marsh.dumps(expression)
rfoo.marsh.loads(binary_string)

Serve RPC method to clients

class MyHandler(rfoo.BaseHandler):
    def echo(self, str):
        return str

rfoo.InetServer(MyHandler).start(port=50000)

Call method on RPC server

c = rfoo.InetConnection().connect(port=50000)
rfoo.Proxy(c).echo('Hello, world!')

Winpdb 1.4.6 Tychod Released

Winpdb 1.4.6 Tychod is now available for download at http://winpdb.org/download. As of this version Winpdb can debug runaway recursions. Runway recursions are an Achilles Heel of all Python debuggers. Since debugger logic is invoked with each new script frame, recursion limit is naturally hit by debugger code causing it to break down surprised, corrupted and defeated. First among its kind, Winpdb now handles recursions gallantly, effortlessly, with a smile. Try it.

Winpdb 1.4.4 Tychod Released

Winpdb 1.4.4 Tychod is available for download at http://winpdb.org/download. The new version fixes a major regression to exception analysis.

Winpdb 1.4.2 Tychod Released

Winpdb 1.4.2 Tychod is available for download at http://winpdb.org/download. The new version is compatible with Python 3.0 rc2. GNU/Linux users, please use the source package. Windows users with Python 2.6 or later, please read the instructions in the download page.

Stani Michiels

Stani Michiels, the author of Stani’s Python Editor (SPE) who is also an architect and artist won a design contest for a new Dutch commemorative 5 Euro coin. Here is the full story as told by him: http://pythonide.blogspot.com/2008/10/how-to-make-money-with-free-software.html

Stani is also the one who started me working on Winpdb three years ago when he was looking for a debugger for SPE.

Congratulations Stani!

Winpdb 1.4.0 Tychod Released

Winpdb 1.4.0 Tychod is available for download. It is now compatible with Python 2.6 and 3.0 beta 2 and the step-into-child-process functionality is working again. The full list of changes is available at the download page.

Did you know that on GNU/Linux Winpdb allows you to magically step into a spawned child process?

A Mailing List is Born

As if the world needed another mailing list, a new Google Group mailing list has been created to which you can post anything related to Winpdb: http://groups.google.com/group/winpdb

Debugging Explained

Chris Lasher recently migrated his excellent tutorial on Winpdb and debugging in general to the Winpdb Wiki. Thanks Chris!

Next Page »