2
2
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
3
3
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
4
4
5
+ from __future__ import annotations
6
+
5
7
import os
6
- from typing import TYPE_CHECKING , Callable , List , Optional , TextIO
8
+ from typing import TYPE_CHECKING , Callable , TextIO
7
9
8
10
from pylint .interfaces import IReporter
9
11
from pylint .message import Message
@@ -30,23 +32,23 @@ class MultiReporter:
30
32
31
33
def __init__ (
32
34
self ,
33
- sub_reporters : List [BaseReporter ],
35
+ sub_reporters : list [BaseReporter ],
34
36
close_output_files : Callable [[], None ],
35
- output : Optional [ TextIO ] = None ,
37
+ output : TextIO | None = None ,
36
38
):
37
39
self ._sub_reporters = sub_reporters
38
40
self .close_output_files = close_output_files
39
41
self ._path_strip_prefix = os .getcwd () + os .sep
40
- self ._linter : Optional [ " PyLinter" ] = None
42
+ self ._linter : PyLinter | None = None
41
43
self .out = output
42
- self .messages : List [Message ] = []
44
+ self .messages : list [Message ] = []
43
45
44
46
@property
45
- def out (self ) -> Optional [ TextIO ] :
47
+ def out (self ) -> TextIO | None :
46
48
return self .__out
47
49
48
50
@out .setter
49
- def out (self , output : Optional [ TextIO ] = None ) -> None :
51
+ def out (self , output : TextIO | None = None ) -> None :
50
52
"""MultiReporter doesn't have its own output.
51
53
52
54
This method is only provided for API parity with BaseReporter
@@ -64,11 +66,11 @@ def path_strip_prefix(self) -> str:
64
66
return self ._path_strip_prefix
65
67
66
68
@property
67
- def linter (self ) -> Optional [ " PyLinter" ] :
69
+ def linter (self ) -> PyLinter | None :
68
70
return self ._linter
69
71
70
72
@linter .setter
71
- def linter (self , value : " PyLinter" ) -> None :
73
+ def linter (self , value : PyLinter ) -> None :
72
74
self ._linter = value
73
75
for rep in self ._sub_reporters :
74
76
rep .linter = value
@@ -83,17 +85,17 @@ def writeln(self, string: str = "") -> None:
83
85
for rep in self ._sub_reporters :
84
86
rep .writeln (string )
85
87
86
- def display_reports (self , layout : " Section" ) -> None :
88
+ def display_reports (self , layout : Section ) -> None :
87
89
"""Display results encapsulated in the layout tree."""
88
90
for rep in self ._sub_reporters :
89
91
rep .display_reports (layout )
90
92
91
- def display_messages (self , layout : Optional [ " Section" ] ) -> None :
93
+ def display_messages (self , layout : Section | None ) -> None :
92
94
"""Hook for displaying the messages of the reporter."""
93
95
for rep in self ._sub_reporters :
94
96
rep .display_messages (layout )
95
97
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 :
97
99
"""Hook called when a module starts to be analysed."""
98
100
for rep in self ._sub_reporters :
99
101
rep .on_set_current_module (module , filepath )
0 commit comments