Skip to content

mypy crashes with python 3.14 within argparse#19150

@kasium

Description

@kasium

Crash Report

When using python 3.14, mypy crashes right away. This is due the AugmentedHelpFormatter class in mypy which does not accept all arguments of argparse.HelpFormatter. In python 3.14,_get_formatter of argparse will pass prefix_chars which is not supported by AugmentedHelpFormatter.

Proposal: change the constructor of AugmentedHelpFormatter like

class AugmentedHelpFormatter(argparse.RawDescriptionHelpFormatter): def __init__(self, prog: str, **kwargs: Any) -> None: super().__init__(prog=prog, max_help_position=28, **kwargs) 

By the way, the same applies to the color keyword, which is passed as well

Traceback

 File "venv314/lib/python3.14/site-packages/mypy/__main__.py", line 15, in console_entry main() ~~~~^^ File "venv314/lib/python3.14/site-packages/mypy/main.py", line 88, in main sources, options = process_options(args, stdout=stdout, stderr=stderr, fscache=fscache) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "venv314/lib/python3.14/site-packages/mypy/main.py", line 1055, in process_options parser.add_argument( ~~~~~~~~~~~~~~~~~~~^ "--enable-incomplete-feature", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... help="Enable support of incomplete/experimental features for early preview", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/data/.pyenv/versions/3.14.0b1/lib/python3.14/argparse.py", line 1562, in add_argument formatter = self._get_formatter() File "/data/.pyenv/versions/3.14.0b1/lib/python3.14/argparse.py", line 2729, in _get_formatter return self.formatter_class( ~~~~~~~~~~~~~~~~~~~~^ prog=self.prog, ^^^^^^^^^^^^^^^ prefix_chars=self.prefix_chars, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ color=self.color, ^^^^^^^^^^^^^^^^^ ) ^ TypeError: AugmentedHelpFormatter.__init__() got an unexpected keyword argument 'prefix_chars'.) 

To Reproduce

  1. setup a python 3.14 environment
  2. run mypy --version

Your Environment

  • Mypy version used: 1.15.0
  • Mypy command-line flags: --version
  • Mypy configuration options from mypy.ini (and other config files): n/a
  • Python version used: 3.1.4.0b1
  • Operating system and version: Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions