Issue #18716: Deprecate the formatter module

This commit is contained in:
Brett Cannon 2013-10-04 11:38:59 -04:00
parent cc5d49e3da
commit 1448ecf470
5 changed files with 19 additions and 8 deletions

View File

@ -4,6 +4,10 @@
.. module:: formatter .. module:: formatter
:synopsis: Generic output formatter and device interface. :synopsis: Generic output formatter and device interface.
.. deprecated:: 3.4
Due to lack of usage, the formatter module has been deprecated and is slated
for removal in Python 3.6.
This module supports two interface definitions, each with multiple This module supports two interface definitions, each with multiple
implementations: The *formatter* interface, and the *writer* interface which is implementations: The *formatter* interface, and the *writer* interface which is

View File

@ -516,6 +516,9 @@ Deprecated Python modules, functions and methods
* The :mod:`imp` module is pending deprecation. To keep compatibility with * The :mod:`imp` module is pending deprecation. To keep compatibility with
Python 2/3 code bases, the module's removal is currently not scheduled. Python 2/3 code bases, the module's removal is currently not scheduled.
* The :mod:`formatter` module is pending deprecation and is slated for removal
in Python 3.6.
Deprecated functions and types of the C API Deprecated functions and types of the C API
------------------------------------------- -------------------------------------------
@ -554,9 +557,9 @@ that may require changes to your code.
* Import now resets relevant attributes (e.g. ``__name__``, ``__loader__``, * Import now resets relevant attributes (e.g. ``__name__``, ``__loader__``,
``__package__``, ``__file__``, ``__cached__``) unconditionally when reloading. ``__package__``, ``__file__``, ``__cached__``) unconditionally when reloading.
* Frozen packages no longer set ``__path__`` to a list containg the package name * Frozen packages no longer set ``__path__`` to a list containing the package
but an empty list instead. Determing if a module is a package should be done name but an empty list instead. Determing if a module is a package should be
using ``hasattr(module, '__path__')``. done using ``hasattr(module, '__path__')``.
* :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** * :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg**
argument is not set. Previously only ``NULL`` was returned with no exception argument is not set. Previously only ``NULL`` was returned with no exception

View File

@ -19,6 +19,9 @@ manage and inserting data into the output.
""" """
import sys import sys
import warnings
warnings.warn('the formatter module is deprecated and will be removed in '
'Python 3.6', PendingDeprecationWarning)
AS_IS = None AS_IS = None

View File

@ -1915,11 +1915,10 @@ module "pydoc_data.topics" could not be found.
if more_xrefs: if more_xrefs:
xrefs = (xrefs or '') + ' ' + more_xrefs xrefs = (xrefs or '') + ' ' + more_xrefs
if xrefs: if xrefs:
import formatter import textwrap
buffer = io.StringIO() text = 'Related help topics: ' + ', '.join(xrefs.split()) + '\n'
formatter.DumbWriter(buffer).send_flowing_data( wrapped_text = textwrap.wrap(text, 72)
'Related help topics: ' + ', '.join(xrefs.split()) + '\n') self.output.write('\n%s\n' % ''.join(wrapped_text))
self.output.write('\n%s\n' % buffer.getvalue())
def _gettopic(self, topic, more_xrefs=''): def _gettopic(self, topic, more_xrefs=''):
"""Return unbuffered tuple of (topic, xrefs). """Return unbuffered tuple of (topic, xrefs).

View File

@ -21,6 +21,8 @@ Core and Builtins
Library Library
------- -------
- Issue #18716: Deprecate the formatter module.
- Issue #18037: 2to3 now escapes '\u' and '\U' in native strings. - Issue #18037: 2to3 now escapes '\u' and '\U' in native strings.
- Issue #17839: base64.decodebytes and base64.encodebytes now accept any - Issue #17839: base64.decodebytes and base64.encodebytes now accept any