ConfigObj has had another update - now version 3.3.0 Several of the Voidspace PythonUtils modules have been packaged together as the 'Voidspace Pythonutils Package'. This makes it easier to release packages that depend on ConfigObj and the other modules.
This update includes several important new features and bugfixes. New features include - string interpolation similar to ConfigParser, unicode support for reading and writing of config files, and a validation schema for validating config files. The validation schema is implemented using validate.py, which is co-written by Mark Andrews and maintained at http://www.la-la.com (although included in all the distributions). The unicode support will recognise and preserve the UTF-8 BOM when reading/writing files. Check out the docs for full details of the changes and how they work. Homepage : http://www.voidspace.org.uk/python/configobj.html For downloading, see the download section of the homepage. NEW ConfigObj API Docs Online : http://www.voidspace.org.uk/python/configob-api What is ConfigObj ================== A python module (class) for ultra simple reading and writing of simple config files, including config files with sections. Designed to allow the greatest flexibility in the config files it will read (and your users will create). Many flexible features - but you don't need to use them ! What's New ? ============= Changes in the new version : 2005/03/01 Version 3.3.0b Requires listquote 1.2.0 - which is improved/optimised Requires caseless 2.2.0 which has support for unicode Adding support for validation using the configspec To be done with an external validator. (Validator class created with help of Mark Andrews) This means added methods/attributes : parseconfigspec method stripconfigspec method validate method __configspec__ attribute BOM attribute Experimental unicode internally. 'encoding' and 'backup_encoding' keywords added 'lists' keyword added - can turn off list handling (lists are left as strings) A ConfigObj can be created by passing in a dictionary Added a __repr__ method for the ConfigObj configspec can now be a filename (or StringIO instance...) - including for the write method Now raises a TypeError rather than a KeyError if you pass in invalid options writein can now return a config file as a list of lines if no filename is set duplicate keys/sections in writein now raise 'duplicate' errors, rather than 'conspecerror' String interpolation from the 'default' section - using '%(keyword)s' format - similar to ConfigParser Attribute access as well as dictionary syntax Added a test for lists Coerce sections created as dictionaries to caselessDict (bug fix) Escaped '&mjf-lf;' and '&mjf-quot;' in unquoted values are converted (bug fix) Bug fixed in configspec with section files (bug fix) Bug fix in reporting of duplicate sections with configspec. (bug fix) Fixed bugs in sectionfiles with 'configspec_only' (errors in the empty last section would be missed) (bug fix) Bug fix in __buildconfigspec (bug fix) Improved support for '/*... */' in the writein method (bug fix) Fixed typo in verify and reset methods (bug fix) configspec is no longer destroyed for flatfiles (bug fix) Missing keys and Extra keys errors the wrong way round in write method (bug fix) Plus other minor bugfixes, simplifications and optimisations The next version will have some refactoring to use more reg-exes in parsing (I've had to succomb and import re for string interpolation so I might as well make better use of it) and improvements to the error system. *NEW* Voidspace PythonUtils Package Version 0.1.0 1st March 2005 http://www.voidspace.org.uk/python/pythonutils.html The Voidspace Pythonutils package is a simple way of installing the Voidspace collection of modules. For programs that use ConfigObj (which also requires caseless and listquote), it is simpler to install this package than to use the modules separately. This makes it simpler to distribute programs that depend on ConfigObj, without you having to distribute ConfigObj as well. Of course all the modules are useful in their own right. The modules included are : * ConfigObj - simple config file handling * caseless - case insensitive datatypes and sorting * listquote - list and element handling * validate - schema validation system * StandOut - flexible output object (simple logging and verbosity control) * pathutils - for working with paths and files * cgiutils - cgi helpers Regards, Fuzzyman http://www.voidspace.org.uk/python/index.shtml -- http://mail.python.org/mailman/listinfo/python-list