Skip to content

Commit 4f7f191

Browse files
committed
Use python-typing-update on pylint/reporters directory
1 parent c5a5e18 commit 4f7f191

10 files changed

+108
-99
lines changed

pylint/reporters/__init__.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
44

55
"""Utilities methods and classes for reporters."""
6+
7+
from __future__ import annotations
8+
69
from typing import TYPE_CHECKING
710

811
from pylint import utils
@@ -16,7 +19,7 @@
1619
from pylint.lint.pylinter import PyLinter
1720

1821

19-
def initialize(linter: "PyLinter") -> None:
22+
def initialize(linter: PyLinter) -> None:
2023
"""Initialize linter with reporters in this package."""
2124
utils.register_plugins(linter, __path__[0])
2225

pylint/reporters/base_reporter.py

+11-9
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
33
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
44

5+
from __future__ import annotations
6+
57
import os
68
import sys
7-
from typing import TYPE_CHECKING, List, Optional, TextIO
9+
from typing import TYPE_CHECKING, TextIO
810
from warnings import warn
911

1012
from pylint.message import Message
@@ -27,19 +29,19 @@ class BaseReporter:
2729
name = "base"
2830
"""Name of the reporter."""
2931

30-
def __init__(self, output: Optional[TextIO] = None) -> None:
31-
self.linter: "PyLinter"
32+
def __init__(self, output: TextIO | None = None) -> None:
33+
self.linter: PyLinter
3234
self.section = 0
3335
self.out: TextIO = output or sys.stdout
34-
self.messages: List[Message] = []
36+
self.messages: list[Message] = []
3537
# Build the path prefix to strip to get relative paths
3638
self.path_strip_prefix = os.getcwd() + os.sep
3739

3840
def handle_message(self, msg: Message) -> None:
3941
"""Handle a new message triggered on the current file."""
4042
self.messages.append(msg)
4143

42-
def set_output(self, output: Optional[TextIO] = None) -> None:
44+
def set_output(self, output: TextIO | None = None) -> None:
4345
"""Set output stream."""
4446
# pylint: disable-next=fixme
4547
# TODO: Remove this method after depreciation
@@ -53,7 +55,7 @@ def writeln(self, string: str = "") -> None:
5355
"""Write a line in the output buffer."""
5456
print(string, file=self.out)
5557

56-
def display_reports(self, layout: "Section") -> None:
58+
def display_reports(self, layout: Section) -> None:
5759
"""Display results encapsulated in the layout tree."""
5860
self.section = 0
5961
if layout.report_id:
@@ -63,11 +65,11 @@ def display_reports(self, layout: "Section") -> None:
6365
raise ValueError(f"Incorrect child for {layout.children[0].children}")
6466
self._display(layout)
6567

66-
def _display(self, layout: "Section") -> None:
68+
def _display(self, layout: Section) -> None:
6769
"""Display the layout."""
6870
raise NotImplementedError()
6971

70-
def display_messages(self, layout: Optional["Section"]) -> None:
72+
def display_messages(self, layout: Section | None) -> None:
7173
"""Hook for displaying the messages of the reporter.
7274
7375
This will be called whenever the underlying messages
@@ -80,7 +82,7 @@ def display_messages(self, layout: Optional["Section"]) -> None:
8082

8183
# Event callbacks
8284

83-
def on_set_current_module(self, module: str, filepath: Optional[str]) -> None:
85+
def on_set_current_module(self, module: str, filepath: str | None) -> None:
8486
"""Hook called when a module starts to be analysed."""
8587

8688
def on_close(

pylint/reporters/collecting_reporter.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
33
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
44

5+
from __future__ import annotations
6+
57
from typing import TYPE_CHECKING
68

79
from pylint.reporters.base_reporter import BaseReporter
@@ -22,5 +24,5 @@ def __init__(self) -> None:
2224
def reset(self) -> None:
2325
self.messages = []
2426

25-
def _display(self, layout: "Section") -> None:
27+
def _display(self, layout: Section) -> None:
2628
pass

pylint/reporters/json_reporter.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
44

55
"""JSON reporter."""
6+
7+
from __future__ import annotations
8+
69
import json
7-
from typing import TYPE_CHECKING, Optional
10+
from typing import TYPE_CHECKING
811

912
from pylint.interfaces import IReporter
1013
from pylint.reporters.base_reporter import BaseReporter
@@ -21,7 +24,7 @@ class JSONReporter(BaseReporter):
2124
name = "json"
2225
extension = "json"
2326

24-
def display_messages(self, layout: Optional["Section"]) -> None:
27+
def display_messages(self, layout: Section | None) -> None:
2528
"""Launch layouts display."""
2629
json_dumpable = [
2730
{
@@ -41,12 +44,12 @@ def display_messages(self, layout: Optional["Section"]) -> None:
4144
]
4245
print(json.dumps(json_dumpable, indent=4), file=self.out)
4346

44-
def display_reports(self, layout: "Section") -> None:
47+
def display_reports(self, layout: Section) -> None:
4548
"""Don't do anything in this reporter."""
4649

47-
def _display(self, layout: "Section") -> None:
50+
def _display(self, layout: Section) -> None:
4851
"""Do nothing."""
4952

5053

51-
def register(linter: "PyLinter") -> None:
54+
def register(linter: PyLinter) -> None:
5255
linter.register_reporter(JSONReporter)

pylint/reporters/multi_reporter.py

+14-12
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
33
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
44

5+
from __future__ import annotations
6+
57
import os
6-
from typing import TYPE_CHECKING, Callable, List, Optional, TextIO
8+
from typing import TYPE_CHECKING, Callable, TextIO
79

810
from pylint.interfaces import IReporter
911
from pylint.message import Message
@@ -30,23 +32,23 @@ class MultiReporter:
3032

3133
def __init__(
3234
self,
33-
sub_reporters: List[BaseReporter],
35+
sub_reporters: list[BaseReporter],
3436
close_output_files: Callable[[], None],
35-
output: Optional[TextIO] = None,
37+
output: TextIO | None = None,
3638
):
3739
self._sub_reporters = sub_reporters
3840
self.close_output_files = close_output_files
3941
self._path_strip_prefix = os.getcwd() + os.sep
40-
self._linter: Optional["PyLinter"] = None
42+
self._linter: PyLinter | None = None
4143
self.out = output
42-
self.messages: List[Message] = []
44+
self.messages: list[Message] = []
4345

4446
@property
45-
def out(self) -> Optional[TextIO]:
47+
def out(self) -> TextIO | None:
4648
return self.__out
4749

4850
@out.setter
49-
def out(self, output: Optional[TextIO] = None) -> None:
51+
def out(self, output: TextIO | None = None) -> None:
5052
"""MultiReporter doesn't have its own output.
5153
5254
This method is only provided for API parity with BaseReporter
@@ -64,11 +66,11 @@ def path_strip_prefix(self) -> str:
6466
return self._path_strip_prefix
6567

6668
@property
67-
def linter(self) -> Optional["PyLinter"]:
69+
def linter(self) -> PyLinter | None:
6870
return self._linter
6971

7072
@linter.setter
71-
def linter(self, value: "PyLinter") -> None:
73+
def linter(self, value: PyLinter) -> None:
7274
self._linter = value
7375
for rep in self._sub_reporters:
7476
rep.linter = value
@@ -83,17 +85,17 @@ def writeln(self, string: str = "") -> None:
8385
for rep in self._sub_reporters:
8486
rep.writeln(string)
8587

86-
def display_reports(self, layout: "Section") -> None:
88+
def display_reports(self, layout: Section) -> None:
8789
"""Display results encapsulated in the layout tree."""
8890
for rep in self._sub_reporters:
8991
rep.display_reports(layout)
9092

91-
def display_messages(self, layout: Optional["Section"]) -> None:
93+
def display_messages(self, layout: Section | None) -> None:
9294
"""Hook for displaying the messages of the reporter."""
9395
for rep in self._sub_reporters:
9496
rep.display_messages(layout)
9597

96-
def on_set_current_module(self, module: str, filepath: Optional[str]) -> None:
98+
def on_set_current_module(self, module: str, filepath: str | None) -> None:
9799
"""Hook called when a module starts to be analysed."""
98100
for rep in self._sub_reporters:
99101
rep.on_set_current_module(module, filepath)

pylint/reporters/reports_handler_mix_in.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
33
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
44

5+
from __future__ import annotations
6+
57
import collections
68
from typing import (
79
TYPE_CHECKING,
810
Callable,
911
DefaultDict,
10-
Dict,
1112
List,
1213
MutableSequence,
1314
Optional,
@@ -33,14 +34,14 @@ class ReportsHandlerMixIn:
3334

3435
def __init__(self) -> None:
3536
self._reports: ReportsDict = collections.defaultdict(list)
36-
self._reports_state: Dict[str, bool] = {}
37+
self._reports_state: dict[str, bool] = {}
3738

38-
def report_order(self) -> MutableSequence["BaseChecker"]:
39+
def report_order(self) -> MutableSequence[BaseChecker]:
3940
"""Return a list of reporters."""
4041
return list(self._reports)
4142

4243
def register_report(
43-
self, reportid: str, r_title: str, r_cb: ReportsCallable, checker: "BaseChecker"
44+
self, reportid: str, r_title: str, r_cb: ReportsCallable, checker: BaseChecker
4445
) -> None:
4546
"""Register a report.
4647
@@ -67,9 +68,9 @@ def report_is_enabled(self, reportid: str) -> bool:
6768
return self._reports_state.get(reportid, True)
6869

6970
def make_reports( # type: ignore[misc] # ReportsHandlerMixIn is always mixed with PyLinter
70-
self: "PyLinter",
71+
self: PyLinter,
7172
stats: LinterStats,
72-
old_stats: Optional[LinterStats],
73+
old_stats: LinterStats | None,
7374
) -> Section:
7475
"""Render registered reports."""
7576
sect = Section("Report", f"{self.stats.statement} statements analysed.")

0 commit comments

Comments
 (0)