GSoC/GCI Archive
Google Summer of Code 2011

Python Software Foundation

Web Page:

Mailing List:

Python is an interpreted, general-purpose high-level programming language whose design philosophy emphasizes code readability. Python aims to combine "remarkable power with very clear syntax", and its standard library is large and comprehensive. Its use of indentation for block delimiters is unique among popular programming languages.


The Python Software Foundation serves as an umbrella organization for several Python projects.


  • A Rich Text Editor for Tryton Client This is a proposal for the project Tryton belonging to PSF Umbrella Teams. Currently editing text on the Tryton client is based on a simple TextView. This idea aims to implement a WYSIWYG text editor for the client Tryton.
  • Cython: Supporting Parallelism, Templates and Typed Views on Memory The gsoc will consist of three parts. In the first part support for OpenMP-like parallelism will be provided, where the sharing attributes and reduction variables are automatically inferred (CEP 524). In the second part Fused Types (CEP 522) will be implemented, which will "fuse" multiple types into one generic type, to allow a single implementation for distinct types. In the last part CEP 517 (Typed Memory Views) will be implemented, where a Cython array type will provide views on data.
  • Developing a benchmark suite (for Python 3.x) As of now there are several different benchmark (suites) by all Python implementations, this project tries to provide a common benchmark suite - by merging the existing ones - which is shared by all implementations and to port that suite to Python 3.x. This will allow a more accurate comparison between different Python implementations.
  • Developing Archives for Mailman 3 The objective of this project is to implement mailman archives with advanced search capabilities and improved user interface(UI) to display archived messages. We would like to cover the use cases developed for the Systers archive project last year.
  • Dictionary learning in scikits.learn Dictionary learning, also known as sparse coding, is one of the planned features in scikits.learn. This project will integrate into the scikit state of the art methods in matrix factorization and dictionary learning, with test coverage, documentation, examples and benchmarks. Dictionary learning is state of the art matrix factorization problem that aims to find the best set of "concepts" to use to sparsely represent certain data.
  • Enhancements to the Python issue tracker The goal of this project is to continue my work on the Python issue tracker and further improve it.
  • Focused improvements to scikits.image The scikits.image library aims to provide a complete image processing environment for Python, by complementing the functionality already available in packages such as scipy.ndimage and the rest of the SciPy toolstack. We propose four focused efforts for improving key aspects of the library: adding multiple computational backend support, enabling video input and output, implementing select image processing algorithms and writing good introductory documentation.
  • fulfil setuptools features for distutils2 Distutils2 is the new, improved version of the Python Distribution Utilities, a library used to package, distribute, build and install Python projects. It will be as a substitute of current setuptools, but it’s still in its early stage. This project is supposed to fill the gap for setuptools users that want to move to packaging in two aspects: 1) add the ‘develop’ command for Distutils2; 2) add the automatic script creation function; 3) perfect the extensions project.
  • Game Networking using ICE-UDP for pysoy The aim of this project is to provide complete networking support for games in pysoy. The end product will be as friendly as possibly to game developers. This includes packaging the current game state, but only sending what is needed, and sending this to a "server", whether another player (p2p) or to a central server. To send this data PySoy will use XMPP and Jingle ICE-UDP.
  • Implement Community Detection Algorithms in NetworkX NetworkX is a powerful network analysis toolkit for the Python programming language. While NetworkX has a very extensive algorithmic base, it has few community detection algorithms. This project would seek to complete several partially complete algorithms currently on the NetworkX development site and implement several new algorithms.
  • Implementing a Flexible String Representation for Python Based on PEP 393 The goal of this project is to implement a new string representation for Python to reduce the memory footprint produced by Unicode strings. During this project, I will implement the design outlined in PEP 393 and port critical parts of core Python and the standard library to the new API. I will also profile the memory reduction and speed penalty of my implementation with specific micro-benchmarks and Django example applications to validate that the PEP provides the promised gains.
  • Implementing a POS system for the Tryton project Creating a POS-system which can be handled with touch screens and supports POS-Hardware.
  • Mailman 3 Pipermail SQL conversion and upgrade script This end result of this project will be to rewrite the Mailman 3 Pipermail implementation to support SQL in the backend using the Storm ( ORM layer instead of the Python Pickle API.
  • Mailman: # Complete the Django web u/i Mailman project within the Python foundation, I'll join Florian and Anna building a Django based webUI for the new mailman 3
  • Mercurials command server Mercurial's primary stable API is its command line interface. Creating a tool and library to communicate with this API over a pipe or a socket will help improve performance for third-party tools that use Mercurial.
  • Mesh morphs for PySoy I would implement mesh morphs for PySoy. Basically this would allow users to take an existing mesh with a given set of vertices and pass an instruction to move the vertices over a specific time interval, allowing smooth deformation of the mesh. This enables such effects as a ball being squashed, a planet imploding, etc.
  • Motion-sensing as an alternative user input for PySoy games This project aims to add wii-remote and android smartphone as alternative means of user input to a pysoy game. Major focus is on the motion-sensing capabilities of the two devices so as to create a different and more accessible user experience .
  • NetworkX: More Flow! We propose to implement more algorithms in algorithms.flow. The following will be integrated, tested and documented: variants of the maximum flow, such as the push-relabel and the pseudoflow, variants of single-commodity max-flow min-cost algorithms and an approximation algorithm for the d-furcated minimum congestion flow.
  • Porting Pyramid to Python 3 The goal of this proposal is to port the Pyramid Web Framework from Python 2 to Python 3.
  • Pylons Project - Porting Pyramid to Python 3 I would very much like to participate in GSOC this year, and help my community port the Pyramid web framework to Python 3. Please take a look at my inaugural blog post for further details at
  • PYpi Test Infrastructure PYpi Testing Infrastructure is a project which aim to check python distributions uploaded to pypi. Checking includes installation of the distribution, detection of harmful comportment, test execution and quality check. It will help both distribution's developer and other developers who want to use the distribution.
  • PySoy Scene Designer My proposal is to create a GUI editor for visualizing a PySoy project. Projects made with the editor will be displayed as a collection of scene nodes, usually connected to each other through some mechanism, e.g. a portal. The connections between scene nodes will be displayed as lines, using collision to determine where the scene nodes are placed relative to each other.
  • PySoy: Enhanced 2.5D scenes I will introduce features which will make developing 2.5D style games easier with PySoy. My efforts will focus on creating custom scenes which will allow creating new "side-scrolling" type of games games without excessive setup. Furthermore, I will develop two thoroughly documented small games to demonstrate the new scenes which shall also serve as examples for other developers on how to use them.
  • PySoy’s interactive widgets The project consists in building a set of themeable interactive widgets for PySoy. The main goal is to build some widget like containers, collapsible branches, text input/display and scrollable panels to make possible to build a buddy list and chat widgets in PySoy, which users will use to comunicate in and out PySoy's based games. An example using these themeable widgets will be produced as well as several unit tests.
  • Python backend for Cython using PyPy's FFI Python backend for Cython (to interface with C code, this could use use ctypes or an API exposed by PyPy), the backend would either produce python code or python bytecode and will allow PyPy to use its just-in-time compiler to optimize the Cython extension.
  • Python Import Engine The aim of this project is to isolate process-global state related to importing module and provide a modular way of handling the import functionality.
  • PyTI(PyPI Testing Infrastructure) The goal of the project is to test distributions from PyPI repository to assess quality and also to check if a distribution is malicious or not . In order to achieve that we create a testing infrastructure for PyPI repository. There will be a mechanism to get newly uploaded distributions from PyPI , install them in an isolated VM environment , run tests on them (quality check , unittests) and also determine tests they have harmful components(malicious) or not.
  • statsmodels times series and state-space model estimation Statsmodels is a BSD-licensed, Python-based statistics and econometrics package [1,2] under the scikits namespace. Work on the project has recently moved into areas of time series analysis and state-space methods. Given my own interests in these subjects, I propose to continue development in these areas in order to increase the viability of statsmodels as a standalone, open source package for statistical analysis.
  • TRYTON : Add full text search capabilities on Tryton records This project proposes implementing full text search of records and attributes in Tryton ERP using Sphinx Search Sever ( ) in a pythonic implementation. The idea is to improve Tryton search capability to a more flexible, scalable and powerful option.
  • Turn Codespeed into a multi-project, statistically savvy application Codespeed is a web application to monitor and analyze the performance of one or more projects. It's now powering and this proposal should provide a great step forward to have the This project consists in showing better status based on statistics like standard deviation and minimum and maximum values of benchmarks results. Also, as a second part, continue the multi-project feature. This will allow users to compare more than one project at the same time.