This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Remove the binhex module, binhex4 and hexbin4 standards
Type: Stage: resolved
Components: Library (Lib) Versions: Python 3.11
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: lukasz.langa, serhiy.storchaka, vstinner
Priority: normal Keywords: patch

Created on 2021-09-01 22:44 by vstinner, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 28117 merged vstinner, 2021-09-01 22:52
Messages (6)
msg400878 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-09-01 22:44
The binhex module was deprecated in Python 3.9 by bpo-39353 (commit beea26b57e8c80f1eff0f967a0f9d083a7dc3d66). I propose to remove it: see attached PR.

The PR also removes the following binascii functions, also deprecated in Python 3.9:

* a2b_hqx(), b2a_hqx()
* rlecode_hqx(), rledecode_hqx()

The binascii.crc_hqx() function remains available.
msg400880 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-09-01 22:52
See also the PEP 594: Removing dead batteries from the standard library
https://www.python.org/dev/peps/pep-0594/
msg400881 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-09-01 22:57
The binhex module was deprecated in Python 3.9 by bpo-39353 (commit beea26b57e8c80f1eff0f967a0f9d083a7dc3d66). I have been asked there to keep binascii.crc_hqx() (not deprecated it).
msg400882 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-09-01 23:03
In bpo-39353, Serhiy Storchaka proposed: "But it would be nice to create a separate package on PyPI that provides such functionality before removing it from the stdlib."

The purpose of the PEP 594 is to reduce the Python maintenance burden. Publishing a module on PyPI introduces a new maintenance burden, even if there is no plan to ever update the package.

The PEP 594 is still a draft. So far, there was no agreement on the strategy to remove anything from the stdlib.

In past, other stdlib modules have been removed silently and nobody complained. Likely because nobody used them. For example, the the Python 2 CDROM module of the old Lib/plat-linux2/ directory (CDROM.py, DLFCN.py, IN.py, regen, TYPES.py).

If someone uses the binhex module, I suggest users to create a new project on PyPI to support binhex. Users who need binhex are likely the most motivated to *maintain* such code. You can start by copying Python 3.10 code.
msg400907 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2021-09-02 10:10
New changeset a8066087054417885db0a2dbdce2ddb2ac498247 by Victor Stinner in branch 'main':
bpo-45085: Remove the binhex module (GH-28117)
https://github.com/python/cpython/commit/a8066087054417885db0a2dbdce2ddb2ac498247
msg400909 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2021-09-02 10:24
Agreed with Victor. I'd go with the "traditional" flow of PendingDeprecationWarning in 3.9, DeprecationWarning in 3.10, and removal in 3.11; but since we kept DeprecationWarning for two releases, it's pretty much the same and fine to remove it now.
History
Date User Action Args
2022-04-11 14:59:49adminsetgithub: 89248
2021-09-02 10:24:56lukasz.langasetstatus: open -> closed
resolution: fixed
messages: + msg400909

stage: patch review -> resolved
2021-09-02 10:10:20lukasz.langasetnosy: + lukasz.langa
messages: + msg400907
2021-09-01 23:03:19vstinnersetnosy: + serhiy.storchaka
messages: + msg400882
2021-09-01 22:57:29vstinnersetmessages: + msg400881
2021-09-01 22:52:50vstinnersetmessages: + msg400880
2021-09-01 22:52:16vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request26558
2021-09-01 22:44:58vstinnercreate