File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change 2828_INI_PARSER_CALLABLE : _TypeAlias = Callable [[Any ], _CONFIG_VALUE_TYPES ]
2929
3030
31+ class VersionTypeError (argparse .ArgumentTypeError ):
32+ """Provide a fallback value if the Python version is unsupported."""
33+
34+ def __init__ (self , * args : Any , fallback : tuple [int , int ]) -> None :
35+ self .fallback = fallback
36+ super ().__init__ (* args )
37+
38+
3139def parse_version (v : str | float ) -> tuple [int , int ]:
3240 m = re .match (r"\A(\d)\.(\d+)\Z" , str (v ))
3341 if not m :
@@ -44,7 +52,7 @@ def parse_version(v: str | float) -> tuple[int, int]:
4452 if isinstance (v , float ):
4553 msg += ". You may need to put quotes around your Python version"
4654
47- raise argparse . ArgumentTypeError (msg )
55+ raise VersionTypeError (msg , fallback = defaults . PYTHON3_VERSION_MIN )
4856 else :
4957 raise argparse .ArgumentTypeError (
5058 f"Python major version '{ major } ' out of range (must be 3)"
@@ -548,6 +556,9 @@ def parse_section(
548556 continue
549557 try :
550558 v = ct (section .get (key ))
559+ except VersionTypeError as err :
560+ print (f"{ prefix } { key } : { err } " , file = stderr )
561+ v = err .fallback
551562 except argparse .ArgumentTypeError as err :
552563 print (f"{ prefix } { key } : { err } " , file = stderr )
553564 continue
You can’t perform that action at this time.
0 commit comments