diff options
author | Raymond Hettinger <python@rcn.com> | 2009-03-03 05:00:37 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2009-03-03 05:00:37 (GMT) |
commit | e89b8e98327da833f92299e1876d2903b6e585ca (patch) | |
tree | 1d7d50611390dcea9ad6674aee499f7c91c0c5fc | |
parent | 88a9164cdba48dba05b6ebe1076ba641b4a50ffa (diff) | |
download | cpython-e89b8e98327da833f92299e1876d2903b6e585ca.zip cpython-e89b8e98327da833f92299e1876d2903b6e585ca.tar.gz cpython-e89b8e98327da833f92299e1876d2903b6e585ca.tar.bz2 |
Backport 70111: Let configparser use ordered dicts by default.
-rw-r--r-- | Doc/library/configparser.rst | 17 | ||||
-rw-r--r-- | Lib/ConfigParser.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 26 insertions, 1 deletions
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst index bab44d4..0c5bb15 100644 --- a/Doc/library/configparser.rst +++ b/Doc/library/configparser.rst @@ -75,6 +75,9 @@ write-back, as will be the keys within each section. .. versionchanged:: 2.6 *dict_type* was added. + .. versionchanged:: 2.7 + The default *dict_type* is :class:`collections.OrderedDict`. + .. class:: ConfigParser([defaults[, dict_type]]) @@ -91,6 +94,14 @@ write-back, as will be the keys within each section. option names to lower case), the values ``foo %(bar)s`` and ``foo %(BAR)s`` are equivalent. + .. versionadded:: 2.3 + + .. versionchanged:: 2.6 + *dict_type* was added. + + .. versionchanged:: 2.7 + The default *dict_type* is :class:`collections.OrderedDict`. + .. class:: SafeConfigParser([defaults[, dict_type]]) @@ -103,6 +114,12 @@ write-back, as will be the keys within each section. .. versionadded:: 2.3 + .. versionchanged:: 2.6 + *dict_type* was added. + + .. versionchanged:: 2.7 + The default *dict_type* is :class:`collections.OrderedDict`. + .. exception:: NoSectionError diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py index b6af6f9..1861b5a 100644 --- a/Lib/ConfigParser.py +++ b/Lib/ConfigParser.py @@ -87,6 +87,12 @@ ConfigParser -- responsible for parsing a list of write the configuration state in .ini format """ +try: + from collections import OrderedDict as _default_dict +except ImportError: + # fallback for setup.py which hasn't yet built _collections + _default_dict = dict + import re __all__ = ["NoSectionError", "DuplicateSectionError", "NoOptionError", @@ -215,7 +221,7 @@ class MissingSectionHeaderError(ParsingError): class RawConfigParser: - def __init__(self, defaults=None, dict_type=dict): + def __init__(self, defaults=None, dict_type=_default_dict): self._dict = dict_type self._sections = self._dict() self._defaults = self._dict() @@ -172,6 +172,8 @@ Library - The _asdict() for method for namedtuples now returns an OrderedDict(). +- The configparser module now defaults to using an ordered dictionary. + - Issue #4308: httplib.IncompleteRead's repr doesn't include all of the data all ready received. |