Kid Configuration Consolidation

As the work to simplify the Kid code base continues it became obvious to me that there needs to be a unified way to handle configuration options. Currently there are four ways that default options are set:

  1. Environment variables (e.g. KID_OUTPUT_PY)
  2. String literals (e.g. ‘utf-8′ hard coded in KidParser.__init__)
  3. Global variables in a module (e.g. assume_encoding in kid/__init__.py)
  4. Class attributes (e.g. Serializer.encoding)

Not only are there several ways to do the same thing, but there are subtle bugs lurking. For example, ticket #138 reports an issue caused by the implementation of the class attribute default options.

I have already started down the path toward reconciliation by creating the kid.properties module. The API is light weight and simply consists of get, set and isset functions. The next step is to start refactoring the code to use the new API.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • Technorati

Google Summer of Code 2006 Mentor

I have signed up to be a mentor and am looking to mentor projects related to Kid. I may also be willing to mentor projects related to Python web application servers or Python web services. It really depends on the proposal.

I have had a few email conversations with students about some interesting Kid projects. So we’ll see what happens next.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • Technorati