-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-6: add -i/--issue
and -s/--section
flags to blurb add
#16
base: main
Are you sure you want to change the base?
Conversation
That could make things easier, but I've not used subcommands much in argparse, how are they? We'd need to make sure all the commands and options work in the same way, blurb is used in a few different bits of automation and we wouldn't want to break any of them. |
From my personal usage of subcommands, it works the same. Actually, a subcommand is just an action that invokes an ArgumentParser. However, it might indeed come with some corner cases which I would first extensively test. If you can tell me where it's being used in automaton parts, then I'd be glad to check if I can make the transition. |
Hmm, well at least here: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some initial comments. I'll confer further with Hugo.
Thank you Larry for your comments. I'll address them tomorrow (I don't have access to the project now) |
- remove section IDs matching - do not render the table in case of a multi-match - simplify `add` docstring construction - update tests - update README.md
Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Hugo van Kemenade <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Testing matching the sections, blurb add --section core
works, but not:
❯ blurb add --section built
Invalid section name: 'built'
Choose from the following table:
+-------------------+
| Security |
| Core and Builtins |
| Library |
| Documentation |
| Tests |
| Build |
| Windows |
| macOS |
| IDLE |
| Tools/Demos |
| C API |
+-------------------+
Or:
❯ blurb add --section api
Invalid section name: 'api'
Choose from the following table:
+-------------------+
| Security |
| Core and Builtins |
| Library |
| Documentation |
| Tests |
| Build |
| Windows |
| macOS |
| IDLE |
| Tools/Demos |
| C API |
+-------------------+
Should they?
Co-authored-by: Hugo van Kemenade <[email protected]>
Mmmh, I think I only matched from the beginning, not inside. Otherwise, you write 'l' and have a lot of matches (library, core and builtins, tools, etc). And I didn't want to special cases. But maybe we can use aliases? I don't remember now if 'capi' works (but maybe it should) |
Yeah, that's not so useful.
"capi" doesn't work: ❯ blurb add --section capi
Invalid section name: 'capi'
Choose from the following table:
+-------------------+
| Security |
| Core and Builtins |
| Library |
| Documentation |
| Tests |
| Build |
| Windows |
| macOS |
| IDLE |
| Tools/Demos |
| C API |
+-------------------+ I don't think we necessarily need to match "builtins" -> "Core and Builtins" or "demo" -> "Tools/Demos", but "capi" -> "C API" would help, and maybe also "api" -> "C API"? |
I ended up making them match like that (the tests should reflect what is now possible). I don't have a better way to cover the use cases so don't hesistate to tell me which cases should be checked. |
Would it be sufficient to create a "nickname map", like
|
Yes. But to construct additional patterns, I needed to use: _sanitized = re.sub(r'[ /]', ' ', _section)
_section_words = re.split(r'\s+', _sanitized)
_section_names_lower_nosep[_section] = ''.join(_section_words).lower() (Your suggestion is in my case implemented as |
Fixes #6. This is an alternative to #15.
@hugovk I've taken out your way of handling positional arguments (but would you consider a PR which refactors blurb in order to use
argparse
instead?). If you prefer--gh
, I can also rename the variable!