René's URL Explorer Experiment


Title: gh-93627: Align Python implementation of pickle with C implementation of pickle by eendebakpt · Pull Request #103035 · python/cpython · GitHub

Open Graph Title: gh-93627: Align Python implementation of pickle with C implementation of pickle by eendebakpt · Pull Request #103035 · python/cpython

X Title: gh-93627: Align Python implementation of pickle with C implementation of pickle by eendebakpt · Pull Request #103035 · python/cpython

Description: In this PR we align the python and C implementation of pickle module. In this PR we have chosen to modify all implementations to follow the c implementation of pickle conventions: if a method like __reduce_ex_ or __reduce__ is set to None, a TypeError is raised. Since the behaviour of the python and c implemenations is not equal, any PR aliging the two cannot be fully backwards compatible. The impact seems limited: No changes are required to the tests (although a few tests are added to verify the new behaviour) The changes impact cases that seem rare (e.g. setting the __reduce_ex__ attribute of a class to None, instead of creating a method) Notes: Changes to align the copy module have been removed from the PR. Issue: gh-93627

Open Graph Description: In this PR we align the python and C implementation of pickle module. In this PR we have chosen to modify all implementations to follow the c implementation of pickle conventions: if a method like ...

X Description: In this PR we align the python and C implementation of pickle module. In this PR we have chosen to modify all implementations to follow the c implementation of pickle conventions: if a method like ...

Opengraph URL: https://github.com/python/cpython/pull/103035

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:ad39c82a-310d-98f8-7cff-95e3e693ca3f
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id94C0:14355A:5F12572:828347E:69961B8A
html-safe-nonce8968cf30175dd872444a3f828ef4cbb6216eb6d3564b1004b089303017c9eba5
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NEMwOjE0MzU1QTo1RjEyNTcyOjgyODM0N0U6Njk5NjFCOEEiLCJ2aXNpdG9yX2lkIjoiMjcyOTUxNzU0NzM0MzE5MDkyMiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac08ae24f34022c52a3606be5b285ad6a3d4ba00a23fb5d07aab79214dcb8632a8
hovercard-subject-tagpull_request:1290139963
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/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
twitter:imagehttps://avatars.githubusercontent.com/u/883786?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/883786?s=400&v=4
og:image:altIn this PR we align the python and C implementation of pickle module. In this PR we have chosen to modify all implementations to follow the c implementation of pickle conventions: if a method like ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None979c1ab77a40e0dbb8d76f1c427190824693a0e72e7a954636654843f3881905
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasedab4e5b9e20f61da1fc47a51f73d35ab5c5b15fd
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103035%2Fcommits%2Ff9dd613e078678182e04daf0a84b748837a93ab0
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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/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%2Fpython%2Fcpython%2Fpull%2F103035%2Fcommits%2Ff9dd613e078678182e04daf0a84b748837a93ab0
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%2Fcommits&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Reloadhttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Reloadhttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 34.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.6k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security 0 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
serhiy-storchakahttps://github.com/serhiy-storchaka
python:mainhttps://github.com/python/cpython/tree/main
eendebakpt:pickle_93627https://github.com/eendebakpt/cpython/tree/pickle_93627
Conversation 24 https://github.com/python/cpython/pull/103035
Commits 45 https://github.com/python/cpython/pull/103035/commits
Checks 0 https://github.com/python/cpython/pull/103035/checks
Files changed https://github.com/python/cpython/pull/103035/files
Please reload this pagehttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
gh-93627: Align Python implementation of pickle with C implementation of pickle https://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0#top
Show all changes 45 commits https://github.com/python/cpython/pull/103035/files
9939a1c align python implementation of pickle, c implementation of pickle and… eendebakpt Mar 25, 2023 https://github.com/python/cpython/pull/103035/commits/9939a1c0c57b94b687dd5def5adfb5459a4eb8f3
29445b9 review comments eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/29445b911ad159da2b31958499df212d6c180975
95cbf77 review comments eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/95cbf7788ce7900ec5dd49ea9bda3137716eed31
31d3b05 Merge branch 'main' into pickle_93627 eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/31d3b05e85dc52827e8ac0faf6f0f106bfb85e39
e928112 Merge branch 'pickle_93627' of github.com:eendebakpt/cpython into pic… eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/e9281129f8b6ecff28682f1152d3a4a61adc5603
fa2a741 📜🤖 Added by blurb_it. blurb-it[bot] Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/fa2a7414269cd8128fc65676c9fd8859ea4d8368
dfc4ef2 Merge branch 'pickle_93627' of github.com:eendebakpt/cpython into pic… eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/dfc4ef28a0ae438027193538c26c475b2df31d05
3e6e4eb format news entry eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/3e6e4ebb36fe656b94bc61325941b627424c9ad3
92362c1 remove unused exception eendebakpt Mar 26, 2023 https://github.com/python/cpython/pull/103035/commits/92362c126eedd41e83fac0cc24f0d6d3677702af
bab3dab Merge branch 'main' into pickle_93627 eendebakpt Apr 2, 2023 https://github.com/python/cpython/pull/103035/commits/bab3dabdfd6c7e42ee5516ed44f69960471bce55
3a6c8c5 Merge branch 'pickle_93627' of github.com:eendebakpt/cpython into pic… eendebakpt Apr 2, 2023 https://github.com/python/cpython/pull/103035/commits/3a6c8c57489b7208debb872a6f30b212dc82f8ef
9c5cd38 align C and python pickle implementations eendebakpt Apr 2, 2023 https://github.com/python/cpython/pull/103035/commits/9c5cd38f12ff0a0c52e910c789aeeece663c7fa2
a8a797c Merge branch 'main' into pickle_93627 eendebakpt Apr 4, 2023 https://github.com/python/cpython/pull/103035/commits/a8a797cdebcef42b8e74d1b3cd85dc236056e327
1f1b2ff Merge branch 'main' into pickle_93627 eendebakpt Apr 20, 2023 https://github.com/python/cpython/pull/103035/commits/1f1b2ff320f76ea6e6d887898a26f08c849d30b4
ec8d1c7 Merge branch 'main' into pickle_93627 eendebakpt May 5, 2023 https://github.com/python/cpython/pull/103035/commits/ec8d1c7947ed32fc7ed03f0073696c78f8366435
889f2ab Merge branch 'main' into pickle_93627 eendebakpt May 20, 2023 https://github.com/python/cpython/pull/103035/commits/889f2aba5b5f0b892cd5ff4ae8f387ab34489b59
1900578 rename NoValue to private _NoValue eendebakpt May 25, 2023 https://github.com/python/cpython/pull/103035/commits/1900578c5fd7d0f95b5d8ffbd9aa87ce1ad30f8b
d822705 reverse changes to copy.py eendebakpt May 25, 2023 https://github.com/python/cpython/pull/103035/commits/d822705fa0194d8de287e5bbaa92000855bbc9ca
c900f53 Merge branch 'main' into pickle_93627 eendebakpt May 26, 2023 https://github.com/python/cpython/pull/103035/commits/c900f531125d6f4831f58dc5f43a62b0370a6571
a366dc5 revert style changes eendebakpt Jun 9, 2023 https://github.com/python/cpython/pull/103035/commits/a366dc50a5a661d955b415a5c0e24381978fdb4e
2e7fbb7 Merge branch 'pickle_93627' of github.com:eendebakpt/cpython into pic… eendebakpt Jun 9, 2023 https://github.com/python/cpython/pull/103035/commits/2e7fbb7e7d078b8d2aef1722a0e8c4e2627800a7
e43d962 Merge branch 'main' into pickle_93627 eendebakpt Jun 9, 2023 https://github.com/python/cpython/pull/103035/commits/e43d9624f8594f5d75b6fde380b663b4da6b6661
1e79c83 update news entry eendebakpt Jun 9, 2023 https://github.com/python/cpython/pull/103035/commits/1e79c83a4cd340a598a2334b85a70a0675dc743a
90a06d3 Merge branch 'pickle_93627' of github.com:eendebakpt/cpython into pic… eendebakpt Jun 9, 2023 https://github.com/python/cpython/pull/103035/commits/90a06d3daf1aa1d4896115dbc65372d2e0e6fb0e
789fe8c Merge branch 'main' into pickle_93627 eendebakpt Jun 12, 2023 https://github.com/python/cpython/pull/103035/commits/789fe8c8447c0ff2e012362e08f2de9fbdadb6b0
30ffb7c Merge branch 'main' into pickle_93627 eendebakpt Jun 26, 2023 https://github.com/python/cpython/pull/103035/commits/30ffb7c6387c4a2bdecca1913890d77f584c5608
3a88607 Merge branch 'main' into pickle_93627 eendebakpt Aug 2, 2023 https://github.com/python/cpython/pull/103035/commits/3a88607aaf2fcedd21f4befd01972d017a705f03
dc7d33e Merge branch 'main' into pickle_93627 eendebakpt Aug 21, 2023 https://github.com/python/cpython/pull/103035/commits/dc7d33e36967535545bc4c343ca5abbd8bf53225
d365a44 revert spelling mistake in exception message as it is part of the pub… eendebakpt Aug 21, 2023 https://github.com/python/cpython/pull/103035/commits/d365a4415b68b2885352d14fea7fdae6cf857d6f
1bf64c0 revert adding comment to pickle c implementation eendebakpt Aug 21, 2023 https://github.com/python/cpython/pull/103035/commits/1bf64c0cda8cdefa25ffc9180c60e9f5b1943c8d
f275ede Merge branch 'main' into pickle_93627 eendebakpt Aug 21, 2023 https://github.com/python/cpython/pull/103035/commits/f275ede20ae234e81bad9f478d2b6bb4fc38948b
3548dc3 Update Misc/NEWS.d/next/Core and Builtins/2023-03-26-19-11-10.gh-issu… eendebakpt Aug 22, 2023 https://github.com/python/cpython/pull/103035/commits/3548dc3169a726054594587c60c3e29ee0ae639b
250accc add unit test for None value of __setstate__ eendebakpt Aug 22, 2023 https://github.com/python/cpython/pull/103035/commits/250acccaef78aa96e83e8d35688b10841bd5a088
1ea9a1b Merge branch 'main' into pickle_93627 eendebakpt Aug 22, 2023 https://github.com/python/cpython/pull/103035/commits/1ea9a1b1ff0d6ee6ba2bfd34bc56b75d401863bd
e58f4a1 fix tests eendebakpt Aug 22, 2023 https://github.com/python/cpython/pull/103035/commits/e58f4a1ca08b2908e580b33d07946c3053c77fca
b1bd83c add test for reduced_override eendebakpt Aug 23, 2023 https://github.com/python/cpython/pull/103035/commits/b1bd83c3fe1d9badfdbbf9e37f2bd0513a1b4b15
f565513 add test for dispatch table eendebakpt Aug 23, 2023 https://github.com/python/cpython/pull/103035/commits/f56551334267a15dc5819055d1286e8fa8dd82ff
4a928aa whitespace eendebakpt Aug 23, 2023 https://github.com/python/cpython/pull/103035/commits/4a928aa7f441a9ec2299eb07ec97c1465669ae10
39ab1ed fix test eendebakpt Aug 24, 2023 https://github.com/python/cpython/pull/103035/commits/39ab1ed1c566d208e6c75f51334e89f210822754
f694005 move docstrings eendebakpt Aug 24, 2023 https://github.com/python/cpython/pull/103035/commits/f694005181c10bc49f0e3c40c2245f3a57130d82
833b2fb Merge branch 'main' into pickle_93627 eendebakpt Aug 24, 2023 https://github.com/python/cpython/pull/103035/commits/833b2fb6da59857421dde90c3e2f4e83909aece6
c803480 refactor tests eendebakpt Aug 28, 2023 https://github.com/python/cpython/pull/103035/commits/c803480bfb60f8b5e91220982af63a3154deae80
7f3ee96 fix typo eendebakpt Aug 28, 2023 https://github.com/python/cpython/pull/103035/commits/7f3ee96201773bd383aa1dc47539c1a8646eb1ff
1f02ab2 whitespace eendebakpt Aug 28, 2023 https://github.com/python/cpython/pull/103035/commits/1f02ab2aa44d7250dcd443128a8b753bfb69357c
f9dd613 Merge branch 'main' into pickle_93627 eendebakpt Sep 8, 2023 https://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Clear filters https://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Please reload this pagehttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Please reload this pagehttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
Prev https://github.com/python/cpython/pull/103035/commits/1f02ab2aa44d7250dcd443128a8b753bfb69357c
Please reload this pagehttps://github.com/python/cpython/pull/103035/commits/f9dd613e078678182e04daf0a84b748837a93ab0
https://github.com/eendebakpt
eendebakpthttps://github.com/python/cpython/commits?author=eendebakpt
view the diff.https://github.com/python/cpython/commit/f9dd613e078678182e04daf0a84b748837a93ab0
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.