FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-104773: PEP 594: Remove the crypt module by vstinner · Pull Request #104908 · python/cpython · GitHub

/ cpython Public

gh-104773: PEP 594: Remove the crypt module - #104908

Merged
vstinner merged 1 commit into
python:mainfrom
vstinner:remove_crypt
May 25, 2023
Merged

gh-104773: PEP 594: Remove the crypt module#104908
vstinner merged 1 commit into
python:mainfrom
vstinner:remove_crypt

Conversation

vstinner commented May 24, 2023
edited by github-actions Bot
Loading

Copy link
Copy Markdown
Member

Remove the crypt module and its private _crypt extension, deprecated in Python 3.11.


📚 Documentation preview 📚: https://cpython-previews--104908.org.readthedocs.build/

Copy link
Copy Markdown
Member Author

Using ^\s*(import crypt\b|from crypt\b) regex, I found the following PyPI top 5,000 projects using the removed crypt module.

Affected projects (8):

  • Django (4.2)
  • Twisted (22.10.0)
  • ansible (7.4.0)
  • ansible-core (2.14.4)
  • htpasswd (2.3)
  • passlib (1.7.4)
  • pyftpdlib (1.5.7)
  • pytest-testinfra (7.0.0)
Details Code:
Django-4.2/tests/auth_tests/test_hashers.py: import crypt
ansible-7.4.0/ansible_collections/community/general/plugins/modules/homectl.py: import crypt
ansible-7.4.0/ansible_collections/community/general/plugins/modules/udm_user.py: import crypt
Twisted-22.10.0/src/twisted/conch/test/test_checkers.py: import crypt
Twisted-22.10.0/src/twisted/cred/test/test_cred.py: from crypt import crypt as _crypt
Twisted-22.10.0/src/twisted/plugins/cred_unix.py: import crypt
ansible-core-2.14.4/lib/ansible/utils/encrypt.py: import crypt
passlib-1.7.4/passlib/tests/utils.py: from crypt import crypt
passlib-1.7.4/passlib/utils/__init__.py: from crypt import crypt as _crypt
pyftpdlib-1.5.7/pyftpdlib/authorizers.py: import crypt
pytest-testinfra-7.0.0/test/test_modules.py: import crypt
htpasswd-2.3/htpasswd/basic.py: from crypt import crypt

Copy link
Copy Markdown
Member Author

passlib (1.7.4)

It's interesting that the proposed replacement for the removed crypt module actually uses crypt internally (in /passlib/utils/__init__.py) :-)

hugovk commented May 25, 2023

Copy link
Copy Markdown
Member

Are these bits still needed?

Lib/ctypes/util.py
366:            print(f"crypt\t:: {find_library('crypt')}")
367:            print(f"crypt\t:: {cdll.LoadLibrary(find_library('crypt'))}")
373:            print(find_library("crypt"))

Remove the crypt module and its private _crypt extension, deprecated
in Python 3.11.

Copy link
Copy Markdown
Member Author

Are these bits still needed?

IMO we should keep it. I saw this test in ctypes. I don't see any direct relationship with the Python crypt module. It's just a test to load a dynamic library which is commonly available on Unix.

Copy link
Copy Markdown
Member

vstinner merged commit e4127ea into python:main May 25, 2023
vstinner deleted the remove_crypt branch May 25, 2023 13:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants


Back | FazBrowse Home | New Git URL