Ideas for projects

Discussion in 'Python' started by Phillip Bowden, Dec 9, 2004.

  1. I feel that I've learned the language pretty well, but I'm having
    trouble thinking of a medium to large project to start. What are some
    projects that you have written in the past with Python?
    Phillip Bowden, Dec 9, 2004
    1. Advertisements

  2. Phillip Bowden

    Mike Meyer Guest

    Why start with a medium to large project when you can do something
    beneficial to the Python community at large.

    The most immediately useful thing to do is to follow the bugs link on
    the python home page, and look for bugs in the standard libraries. Add
    a test case to that libraries test code (lib/python2.X/test/...) to
    test for the bug, then try and fix it. When you've done that, add
    patches to the bug report.

    That's not only useful, but you spend time working on code that is
    pythonic, so you'll learn how the language is used instead of just
    what the language is.

    Mike Meyer, Dec 9, 2004
    1. Advertisements

  3. I hadn't thought of that, that's a good idea. Thank you.
    Phillip Bowden, Dec 9, 2004
  4. Phillip Bowden

    Fuzzyman Guest

    I'm the maintainer of several python projects. Most of them have
    their current homepage at

    (soon to move though)

    My *main* current interest is writing python CGIs - online tools.
    There are a couple of projects I really want to do, but haven't had
    the time. If you are interested I could support you in working on

    The first one is an online bookmarks manager. There are various of
    these around - but none in python and none as straightforward as I
    would like. It would be easy to get something working and then expand
    it to do more things (like import bookmarks from IE/mozilla/firefox,
    check links, organise folders etc). I could give you a section on
    voidspace - complete with FTP login and python 2.3.4 - if you

    An alternative project (not online) is a 'simple version control'
    program. I've written a set of libraries and a GUI tool that do
    directory syncing. The libraries are called FSDM and the GUI tool is
    called DirWatcher. It can snapshot directories and then work out any
    changes. I use it for keeping directories in sync in the three
    different computers I use.

    It would be relatively simple for turning this into a tool that
    monitored projects for you. You could 'snapshot' a set of folders
    and label that as version 0.1. You could track changes and allow the
    rolling back of individual files, or even a whole project to a previous
    version. Again I could offer you every support (work with you
    effectively). I would also like to change the data format of saved
    files from my own text markup to XML. There is a very nice library
    called XMLobject that will read & write XML - so it should be simple,
    but I don't have the time. It would make an excellent little version
    control system for small projects with individual developers.
    Anyway, whatever you do, good luck.


    Fuzzyman, Dec 9, 2004
  5. Phillip Bowden

    Paul Rubin Guest

    Why don't you say what areas interest you, and how much experience you
    have with programming in general. That will help choose a response.
    Most programmers who have been at it for a while, don't have trouble
    thinking of projects. They have far more ideas than they can ever
    possibly get around to working on.
    Paul Rubin, Dec 9, 2004
  6. Phillip Bowden

    Mike Meyer Guest

    My online bookmark manager - written in Python - has been around for
    seven or eight years. See <URL:
    Mike Meyer, Dec 9, 2004
  7. Phillip Bowden

    Jeff Shannon Guest

    Even duplicating the PythonWin completion code for IDLE would be handy,
    I'd think. It's not exceptionally smart about finding complete names ,
    but it can still help considerably. (I think it only looks at imported
    modules, and textual scans of the current file, so it doesn't
    automatically recognize new attributes of class instances, and it
    doesn't always recognize the type of an object (to refer to class def
    for attributes). But if the current file was previously imported, then
    it'll offer completion for those attributes that existed at the time of

    Stage one could be to borrow PythonWin's name-finding code, and write a
    UI to use that code in IDLE. An optional stage two could then be
    rewriting the name-finding code to be smarter.

    Jeff Shannon
    Credit International
    Jeff Shannon, Dec 9, 2004
  8. Here is something I would try but don't have the guts for:

    If you could write an extension to idle (yes, idle, not Boa, not Eric,
    etc) that pops up a small list of possible completions in a listbox when
    you type a '.' (period) after any object name or module name (including
    builtins), that would be *awesome*. I have been very spoilt by Delphi in
    this regard. Some kind of code that does partial compiles in the
    background to analyse code for members would be sweet.
    Caleb Hattingh, Dec 10, 2004
  9. I would recommend going to Sourceforge and doing a search for
    projects that list Python as their programming language. You'll
    find lots of open source projects in Python, and maybe a few you'd
    be interested in pursuing. There are lots of projects that need
    help, and some are quite fascinating projects, depending on your

    You might also want to try the same sort of thing at

    Except there, they shoot you if you say "open source", even if
    you are in fact using the GPL license, as I found out the hard
    way. Fair warning.

    Terry Hancock, Dec 10, 2004
  10. Phillip Bowden

    John Hunter Guest

    Phillip> I feel that I've learned the language pretty well, but
    Phillip> I'm having trouble thinking of a medium to large project
    Phillip> to start.

    Some of these may be on the "large" side, but

    - Provide a full-feature, mostly specification complete python pdf

    - Write a proper python package manager that recursively handles
    dependencies across platforms (CPAN/apt-get for python).

    - Enhance GUI integration. Ie, allow python code targetting one GUI
    environment to be used in a different one (contribute to anygui?)

    - Add 3D graphics to matplotlib (nudge, nudge, my own project).
    Integrate VTK?

    - Contribute a full-featured wavelets analysis package for python

    - Add internationalization support to your favorite python package
    which lacks it.

    - Add client side python support to mozilla and/or XUL

    - Write a python app that crawls python-list USENET posts looking for
    book or GUI-toolkit recommendations and automatically responds with
    links to FAQs and google groups. Be sure to include "google is
    your friend" in every response.

    - Contribute to the ipython rewrite effort so that python finally has
    an interactive shell across platforms worth its salt that has a
    chance of being included in the standard library.

    - Solve the problems with the global interpreter lock and give python
    a proper security model that will satisfy everyone with a hardcore
    Java and C++ background. Implement a proper Rational class and
    support date string formatting over the range of dates that the
    datetime module supports. Provide a full featured timezone module
    for the standard library. Support compile time type identification
    for runtime optimizations.

    If any or all of these have already been done, my apologies to the
    respective authors.

    John Hunter, Dec 11, 2004
  11. Phillip Bowden

    Nemesis Guest

    Mentre io pensavo ad una intro simpatica "Phillip Bowden" scriveva:
    Hmm I wrote this:
    1) Internet Timer (it counts the time you are connected to Internet)
    2) MultiSetiWatch (reads the state of multiple SETI clients)
    3) XPN (it is a newsreader, I'm still writing it)

    I've always worked on things that interested me or things I needed.
    Nemesis, Dec 11, 2004
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.