Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove formatter module #86465

Closed
terryjreedy opened this issue Nov 9, 2020 · 14 comments
Closed

Remove formatter module #86465

terryjreedy opened this issue Nov 9, 2020 · 14 comments
Labels
3.10 only security fixes type-feature A feature request or enhancement

Comments

@terryjreedy
Copy link
Member

BPO 42299
Nosy @terryjreedy, @vstinner, @tiran, @ewdurbin, @JulienPalard, @hroncok, @corona10, @tirkarthi
PRs
  • bpo-42299: Remove formatter module #23476
  • Files
  • mywork2.patch
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2020-11-25.13:19:31.066>
    created_at = <Date 2020-11-09.23:41:26.211>
    labels = ['type-feature', '3.10']
    title = 'Remove formatter module'
    updated_at = <Date 2021-01-06.19:31:45.677>
    user = 'https://github.com/terryjreedy'

    bugs.python.org fields:

    activity = <Date 2021-01-06.19:31:45.677>
    actor = 'EWDurbin'
    assignee = 'none'
    closed = True
    closed_date = <Date 2020-11-25.13:19:31.066>
    closer = 'corona10'
    components = []
    creation = <Date 2020-11-09.23:41:26.211>
    creator = 'terry.reedy'
    dependencies = []
    files = ['49584']
    hgrepos = []
    issue_num = 42299
    keywords = ['patch']
    message_count = 14.0
    messages = ['380623', '380624', '381669', '381710', '381725', '381746', '381772', '381828', '381829', '381833', '381917', '384528', '384535', '384536']
    nosy_count = 8.0
    nosy_names = ['terry.reedy', 'vstinner', 'christian.heimes', 'EWDurbin', 'mdk', 'hroncok', 'corona10', 'xtreak']
    pr_nums = ['23476']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue42299'
    versions = ['Python 3.10']

    @terryjreedy
    Copy link
    Member Author

    bpo-14019 has a patch, unrelated to the issue, that adds test.test_formatter. There still is no such file, so I open this issue to move the patch here. It is the second version, responding to review by Ezio Melotti.

    But formatter has been deprecated since 3.4. It was originally scheduled to be removed in 3.6, but we decided to delay such removals until after 2.7 EOL. That is now past. Do we add tests for a deprecated module? If so, the patch, aDo we still want to remove formatter? If so, when?

    @terryjreedy terryjreedy added 3.10 only security fixes type-feature A feature request or enhancement labels Nov 9, 2020
    @terryjreedy
    Copy link
    Member Author

    The patch is by Francisco Freire (francisco.freire) * (CLA signed). There is apparently no way to directly move a patch from one issue to another, so I download and upload.

    @corona10
    Copy link
    Member

    If so, the patch, aDo we still want to remove formatted

    IMHO, 3.10 is a good time to remove formatter

    @tiran
    Copy link
    Member

    tiran commented Nov 24, 2020

    The formatter has been deprecated for a long time. It's been issuing a DeprecationWarning on import since 3.5. Let's remove it.

    @corona10 corona10 changed the title Add test_formatter (or remove deprecated formatter module?) Remove formatter module Nov 24, 2020
    @corona10 corona10 changed the title Add test_formatter (or remove deprecated formatter module?) Remove formatter module Nov 24, 2020
    @corona10
    Copy link
    Member

    @christian.heimes

    Thank you Christian

    I also discuss this issue on python-dev and everybody agree with removing this module.

    I will remove this module ;)

    @tirkarthi
    Copy link
    Member

    This was proposed earlier : https://bugs.python.org/issue39352

    @terryjreedy
    Copy link
    Member Author

    I took a look at the module and its doc. It is based on a 1980s model of document processing that has been somewhat superseded by html, xml, and pdf. The module itself has been pretty well superseded by stdlib and external moudles. IDLE, for instance, displays idle.html in a tkinter Text widget about 160 lines by subclassing htmlparser.

    One obsolescent 'feature' is that fonts are defined by (size, italic, bold, teletype), where 'teletype' is a bool of undefined meaning. There is no way I saw to designate a font family like 'Source Code Pro' or 'Monaco'.

    Since the module is unmaintained and frozen, anyone importing it can incorporate whatever class code they need.

    @corona10
    Copy link
    Member

    New changeset be319c0 by Dong-hee Na in branch 'master':
    bpo-42299: Remove formatter module (GH-23476)
    be319c0

    @corona10
    Copy link
    Member

    @terry.reedy @vstinner

    Thank you, Terry and Victor, and goodbye formatter module!

    @vstinner
    Copy link
    Member

    Thread on python-dev:
    https://mail.python.org/archives/list/python-dev@python.org/thread/ZEDIBBYCWI34GVOXDEUYXQY3LYXOFHA2/

    Copy of Fred Drake's email:

    "Oh, the memories! Looking at docs, I can vaguely recall using the
    API, but... it definitely doesn't belong in the stdlib. -Fred"

    @terryjreedy
    Copy link
    Member Author

    A coda on my 'obsolete and superseded' claim: text formatting events have 2 sources -- the text being displayed and user actions while reading. formatter somewhat mixes these together.

    html.parser.HTMLParser generates events from the text in the form of calls to handle_xyz methods, where 'xyy is most commonly 'starttag', 'data', 'endtag'. HTMLPareser subclasses replace the default 'pass' implementations. So the idea is similar to formatter.NullFormatter. IDLE uses the tkinter Text widget as the writer instance for its HTMLParser subclass. Responses to events may depend on user settings, which may be changed by user events.

    For a GUI app, user events are handled by the GUI framework and may or mayy not require user coding to handle.

    @hroncok
    Copy link
    Mannequin

    hroncok mannequin commented Jan 6, 2021

    I am confused. Why is this still online when the source was removed?

    https://docs.python.org/3.10/library/formatter.html

    @tiran
    Copy link
    Member

    tiran commented Jan 6, 2021

    https://docs.python.org/3.10/library/index.html no longer links to https://docs.python.org/3.10/library/misc.html but misc.html and formatter.html are still there. It looks like a bug in the build and update process. I bet it's not removing files.

    Ee, could you take a look, please?

    @ewdurbin
    Copy link
    Member

    ewdurbin commented Jan 6, 2021

    Issues relating to documentation build likely need to be looked at and addressed by Julien. If it does end up being an infra issue, feel free to read me to nosy.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.10 only security fixes type-feature A feature request or enhancement
    Projects
    None yet
    Development

    No branches or pull requests

    6 participants