Updated import statements to use the new `configparser` module name.

Updated the documentation to use the new name.
Revert addition of the stub entry for the old name.

Georg, I am reverting your changes since this commit should propagate
to py3k.
This commit is contained in:
Alexandre Vassalotti 2008-05-14 22:44:22 +00:00
parent 0a11f96f67
commit e2514c6f10
9 changed files with 52 additions and 57 deletions

View File

@ -1,21 +1,14 @@
:mod:`ConfigParser` --- Configuration file parser :mod:`configparser` --- Configuration file parser
================================================= =================================================
.. module:: ConfigParser
:synopsis: Old name for the configparser module.
.. module:: configparser .. module:: configparser
:synopsis: Configuration file parser. :synopsis: Configuration file parser.
.. moduleauthor:: Ken Manheimer <klm@zope.com> .. moduleauthor:: Ken Manheimer <klm@zope.com>
.. moduleauthor:: Barry Warsaw <bwarsaw@python.org> .. moduleauthor:: Barry Warsaw <bwarsaw@python.org>
.. moduleauthor:: Eric S. Raymond <esr@thyrsus.com> .. moduleauthor:: Eric S. Raymond <esr@thyrsus.com>
.. sectionauthor:: Christopher G. Petrilli <petrilli@amber.org> .. sectionauthor:: Christopher G. Petrilli <petrilli@amber.org>
.. note::
The :mod:`ConfigParser` module has been renamed to :mod:`configparser` in
Python 3.0. It is importable under both names in Python 2.6 and the rest of
the 2.x series.
.. index:: .. index::
pair: .ini; file pair: .ini; file
pair: configuration; file pair: configuration; file
@ -232,9 +225,9 @@ RawConfigParser Objects
load the required file or files using :meth:`readfp` before calling :meth:`read` load the required file or files using :meth:`readfp` before calling :meth:`read`
for any optional files:: for any optional files::
import ConfigParser, os import configparser, os
config = ConfigParser.ConfigParser() config = configparser.ConfigParser()
config.readfp(open('defaults.cfg')) config.readfp(open('defaults.cfg'))
config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')]) config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')])
@ -374,9 +367,9 @@ Examples
An example of writing to a configuration file:: An example of writing to a configuration file::
import ConfigParser import configparser
config = ConfigParser.RawConfigParser() config = configparser.RawConfigParser()
# When adding sections or items, add them in the reverse order of # When adding sections or items, add them in the reverse order of
# how you want them to be displayed in the actual file. # how you want them to be displayed in the actual file.
@ -399,9 +392,9 @@ An example of writing to a configuration file::
An example of reading the configuration file again:: An example of reading the configuration file again::
import ConfigParser import configparser
config = ConfigParser.RawConfigParser() config = configparser.RawConfigParser()
config.read('example.cfg') config.read('example.cfg')
# getfloat() raises an exception if the value is not a float # getfloat() raises an exception if the value is not a float
@ -418,9 +411,9 @@ An example of reading the configuration file again::
To get interpolation, you will need to use a :class:`ConfigParser` or To get interpolation, you will need to use a :class:`ConfigParser` or
:class:`SafeConfigParser`:: :class:`SafeConfigParser`::
import ConfigParser import configparser
config = ConfigParser.ConfigParser() config = configparser.ConfigParser()
config.read('example.cfg') config.read('example.cfg')
# Set the third, optional argument of get to 1 if you wish to use raw mode. # Set the third, optional argument of get to 1 if you wish to use raw mode.
@ -435,10 +428,10 @@ To get interpolation, you will need to use a :class:`ConfigParser` or
Defaults are available in all three types of ConfigParsers. They are used in Defaults are available in all three types of ConfigParsers. They are used in
interpolation if an option used is not defined elsewhere. :: interpolation if an option used is not defined elsewhere. ::
import ConfigParser import configparser
# New instance with 'bar' and 'baz' defaulting to 'Life' and 'hard' each # New instance with 'bar' and 'baz' defaulting to 'Life' and 'hard' each
config = ConfigParser.SafeConfigParser({'bar': 'Life', 'baz': 'hard'}) config = configparser.SafeConfigParser({'bar': 'Life', 'baz': 'hard'})
config.read('example.cfg') config.read('example.cfg')
print config.get('Section1', 'foo') # -> "Python is fun!" print config.get('Section1', 'foo') # -> "Python is fun!"
@ -451,7 +444,7 @@ The function ``opt_move`` below can be used to move options between sections::
def opt_move(config, section1, section2, option): def opt_move(config, section1, section2, option):
try: try:
config.set(section2, option, config.get(section1, option, 1)) config.set(section2, option, config.get(section1, option, 1))
except ConfigParser.NoSectionError: except configparser.NoSectionError:
# Create non-existent section # Create non-existent section
config.add_section(section2) config.add_section(section2)
opt_move(config, section1, section2, option) opt_move(config, section1, section2, option)

View File

@ -2275,18 +2275,20 @@ in :mod:`logging` itself) and defining handlers which are declared either in
Configuration file format Configuration file format
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^
The configuration file format understood by :func:`fileConfig` is based on The configuration file format understood by :func:`fileConfig` is
ConfigParser functionality. The file must contain sections called ``[loggers]``, based on :mod:`configparser` functionality. The file must contain
``[handlers]`` and ``[formatters]`` which identify by name the entities of each sections called ``[loggers]``, ``[handlers]`` and ``[formatters]``
type which are defined in the file. For each such entity, there is a separate which identify by name the entities of each type which are defined in
section which identified how that entity is configured. Thus, for a logger named the file. For each such entity, there is a separate section which
``log01`` in the ``[loggers]`` section, the relevant configuration details are identified how that entity is configured. Thus, for a logger named
held in a section ``[logger_log01]``. Similarly, a handler called ``hand01`` in ``log01`` in the ``[loggers]`` section, the relevant configuration
the ``[handlers]`` section will have its configuration held in a section called details are held in a section ``[logger_log01]``. Similarly, a handler
``[handler_hand01]``, while a formatter called ``form01`` in the called ``hand01`` in the ``[handlers]`` section will have its
``[formatters]`` section will have its configuration specified in a section configuration held in a section called ``[handler_hand01]``, while a
called ``[formatter_form01]``. The root logger configuration must be specified formatter called ``form01`` in the ``[formatters]`` section will have
in a section called ``[logger_root]``. its configuration specified in a section called
``[formatter_form01]``. The root logger configuration must be
specified in a section called ``[logger_root]``.
Examples of these sections in the file are given below. :: Examples of these sections in the file are given below. ::

View File

@ -10,7 +10,7 @@ from hashlib import md5
import os import os
import socket import socket
import platform import platform
import ConfigParser import configparser
import httplib import httplib
import base64 import base64
import urlparse import urlparse

View File

@ -5,7 +5,7 @@ that uses .pypirc in the distutils.command package.
""" """
import os import os
import sys import sys
from ConfigParser import ConfigParser from configparser import ConfigParser
from distutils.core import Command from distutils.core import Command

View File

@ -359,7 +359,7 @@ Common commands: (see '--help-commands' for more)
def parse_config_files (self, filenames=None): def parse_config_files (self, filenames=None):
from ConfigParser import ConfigParser from configparser import ConfigParser
if filenames is None: if filenames is None:
filenames = self.find_config_files() filenames = self.find_config_files()

View File

@ -21,7 +21,7 @@ import os
import sys import sys
import string import string
import macosxSupport import macosxSupport
from ConfigParser import ConfigParser, NoOptionError, NoSectionError from configparser import ConfigParser, NoOptionError, NoSectionError
class InvalidConfigType(Exception): pass class InvalidConfigType(Exception): pass
class InvalidConfigSet(Exception): pass class InvalidConfigSet(Exception): pass

View File

@ -65,9 +65,9 @@ def fileConfig(fname, defaults=None):
rather than a filename, in which case the file-like object will be read rather than a filename, in which case the file-like object will be read
using readfp. using readfp.
""" """
import ConfigParser import configparser
cp = ConfigParser.ConfigParser(defaults) cp = configparser.ConfigParser(defaults)
if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): if hasattr(cp, 'readfp') and hasattr(fname, 'readline'):
cp.readfp(fname) cp.readfp(fname)
else: else:

View File

@ -37,7 +37,7 @@ class AllTest(unittest.TestCase):
self.check_all("BaseHTTPServer") self.check_all("BaseHTTPServer")
self.check_all("Bastion") self.check_all("Bastion")
self.check_all("CGIHTTPServer") self.check_all("CGIHTTPServer")
self.check_all("ConfigParser") self.check_all("configparser")
self.check_all("Cookie") self.check_all("Cookie")
self.check_all("MimeWriter") self.check_all("MimeWriter")
self.check_all("Queue") self.check_all("Queue")

View File

@ -1,4 +1,4 @@
import ConfigParser import configparser
import StringIO import StringIO
import unittest import unittest
import UserDict import UserDict
@ -94,7 +94,7 @@ class TestCaseBase(unittest.TestCase):
"remove_option() failed to report non-existance of option" "remove_option() failed to report non-existance of option"
" that was removed") " that was removed")
self.assertRaises(ConfigParser.NoSectionError, self.assertRaises(configparser.NoSectionError,
cf.remove_option, 'No Such Section', 'foo') cf.remove_option, 'No Such Section', 'foo')
eq(cf.get('Long Line', 'foo'), eq(cf.get('Long Line', 'foo'),
@ -147,17 +147,17 @@ class TestCaseBase(unittest.TestCase):
def test_parse_errors(self): def test_parse_errors(self):
self.newconfig() self.newconfig()
self.parse_error(ConfigParser.ParsingError, self.parse_error(configparser.ParsingError,
"[Foo]\n extra-spaces: splat\n") "[Foo]\n extra-spaces: splat\n")
self.parse_error(ConfigParser.ParsingError, self.parse_error(configparser.ParsingError,
"[Foo]\n extra-spaces= splat\n") "[Foo]\n extra-spaces= splat\n")
self.parse_error(ConfigParser.ParsingError, self.parse_error(configparser.ParsingError,
"[Foo]\noption-without-value\n") "[Foo]\noption-without-value\n")
self.parse_error(ConfigParser.ParsingError, self.parse_error(configparser.ParsingError,
"[Foo]\n:value-without-option-name\n") "[Foo]\n:value-without-option-name\n")
self.parse_error(ConfigParser.ParsingError, self.parse_error(configparser.ParsingError,
"[Foo]\n=value-without-option-name\n") "[Foo]\n=value-without-option-name\n")
self.parse_error(ConfigParser.MissingSectionHeaderError, self.parse_error(configparser.MissingSectionHeaderError,
"No Section!\n") "No Section!\n")
def parse_error(self, exc, src): def parse_error(self, exc, src):
@ -170,13 +170,13 @@ class TestCaseBase(unittest.TestCase):
"new ConfigParser should have no defined sections") "new ConfigParser should have no defined sections")
self.failIf(cf.has_section("Foo"), self.failIf(cf.has_section("Foo"),
"new ConfigParser should have no acknowledged sections") "new ConfigParser should have no acknowledged sections")
self.assertRaises(ConfigParser.NoSectionError, self.assertRaises(configparser.NoSectionError,
cf.options, "Foo") cf.options, "Foo")
self.assertRaises(ConfigParser.NoSectionError, self.assertRaises(configparser.NoSectionError,
cf.set, "foo", "bar", "value") cf.set, "foo", "bar", "value")
self.get_error(ConfigParser.NoSectionError, "foo", "bar") self.get_error(configparser.NoSectionError, "foo", "bar")
cf.add_section("foo") cf.add_section("foo")
self.get_error(ConfigParser.NoOptionError, "foo", "bar") self.get_error(configparser.NoOptionError, "foo", "bar")
def get_error(self, exc, section, option): def get_error(self, exc, section, option):
try: try:
@ -215,7 +215,7 @@ class TestCaseBase(unittest.TestCase):
def test_weird_errors(self): def test_weird_errors(self):
cf = self.newconfig() cf = self.newconfig()
cf.add_section("Foo") cf.add_section("Foo")
self.assertRaises(ConfigParser.DuplicateSectionError, self.assertRaises(configparser.DuplicateSectionError,
cf.add_section, "Foo") cf.add_section, "Foo")
def test_write(self): def test_write(self):
@ -324,7 +324,7 @@ class TestCaseBase(unittest.TestCase):
class ConfigParserTestCase(TestCaseBase): class ConfigParserTestCase(TestCaseBase):
config_class = ConfigParser.ConfigParser config_class = configparser.ConfigParser
def test_interpolation(self): def test_interpolation(self):
cf = self.get_interpolation_config() cf = self.get_interpolation_config()
@ -335,11 +335,11 @@ class ConfigParserTestCase(TestCaseBase):
"something with lots of interpolation (9 steps)") "something with lots of interpolation (9 steps)")
eq(cf.get("Foo", "bar10"), eq(cf.get("Foo", "bar10"),
"something with lots of interpolation (10 steps)") "something with lots of interpolation (10 steps)")
self.get_error(ConfigParser.InterpolationDepthError, "Foo", "bar11") self.get_error(configparser.InterpolationDepthError, "Foo", "bar11")
def test_interpolation_missing_value(self): def test_interpolation_missing_value(self):
cf = self.get_interpolation_config() cf = self.get_interpolation_config()
e = self.get_error(ConfigParser.InterpolationError, e = self.get_error(configparser.InterpolationError,
"Interpolation Error", "name") "Interpolation Error", "name")
self.assertEqual(e.reference, "reference") self.assertEqual(e.reference, "reference")
self.assertEqual(e.section, "Interpolation Error") self.assertEqual(e.section, "Interpolation Error")
@ -375,7 +375,7 @@ class ConfigParserTestCase(TestCaseBase):
class RawConfigParserTestCase(TestCaseBase): class RawConfigParserTestCase(TestCaseBase):
config_class = ConfigParser.RawConfigParser config_class = configparser.RawConfigParser
def test_interpolation(self): def test_interpolation(self):
cf = self.get_interpolation_config() cf = self.get_interpolation_config()
@ -410,7 +410,7 @@ class RawConfigParserTestCase(TestCaseBase):
class SafeConfigParserTestCase(ConfigParserTestCase): class SafeConfigParserTestCase(ConfigParserTestCase):
config_class = ConfigParser.SafeConfigParser config_class = configparser.SafeConfigParser
def test_safe_interpolation(self): def test_safe_interpolation(self):
# See http://www.python.org/sf/511737 # See http://www.python.org/sf/511737