René's URL Explorer Experiment


Title: TypeOffset class no longer depends on target Python version by lostmsu · Pull Request #1292 · pythonnet/pythonnet · GitHub

Open Graph Title: TypeOffset class no longer depends on target Python version by lostmsu · Pull Request #1292 · pythonnet/pythonnet

X Title: TypeOffset class no longer depends on target Python version by lostmsu · Pull Request #1292 · pythonnet/pythonnet

Description: This is a stage of removing the need to prepare a separate build of Python.Runtime for each Python version. What does this implement/fix? Explain your changes. This removes the need to pick TypeOffset at compile time. Instead, for each supported Python version a separate class is generated (e.g. TypeOffset36). Then the Runtime (via new class ABI) picks the correct class based on actual Python version using reflection, and copies only the necessary TypeOffset members over from it. ManagedDataOffsets.Magic is now also read at runtime from tp_basicsize of the builtins.type class. Any other comments? N/A Checklist Check all those that are applicable and complete. N/A Make sure to include one or more tests for your change If an enhancement PR, please create docs and at best an example Add yourself to AUTHORS Updated the CHANGELOG

Open Graph Description: This is a stage of removing the need to prepare a separate build of Python.Runtime for each Python version. What does this implement/fix? Explain your changes. This removes the need to pick TypeOff...

X Description: This is a stage of removing the need to prepare a separate build of Python.Runtime for each Python version. What does this implement/fix? Explain your changes. This removes the need to pick TypeOff...

Opengraph URL: https://github.com/pythonnet/pythonnet/pull/1292

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:d47d6b14-9c9f-c526-184a-68fe8584ead0
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idCDB0:116AF0:10141BD:16B4CA7:6972353B
html-safe-noncecc0124562d4b06f098d96f808cfabcf4c859365cd39cec3729e6f5cd25966a72
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDREIwOjExNkFGMDoxMDE0MUJEOjE2QjRDQTc6Njk3MjM1M0IiLCJ2aXNpdG9yX2lkIjoiNjk1NDA4ODc1NzQwMTM2Nzg2NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacb40af9e179dde05cdcf57ab8f04bbb1c1f5703e3f6113bd917e99f42672f3367
hovercard-subject-tagpull_request:526305296
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/pythonnet/pythonnet/pull/1292/files
twitter:imagehttps://avatars.githubusercontent.com/u/239520?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/239520?s=400&v=4
og:image:altThis is a stage of removing the need to prepare a separate build of Python.Runtime for each Python version. What does this implement/fix? Explain your changes. This removes the need to pick TypeOff...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None2c16db4e575031f6e3be03e0437c1ab663e0b4643ba5cbbfba48c1e4fc056a11
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git
octolytics-dimension-user_id6050430
octolytics-dimension-user_loginpythonnet
octolytics-dimension-repository_id14748123
octolytics-dimension-repository_nwopythonnet/pythonnet
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id14748123
octolytics-dimension-repository_network_root_nwopythonnet/pythonnet
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
releasea12ab519e1537fa080535ea933f81d4fcef34da0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/pythonnet/pythonnet/pull/1292/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpythonnet%2Fpythonnet%2Fpull%2F1292%2Ffiles
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%2Fpythonnet%2Fpythonnet%2Fpull%2F1292%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=pythonnet%2Fpythonnet
Reloadhttps://github.com/pythonnet/pythonnet/pull/1292/files
Reloadhttps://github.com/pythonnet/pythonnet/pull/1292/files
Reloadhttps://github.com/pythonnet/pythonnet/pull/1292/files
pythonnet https://github.com/pythonnet
pythonnethttps://github.com/pythonnet/pythonnet
Notifications https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Fork 770 https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Star 5.4k https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Code https://github.com/pythonnet/pythonnet
Issues 155 https://github.com/pythonnet/pythonnet/issues
Pull requests 18 https://github.com/pythonnet/pythonnet/pulls
Discussions https://github.com/pythonnet/pythonnet/discussions
Actions https://github.com/pythonnet/pythonnet/actions
Projects 0 https://github.com/pythonnet/pythonnet/projects
Wiki https://github.com/pythonnet/pythonnet/wiki
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/pythonnet/pythonnet/security
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1292/files
Insights https://github.com/pythonnet/pythonnet/pulse
Code https://github.com/pythonnet/pythonnet
Issues https://github.com/pythonnet/pythonnet/issues
Pull requests https://github.com/pythonnet/pythonnet/pulls
Discussions https://github.com/pythonnet/pythonnet/discussions
Actions https://github.com/pythonnet/pythonnet/actions
Projects https://github.com/pythonnet/pythonnet/projects
Wiki https://github.com/pythonnet/pythonnet/wiki
Security https://github.com/pythonnet/pythonnet/security
Insights https://github.com/pythonnet/pythonnet/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpythonnet%2Fpythonnet%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpythonnet%2Fpythonnet%2Fissues%2Fnew%2Fchoose
lostmsuhttps://github.com/lostmsu
pythonnet:masterhttps://github.com/pythonnet/pythonnet/tree/master
losttech:features/VersionIndependenthttps://github.com/losttech/pythonnet/tree/features/VersionIndependent
Conversation 19 https://github.com/pythonnet/pythonnet/pull/1292
Commits 4 https://github.com/pythonnet/pythonnet/pull/1292/commits
Checks 0 https://github.com/pythonnet/pythonnet/pull/1292/checks
Files changed https://github.com/pythonnet/pythonnet/pull/1292/files
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1292/files
TypeOffset class no longer depends on target Python version https://github.com/pythonnet/pythonnet/pull/1292/files#top
Show all changes 4 commits https://github.com/pythonnet/pythonnet/pull/1292/files
bbc0dfb TypeOffset class no longer depends on target Python version lostmsu Nov 24, 2020 https://github.com/pythonnet/pythonnet/pull/1292/commits/bbc0dfbb9071dca92c491bfea679a096df269263
6dd92ad implemented NativeTypeOffset for installation with setup.py lostmsu Nov 24, 2020 https://github.com/pythonnet/pythonnet/pull/1292/commits/6dd92ad9fb3300042ca2551f312463346f1c3a96
e36a027 fixed missing ITypeOffset members np_inplace_* lostmsu Nov 25, 2020 https://github.com/pythonnet/pythonnet/pull/1292/commits/e36a027944ba632b8d70388555791e18f24f0538
f9a3a53 revert slot-related parts of 1b466df0 to avoid conditional compilation lostmsu Nov 30, 2020 https://github.com/pythonnet/pythonnet/pull/1292/commits/f9a3a53b4040646d29858e0fcc4defbfa4b20353
Clear filters https://github.com/pythonnet/pythonnet/pull/1292/files
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1292/files
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1292/files
.gitignore https://github.com/pythonnet/pythonnet/pull/1292/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
pythonnet.15.sln https://github.com/pythonnet/pythonnet/pull/1292/files#diff-626d62b51c38202e06e92828b34910532521867c7ea35fb606a7ebcb7ffcb3c8
Python.Runtime.csproj https://github.com/pythonnet/pythonnet/pull/1292/files#diff-ea0799bb2df39c199e3dfc666fddf421f382b9bde4c7c4d558f0e2700eb09bad
debughelper.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-864d42dc105d8a29db9605ee1ec02f9d8cf2055107b40e126d0266d539a2a6d3
interop.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-7eb886c1d364dfa7cc2cb64d82ab08f50a157e87c830cb375fd0214ef0ebe3e9
interop36.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-351903f18d9d08222e4c9227909c62776d44b2e41886b305c3bfd4fe66941d18
interop37.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-fd725bbe96e67369ba4876b6cae89da9e8cc713d010ce6bb2bb01fc8bf5f31e5
interop38.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-a4285d0e519ee810e924c04d850da849669fda04caf508df1fb70ff69414d813
interop39.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-0811f3b049a8785383a29670124f220e5d1ebf7f4ef21df211c9ea0a66817a45
ABI.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-d700cc75515df6b2917b1cf4e43069a0cbbdf5f2f47c08694e8a1b13840cff87
GeneratedTypeOffsets.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-5de5cce685604b3145b519dcfb52d568ec2edf318cbb067465f1a7cb5d7496d8
ITypeOffsets.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-e784c5bd629a9423a7afcd9b53b3ec070d44571fa9181ad9387b3bb13bf8ad80
TypeOffset.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-a72eafaf5fd99991613eafdf3b84604d14b3e88af4d8ab3b24b433677f8a8e8f
runtime.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-f1749bdd9f64fdac5c64d5cb0982ce1dac5e2d9a2cdd55b93d3f83b5047a855d
typemanager.cs https://github.com/pythonnet/pythonnet/pull/1292/files#diff-64b3221887c395ea436fe9433800e73c0854e42d78cd7108c320e5d41d20ab64
geninterop.py https://github.com/pythonnet/pythonnet/pull/1292/files#diff-36d2774f83b60b41cf237c2ccb1636db329aba22e8ff62f806e678b6adcac639
.gitignorehttps://github.com/pythonnet/pythonnet/pull/1292/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
View file https://github.com/losttech/pythonnet/blob/f9a3a53b4040646d29858e0fcc4defbfa4b20353/.gitignore
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1292/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
pythonnet.15.slnhttps://github.com/pythonnet/pythonnet/pull/1292/files#diff-626d62b51c38202e06e92828b34910532521867c7ea35fb606a7ebcb7ffcb3c8
View file https://github.com/losttech/pythonnet/blob/f9a3a53b4040646d29858e0fcc4defbfa4b20353/pythonnet.15.sln
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1292/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-626d62b51c38202e06e92828b34910532521867c7ea35fb606a7ebcb7ffcb3c8
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-626d62b51c38202e06e92828b34910532521867c7ea35fb606a7ebcb7ffcb3c8
src/runtime/Python.Runtime.csprojhttps://github.com/pythonnet/pythonnet/pull/1292/files#diff-ea0799bb2df39c199e3dfc666fddf421f382b9bde4c7c4d558f0e2700eb09bad
View file https://github.com/losttech/pythonnet/blob/f9a3a53b4040646d29858e0fcc4defbfa4b20353/src/runtime/Python.Runtime.csproj
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1292/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-ea0799bb2df39c199e3dfc666fddf421f382b9bde4c7c4d558f0e2700eb09bad
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-ea0799bb2df39c199e3dfc666fddf421f382b9bde4c7c4d558f0e2700eb09bad
src/runtime/debughelper.cshttps://github.com/pythonnet/pythonnet/pull/1292/files#diff-864d42dc105d8a29db9605ee1ec02f9d8cf2055107b40e126d0266d539a2a6d3
View file https://github.com/losttech/pythonnet/blob/f9a3a53b4040646d29858e0fcc4defbfa4b20353/src/runtime/debughelper.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1292/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-864d42dc105d8a29db9605ee1ec02f9d8cf2055107b40e126d0266d539a2a6d3
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-864d42dc105d8a29db9605ee1ec02f9d8cf2055107b40e126d0266d539a2a6d3
src/runtime/interop.cshttps://github.com/pythonnet/pythonnet/pull/1292/files#diff-7eb886c1d364dfa7cc2cb64d82ab08f50a157e87c830cb375fd0214ef0ebe3e9
View file https://github.com/losttech/pythonnet/blob/f9a3a53b4040646d29858e0fcc4defbfa4b20353/src/runtime/interop.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1292/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-7eb886c1d364dfa7cc2cb64d82ab08f50a157e87c830cb375fd0214ef0ebe3e9
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-7eb886c1d364dfa7cc2cb64d82ab08f50a157e87c830cb375fd0214ef0ebe3e9
https://github.com/pythonnet/pythonnet/pull/1292/files#diff-7eb886c1d364dfa7cc2cb64d82ab08f50a157e87c830cb375fd0214ef0ebe3e9
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1292/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.