René's URL Explorer Experiment


Title: Upgrade hmac to Python 3.14.2 by Copilot · Pull Request #6863 · RustPython/RustPython · GitHub

Open Graph Title: Upgrade hmac to Python 3.14.2 by Copilot · Pull Request #6863 · RustPython/RustPython

X Title: Upgrade hmac to Python 3.14.2 by Copilot · Pull Request #6863 · RustPython/RustPython

Description: Upgrades hmac module and test suite from Python 3.14.2 as part of the ongoing stdlib modernization effort. Changes Lib/hmac.py: Updated to support three HMAC implementations (OpenSSL, HACL*, pure Python) with automatic fallback logic. Added _get_digest_constructor() helper and _compute_digest_fallback() for overflow handling. Lib/test/test_hmac.py: Comprehensive rewrite using mixin-based architecture to test all three implementations. Increased test coverage from ~150 to 142 tests with better organization. Test markers: 27 tests marked as @unittest.expectedFailure due to missing RustPython _hashlib features: _hashlib.HMAC class _hashlib.hmac_digest() function Full hmac_new() implementation (currently raises UnsupportedDigestmodError) Test Results 142 tests total: 68 passed, 48 skipped (platform/module dependencies), 26 expected failures. Original prompt This section details on the original issue you should resolve Upgrade Python libraries and test from Python 3.14 ## Summary Check scripts/update_lib for tools. As a note, the current latest Python version is v3.14.2. Previous versions' issues as reference 3.13: #5529 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) -... Fixes #6839 ✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Open Graph Description: Upgrades hmac module and test suite from Python 3.14.2 as part of the ongoing stdlib modernization effort. Changes Lib/hmac.py: Updated to support three HMAC implementations (OpenSSL, HACL*, pure...

X Description: Upgrades hmac module and test suite from Python 3.14.2 as part of the ongoing stdlib modernization effort. Changes Lib/hmac.py: Updated to support three HMAC implementations (OpenSSL, HACL*, pure...

Opengraph URL: https://github.com/RustPython/RustPython/pull/6863

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:cf86d910-97b7-e688-b11d-34faf78cfa9b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id89D4:22AFD6:54EDB1F:6F433A6:6A5D8F18
html-safe-noncee5a6ffbb1822eb60861754d137ce56bd8f8011f817a011b9996d76bcceee380e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4OUQ0OjIyQUZENjo1NEVEQjFGOjZGNDMzQTY6NkE1RDhGMTgiLCJ2aXNpdG9yX2lkIjoiMTQ1NjE1ODkxMDU5MjE1OTUxMiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac4c34e762a8a30348a8cc432f0dd4fda8061d0e64c429b53a6c3467756bb42504
hovercard-subject-tagpull_request:3206116081
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/RustPython/RustPython/pull/6863/files
twitter:imagehttps://avatars.githubusercontent.com/in/1143301?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/in/1143301?s=400&v=4
og:image:altUpgrades hmac module and test suite from Python 3.14.2 as part of the ongoing stdlib modernization effort. Changes Lib/hmac.py: Updated to support three HMAC implementations (OpenSSL, HACL*, pure...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/RustPython/RustPython git https://github.com/RustPython/RustPython.git
octolytics-dimension-user_id39710557
octolytics-dimension-user_loginRustPython
octolytics-dimension-repository_id135201145
octolytics-dimension-repository_nwoRustPython/RustPython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id135201145
octolytics-dimension-repository_network_root_nwoRustPython/RustPython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c975978430e9ad293956f2bbdaf153b1bd84a99
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/RustPython/RustPython/pull/6863/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FRustPython%2FRustPython%2Fpull%2F6863%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FRustPython%2FRustPython%2Fpull%2F6863%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=RustPython%2FRustPython
Reloadhttps://github.com/RustPython/RustPython/pull/6863/files
Reloadhttps://github.com/RustPython/RustPython/pull/6863/files
Reloadhttps://github.com/RustPython/RustPython/pull/6863/files
Please reload this pagehttps://github.com/RustPython/RustPython/pull/6863/files
RustPython https://github.com/RustPython
RustPythonhttps://github.com/RustPython/RustPython
Notifications https://github.com/login?return_to=%2FRustPython%2FRustPython
Fork 1.5k https://github.com/login?return_to=%2FRustPython%2FRustPython
Star 22.2k https://github.com/login?return_to=%2FRustPython%2FRustPython
Code https://github.com/RustPython/RustPython
Issues 293 https://github.com/RustPython/RustPython/issues
Pull requests 104 https://github.com/RustPython/RustPython/pulls
Discussions https://github.com/RustPython/RustPython/discussions
Actions https://github.com/RustPython/RustPython/actions
Projects https://github.com/RustPython/RustPython/projects
Models https://github.com/RustPython/RustPython/models
Wiki https://github.com/RustPython/RustPython/wiki
Security and quality 0 https://github.com/RustPython/RustPython/security
Insights https://github.com/RustPython/RustPython/pulse
Code https://github.com/RustPython/RustPython
Issues https://github.com/RustPython/RustPython/issues
Pull requests https://github.com/RustPython/RustPython/pulls
Discussions https://github.com/RustPython/RustPython/discussions
Actions https://github.com/RustPython/RustPython/actions
Projects https://github.com/RustPython/RustPython/projects
Models https://github.com/RustPython/RustPython/models
Wiki https://github.com/RustPython/RustPython/wiki
Security and quality https://github.com/RustPython/RustPython/security
Insights https://github.com/RustPython/RustPython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2FRustPython%2FRustPython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2FRustPython%2FRustPython%2Fissues%2Fnew%2Fchoose
youknowonehttps://github.com/youknowone
mainhttps://github.com/RustPython/RustPython/tree/main
copilot/upgrade-python-libraries-yet-againhttps://github.com/RustPython/RustPython/tree/copilot/upgrade-python-libraries-yet-again
Conversation 2 https://github.com/RustPython/RustPython/pull/6863
Commits 2 https://github.com/RustPython/RustPython/pull/6863/commits
Checks 13 https://github.com/RustPython/RustPython/pull/6863/checks
Files changed https://github.com/RustPython/RustPython/pull/6863/files
Please reload this pagehttps://github.com/RustPython/RustPython/pull/6863/files
Upgrade hmac to Python 3.14.2 https://github.com/RustPython/RustPython/pull/6863/files#top
Show all changes 2 commits https://github.com/RustPython/RustPython/pull/6863/files
90c0962 Update hmac and test_hmac from Python 3.14.2 Copilot Jan 24, 2026 https://github.com/RustPython/RustPython/pull/6863/commits/90c0962aaa001ee11b44f9f43f47f53ded803939
e981603 Mark expected failures in test_hmac (27 TODOs) Copilot Jan 24, 2026 https://github.com/RustPython/RustPython/pull/6863/commits/e9816039c972222cafe3d7112e7ab73e245c5fb9
Clear filters https://github.com/RustPython/RustPython/pull/6863/files
Please reload this pagehttps://github.com/RustPython/RustPython/pull/6863/files
Please reload this pagehttps://github.com/RustPython/RustPython/pull/6863/files
hmac.py https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
test_hmac.py https://github.com/RustPython/RustPython/pull/6863/files#diff-5e7ad86d959e018763fc3acb166f079b633d2ec9ceb72fceb903d89c4f463e3c
Lib/hmac.pyhttps://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
View file https://github.com/RustPython/RustPython/blob/e9816039c972222cafe3d7112e7ab73e245c5fb9/Lib/hmac.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/RustPython/RustPython/pull/6863/{{ revealButtonHref }}
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
https://github.com/RustPython/RustPython/pull/6863/files#diff-e6de6118ba80dc583266d48435d385a9b9a3524fd40a0cb768e0dddae5079870
Please reload this pagehttps://github.com/RustPython/RustPython/pull/6863/files
Please reload this pagehttps://github.com/RustPython/RustPython/pull/6863/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.