Revision 176 as of 2006-05-25 21:57:34

Clear message

This page is about the [ Google "Summer of Code"] projects involving Python and mentored by the Python Software Foundation (PSF).

Discussion about any Python-related SoC topic should take place on [ the soc2006 mailing list].

For information on last year's accepted projects, see ["SummerOfCode/2005"].

Improving the Python debugger

Student: Matthew J Fleming

Mentor: Robert L. Bernstein

Many people have voiced their concern that the Python debugger could be improved in a number of ways. This project aims to incorporate these suggestions into an improved version of Pdb.

Base multidimensional array type for Python core

Student: KarolLangner

Mentor: Travis E. Oliphant

The goal is to prepare a simple, generic multidimensional array interface that can be readily placed in the Python core as a new built-in base type (called, for instance, 'dimarray'), and possibly included in a future Python distribution (maybe 2.6?). This new base type will have the same C-structure as the current array implementation in numpy and will be based on a interface recently formulated by Travis Oliphant within a Python Enhancement Proposal ( After preparing a 'ready to insert' version of the array interface, it will be applied to numpy and several other packages that work with multidimensional data, and possibly modified in order to work out an optimal scope.

Logging Usage in the Standard Library (PEP 337)

Student: Jackilyn Hoxworth

Mentor: James Joseph Jewett

Implement PEP 337, possibly updating the PEP to take account of any new issues that arise.

Decimal module in C.

Student: Mateusz Rukowicz

Mentor: Facundo Batista

Adding C implementation of decimal module, which eventually would replace current implementation, with no side effects to applications using this module.

Rewrite of the zipfile module.

Student: Nilton Volpato

Mentor: Ilya Etingof

The project is to write a new and updated version of the zipfile module for dealing with ZIP files with much more features that are not supported by zipfile module currently.

These changes are intended to overcome the current limitations of the module, and include, but are not limited to:

Ajax in python based on PyPy's JavaScript backend

Student: Maciej Fijalkowski

Mentor: Eric van Riet Paap

The main target of the project is to produce a framework which takes advantage of PyPy's JavaScript backend and to make it easy to write an AJAX based framework written entirely in Python.

The aim is to produce a framework which allows Python applications to be translated into an AJAX based application split into a client part (JavaScript running on browser) and a server part (python running on web server). Communication between client and server is translated from Python method calls into JSON request and response.

Complete gencli, the PyPy CLI backend

Student: Antonio Cuni

Mentor: Armin Rigo

gencli is the PyPy backend targeting the Common Language Infrastructure (CLI) virtual machine, i.e. .NET.

Once gencli will be complete it will be possible to translate the Standard Interpreter in order to produce a .NET executable of the Python interpreter (we could call it PyPy.NET).

The result will be in some way similar to the existing IronPython, with the difference that IronPython is a compiler (though most of the job is done by the runtime environment), while PyPy.NET will be an interpreter.

PyPy Proposal - Write and port modules from CPython with ctypes

Student: Lawrence Oluyede

Mentor: Christian Tismer

I'd like to make PyPy ready for encrypted communications adding SSL support in the ongoing and in-development socket module. The other modules I'll port are: bz2, fcntl, mmap and time (very fundamental). If there's time I'd like to start working on 'os' and 'select' modules also.

SciPy Vector Machine support

Student: Albert Strasheim

Mentor: David Kammeyer

Neural Nets in SciPy

Student: Frederic Mailhot

Mentor: Robert Kern

The goal of this project is to extend SciPy's functionality by adding modules for the design, training and use of a variety of neural network architectures, including standard feedforward and recurrent networks, among others. As a guide I intend to work from the modules in Matlab's Netlab toolkit, as well as from my own experience implementing recurrent networks.

Enhancements to mathtext (part of matplotlib) - a Python package for typesetting

Student: Edin Salkovic

Mentor: John D Hunter

After a discussion at the scipy user list, and the comments of the possible mentor (John Hunter, creator/maintainer of matplotlib), I decided to work on improving mathtext, which is part of matplotlib. So, for this summer of code I could work on the following (roughly in order of importance/realization):

I plan to continue the work on mathtext after SoC.

Soya3D Collision API : Improving ODE integration in the core

Student: David Pierre-Yves

Mentor: Lamy

Soya lacks some very useful tools such as a collision API or a properly integrated physics engine.

I am applying to Summer of Code 2006 in order to fix these deficiencies by improving support for the Open Dynamics Engine (, which is barely working and too low-level in the last release of Soya, and provide a similar collision detection system to all objects whether ODE is in use or not.

Soya3D exporting/importing tools for Blender

Student: Palle Raabjerg

Mentor: Buddha Michael Dylan Buck

Currently, no Soya3D importers exist for Blender. This means you cannot import any Soya3D or Cal3D models into Blender. This can be inconvenient for both the game developer, as he needs to publish the .blend files to allow people to modify models, and for a gamer community surrounding a project, as they can't modify models unless the developer publishes the .blend files. (Note: This might be a perfectly okay and even preferable situation for some proprietary game developers, but Soya3D is built on a philosophy of openness and freedom, making this a more important feature.)

The Soya3D exporter tools basically consists of the blender2soya and blender2cal3d scripts. blender2soya is currently used for static (non-animated) models, and blender2cal3d is used for exporting animated skeletal models to the Cal3D format, which can also be used with Soya. These two scripts lack many features, however, and still contain known flaws.

If I am assigned to this project, I will create Soya3D and Cal3D importers for Blender, and I will work on both exporter scripts

Pygame on ctypes

Student: Alex Holkner

Mentor: Richard Jones

My project proposal is to rewrite Pygame to use ctypes. The current implementation is written as a C module that links to SDL. The proposed addition of ctypes to Python 2.5 is a great catalyst for using it to wrap SDL and reimplementing Pygame in pure Python. This would allow developers to extend Pygame with much more ease than is currently possible, and to make use of SDL features not exported by Pygame, and to give PyPy development another library.

SQLAlchemy Schema Migration

Student: Evan Pierce Rosson

Mentor: Jonathan LaCour

SQLAlchemy is an excellent object-relational database mapper for Python projects. Currently, it does a fine job of creating a database from scratch, but provides no tool to assist the user in modifying an existing database. This project aims to provide such a tool.

Drop-in WSGI support for Commodity Hosting

Student: Jonathan Rosebaugh

Mentor: Benjamin C. Bangert

Tentative Pythonesque Project Name: Holy Grail

[ Project Trac]

I intend to take advantage of existing developments in WSGI such as Paste, flup, and various WSGI-compatible frameworks in order to develop a simple drop-in method for hosting WSGI webapps in commodity hosting.

Project Goals in rough order of priority

Unable to edit the page? See the FrontPage for instructions.