| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
(Updated from main to fix the Android failure: #142289) |
Sorry, something went wrong.
…BfsD4.rst Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
|
This PR broke instantiating the formatter outside the parser because _theme is no longer set in __init__ as _set_color is no longer called. import argparse
formatter = argparse.HelpFormatter(prog="program")
formatter.add_usage(usage=None, actions=[], groups=[])
print(formatter.format_help())This now raises an AttributeError: Traceback (most recent call last):
File "/tmp/t.py", line 5, in <module>
print(formatter.format_help())
~~~~~~~~~~~~~~~~~~~~~^^
File "/tmp/argparse.py", line 303, in format_help
help = self._root_section.format_help()
File "/tmp/argparse.py", line 228, in format_help
item_help = join([func(*args) for func, args in self.items])
~~~~^^^^^^^
File "/tmp/argparse.py", line 315, in _format_usage
t = self._theme
^^^^^^^^^^^
AttributeError: 'HelpFormatter' object has no attribute '_theme'This only broke a test over at https://github.com/hamdanal/rich-argparse and I am not sure if it a supported usage of the formatter. Let me know if I need to create an issue/PR. |
Sorry, something went wrong.
|
Hey @hamdanal, thanks for raising this! Direct instantiation of HelpFormatter should continue to work. I think the fix is to call self._set_color(False) at the end of __init__ to initialize _theme with a no-color default. The parser can still override it afterward. I've put up #142384 to address this. |
Sorry, something went wrong.
|
@hamdanal And thank you for testing the nightly and reporting so quickly :) |
Sorry, something went wrong.
This is broken with cpython main which removed the color keyword argument to HelperFormatter in python/cpython#142274
This is broken with cpython main which removed the color keyword argument to HelperFormatter in python/cpython#142274
This is broken with cpython main which removed the color keyword argument to HelperFormatter in python/cpython#142274
|
Beware, this also breaks existing code that sets the color this way. This was possible in 3.14 and now it explodes: Python 3.14.2 (main, Dec 5 2025, 00:00:00) [GCC 15.2.1 20251111 (Red Hat 15.2.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import argparse
>>> argparse.HelpFormatter(prog='', color=True)
<argparse.HelpFormatter object at 0x7fd998cd1400>Python 3.15.0a3 (main, Dec 16 2025, 00:00:00) [GCC 15.2.1 20251211 (Red Hat 15.2.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import argparse
>>> argparse.HelpFormatter(prog='', color=True)
Traceback (most recent call last):
File "<python-input-1>", line 1, in <module>
argparse.HelpFormatter(prog='', color=True)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
TypeError: HelpFormatter.__init__() got an unexpected keyword argument 'color'In particular, this breaks pypa/build before pypa/build#962 |
Sorry, something went wrong.
|
Reported as #142928, so it is trackable. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
After digging into this, I think that we should just remove color from being passed into HelpFormatter, since this never worked and was never documented. IMO, this should be controlled by the parser anyway.