diff -r 395904f70d6a Doc/library/configparser.rst --- a/Doc/library/configparser.rst Fri Mar 21 11:24:40 2014 -0400 +++ b/Doc/library/configparser.rst Fri Mar 21 08:47:31 2014 -0700 @@ -310,7 +310,8 @@ ``home_dir`` (``/Users`` in this case). ``%(my_dir)s`` in effect would resolve to ``/Users/lumberjack``. All interpolations are done on demand so keys used in the chain of references do not have to be specified in any - specific order in the configuration file. + specific order in the configuration file. To use a bare ``%`` the user + can escape it by using ``%%``. With ``interpolation`` set to ``None``, the parser would simply return ``%(my_dir)s/Pictures`` as the value of ``my_pictures`` and @@ -323,7 +324,8 @@ using ``${section:option}`` to denote a value from a foreign section. Interpolation can span multiple levels. For convenience, if the ``section:`` part is omitted, interpolation defaults to the current section (and possibly - the default values from the special section). + the default values from the special section). To use a bare ``$`` the user + can escape it by writing ``$$``. For example, the configuration specified above with basic interpolation, would look like this with extended interpolation: diff -r 395904f70d6a Lib/configparser.py --- a/Lib/configparser.py Fri Mar 21 11:24:40 2014 -0400 +++ b/Lib/configparser.py Fri Mar 21 08:47:31 2014 -0700 @@ -425,7 +425,8 @@ class ExtendedInterpolation(Interpolation): """Advanced variant of interpolation, supports the syntax used by - `zc.buildout'. Enables interpolation between sections.""" + `zc.buildout'. Enables interpolation between sections. A single $ can + be escaped by writing $$.""" _KEYCRE = re.compile(r"\$\{([^}]+)\}")