summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-05-25 07:25:25 (GMT)
committerGeorg Brandl <georg@python.org>2008-05-25 07:25:25 (GMT)
commit392c6fc02d90f211dadc72448a07d9281260cb70 (patch)
tree8cc4d563ee077ef83612a67a02ce36f5c2397d37
parent995ee9dab0a89b139e08a55fc64a60aaddc0d5c0 (diff)
downloadcpython-392c6fc02d90f211dadc72448a07d9281260cb70.zip
cpython-392c6fc02d90f211dadc72448a07d9281260cb70.tar.gz
cpython-392c6fc02d90f211dadc72448a07d9281260cb70.tar.bz2
ConfigParser renaming reversal part 3: move module into place and adapt imports.
-rw-r--r--Doc/library/configparser.rst42
-rw-r--r--Doc/library/logging.rst38
-rw-r--r--Doc/library/shlex.rst2
-rw-r--r--Lib/ConfigParser.py (renamed from Lib/lib-old/ConfigParser.py)0
-rw-r--r--Lib/distutils/command/upload.py6
-rw-r--r--Lib/distutils/config.py6
-rw-r--r--Lib/distutils/dist.py6
-rw-r--r--Lib/idlelib/configHandler.py2
-rw-r--r--Lib/logging/config.py4
-rw-r--r--Lib/test/test___all__.py2
-rw-r--r--Lib/test/test_cfgparser.py36
-rw-r--r--Lib/test/test_py3kwarn.py41
-rw-r--r--Misc/NEWS7
-rw-r--r--Misc/cheatsheet2
14 files changed, 68 insertions, 126 deletions
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst
index 6a4e049..ec9aec2 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -1,10 +1,7 @@
-:mod:`configparser` --- Configuration file parser
+:mod:`ConfigParser` --- Configuration file parser
=================================================
.. module:: ConfigParser
- :synopsis: Old name for the configparser module.
-
-.. module:: configparser
:synopsis: Configuration file parser.
.. moduleauthor:: Ken Manheimer <klm@zope.com>
@@ -13,9 +10,10 @@
.. 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.
+
+ The :mod:`ConfigParser` module has been renamed to `configparser` in Python
+ 3.0. The :term:`2to3` tool will automatically adapt imports when converting
+ your sources to 3.0.
.. index::
pair: .ini; file
@@ -233,9 +231,9 @@ RawConfigParser Objects
load the required file or files using :meth:`readfp` before calling :meth:`read`
for any optional files::
- import configparser, os
+ import ConfigParser, os
- config = configparser.ConfigParser()
+ config = ConfigParser.ConfigParser()
config.readfp(open('defaults.cfg'))
config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')])
@@ -375,10 +373,10 @@ Examples
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
# how you want them to be displayed in the actual file.
# In addition, please note that using RawConfigParser's and the raw
@@ -393,16 +391,16 @@ An example of writing to a configuration file::
config.set('Section1', 'baz', 'fun')
config.set('Section1', 'bar', 'Python')
config.set('Section1', 'foo', '%(bar)s is %(baz)s!')
-
+
# Writing our configuration file to 'example.cfg'
with open('example.cfg', 'wb') as configfile:
config.write(configfile)
An example of reading the configuration file again::
- import configparser
+ import ConfigParser
- config = configparser.RawConfigParser()
+ config = ConfigParser.RawConfigParser()
config.read('example.cfg')
# getfloat() raises an exception if the value is not a float
@@ -419,9 +417,9 @@ An example of reading the configuration file again::
To get interpolation, you will need to use a :class:`ConfigParser` or
:class:`SafeConfigParser`::
- import configparser
+ import ConfigParser
- config = configparser.ConfigParser()
+ config = ConfigParser.ConfigParser()
config.read('example.cfg')
# Set the third, optional argument of get to 1 if you wish to use raw mode.
@@ -433,15 +431,15 @@ To get interpolation, you will need to use a :class:`ConfigParser` or
print config.get('Section1', 'foo', 0, {'bar': 'Documentation',
'baz': 'evil'})
-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. ::
- import configparser
+ import ConfigParser
# 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')
-
+
print config.get('Section1', 'foo') # -> "Python is fun!"
config.remove_option('Section1', 'bar')
config.remove_option('Section1', 'baz')
@@ -452,7 +450,7 @@ The function ``opt_move`` below can be used to move options between sections::
def opt_move(config, section1, section2, option):
try:
config.set(section2, option, config.get(section1, option, 1))
- except configparser.NoSectionError:
+ except ConfigParser.NoSectionError:
# Create non-existent section
config.add_section(section2)
opt_move(config, section1, section2, option)
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index bca1ece..1f7c59b 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -2240,12 +2240,12 @@ in :mod:`logging` itself) and defining handlers which are declared either in
.. function:: fileConfig(fname[, defaults])
- Reads the logging configuration from a :mod:`configparser`\-format file named
- *fname*. This function can be called several times from an application,
- allowing an end user the ability to select from various pre-canned
- configurations (if the developer provides a mechanism to present the choices
- and load the chosen configuration). Defaults to be passed to the ConfigParser
- can be specified in the *defaults* argument.
+ Reads the logging configuration from a ConfigParser-format file named *fname*.
+ This function can be called several times from an application, allowing an end
+ user the ability to select from various pre-canned configurations (if the
+ developer provides a mechanism to present the choices and load the chosen
+ configuration). Defaults to be passed to ConfigParser can be specified in the
+ *defaults* argument.
.. function:: listen([port])
@@ -2275,20 +2275,18 @@ in :mod:`logging` itself) and defining handlers which are declared either in
Configuration file format
^^^^^^^^^^^^^^^^^^^^^^^^^
-The configuration file format understood by :func:`fileConfig` is
-based on :mod:`configparser` functionality. The file must contain
-sections called ``[loggers]``, ``[handlers]`` and ``[formatters]``
-which identify by name the entities of each type which are defined in
-the file. For each such entity, there is a separate section which
-identified how that entity is configured. Thus, for a logger named
-``log01`` in the ``[loggers]`` section, the relevant configuration
-details are held in a section ``[logger_log01]``. Similarly, a handler
-called ``hand01`` in the ``[handlers]`` section will have its
-configuration held in a section called ``[handler_hand01]``, while a
-formatter called ``form01`` in the ``[formatters]`` section will have
-its configuration specified in a section called
-``[formatter_form01]``. The root logger configuration must be
-specified in a section called ``[logger_root]``.
+The configuration file format understood by :func:`fileConfig` is based on
+ConfigParser functionality. The file must contain sections called ``[loggers]``,
+``[handlers]`` and ``[formatters]`` which identify by name the entities of each
+type which are defined in the file. For each such entity, there is a separate
+section which identified how that entity is configured. Thus, for a logger named
+``log01`` in the ``[loggers]`` section, the relevant configuration details are
+held in a section ``[logger_log01]``. Similarly, a handler called ``hand01`` in
+the ``[handlers]`` section will have its configuration held in a section called
+``[handler_hand01]``, while a formatter called ``form01`` in the
+``[formatters]`` section will have 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. ::
diff --git a/Doc/library/shlex.rst b/Doc/library/shlex.rst
index 1dfafbd..0ae77c1 100644
--- a/Doc/library/shlex.rst
+++ b/Doc/library/shlex.rst
@@ -63,7 +63,7 @@ The :mod:`shlex` module defines the following class:
.. seealso::
- Module :mod:`configparser`
+ Module :mod:`ConfigParser`
Parser for configuration files similar to the Windows :file:`.ini` files.
diff --git a/Lib/lib-old/ConfigParser.py b/Lib/ConfigParser.py
index 65c6ae2..65c6ae2 100644
--- a/Lib/lib-old/ConfigParser.py
+++ b/Lib/ConfigParser.py
diff --git a/Lib/distutils/command/upload.py b/Lib/distutils/command/upload.py
index 92c4bf2..8805d41 100644
--- a/Lib/distutils/command/upload.py
+++ b/Lib/distutils/command/upload.py
@@ -14,11 +14,7 @@ import httplib
import base64
import urlparse
import cStringIO as StringIO
-try:
- from configparser import ConfigParser
-except ImportError:
- # For backward-compatibility with Python versions < 2.6.
- from ConfigParser import ConfigParser
+from ConfigParser import ConfigParser
class upload(PyPIRCCommand):
diff --git a/Lib/distutils/config.py b/Lib/distutils/config.py
index e07f8ac..e3a4c57 100644
--- a/Lib/distutils/config.py
+++ b/Lib/distutils/config.py
@@ -5,11 +5,7 @@ that uses .pypirc in the distutils.command package.
"""
import os
import sys
-try:
- from configparser import ConfigParser
-except ImportError:
- # For backward-compatibility with Python versions < 2.6.
- from ConfigParser import ConfigParser
+from ConfigParser import ConfigParser
from distutils.cmd import Command
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index 6299919..0a21380 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -358,11 +358,7 @@ Common commands: (see '--help-commands' for more)
def parse_config_files (self, filenames=None):
- try:
- from configparser import ConfigParser
- except ImportError:
- # For backward-compatibility with Python versions < 2.6.
- from ConfigParser import ConfigParser
+ from ConfigParser import ConfigParser
if filenames is None:
filenames = self.find_config_files()
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index bdce85d..3fc2a60 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -21,7 +21,7 @@ import os
import sys
import string
import macosxSupport
-from configparser import ConfigParser, NoOptionError, NoSectionError
+from ConfigParser import ConfigParser, NoOptionError, NoSectionError
class InvalidConfigType(Exception): pass
class InvalidConfigSet(Exception): pass
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index dc13723..c95842c 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -65,9 +65,9 @@ def fileConfig(fname, defaults=None):
rather than a filename, in which case the file-like object will be read
using readfp.
"""
- import configparser
+ import ConfigParser
- cp = configparser.ConfigParser(defaults)
+ cp = ConfigParser.ConfigParser(defaults)
if hasattr(cp, 'readfp') and hasattr(fname, 'readline'):
cp.readfp(fname)
else:
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index 57933d2..1076c61 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -37,7 +37,7 @@ class AllTest(unittest.TestCase):
self.check_all("BaseHTTPServer")
self.check_all("Bastion")
self.check_all("CGIHTTPServer")
- self.check_all("configparser")
+ self.check_all("ConfigParser")
self.check_all("Cookie")
self.check_all("MimeWriter")
self.check_all("Queue")
diff --git a/Lib/test/test_cfgparser.py b/Lib/test/test_cfgparser.py
index 4dfa795..a8b5d7c 100644
--- a/Lib/test/test_cfgparser.py
+++ b/Lib/test/test_cfgparser.py
@@ -1,4 +1,4 @@
-import configparser
+import ConfigParser
import StringIO
import unittest
import UserDict
@@ -94,7 +94,7 @@ class TestCaseBase(unittest.TestCase):
"remove_option() failed to report non-existance of option"
" that was removed")
- self.assertRaises(configparser.NoSectionError,
+ self.assertRaises(ConfigParser.NoSectionError,
cf.remove_option, 'No Such Section', 'foo')
eq(cf.get('Long Line', 'foo'),
@@ -147,17 +147,17 @@ class TestCaseBase(unittest.TestCase):
def test_parse_errors(self):
self.newconfig()
- self.parse_error(configparser.ParsingError,
+ self.parse_error(ConfigParser.ParsingError,
"[Foo]\n extra-spaces: splat\n")
- self.parse_error(configparser.ParsingError,
+ self.parse_error(ConfigParser.ParsingError,
"[Foo]\n extra-spaces= splat\n")
- self.parse_error(configparser.ParsingError,
+ self.parse_error(ConfigParser.ParsingError,
"[Foo]\noption-without-value\n")
- self.parse_error(configparser.ParsingError,
+ self.parse_error(ConfigParser.ParsingError,
"[Foo]\n:value-without-option-name\n")
- self.parse_error(configparser.ParsingError,
+ self.parse_error(ConfigParser.ParsingError,
"[Foo]\n=value-without-option-name\n")
- self.parse_error(configparser.MissingSectionHeaderError,
+ self.parse_error(ConfigParser.MissingSectionHeaderError,
"No Section!\n")
def parse_error(self, exc, src):
@@ -170,13 +170,13 @@ class TestCaseBase(unittest.TestCase):
"new ConfigParser should have no defined sections")
self.failIf(cf.has_section("Foo"),
"new ConfigParser should have no acknowledged sections")
- self.assertRaises(configparser.NoSectionError,
+ self.assertRaises(ConfigParser.NoSectionError,
cf.options, "Foo")
- self.assertRaises(configparser.NoSectionError,
+ self.assertRaises(ConfigParser.NoSectionError,
cf.set, "foo", "bar", "value")
- self.get_error(configparser.NoSectionError, "foo", "bar")
+ self.get_error(ConfigParser.NoSectionError, "foo", "bar")
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):
try:
@@ -215,7 +215,7 @@ class TestCaseBase(unittest.TestCase):
def test_weird_errors(self):
cf = self.newconfig()
cf.add_section("Foo")
- self.assertRaises(configparser.DuplicateSectionError,
+ self.assertRaises(ConfigParser.DuplicateSectionError,
cf.add_section, "Foo")
def test_write(self):
@@ -324,7 +324,7 @@ class TestCaseBase(unittest.TestCase):
class ConfigParserTestCase(TestCaseBase):
- config_class = configparser.ConfigParser
+ config_class = ConfigParser.ConfigParser
def test_interpolation(self):
cf = self.get_interpolation_config()
@@ -335,11 +335,11 @@ class ConfigParserTestCase(TestCaseBase):
"something with lots of interpolation (9 steps)")
eq(cf.get("Foo", "bar10"),
"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):
cf = self.get_interpolation_config()
- e = self.get_error(configparser.InterpolationError,
+ e = self.get_error(ConfigParser.InterpolationError,
"Interpolation Error", "name")
self.assertEqual(e.reference, "reference")
self.assertEqual(e.section, "Interpolation Error")
@@ -375,7 +375,7 @@ class ConfigParserTestCase(TestCaseBase):
class RawConfigParserTestCase(TestCaseBase):
- config_class = configparser.RawConfigParser
+ config_class = ConfigParser.RawConfigParser
def test_interpolation(self):
cf = self.get_interpolation_config()
@@ -410,7 +410,7 @@ class RawConfigParserTestCase(TestCaseBase):
class SafeConfigParserTestCase(ConfigParserTestCase):
- config_class = configparser.SafeConfigParser
+ config_class = ConfigParser.SafeConfigParser
def test_safe_interpolation(self):
# See http://www.python.org/sf/511737
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index a456154..180342b 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -213,48 +213,9 @@ class TestStdlibRemovals(unittest.TestCase):
self.assertEquals(str(w.message), msg)
-class TestStdlibRenames(unittest.TestCase):
-
- renames = {'ConfigParser': 'configparser'}
-
- def check_rename(self, module_name, new_module_name):
- """Make sure that:
- - A DeprecationWarning is raised when importing using the
- old 2.x module name.
- - The module can be imported using the new 3.x name.
- - The warning message specify both names.
- """
- with CleanImport(module_name):
- with catch_warning(record=False) as w:
- warnings.filterwarnings("error", ".+ renamed to",
- DeprecationWarning)
- try:
- __import__(module_name, level=0)
- except DeprecationWarning as exc:
- self.assert_(module_name in exc.args[0])
- self.assert_(new_module_name in exc.args[0])
- else:
- self.fail("DeprecationWarning not raised for %s" %
- module_name)
- with CleanImport(new_module_name):
- try:
- __import__(new_module_name, level=0)
- except ImportError:
- self.fail("cannot import %s with its 3.x name, %s" %
- module_name, new_module_name)
- except DeprecationWarning:
- self.fail("unexpected DeprecationWarning raised for %s" %
- module_name)
-
- def test_module_renames(self):
- for module_name, new_module_name in self.renames.items():
- self.check_rename(module_name, new_module_name)
-
-
def test_main():
run_unittest(TestPy3KWarnings,
- TestStdlibRemovals,
- TestStdlibRenames)
+ TestStdlibRemovals)
if __name__ == '__main__':
test_main()
diff --git a/Misc/NEWS b/Misc/NEWS
index b4b61e6..6b40164 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -135,9 +135,6 @@ Library
- The DEVICE, GL, gl, and cgen modules (which indirectly includes
cgensupport) have been deprecated for removal in Python 3.0.
-- The ConfigParser module has been renamed 'configparser'. The old
- name is now deprecated.
-
- The CL, CL_old, and cl modules for IRIX have been deprecated for
removal in Python 3.0.
@@ -1904,13 +1901,13 @@ Library
Extension Modules
-----------------
-- Patch #1657: added select.epoll and select.kqueue
+- Patch #1657: added select.epoll and select.kqueue.
- Patch #1506171: added operator.methodcaller().
- Patch #1826: operator.attrgetter() now supports dotted attribute paths.
-- Patch #1957: syslogmodule: Release GIL when calling syslog(3)
+- Patch #1957: syslogmodule: Release GIL when calling syslog(3).
- Bug #2112: mmap.error is now a subclass of EnvironmentError and not
a direct EnvironmentError.
diff --git a/Misc/cheatsheet b/Misc/cheatsheet
index 15c4d00..cb0702a 100644
--- a/Misc/cheatsheet
+++ b/Misc/cheatsheet
@@ -1862,7 +1862,7 @@ codecs Lookup existing Unicode encodings and register new ones.
colorsys Conversion functions between RGB and other color systems.
commands Tools for executing UNIX commands .
compileall Force "compilation" of all .py files in a directory.
-configparser Configuration file parser (much like windows .ini files)
+ConfigParser Configuration file parser (much like windows .ini files)
copy Generic shallow and deep copying operations.
copy_reg Helper to provide extensibility for pickle/cPickle.
csv Read and write files with comma separated values.