René's URL Explorer Experiment


Title: feat: Experimental annotated argparse by KelvinChung2000 · Pull Request #1666 · python-cmd2/cmd2 · GitHub

Open Graph Title: feat: Experimental annotated argparse by KelvinChung2000 · Pull Request #1666 · python-cmd2/cmd2

X Title: feat: Experimental annotated argparse by KelvinChung2000 · Pull Request #1666 · python-cmd2/cmd2

Description: Adds @with_annotated, a type-hint-driven alternative to @with_argparser that builds the parser automatically from a command's signature (positional/option inference, enum/literal/path/collection handling, subcommands, groups, mutex). Marked experimental. New module cmd2/annotated.py plus Argument / Option metadata classes exported from cmd2 Underscored param names auto-dasherize in generated flags (dry_run → --dry-run); opt out via Option("--my_flag") Dedicated docs page docs/features/annotated.md with an experimental admonition; argument_processing.md keeps a short pointer Example app examples/annotated_example.py and test suite in tests/test_annotated.py

Open Graph Description: Adds @with_annotated, a type-hint-driven alternative to @with_argparser that builds the parser automatically from a command's signature (positional/option inference, enum/literal/path/collectio...

X Description: Adds @with_annotated, a type-hint-driven alternative to @with_argparser that builds the parser automatically from a command's signature (positional/option inference, enum/literal/path/colle...

Opengraph URL: https://github.com/python-cmd2/cmd2/pull/1666

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:7b4b671a-7cec-24c9-d4d0-9fc721cd3f12
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idE61E:DAE6B:35795C4:46F4006:6A65557D
html-safe-nonceca2d252691e81f6f7b5fca4433e938d63d07419cb9b51b2e25e41020cc0cab50
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNjFFOkRBRTZCOjM1Nzk1QzQ6NDZGNDAwNjo2QTY1NTU3RCIsInZpc2l0b3JfaWQiOiI0NzEzMjQzODU0ODIwOTU1NTE3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac2248425a69903dba3e0917e5cb66ff404a2c5d29f5f208121037226bd8a1c357
hovercard-subject-tagpull_request:3691117798
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-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
twitter:imagehttps://avatars.githubusercontent.com/u/67872121?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/67872121?s=400&v=4
og:image:altAdds @with_annotated, a type-hint-driven alternative to @with_argparser that builds the parser automatically from a command's signature (positional/option inference, enum/literal/path/collectio...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python-cmd2/cmd2 git https://github.com/python-cmd2/cmd2.git
octolytics-dimension-user_id17161025
octolytics-dimension-user_loginpython-cmd2
octolytics-dimension-repository_id51442999
octolytics-dimension-repository_nwopython-cmd2/cmd2
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id51442999
octolytics-dimension-repository_network_root_nwopython-cmd2/cmd2
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
release309153364422b3c499922d1a2a6404910a58ed8e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-cmd2%2Fcmd2%2Fpull%2F1666%2Fcommits%2Ff0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
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
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
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%2Fpython-cmd2%2Fcmd2%2Fpull%2F1666%2Fcommits%2Ff0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
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-cmd2%2Fcmd2
Reloadhttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
Reloadhttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
Reloadhttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
Please reload this pagehttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
python-cmd2 https://github.com/python-cmd2
cmd2https://github.com/python-cmd2/cmd2
Notifications https://github.com/login?return_to=%2Fpython-cmd2%2Fcmd2
Fork 132 https://github.com/login?return_to=%2Fpython-cmd2%2Fcmd2
Star 688 https://github.com/login?return_to=%2Fpython-cmd2%2Fcmd2
Code https://github.com/python-cmd2/cmd2
Issues 2 https://github.com/python-cmd2/cmd2/issues
Pull requests 1 https://github.com/python-cmd2/cmd2/pulls
Discussions https://github.com/python-cmd2/cmd2/discussions
Actions https://github.com/python-cmd2/cmd2/actions
Projects https://github.com/python-cmd2/cmd2/projects
Security and quality 0 https://github.com/python-cmd2/cmd2/security
Insights https://github.com/python-cmd2/cmd2/pulse
Code https://github.com/python-cmd2/cmd2
Issues https://github.com/python-cmd2/cmd2/issues
Pull requests https://github.com/python-cmd2/cmd2/pulls
Discussions https://github.com/python-cmd2/cmd2/discussions
Actions https://github.com/python-cmd2/cmd2/actions
Projects https://github.com/python-cmd2/cmd2/projects
Security and quality https://github.com/python-cmd2/cmd2/security
Insights https://github.com/python-cmd2/cmd2/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython-cmd2%2Fcmd2%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython-cmd2%2Fcmd2%2Fissues%2Fnew%2Fchoose
tleonhardthttps://github.com/tleonhardt
mainhttps://github.com/python-cmd2/cmd2/tree/main
feat/annotated-argparsehttps://github.com/python-cmd2/cmd2/tree/feat/annotated-argparse
Conversation 31 https://github.com/python-cmd2/cmd2/pull/1666
Commits 29 https://github.com/python-cmd2/cmd2/pull/1666/commits
Checks 28 https://github.com/python-cmd2/cmd2/pull/1666/checks
Files changed https://github.com/python-cmd2/cmd2/pull/1666/files
Please reload this pagehttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
feat: Experimental annotated argparse https://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4#top
Show all changes 29 commits https://github.com/python-cmd2/cmd2/pull/1666/files
7e41c10 feat: add annotated argparse building KelvinChung2000 May 6, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/7e41c10f179e1419df3c0a5972d33784a2c997bc
f140150 chore: fix rebase KelvinChung2000 May 15, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/f140150b151d5d3a18887d0d8a8410c9675b971c
076defc chore: clean up test KelvinChung2000 May 15, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/076defcdd81efb8f75aef3ea4e1c2a6cb3be7ea5
d4756eb chore: more clean up KelvinChung2000 May 15, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/d4756eb26b2f1bd964f79647e57a7f2c8d20c95b
bacaab3 chore: move documentation KelvinChung2000 May 15, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/bacaab3156ea50031f163964ed11b00154720b53
70dfcf1 fix: address PR review comments on annotated argparse KelvinChung2000 May 19, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/70dfcf17b3e8bcb768e2384cf2311ce13637952c
98f33ce feat: add parser customization to annotated argparse KelvinChung2000 May 19, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/98f33ceb74c6f14dda35e02768e48c3dbce3db7b
c129613 docs: demonstrate formatter_class and parser_class in example KelvinChung2000 May 19, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/c1296131fef3cbf6df23de95cc6901c3595c988a
e30763e refactor: require Group for groups/mutually_exclusive_groups KelvinChung2000 May 19, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/e30763e3baa7b48e3305653ae1c07b9929033687
d913f06 docs: demonstrate mutually_exclusive_groups in example KelvinChung2000 May 19, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/d913f06ee367ddce987e389f4265a26951cade4f
b6a9832 chore: format KelvinChung2000 May 19, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/b6a983284e4ff192ce09f78027144094f444fab9
bc1157d Merge branch 'main' into feat/annotated-argparse tleonhardt May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/bc1157d2a6ccfa6f7025506d70986d41594ffd3c
f05bc31 Adding another argument to an example method to help demonstrate a re… tleonhardt May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/f05bc31a2184bffa7106c99b508469b10e21cdd7
3232e13 Fix subtle edge case bug where booleans were accepted as integer lite… tleonhardt May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/3232e13557d948aa46d0ca0f181efe997c4aa155
da26c3a feat: cover 0-or-1 case KelvinChung2000 May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/da26c3ad7f2e466d5e99a1c17f11d966524ad6a2
5727076 chore: extend verification KelvinChung2000 May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/572707621d61f45c5993f4e923e77728b4906f43
e6790c3 chore: minor clean up KelvinChung2000 May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/e6790c3c83d27bbee369b531df445dbec5ddc6a2
4fc726c chore: a few extra test KelvinChung2000 May 20, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/4fc726c4a5e39403cef97504c454ee8772dc7bab
c0bb4bb chore: remove collection type doc and sort KelvinChung2000 May 21, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/c0bb4bbd1b0be3c5c1db172f599b2281b9d54637
3746e62 chore: address comment and update test KelvinChung2000 May 21, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/3746e62923201882cdc15f925006d01c0ff25969
f0ad6d7 chore: update doc KelvinChung2000 May 22, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
faa2420 feat: better *args and **kwargs handling, with extend test KelvinChung2000 May 22, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/faa242087e9e58d31a681100ffa47def3bc18f1d
c087b8b chore: more *args edge case handling KelvinChung2000 May 22, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/c087b8b8357d378aefd69bc318ade21df3007c7a
06cc398 Merge branch 'main' into feat/annotated-argparse tleonhardt May 25, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/06cc398880646db3c82477ef66a0d51bb66523ba
5ffbdac chore: large scale refactor KelvinChung2000 May 29, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/5ffbdac6e6eda44d929a9e8711a86b4d4f256998
a4db7ce Add with_annotated to top-level cmd2 namespace tleonhardt May 30, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/a4db7cee01b37583104431ec064f572ed8b27dde
a6de465 chore: doc clean up and some more edge cases KelvinChung2000 May 30, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/a6de465db38d53f8015228db40ce87a2b558885b
b0abc4b Fix potential infinite recursion when a nested base command is execut… tleonhardt Jun 1, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/b0abc4b79b2b7d3265150d8c88bce6d3431d3c00
08f027e Update details on experimental type annotation feature in CHANGELOG tleonhardt Jun 2, 2026 https://github.com/python-cmd2/cmd2/pull/1666/commits/08f027e7cea83fd7baedba7ca9f5b696b9ca61fe
Clear filters https://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
Please reload this pagehttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
Please reload this pagehttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
Prev https://github.com/python-cmd2/cmd2/pull/1666/commits/3746e62923201882cdc15f925006d01c0ff25969
Next https://github.com/python-cmd2/cmd2/pull/1666/commits/faa242087e9e58d31a681100ffa47def3bc18f1d
Please reload this pagehttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
https://github.com/KelvinChung2000
KelvinChung2000https://github.com/python-cmd2/cmd2/commits?author=KelvinChung2000
https://github.com/python-cmd2/cmd2/blob/main/.github/CODEOWNERS#L15
cmd2/annotated.pyhttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4#diff-f9c35cbe40a857c13945f016a8c6d8390cf3d5dd0cde3ac07a8d7c34b40e2085
View file https://github.com/python-cmd2/cmd2/blob/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4/cmd2/annotated.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-cmd2/cmd2/pull/1666/commits/{{ revealButtonHref }}
https://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4#diff-f9c35cbe40a857c13945f016a8c6d8390cf3d5dd0cde3ac07a8d7c34b40e2085
https://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4#diff-f9c35cbe40a857c13945f016a8c6d8390cf3d5dd0cde3ac07a8d7c34b40e2085
Please reload this pagehttps://github.com/python-cmd2/cmd2/pull/1666/commits/f0ad6d7b4ddc97d39e6138033bb45bde4dd688c4
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.