Differences between revisions 177 and 269 (spanning 92 versions)
Revision 177 as of 2006-05-25 22:00:22
Size: 10221
Editor: 209
Comment: removed duplicate
Revision 269 as of 2008-11-15 14:00:01
Size: 5197
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page is about the [http://code.google.com/soc/ Google "Summer of Code"] projects involving Python and mentored by the Python Software Foundation (PSF). ## page was renamed from SummerOfCode
This page coordinates the [[http://code.google.com/soc/|Google "Summer of Code"]] projects involving Python and mentored by the Python Software Foundation (PSF).
Line 3: Line 4:
Discussion about any Python-related SoC topic should take place on
[http://mail.python.org/mailman/listinfo/soc2006 the soc2006 mailing list].
Based on previous years, we are expecting a lot of competition so when making your application it is important to note that the PSF is looking for projects that:
Line 6: Line 6:
For information on last year's accepted projects, see ["SummerOfCode/2005"].  * enhance an existing Python project rather than start something complete from scratch;
 * contribute to the Python community rather than are merely written in Python.
 
Line 8: Line 10:
= Improving the Python debugger = The 2007 PSF SoC coordinator is JamesTauber (jtauber at jtauber dot com). Contact him if you have any questions.
Line 10: Line 12:
Student: Matthew J Fleming = Students: How to submit a proposal =
Line 12: Line 14:
Mentor: Robert L. Bernstein Student applications are now open.
Line 14: Line 16:
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. [[http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents|Google's Advice for Students]]
Line 16: Line 18:
= Base multidimensional array type for Python core = Looking at the list of PSF [[SummerOfCode/Mentors]] can help you craft your proposal to match their interests.
Line 18: Line 20:
Student: KarolLangner = Tips on participating =
Line 20: Line 22:
Mentor: Travis E. Oliphant    1. Do not overbook yourself. Working on your project should be your main activity for the entire summer.
Line 22: Line 24:
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 (http://svn.scipy.org/svn/PEP/). 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.    2. You must provide weekly status reports.
Line 24: Line 26:
= Logging Usage in the Standard Library (PEP 337) =    1. Participate in the developer community by joining python-dev, jython-dev, or whatever mailing list is appropriate.
Line 26: Line 28:
Student: Jackilyn Hoxworth    1. If you get stuck, ask for help instead of silently struggling. You can ask your mentor for help, or post a question to the development mailing list.
Line 28: Line 30:
Mentor: James Joseph Jewett    3. You will be expected to learn how to use SVN.
 
= Mentors: How to apply =
Line 30: Line 34:
Implement PEP 337, possibly updating the PEP to take account of any new issues that arise. The mentor's responsibility is to ensure the student makes progress. This could entail coaching them, providing motivation, making sure they aren't stuck, answering technical questions, or pointing the student to the proper resources.
Line 32: Line 36:
= Decimal module in C. = Mentors should expect to get a weekly status report from their students, and should badger students who are not communicating. The weekly status should be reported to the PSF SoC coordinator.
Line 34: Line 38:
Student: Mateusz Rukowicz However, the mentor is not expected to do work for the student.
Line 36: Line 40:
Mentor: Facundo Batista Mentoring duties are expected to take a couple of hours per week.
Line 38: Line 42:
Adding C implementation of decimal module, which eventually would replace current implementation, with no side effects to applications using this module. See [[http://code.google.com/p/google-summer-of-code/wiki/AdviceforMentors|Google's Advice for Mentors]]

If you are interested in becoming a mentor:

 * Add your name to the mentor list at [[SummerOfCode/Mentors]].
 * join the [[http://mail.python.org/mailman/listinfo/soc2007-mentors|soc2007-mentors mailing list]]
Line 41: Line 50:
= Rewrite of the zipfile module. = == Project ideas ==
Line 43: Line 52:
Student: Nilton Volpato For 2007, the PSF would like to concentrate on proposals that
advance PSF projects (CPython and its documentation,
Jython and its documentation, the Python web site). That said, projects relating to other Python libraries, applications or implementations (PyPy) that are relevant to the promotion of the Python programming language are also encouraged.
Line 45: Line 56:
Mentor: Ilya Etingof The following pages list some ideas:
Line 47: Line 58:
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.
 * [[CodingProjectIdeas/PythonCore]] -- ideas for the CPython interpreter.
 * [[CodingProjectIdeas/StandardLibrary]]
 * https://www.drproject.org/DrProject/wiki/DrProjectSoC2007 -- DrProject ideas
 * http://wiki.python.org/jython/SummerOfCode -- Jython projects.
 * http://codespeak.net/pypy/dist/pypy/doc/project-ideas.html -- Some ideas for PyPy
 * http://code.google.com/p/sympy/wiki/SummerOfCode -- Ideas for SymPy
 * http://code.google.com/p/pyjamas/wiki/SummerOfCode -- Idea for Pyjamas
 * [[http://docutils.sourceforge.net/docs/dev/todo.html|The Docutils to-do list]] contains a wealth of ideas. Important projects are prioritized. Subscribe to the [[https://lists.sourceforge.net/lists/listinfo/docutils-develop|docutils-develop]] list and ask for advice.
 * http://webpy.infogami.com/ideas -- ideas for web.py
 * http://pyblosxom.sourceforge.net/blog/static/soc2007.html -- ideas for PyBlosxom
 * http://code.google.com/p/crunchy/wiki/SummerOfCodeIdeas -- ideas for Crunchy (educational software).
 * http://www.pysoy.org/wiki/SoC2007 -- ideas for PySoy (3d engine)
See also [[SummerOfCode/Mentors]] where potential mentors have mentioned projects they are willing to mentor.
Line 51: Line 72:
These changes are intended to overcome the current limitations of the module, and include, but are not limited to:
 * Add support for bzip2 (de)compression
 * Add support for removing files stored in zip files
 * Add file-like object API to ZIP archive members
 * Add support for the traditional PKWARE encryption
== Other Organizations using Python ==
Line 57: Line 74:
If you can't find a well-suited PSF project, but you still want to do something with Python for SOC 2007, you can also consider the projects offered by:
Line 58: Line 76:
= Ajax in python based on PyPy's JavaScript backend =  * Bazaar (http://code.google.com/soc/bzr/about.html)
 * Django (http://code.google.com/soc/django/about.html)
 * Kamaelia, BBC Research (http://code.google.com/soc/bbc/about.html and http://kamaelia.sourceforge.net/SummerOfCode2007)
 * MoinMoin (see MoinMoin:GoogleSoc2007 )
 * Open Source Applications Foundation (http://code.google.com/soc/osaf/about.html)
 * Plone Foundation (http://code.google.com/soc/plone/about.html)
 * SCons (http://code.google.com/soc/scons/about.html and http://www.scons.org/wiki/GSoC2007)
 * Subversion (http://code.google.com/soc/svn/about.html)
 * The Space Telescope Science Institute (http://code.google.com/soc/stsci/about.html)
 * wxPython (http://code.google.com/soc/wxpython/about.html)
 * Zope Foundation (http://code.google.com/soc/zope/about.html)
Line 60: Line 88:
Student: Maciej Fijalkowski All the mentoring organizations are listed here: http://code.google.com/soc/
Line 62: Line 90:
Mentor: Eric van Riet Paap == Previous years ==
Line 64: Line 92:
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.

= 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):

 * replace the existing bakoma truetype fonts with a set of good,
 comprehensive, math fonts, eg, STIX (http://www.stixfonts.org/).
 The STIX fonts should be available by the begining of June. Also,
 the code should be refactored so that unicode names for symbols can
 be used. This will allow plugging in any font that supports unicode
 (STIX fonts already support unicode). Currently mathtext hardcodea
 the mapping from TeX symbol name to a (font_file, glyph_index) tuple,
 which ties mathtext to a given set of fonts (eg, the Bakoma fonts).

 * incorporate some of Knuth's layout algorithms into the mathtext
 layout engine.

 * refactor mathtext into a stand-alone module


 * add support for kerning - the current bakoma fonts do not have kerning
 info in them.

 * improve the parser to handle more TeX

 * add support for fractions (\frac), arrays etc.

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 (ode.org), 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 La``Cour

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

[http://www.inklesspen.com/trac/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

  * WSGI Admin Panel - A self-contained WSGI app which allows the user to attach various WSGI apps to different urls. At its most basic it will be a simple wrapper around paste.urlmap, but it will be able to handle more complex situations, involving such things as paste.cascade, paste.urlparser, various middleware, and other complex situations. When I can use PasteDeploy I will, but there will have to be support for manual importing of apps from modules.
  * FastCGI made easy - flup has taken us most of the way, but it needs to be friendlier. Some hosting providers want the FastCGI process to be running on a specified port; some providers want the web server to spawn it. Either option should be easy to do, with robust process management to make sure the FastCGI process stays up.
  * Ease of installation for webhosts - Ideally, a commodity webhost should be able to provide this package for their customers; just click a button in the signup and the WSGI admin panel is deployed to the user's account, creating an isolated us
 * [[SummerOfCode/2005]]
 * [[SummerOfCode/2006]]

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

Based on previous years, we are expecting a lot of competition so when making your application it is important to note that the PSF is looking for projects that:

  • enhance an existing Python project rather than start something complete from scratch;
  • contribute to the Python community rather than are merely written in Python.

The 2007 PSF SoC coordinator is JamesTauber (jtauber at jtauber dot com). Contact him if you have any questions.

Students: How to submit a proposal

Student applications are now open.

Google's Advice for Students

Looking at the list of PSF SummerOfCode/Mentors can help you craft your proposal to match their interests.

Tips on participating

  1. Do not overbook yourself. Working on your project should be your main activity for the entire summer.
  2. You must provide weekly status reports.
  3. Participate in the developer community by joining python-dev, jython-dev, or whatever mailing list is appropriate.
  4. If you get stuck, ask for help instead of silently struggling. You can ask your mentor for help, or post a question to the development mailing list.
  5. You will be expected to learn how to use SVN.

Mentors: How to apply

The mentor's responsibility is to ensure the student makes progress. This could entail coaching them, providing motivation, making sure they aren't stuck, answering technical questions, or pointing the student to the proper resources.

Mentors should expect to get a weekly status report from their students, and should badger students who are not communicating. The weekly status should be reported to the PSF SoC coordinator.

However, the mentor is not expected to do work for the student.

Mentoring duties are expected to take a couple of hours per week.

See Google's Advice for Mentors

If you are interested in becoming a mentor:

Project ideas

For 2007, the PSF would like to concentrate on proposals that advance PSF projects (CPython and its documentation, Jython and its documentation, the Python web site). That said, projects relating to other Python libraries, applications or implementations (PyPy) that are relevant to the promotion of the Python programming language are also encouraged.

The following pages list some ideas:

See also SummerOfCode/Mentors where potential mentors have mentioned projects they are willing to mentor.

Other Organizations using Python

If you can't find a well-suited PSF project, but you still want to do something with Python for SOC 2007, you can also consider the projects offered by:

All the mentoring organizations are listed here: http://code.google.com/soc/

Previous years

SummerOfCode/2007 (last edited 2008-11-15 14:00:01 by localhost)

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