Python Programming, news on the Voidspace Python Projects and all things techie.
2D Graphics with Pyglet and OpenGL
He has written a great article, and as he isn't on Planet Python here's a link.
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
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.
This work is licensed under a Creative Commons Attribution-Share Alike 2.0 License.