Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.


Ubuntu Python Recipes is a collection of Python code snippets and short how-to guides based on the community help wiki. These resources cover various topics related to developing and packaging Python applications for Ubuntu.

Release Note

Ubuntu Python Recipes is an initiative to help people to get started developing Python applications for Ubuntu. The Python Recipes are all based on the community Help wiki and are available for anyone to edit and improve. By providing a small collection of code snippets and guides which help people implement common features in their apps, it is hoped to make the process of creating applications suitable for Ubuntu easier.


People may have some good ideas for new desktop applications, but may be unable to implement those ideas due to a lack of Ubuntu-specific programming knowledge. By providing a resource to help people learn about the APIs and tools available for developing applications in Ubuntu, it is hoped that they can then go on to realise their ideas in code.

By providing some basic building-block code snippets, it is hoped that people interested in developing their first Ubuntu applications will be able to simply bolt the snippets together to form the core of small, useful applications.

Use Cases

  • Josiah is learning how to program using Python/GTK in Ubuntu. However, he finds it difficult to find understandable resources describing how to add common features such as listviews and Help buttons. When he finds the Python Recipes wiki page, he is able to quickly design an application with a working list view and a Help button linked to the documentation he just learned how to write.
  • Helga wants to better integrate a small Python utility which she wrote with Ubuntu. By reading some Python Recipes, she is able to improve the usability of the utility, add a set of documentation and package the whole thing in one afternoon.


  • There is a need for basic documentation on creating Python applications for Ubuntu


Each article should cover some common, useful aspect of graphical program development in Ubuntu. Non-graphical techniques are likely to be covered elsewhere on the Internet, as are very basic Python programming techniques. Instead, the guides should concentrate on people who already have a grasp of Python but would like to add useful features to their applications which are poorly documented elsewhere or are just difficult to understand (GTK Treeviews).


The [Python Recipes] section on the Help wiki should be extended to cover all of the topics which are felt to be relevant for programmers who are new to Ubuntu. Members of the community should write short articles covering simple topics and add them to the Python Recipes page.


  • Code snippets should be heavily commented to help users learn what each part of the snippet does.
  • The guides and snippets should follow current Ubuntu/GNOME guidelines where possible, avoiding the use of deprecated APIs and respecting the GNOME HIG.

  • The code should be licensed under the same license as the wiki for now.

  • Guides should provide information on the expected results (e.g. screenshots or expected outputs) and potential problems (e.g. common bugs) of running each snippet (see Web Browser for a model of this).

  • Guides should provide links to guides about similar topics on the Internet, as well as appropriate API documentation or other help resources.


New articles should be created as sub-pages under the PythonRecipes page, e.g. a Using Notification Icons article should be created at PythonRecipes/UsingNotificationIcons

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.

Outstanding Issues

  • The license of the code snippets should be very permissive to allow people to use them freely. Copyleft licenses may be too restrictive for peop, just interested in hobby programming.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


PythonRecipesSpec (last edited 2008-08-06 16:40:34 by localhost)