New submission from Łukasz Langa <luk...@langa.pl>:

Overview
--------

It's a fairly common need in configuration parsing to take configuration from a 
string or a Python data structure (most commonly, a dictionary). The attached 
patch introduces two new methods to RawConfigParser that serve this purpose: 
readstring and readdict. In the process, two behavioral bugs were detected and 
fixed.

Detailed information about the patch
------------------------------------
Source changes:
* added readstring and readdict methods
* fixed a bug in SafeConfigParser.set when setting a None value would raise an 
exception (the code tried to remove interpolation escapes from None)
* added a new exception DuplicateOptionError, raised when during parsing a 
single file, string or a dictionary the same option occurs twice. This catches 
mispellings and case-sensitivity errors (parsers are by default 
case-insensitive in regard to options).
* added checking for option duplicates described above in _read

Test changes:
* self.fromstring is using readstring now
* self.cf removed because it was bad design, now config parser instances are 
explicit everywhere
  ** changed definition of get_error and parse_error
* split test_basic into two parts: config parser building and the actual test
  ** introduced config parser built from the dictionary
* added a duplicate option checking case for string and dictionary based reading

Documentation changes:
* documented readstring and readdict
* documented DuplicateOptionError
* explicit remark about the case-insensitivity
* corrected remark about leading whitespace being removed from values (also 
trailing whitespace is, and for keys as well)

----------
components: Library (Lib)
messages: 112409
nosy: lukasz.langa
priority: normal
severity: normal
status: open
title: configparser support for reading from strings and dictionaries
type: feature request
versions: Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9452>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to