Skip to content

Commit 99ef057

Browse files
authored
Use python-typing-update on pylint/config directory (#6307)
1 parent 4f7f191 commit 99ef057

12 files changed

+188
-180
lines changed

pylint/config/argument.py

Lines changed: 35 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,13 @@
77
An Argument instance represents a pylint option to be handled by an argparse.ArgumentParser
88
"""
99

10+
from __future__ import annotations
1011

1112
import argparse
1213
import pathlib
1314
import re
1415
import sys
15-
from typing import (
16-
Any,
17-
Callable,
18-
Dict,
19-
List,
20-
Optional,
21-
Pattern,
22-
Sequence,
23-
Tuple,
24-
Type,
25-
Union,
26-
)
16+
from typing import Any, Callable, Pattern, Sequence, Tuple, Union
2717

2818
from pylint import interfaces
2919
from pylint import utils as pylint_utils
@@ -89,7 +79,7 @@ def _non_empty_string_transformer(value: str) -> str:
8979
return pylint_utils._unquote(value)
9080

9181

92-
def _py_version_transformer(value: str) -> Tuple[int, ...]:
82+
def _py_version_transformer(value: str) -> tuple[int, ...]:
9383
"""Transforms a version string into a version tuple."""
9484
try:
9585
version = tuple(int(val) for val in value.replace(",", ".").split("."))
@@ -102,15 +92,15 @@ def _py_version_transformer(value: str) -> Tuple[int, ...]:
10292

10393
def _regexp_csv_transfomer(value: str) -> Sequence[Pattern[str]]:
10494
"""Transforms a comma separated list of regular expressions."""
105-
patterns: List[Pattern[str]] = []
95+
patterns: list[Pattern[str]] = []
10696
for pattern in _csv_transformer(value):
10797
patterns.append(re.compile(pattern))
10898
return patterns
10999

110100

111101
def _regexp_paths_csv_transfomer(value: str) -> Sequence[Pattern[str]]:
112102
"""Transforms a comma separated list of regular expressions paths."""
113-
patterns: List[Pattern[str]] = []
103+
patterns: list[Pattern[str]] = []
114104
for pattern in _csv_transformer(value):
115105
patterns.append(
116106
re.compile(
@@ -122,7 +112,7 @@ def _regexp_paths_csv_transfomer(value: str) -> Sequence[Pattern[str]]:
122112
return patterns
123113

124114

125-
_TYPE_TRANSFORMERS: Dict[str, Callable[[str], _ArgumentTypes]] = {
115+
_TYPE_TRANSFORMERS: dict[str, Callable[[str], _ArgumentTypes]] = {
126116
"choice": str,
127117
"csv": _csv_transformer,
128118
"float": float,
@@ -156,10 +146,10 @@ class _Argument:
156146
def __init__(
157147
self,
158148
*,
159-
flags: List[str],
149+
flags: list[str],
160150
arg_help: str,
161151
hide_help: bool,
162-
section: Optional[str],
152+
section: str | None,
163153
) -> None:
164154
self.flags = flags
165155
"""The name of the argument."""
@@ -189,12 +179,12 @@ class _BaseStoreArgument(_Argument):
189179
def __init__(
190180
self,
191181
*,
192-
flags: List[str],
182+
flags: list[str],
193183
action: str,
194184
default: _ArgumentTypes,
195185
arg_help: str,
196186
hide_help: bool,
197-
section: Optional[str],
187+
section: str | None,
198188
) -> None:
199189
super().__init__(
200190
flags=flags, arg_help=arg_help, hide_help=hide_help, section=section
@@ -218,15 +208,15 @@ class _StoreArgument(_BaseStoreArgument):
218208
def __init__(
219209
self,
220210
*,
221-
flags: List[str],
211+
flags: list[str],
222212
action: str,
223213
default: _ArgumentTypes,
224214
arg_type: str,
225-
choices: Optional[List[str]],
215+
choices: list[str] | None,
226216
arg_help: str,
227217
metavar: str,
228218
hide_help: bool,
229-
section: Optional[str],
219+
section: str | None,
230220
) -> None:
231221
super().__init__(
232222
flags=flags,
@@ -266,12 +256,12 @@ class _StoreTrueArgument(_BaseStoreArgument):
266256
def __init__(
267257
self,
268258
*,
269-
flags: List[str],
259+
flags: list[str],
270260
action: Literal["store_true"],
271261
default: _ArgumentTypes,
272262
arg_help: str,
273263
hide_help: bool,
274-
section: Optional[str],
264+
section: str | None,
275265
) -> None:
276266
super().__init__(
277267
flags=flags,
@@ -294,15 +284,15 @@ class _DeprecationArgument(_Argument):
294284
def __init__(
295285
self,
296286
*,
297-
flags: List[str],
298-
action: Type[argparse.Action],
287+
flags: list[str],
288+
action: type[argparse.Action],
299289
default: _ArgumentTypes,
300290
arg_type: str,
301-
choices: Optional[List[str]],
291+
choices: list[str] | None,
302292
arg_help: str,
303293
metavar: str,
304294
hide_help: bool,
305-
section: Optional[str],
295+
section: str | None,
306296
) -> None:
307297
super().__init__(
308298
flags=flags, arg_help=arg_help, hide_help=hide_help, section=section
@@ -342,16 +332,16 @@ class _ExtendArgument(_DeprecationArgument):
342332
def __init__(
343333
self,
344334
*,
345-
flags: List[str],
335+
flags: list[str],
346336
action: Literal["extend"],
347337
default: _ArgumentTypes,
348338
arg_type: str,
349339
metavar: str,
350340
arg_help: str,
351341
hide_help: bool,
352-
section: Optional[str],
353-
choices: Optional[List[str]],
354-
dest: Optional[str],
342+
section: str | None,
343+
choices: list[str] | None,
344+
dest: str | None,
355345
) -> None:
356346
# The extend action is included in the stdlib from 3.8+
357347
if PY38_PLUS:
@@ -386,15 +376,15 @@ class _StoreOldNamesArgument(_DeprecationArgument):
386376
def __init__(
387377
self,
388378
*,
389-
flags: List[str],
379+
flags: list[str],
390380
default: _ArgumentTypes,
391381
arg_type: str,
392-
choices: Optional[List[str]],
382+
choices: list[str] | None,
393383
arg_help: str,
394384
metavar: str,
395385
hide_help: bool,
396-
kwargs: Dict[str, Any],
397-
section: Optional[str],
386+
kwargs: dict[str, Any],
387+
section: str | None,
398388
) -> None:
399389
super().__init__(
400390
flags=flags,
@@ -423,15 +413,15 @@ class _StoreNewNamesArgument(_DeprecationArgument):
423413
def __init__(
424414
self,
425415
*,
426-
flags: List[str],
416+
flags: list[str],
427417
default: _ArgumentTypes,
428418
arg_type: str,
429-
choices: Optional[List[str]],
419+
choices: list[str] | None,
430420
arg_help: str,
431421
metavar: str,
432422
hide_help: bool,
433-
kwargs: Dict[str, Any],
434-
section: Optional[str],
423+
kwargs: dict[str, Any],
424+
section: str | None,
435425
) -> None:
436426
super().__init__(
437427
flags=flags,
@@ -460,12 +450,12 @@ class _CallableArgument(_Argument):
460450
def __init__(
461451
self,
462452
*,
463-
flags: List[str],
464-
action: Type[_CallbackAction],
453+
flags: list[str],
454+
action: type[_CallbackAction],
465455
arg_help: str,
466-
kwargs: Dict[str, Any],
456+
kwargs: dict[str, Any],
467457
hide_help: bool,
468-
section: Optional[str],
458+
section: str | None,
469459
) -> None:
470460
super().__init__(
471461
flags=flags, arg_help=arg_help, hide_help=hide_help, section=section

pylint/config/arguments_manager.py

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
"""Arguments manager class used to handle command-line arguments and options."""
66

7+
from __future__ import annotations
8+
79
import argparse
810
import collections
911
import configparser
@@ -15,7 +17,7 @@
1517
import textwrap
1618
import warnings
1719
from pathlib import Path
18-
from typing import TYPE_CHECKING, Any, Dict, List, Optional, TextIO, Tuple, Union
20+
from typing import TYPE_CHECKING, Any, TextIO, Union
1921

2022
import tomlkit
2123

@@ -58,7 +60,7 @@
5860
class _ArgumentsManager:
5961
"""Arguments manager class used to handle command-line arguments and options."""
6062

61-
def __init__(self, prog: str, usage: Optional[str] = None) -> None:
63+
def __init__(self, prog: str, usage: str | None = None) -> None:
6264
self.namespace = argparse.Namespace()
6365
"""Namespace for all options."""
6466

@@ -69,10 +71,10 @@ def __init__(self, prog: str, usage: Optional[str] = None) -> None:
6971
)
7072
"""The command line argument parser."""
7173

72-
self._argument_groups_dict: Dict[str, argparse._ArgumentGroup] = {}
74+
self._argument_groups_dict: dict[str, argparse._ArgumentGroup] = {}
7375
"""Dictionary of all the argument groups."""
7476

75-
self._option_dicts: Dict[str, OptionDict] = {}
77+
self._option_dicts: dict[str, OptionDict] = {}
7678
"""All option dictionaries that have been registered."""
7779

7880
# pylint: disable=fixme
@@ -82,20 +84,20 @@ def __init__(self, prog: str, usage: Optional[str] = None) -> None:
8284
warnings.filterwarnings("ignore", category=DeprecationWarning)
8385
self.reset_parsers(usage or "")
8486
# list of registered options providers
85-
self.options_providers: List[ConfigProvider] = []
87+
self.options_providers: list[ConfigProvider] = []
8688
# dictionary associating option name to checker
8789
self._all_options: OrderedDict[str, ConfigProvider] = collections.OrderedDict()
88-
self._short_options: Dict[str, str] = {}
89-
self._nocallback_options: Dict[ConfigProvider, str] = {}
90-
self._mygroups: Dict[str, optparse.OptionGroup] = {}
90+
self._short_options: dict[str, str] = {}
91+
self._nocallback_options: dict[ConfigProvider, str] = {}
92+
self._mygroups: dict[str, optparse.OptionGroup] = {}
9193
# verbosity
9294
self._maxlevel: int = 0
9395

9496
@property
9597
def config(self) -> argparse.Namespace:
9698
return self.namespace
9799

98-
def _register_options_provider(self, provider: "_ArgumentsProvider") -> None:
100+
def _register_options_provider(self, provider: _ArgumentsProvider) -> None:
99101
"""Register an options provider and load its defaults."""
100102
for opt, optdict in provider.options:
101103
self._option_dicts[opt] = optdict
@@ -113,7 +115,7 @@ def _register_options_provider(self, provider: "_ArgumentsProvider") -> None:
113115
self._load_default_argument_values()
114116

115117
def _add_arguments_to_parser(
116-
self, section: str, section_desc: Optional[str], argument: _Argument
118+
self, section: str, section_desc: str | None, argument: _Argument
117119
) -> None:
118120
"""Add an argument to the correct argument section/group."""
119121
try:
@@ -210,15 +212,15 @@ def _load_default_argument_values(self) -> None:
210212
"""Loads the default values of all registered options."""
211213
self.namespace = self._arg_parser.parse_args([], self.namespace)
212214

213-
def _parse_configuration_file(self, arguments: List[str]) -> None:
215+
def _parse_configuration_file(self, arguments: list[str]) -> None:
214216
"""Parse the arguments found in a configuration file into the namespace."""
215217
# pylint: disable-next=fixme
216218
# TODO: This should parse_args instead of parse_known_args
217219
self.namespace = self._arg_parser.parse_known_args(arguments, self.namespace)[0]
218220

219221
def _parse_command_line_configuration(
220-
self, arguments: Optional[List[str]] = None
221-
) -> List[str]:
222+
self, arguments: list[str] | None = None
223+
) -> list[str]:
222224
"""Parse the arguments found on the command line into the namespace."""
223225
arguments = sys.argv[1:] if arguments is None else arguments
224226

@@ -287,8 +289,8 @@ def register_options_provider(
287289
def add_option_group(
288290
self,
289291
group_name: str,
290-
_: Optional[str],
291-
options: List[Tuple[str, OptionDict]],
292+
_: str | None,
293+
options: list[tuple[str, OptionDict]],
292294
provider: ConfigProvider,
293295
) -> None:
294296
"""DEPRECATED."""
@@ -325,7 +327,7 @@ def add_option_group(
325327
def add_optik_option(
326328
self,
327329
provider: ConfigProvider,
328-
optikcontainer: Union[optparse.OptionParser, optparse.OptionGroup],
330+
optikcontainer: optparse.OptionParser | optparse.OptionGroup,
329331
opt: str,
330332
optdict: OptionDict,
331333
) -> None:
@@ -344,7 +346,7 @@ def add_optik_option(
344346

345347
def optik_option(
346348
self, provider: ConfigProvider, opt: str, optdict: OptionDict
347-
) -> Tuple[List[str], OptionDict]:
349+
) -> tuple[list[str], OptionDict]:
348350
"""DEPRECATED: Get our personal option definition and return a suitable form for
349351
use with optik/optparse
350352
"""
@@ -381,7 +383,7 @@ def optik_option(
381383
return args, optdict
382384

383385
def generate_config(
384-
self, stream: Optional[TextIO] = None, skipsections: Tuple[str, ...] = ()
386+
self, stream: TextIO | None = None, skipsections: tuple[str, ...] = ()
385387
) -> None:
386388
"""DEPRECATED: Write a configuration file according to the current configuration
387389
into the given stream or stdout
@@ -450,7 +452,7 @@ def load_provider_defaults(self) -> None:
450452
provider.load_defaults()
451453

452454
def read_config_file(
453-
self, config_file: Optional[Path] = None, verbose: bool = False
455+
self, config_file: Path | None = None, verbose: bool = False
454456
) -> None:
455457
"""DEPRECATED: Read the configuration file but do not load it (i.e. dispatching
456458
values to each option's provider)
@@ -548,7 +550,7 @@ def load_configuration(self, **kwargs: Any) -> None:
548550
warnings.filterwarnings("ignore", category=DeprecationWarning)
549551
return self.load_configuration_from_config(kwargs)
550552

551-
def load_configuration_from_config(self, config: Dict[str, Any]) -> None:
553+
def load_configuration_from_config(self, config: dict[str, Any]) -> None:
552554
warnings.warn(
553555
"DEPRECATED: load_configuration_from_config has been deprecated. It will be removed in pylint 3.0.",
554556
DeprecationWarning,
@@ -559,8 +561,8 @@ def load_configuration_from_config(self, config: Dict[str, Any]) -> None:
559561
provider.set_option(opt, opt_value)
560562

561563
def load_command_line_configuration(
562-
self, args: Optional[List[str]] = None
563-
) -> List[str]:
564+
self, args: list[str] | None = None
565+
) -> list[str]:
564566
"""DEPRECATED: Override configuration according to command line parameters.
565567
566568
return additional arguments
@@ -580,7 +582,7 @@ def load_command_line_configuration(
580582
setattr(config, attr, value) # pragma: no cover # Handled by argparse.
581583
return args
582584

583-
def help(self, level: Optional[int] = None) -> str:
585+
def help(self, level: int | None = None) -> str:
584586
"""Return the usage string based on the available options."""
585587
if level is not None:
586588
warnings.warn(

0 commit comments

Comments
 (0)