Skip to content

Update hashlib to Python 3.14.2#6862

Closed
Copilot wants to merge 3 commits intomainfrom
copilot/upgrade-python-libraries
Closed

Update hashlib to Python 3.14.2#6862
Copilot wants to merge 3 commits intomainfrom
copilot/upgrade-python-libraries

Conversation

Copy link
Contributor

Copilot AI commented Jan 24, 2026

Updates hashlib module and tests to Python 3.14.2 compatibility.

Changes

  • Updated Lib/hashlib.py and Lib/test/test_hashlib.py from CPython v3.14.2 using update_lib tooling, preserving 10 RustPython TODO markers

  • Created _sha2 module (crates/stdlib/src/sha2.rs): Python 3.14 consolidated _sha256 and _sha512 into a single _sha2 module providing all SHA-2 family functions (sha224, sha256, sha384, sha512)

  • Added openssl_md_meth_names attribute to _hashlib module: Returns frozenset of available hash algorithms, required by Python 3.14's hashlib.py to populate algorithms_available

Test Status

82 tests run: 8 expected failures (matching TODO markers), 2 TODO tests skipped (urlfetch disabled), 15 platform/resource skips.

Original prompt

This section details on the original issue you should resolve

<issue_title>Upgrade Python libraries and test from Python 3.14</issue_title>
<issue_description>## Summary

Check scripts/update_lib for tools. As a note, the current latest Python version is v3.14.2.

Previous versions' issues as reference

Details

2026-01-24

$ python3 scripts/update_lib todo  --done
  • [no deps] types (40 dependents)
    • test_types (10 TODO)
  • [no deps] struct (17 dependents)
    • test_struct (4 TODO)
  • [no deps] stat (14 dependents)
    • test_stat
  • [no deps] operator (13 dependents)
    • test_operator (3 TODO)
  • [no deps] linecache (9 dependents)
    • test_linecache
  • [no deps] keyword (8 dependents)
    • test_keyword
  • [no deps] codecs (8 dependents)
    • test_codecs (98 TODO)
  • [no deps] future (6 dependents)
  • [no deps] copyreg (6 dependents)
    • test_copyreg
  • [no deps] reprlib (6 dependents)
    • test_reprlib (4 TODO)
  • [no deps] bisect (5 dependents)
    • test_bisect
  • [no deps] token (5 dependents)
  • [no deps] string (5 dependents)
    • test_string
  • [no deps] heapq (4 dependents)
    • test_heapq
  • [no deps] hashlib (2 dependents)
    • test_hashlib (10 TODO)
  • [no deps] hmac (2 dependents)
    • test_hmac (18 TODO)
  • [no deps] quopri (2 dependents)
    • test_quopri
  • [no deps] _sitebuiltins (2 dependents)
  • [no deps] _compat_pickle (1 dependents)
  • [no deps] _opcode_metadata (1 dependents)
  • [no deps] mimetypes (1 dependents)
    • test_mimetypes
  • [no deps] cmd (1 dependents)
    • test_cmd
  • [no deps] stringprep (1 dependents)
    • test_stringprep
  • [no deps] tty (1 dependents)
    • test_tty (2 TODO)
  • [no deps] hello
  • [no deps] phello
  • [no deps] colorsys
    • test_colorsys
  • [no deps] this
  • [no deps] _ios_support
  • [no deps] pydoc_data
  • [no deps] timeit
    • test_timeit
  • [no deps] zipimport
    • test_zipimport (2 TODO)
  • [0/3 deps] os (76 dependents)
    • test_os (18 TODO)
  • [0/4 deps] collections (32 dependents)
    • test_collections (3 TODO)
  • [0/1 deps] warnings (23 dependents)
    • test_warnings (40 TODO)
  • [0/1 deps] enum (17 dependents)
    • test_enum (15 TODO)
  • [0/1 deps] datetime (13 dependents)
    • test_datetime
  • [0/1 deps] _collections_abc (9 dependents)
  • [0/1 deps] base64 (8 dependents)
    • test_base64
  • [0/1 deps] textwrap (6 dependents)
    • test_textwrap
  • [0/1 deps] _weakrefset (4 dependents)
  • [0/2 deps] codeop (3 dependents)
    • test_codeop (5 TODO)
  • [0/1 deps] numbers (3 dependents)
  • [0/1 deps] contextvars (3 dependents)
  • [0/3 deps] decimal (2 dependents)
    • test_decimal (2 TODO)
  • [0/1 deps] _markupbase (1 dependents)
  • [0/1 deps] ipaddress (1 dependents)
    • test_ipaddress
  • [0/4 deps] fractions (1 dependents)
    • test_fractions (1 TODO)
  • [0/4 deps] rlcompleter (1 dependents)
    • test_rlcompleter (1 TODO)
  • [0/1 deps] graphlib
    • test_graphlib
  • [0/1 deps] nturl2path
    • test_nturl2path
  • [0/2 deps] sre_compile
  • [0/2 deps] sre_constants
  • [0/2 deps] sre_parse
  • [1/3 deps] re (45 dependents)
    • test_re (19 TODO)
  • [1/5 deps] functools (33 dependents)
    • test_functools (11 TODO)
  • [1/1 deps] abc (15 dependents)
    • test_abc (1 TODO)
  • [1/2 deps] weakref (14 dependents)
    • test_weakref (28 TODO)
  • [1/3 deps] copy (9 dependents)
    • test_copy
  • [1/2 deps] ast (7 dependents)
    • test_ast (104 TODO)
  • [1/1 deps] signal (6 dependents)
    • test_signal (3 TODO)
  • [1/3 deps] posixpath (6 dependents)
    • test_posixpath (4 TODO)
  • [1/4 deps] random (6 dependents)
    • test_random
  • [1/6 deps] typing (6 dependents)
    • test_typing (21 TODO)
  • [1/8 deps] dataclasses (5 dependents)
    • test_dataclasses (10 TODO)
  • [1/4 deps] queue (4 dependents)
    • test_queue
  • [1/4 deps] json (4 dependents)
    • test_json (18 TODO)
  • [1/2 deps] selectors (4 dependents)
    • test_selectors
  • [1/2 deps] gettext (3 dependents)
    • test_gettext (7 TODO)
  • [1/1 deps] shlex (3 dependents)
    • test_shlex (4 TODO)
  • [1/3 deps] locale (3 dependents)
    • test_locale
  • [1/3 deps] difflib (2 dependents)
    • test_difflib
  • [1/2 deps] genericpath (2 dependents)
    • test_genericpath (1 TODO)
  • [1/2 deps] html (2 dependents)
    • test_html
  • [1/3 deps] site (2 dependents)
    • test_site (5 TODO)
  • [1/3 deps] filecmp (1 dependents)
    • test_filecmp
  • [1/2 deps] ntpath (1 dependents)
    • test_ntpath
  • [1/1 deps] opcode (1 dependents)
  • [1/1 deps] pyclbr (1 dependents)
    • test_pyclbr (3 TODO)
      -...

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Upgrade Python libraries and test from Python 3.14 Update hashlib to Python 3.14.2 Jan 24, 2026
Copilot AI requested a review from moreal January 24, 2026 08:48
@github-actions
Copy link
Contributor

Code has been automatically formatted

The code in this PR has been formatted using:

  • cargo fmt --all
    Please pull the latest changes before pushing again:
git pull origin copilot/upgrade-python-libraries

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 24, 2026

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI and others added 3 commits February 6, 2026 15:49
Co-authored-by: moreal <26626194+moreal@users.noreply.github.com>
…4 compatibility

Co-authored-by: moreal <26626194+moreal@users.noreply.github.com>
@moreal moreal force-pushed the copilot/upgrade-python-libraries branch from 9fdbfd7 to 53419d7 Compare February 6, 2026 06:49
@github-actions
Copy link
Contributor

github-actions bot commented Feb 6, 2026

📦 Library Dependencies

The following Lib/ modules were modified. Here are their dependencies:

[x] lib: cpython/Lib/hashlib.py
[x] test: cpython/Lib/test/test_hashlib.py (TODO: 10)

dependencies:

  • hashlib

dependent tests: (14 tests)

  • hashlib: test_hashlib test_hmac test_smtplib test_tarfile test_unicodedata test_urllib2_localnet
    • urllib.request: test_http_cookiejar test_pathlib test_site test_ssl test_urllib test_urllib2 test_urllib2net test_urllibnet

Legend:

  • [+] path exists in CPython
  • [x] up-to-date, [ ] outdated

@moreal
Copy link
Contributor

moreal commented Feb 14, 2026

Replaced by #7120

@moreal moreal closed this Feb 14, 2026
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.

2 participants