2D Graphics with Pyglet and OpenGL
My colleague Jonathan Hartley has been experimenting with Pyglet to unleash his creative genius.

He has written a great article, and as he isn't on Planet Python here's a link.
Like this post? Digg it or Del.icio.us it. Looking for a great tech job? Visit the Hidden Network Jobs Board.
Posted by Fuzzyman on 2008-02-08 22:57:06 | |
Release: ConfigObj 4.5.1 and validate 0.3.1
After one year and two days since the last release, there is a new release of ConfigObj.
This release adds a few new features, plus has several bugfixes and minor performance improvements. Thanks to all those who gave feedback, reported bugs and provided patches.
What are ConfigObj and Validate?
ConfigObj is a simple to use but powerful configuration file management library. Features include:
Nested sections to any depth
Unicode support
List and multiline values
Integrated with a powerful validation system
- including automatic type checking/conversion
- repeated sections
- and allowing default values
All comments in a file are preserved when writing
The order of keys/sections is preserved
A powerful unrepr mode for storing basic datatypes
validate is the module (optional) used for config file validation and type marshalling. It can be used outside of ConfigObj for matching string values against a text specification which also does type conversion.
Changes in ConfigObj 4.5.1
Distribution updated to include version 0.3.1 of validate. This means that Unicode configspecs now work.
ConfigObj will now guarantee that files will be written terminated with a newline.
ConfigObj will no longer attempt to import the validate module, until/unless you call ConfigObj.validate with preserve_errors=True. This makes it faster to import.
New methods restore_default and restore_defaults. restore_default resets an entry to its default value (and returns that value). restore_defaults resets all entries to their default value. It doesn't modify entries without a default value. You must have validated a ConfigObj (which populates the default_values dictionary) before calling these methods.
BUGFIX: Proper quoting of keys, values and list values that contain hashes (when writing). When list_values=False, values containing hashes are triple quoted.
Added the reload method. This reloads a ConfigObj from file. If the filename attribute is not set then a ReloadError (a new exception inheriting from IOError) is raised.
BUGFIX: Files are read in with 'rb' mode, so that native/non-native line endings work!
Minor efficiency improvement in unrepr mode.
Added missing docstrings for some overridden dictionary methods.
Added the reset method. This restores a ConfigObj to a freshly created state.
Removed old CHANGELOG file.
Changes in Validate 0.3.1
BUGFIX: Unicode checks no longer broken.
Improved performance with a parse cache.
New get_default_value method. Given a check it returns the default value (converted to the correct type) or raises a KeyError if the check doesn't specify a default.
Added 'tuple' check and corresponding 'is_tuple' function (which always returns a tuple).
BUGFIX: A quoted 'None' as a default value is no longer treated as None, but as the string 'None'.
BUGFIX: We weren't unquoting keyword arguments of length two, so an empty string didn't work as a default.
BUGFIX: Strings no longer pass the 'is_list' check. Additionally, the list checks always return lists.
A couple of documentation bug fixes.
Removed CHANGELOG from module.
There was briefly a 4.5.0 release. Whilst updating the Sourceforge page I
discovered a bug report and decided to fix it and do a new release before making the announcement. Sorry for any confusion
this may have caused.
Like this post? Digg it or Del.icio.us it. Looking for a great tech job? Visit the Hidden Network Jobs Board.
Posted by Fuzzyman on 2008-02-07 00:07:31 | |
For buying techie books, science fiction, computer hardware or the latest gadgets: visit The Voidspace Amazon Store. If you're looking for a new techie job, try the Voidspace Tech Job Board. This is part of the Hidden Network of technology and programming jobs.

IronPython in Action


