René's URL Explorer Experiment


Title: feat: add scyjava-stubgen cli command, and `scyjava.types` namespace, which provide type-safe imports with lazy init by tlambert03 · Pull Request #82 · scijava/scyjava · GitHub

Open Graph Title: feat: add scyjava-stubgen cli command, and `scyjava.types` namespace, which provide type-safe imports with lazy init by tlambert03 · Pull Request #82 · scijava/scyjava

X Title: feat: add scyjava-stubgen cli command, and `scyjava.types` namespace, which provide type-safe imports with lazy init by tlambert03 · Pull Request #82 · scijava/scyjava

Description: many more details and tests to follow... but just wanted to open this as a WIP. edit: see #82 (comment) for details Basic idea, after checking out this branch and running pip install -e . again: create stubs with a cli commend, e.g. scyjava-stubgen org.scijava:parsington:3.1.0 Import names provided by that endpoint: python -c "from scyjava.types.org.scijava.parsington import Function; print(Function(1))". Only at the moment of class instantiation will the jvm be started.

Open Graph Description: many more details and tests to follow... but just wanted to open this as a WIP. edit: see #82 (comment) for details Basic idea, after checking out this branch and running pip install -e . again: c...

X Description: many more details and tests to follow... but just wanted to open this as a WIP. edit: see #82 (comment) for details Basic idea, after checking out this branch and running pip install -e . again: c...

Opengraph URL: https://github.com/scijava/scyjava/pull/82

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:54de8114-8660-a2a6-b7e8-49bbe4116fb7
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9E36:E8423:209B9DE:2B278DD:696B07F5
html-safe-nonceade88f9c6833f3b4dc7631e4c9ac7d5d3c7c85a896af2098747b43bee6ebc869
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RTM2OkU4NDIzOjIwOUI5REU6MkIyNzhERDo2OTZCMDdGNSIsInZpc2l0b3JfaWQiOiI1MDY0NDg3ODg2NTg5MjAwMzczIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac03d9ce79970514062262fe374dd8fe697ee9f4513a8e63a3f15d9f6bf83e6a16
hovercard-subject-tagpull_request:2474937067
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/scijava/scyjava/pull/82/files
twitter:imagehttps://avatars.githubusercontent.com/u/1609449?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1609449?s=400&v=4
og:image:altmany more details and tests to follow... but just wanted to open this as a WIP. edit: see #82 (comment) for details Basic idea, after checking out this branch and running pip install -e . again: c...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/scijava/scyjava git https://github.com/scijava/scyjava.git
octolytics-dimension-user_id1262770
octolytics-dimension-user_loginscijava
octolytics-dimension-repository_id113442144
octolytics-dimension-repository_nwoscijava/scyjava
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id113442144
octolytics-dimension-repository_network_root_nwoscijava/scyjava
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
release82560a55c6b2054555076f46e683151ee28a19bc
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/scijava/scyjava/pull/82/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fscijava%2Fscyjava%2Fpull%2F82%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%2Fscijava%2Fscyjava%2Fpull%2F82%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=scijava%2Fscyjava
Reloadhttps://github.com/scijava/scyjava/pull/82/files
Reloadhttps://github.com/scijava/scyjava/pull/82/files
Reloadhttps://github.com/scijava/scyjava/pull/82/files
scijava https://github.com/scijava
scyjavahttps://github.com/scijava/scyjava
Notifications https://github.com/login?return_to=%2Fscijava%2Fscyjava
Fork 15 https://github.com/login?return_to=%2Fscijava%2Fscyjava
Star 54 https://github.com/login?return_to=%2Fscijava%2Fscyjava
Code https://github.com/scijava/scyjava
Issues 16 https://github.com/scijava/scyjava/issues
Pull requests 2 https://github.com/scijava/scyjava/pulls
Actions https://github.com/scijava/scyjava/actions
Projects 0 https://github.com/scijava/scyjava/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/scijava/scyjava/security
Please reload this pagehttps://github.com/scijava/scyjava/pull/82/files
Insights https://github.com/scijava/scyjava/pulse
Code https://github.com/scijava/scyjava
Issues https://github.com/scijava/scyjava/issues
Pull requests https://github.com/scijava/scyjava/pulls
Actions https://github.com/scijava/scyjava/actions
Projects https://github.com/scijava/scyjava/projects
Security https://github.com/scijava/scyjava/security
Insights https://github.com/scijava/scyjava/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fscijava%2Fscyjava%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fscijava%2Fscyjava%2Fissues%2Fnew%2Fchoose
tlambert03https://github.com/tlambert03
scijava:mainhttps://github.com/scijava/scyjava/tree/main
tlambert03:stubshttps://github.com/tlambert03/scyjava/tree/stubs
Conversation 19 https://github.com/scijava/scyjava/pull/82
Commits 27 https://github.com/scijava/scyjava/pull/82/commits
Checks 7 https://github.com/scijava/scyjava/pull/82/checks
Files changed https://github.com/scijava/scyjava/pull/82/files
Please reload this pagehttps://github.com/scijava/scyjava/pull/82/files
feat: add scyjava-stubgen cli command, and scyjava.types namespace, which provide type-safe imports with lazy init https://github.com/scijava/scyjava/pull/82/files#top
Show all changes 27 commits https://github.com/scijava/scyjava/pull/82/files
0f70b03 ignore types folder tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/0f70b037aff5284b15601d5683b861a0df7496d1
459a999 Add scyjava-stubs CLI and dynamic import functionality tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/459a9992539a193b11ceccb625e938218a26b7eb
a8b2da7 remove import tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/a8b2da72273ddeffde466107ea8ba8daeba259ab
686739b add test tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/686739b56c0645e1dc57f129169098a283f63e58
7fe31af add comment to clarify stubgen command execution in test tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/7fe31af6f6d0c72bd9ae1bfb8a77ee44a85033a8
afcc7a7 refactor: clean up jpype imports in stubgen test and main module tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/afcc7a7bb30da19cc965e3079f4a32be517471df
a5cacc8 remove unused jpype import from _genstubs.py tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/a5cacc809e0db42f31f44646d4646f176894fe79
ab1bc2d fix: add future annotations import to _cli.py tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/ab1bc2d6579999deb572ee13288d86a3e24321af
11649fa refactor: enhance dynamic_import function to accept base_prefix and i… tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/11649faea090a8a65dc92f2eaa853e3c5f6249b7
2cb4836 refactor: rename dynamic_import to setup_java_imports and update usag… tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/2cb4836c370a678b307849891300d28a9777b6e1
71f761e reword tlambert03 Apr 23, 2025 https://github.com/scijava/scyjava/pull/82/commits/71f761ed3972b484ae064e73354336696412b101
65cc471 feat: add Hatchling build hook for generating Java stubs tlambert03 Apr 25, 2025 https://github.com/scijava/scyjava/pull/82/commits/65cc471a5df976c61f275a5bf42a7abd066b168b
6e4181e wip tlambert03 Apr 25, 2025 https://github.com/scijava/scyjava/pull/82/commits/6e4181e77c360920545651ebb1b2b652cc02db52
6e92b13 fix inclusion tlambert03 Apr 25, 2025 https://github.com/scijava/scyjava/pull/82/commits/6e92b13720484ee55f33b92c8c9929ff5c52dbef
0d231cc add docs tlambert03 Apr 25, 2025 https://github.com/scijava/scyjava/pull/82/commits/0d231cccf93dc634bda853647252040063f66cdd
79524b0 setuptools plugin stub tlambert03 Apr 25, 2025 https://github.com/scijava/scyjava/pull/82/commits/79524b0065c0e6bdbb57c63d9d2cbe9bc8cc6c8b
9bdba53 Merge branch 'main' into stubs tlambert03 Apr 30, 2025 https://github.com/scijava/scyjava/pull/82/commits/9bdba536e3093df14843dab1a1a2a6eb4ee0678d
51937b5 remove repr test tlambert03 May 1, 2025 https://github.com/scijava/scyjava/pull/82/commits/51937b587562d13922b4dfd944fd142c5c5fee6a
192be35 skip in jep tlambert03 May 1, 2025 https://github.com/scijava/scyjava/pull/82/commits/192be35b1c7ad073064589a348af4be96b65723e
e714abb remove setuptools plugin tlambert03 May 1, 2025 https://github.com/scijava/scyjava/pull/82/commits/e714abb7a00df87550fd3fee13faaeb55593ce64
e7bc894 Merge branch 'main' into stubs tlambert03 Aug 20, 2025 https://github.com/scijava/scyjava/pull/82/commits/e7bc894ed4e8f4e9bcbc66dd9e65d2305bb0a6dc
a18d9d9 remove hatch plugin tlambert03 Aug 22, 2025 https://github.com/scijava/scyjava/pull/82/commits/a18d9d908e2e11263679eb09ae3b3b14d17553ce
b53e795 newlines tlambert03 Aug 22, 2025 https://github.com/scijava/scyjava/pull/82/commits/b53e795b5e1dac8e3c2037ce91d41e06c59e3233
ed0add6 update docs tlambert03 Aug 22, 2025 https://github.com/scijava/scyjava/pull/82/commits/ed0add6b06a71dd729fe502c6c8ec16588e9e5e1
4f54611 Rewrite type references in stubs to include prefix ctrueden Dec 10, 2025 https://github.com/scijava/scyjava/pull/82/commits/4f546117c409456eff221ead4188b606a07c14ad
6783f57 Fix typo: _get_ouput_dir -> _get_output_dir ctrueden Dec 10, 2025 https://github.com/scijava/scyjava/pull/82/commits/6783f57e364da33f2cfae46627e1de07a73c2ecc
fb8c3ef Fix printf-style string syntax typo ctrueden Dec 10, 2025 https://github.com/scijava/scyjava/pull/82/commits/fb8c3ef9a29bbf87fe6116bc420a1e912efc2e21
Clear filters https://github.com/scijava/scyjava/pull/82/files
Please reload this pagehttps://github.com/scijava/scyjava/pull/82/files
Please reload this pagehttps://github.com/scijava/scyjava/pull/82/files
pyproject.toml https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
_jvm.py https://github.com/scijava/scyjava/pull/82/files#diff-128a39e4a9336b6c45da870a8c4d9b32313177867ca04a5cca3c7c88f9fd3b8e
__init__.py https://github.com/scijava/scyjava/pull/82/files#diff-6e08dbcb727bde8f24a77206533f088919c07b14139c478cfd088eca6fb24cab
_cli.py https://github.com/scijava/scyjava/pull/82/files#diff-3813aa806c039f2b01d2ce3ebc80530b7c3adbe734f247af1df4ccd75f56cbff
_dynamic_import.py https://github.com/scijava/scyjava/pull/82/files#diff-063f42155d8b8e3b07d6eabe0e74a546e60a4f1204c085bcd5a40fb8a548b10d
_genstubs.py https://github.com/scijava/scyjava/pull/82/files#diff-d30540227f64ed9af856e14cd1058af21c4ffe5e56ea5cf82fd88c1beb70f677
.gitignore https://github.com/scijava/scyjava/pull/82/files#diff-c3c1c98279b428a8eaf097b99db1538415dc263b7e85d67f263c0b3510d52cb7
test_stubgen.py https://github.com/scijava/scyjava/pull/82/files#diff-4140c7f803b7e6e9d2c6e6f61b58be114828407db92c18752bf4c392521e2f66
pyproject.tomlhttps://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
View file https://github.com/scijava/scyjava/blob/fb8c3ef9a29bbf87fe6116bc420a1e912efc2e21/pyproject.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/scijava/scyjava/pull/82/{{ revealButtonHref }}
https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/scijava/scyjava/pull/82/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
src/scyjava/_jvm.pyhttps://github.com/scijava/scyjava/pull/82/files#diff-128a39e4a9336b6c45da870a8c4d9b32313177867ca04a5cca3c7c88f9fd3b8e
View file https://github.com/scijava/scyjava/blob/fb8c3ef9a29bbf87fe6116bc420a1e912efc2e21/src/scyjava/_jvm.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/scijava/scyjava/pull/82/{{ revealButtonHref }}
https://github.com/scijava/scyjava/pull/82/files#diff-128a39e4a9336b6c45da870a8c4d9b32313177867ca04a5cca3c7c88f9fd3b8e
https://github.com/scijava/scyjava/pull/82/files#diff-128a39e4a9336b6c45da870a8c4d9b32313177867ca04a5cca3c7c88f9fd3b8e
src/scyjava/_stubs/__init__.pyhttps://github.com/scijava/scyjava/pull/82/files#diff-6e08dbcb727bde8f24a77206533f088919c07b14139c478cfd088eca6fb24cab
View file https://github.com/scijava/scyjava/blob/fb8c3ef9a29bbf87fe6116bc420a1e912efc2e21/src/scyjava/_stubs/__init__.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/scijava/scyjava/pull/82/{{ revealButtonHref }}
src/scyjava/_stubs/_cli.pyhttps://github.com/scijava/scyjava/pull/82/files#diff-3813aa806c039f2b01d2ce3ebc80530b7c3adbe734f247af1df4ccd75f56cbff
View file https://github.com/scijava/scyjava/blob/fb8c3ef9a29bbf87fe6116bc420a1e912efc2e21/src/scyjava/_stubs/_cli.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/scijava/scyjava/pull/82/{{ revealButtonHref }}
src/scyjava/_stubs/_dynamic_import.pyhttps://github.com/scijava/scyjava/pull/82/files#diff-063f42155d8b8e3b07d6eabe0e74a546e60a4f1204c085bcd5a40fb8a548b10d
View file https://github.com/scijava/scyjava/blob/fb8c3ef9a29bbf87fe6116bc420a1e912efc2e21/src/scyjava/_stubs/_dynamic_import.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/scijava/scyjava/pull/82/{{ revealButtonHref }}
Please reload this pagehttps://github.com/scijava/scyjava/pull/82/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.