GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||
GeezerVison is showing github.com — gh-139946: distinguish stdout or stderr when colorizing output in argparse by frostming · Pull Request #140495 · python/cpython Conversation
savannahostrowski
requested changes
Uh oh!
There was an error while loading. Please reload this page.
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
|
There was an error while loading. Please reload this page.
|
Thanks for addressing the comments. After thinking about this more, I'm a bit concerned about API compatibility. Adding the formatter parameter to Also, we'll need to add some tests here, since this wasn't caught with our existing test suite. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
After originally adding colour to argparse (#132323), we did get reports (#133653) that subclassing TypeError: HelpFormatter.__init__() got an unexpected keyword argument 'prefix_chars' We initially considered this a docs issue, because We could again consider this a docs issue, but I think we need to be careful about backwards compatibility especially after 3.14.0. Could be worth checking things like tox, virtualenv and mypy that were affected last time. And if we choose not to backport, we can still use ❯ NO_COLOR=1 ./python.exe -m calendar 2020 01 01 2> err ❯ # or ❯ PYTHON_COLORS=0 ./python.exe -m calendar 2020 01 01 2> err ❯ # then ❯ cat err usage: python.exe -m calendar [-h] [-w WIDTH] [-l LINES] [-s SPACING] [-m MONTHS] [-c CSS] [-L LOCALE] [-e ENCODING] [-t {text,html}] [-f FIRST_WEEKDAY] [year] [month] python.exe -m calendar: error: unrecognized arguments: 01 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
@hugovk Oh thanks, I missed that thread...this is the kind of thing I was afraid of. I'm inclined to say 3.15 onward + a docs update to note this limitation/workaround in 3.14. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
fe5c9d7 to
82e00f0
Compare
|
Circling back on this (appreciate your patience @frostming!), based on this convo, I think we should just move forward with this for 3.15, no backport since this is an API change. For 3.14, we should open a separate PR for the documentation changes for the workaround. I'll leave this open for another couple days to see if anyone else wants to chime in. Otherwise, will merge 😄 ! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@frostming Mind resolving the merge conflicts and then I can get to merging this? 🙂 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Signed-off-by: Frost Ming <[email protected]>
…olor Signed-off-by: Frost Ming <[email protected]>
Signed-off-by: Frost Ming <[email protected]>
Signed-off-by: Frost Ming <[email protected]>
dc33ac5 to
8518870
Compare
It's done. Thank you very much. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Perhaps this is the best one can do with the current constraints and large usage of people using internal APIs.
There's just so much widespread use of internal APIs. The pattern is this: formatter = parser._get_formatter() # ... parser._print_message(formatter.format_help(), sys.stderr) General Search: https://github.com/search?q=language%3Apython+._get_formatter%28%29&type=code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Errors raised in argparse are colorized when redirecting stderr to a file
There was an error while loading. Please reload this page.