Skip to content

Commit a35b769

Browse files
authored
improve type annotations in 'docutils.utils.Reporter' (#11521)
1 parent 3d13838 commit a35b769

File tree

1 file changed

+67
-17
lines changed

1 file changed

+67
-17
lines changed

stubs/docutils/docutils/utils/__init__.pyi

Lines changed: 67 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import optparse
2-
from _typeshed import StrPath
2+
from _typeshed import Incomplete, StrPath, SupportsWrite, Unused
33
from collections.abc import Callable, Iterable, Mapping
44
from re import Pattern
5-
from typing import IO, Any, Literal, TypeVar
5+
from typing import Any, Literal, TypeVar
66
from typing_extensions import TypeAlias
77

88
from docutils import ApplicationError, DataError, nodes
99
from docutils.frontend import Values
1010
from docutils.io import ErrorOutput, FileOutput
1111
from docutils.nodes import document
1212

13+
_Observer: TypeAlias = Callable[[nodes.system_message], object]
14+
1315
class DependencyList:
1416
list: list[str]
1517
file: FileOutput | None
@@ -29,12 +31,16 @@ class Reporter:
2931
ERROR_LEVEL: Literal[3]
3032
SEVERE_LEVEL: Literal[4]
3133

34+
stream: ErrorOutput
35+
encoding: str
36+
observers: list[_Observer]
37+
max_level: int
3238
def __init__(
3339
self,
3440
source: str,
3541
report_level: int,
3642
halt_level: int,
37-
stream: IO[str] | str | bool | None = None,
43+
stream: SupportsWrite[str] | SupportsWrite[bytes] | str | bool | None = None,
3844
debug: bool = False,
3945
encoding: str | None = None,
4046
error_handler: str = "backslashreplace",
@@ -43,24 +49,68 @@ class Reporter:
4349
source: str
4450
error_handler: str
4551
debug_flag: bool
46-
report_level: int
52+
report_level: _SystemMessageLevel
4753
halt_level: int
48-
stream: ErrorOutput
49-
encoding: str
50-
observers: list[Callable[[nodes.system_message], None]]
51-
max_level: int
5254
def set_conditions(
53-
self, category: Any, report_level: int, halt_level: int, stream: IO[str] | None = None, debug: bool = False
55+
self,
56+
category: Unused,
57+
report_level: int,
58+
halt_level: int,
59+
stream: SupportsWrite[str] | SupportsWrite[bytes] | None = None,
60+
debug: bool = False,
5461
) -> None: ...
55-
def attach_observer(self, observer: Callable[[nodes.system_message], None]) -> None: ...
56-
def detach_observer(self, observer: Callable[[nodes.system_message], None]) -> None: ...
62+
def attach_observer(self, observer: _Observer) -> None: ...
63+
def detach_observer(self, observer: _Observer) -> None: ...
5764
def notify_observers(self, message: nodes.system_message) -> None: ...
58-
def system_message(self, level: int, message: str, *children: nodes.Node, **kwargs: Any) -> nodes.system_message: ...
59-
def debug(self, *args: Any, **kwargs: Any) -> nodes.system_message: ...
60-
def info(self, *args: Any, **kwargs: Any) -> nodes.system_message: ...
61-
def warning(self, *args: Any, **kwargs: Any) -> nodes.system_message: ...
62-
def error(self, *args: Any, **kwargs: Any) -> nodes.system_message: ...
63-
def severe(self, *args: Any, **kwargs: Any) -> nodes.system_message: ...
65+
def system_message(
66+
self,
67+
level: int,
68+
message: str | Exception,
69+
*children: nodes.Node,
70+
base_node: nodes.Node = ...,
71+
source: str = ...,
72+
**kwargs: Incomplete,
73+
) -> nodes.system_message: ...
74+
def debug(
75+
self,
76+
message: str | Exception,
77+
*children: nodes.Node,
78+
base_node: nodes.Node = ...,
79+
source: str = ...,
80+
**kwargs: Incomplete,
81+
) -> nodes.system_message: ...
82+
def info(
83+
self,
84+
message: str | Exception,
85+
*children: nodes.Node,
86+
base_node: nodes.Node = ...,
87+
source: str = ...,
88+
**kwargs: Incomplete,
89+
) -> nodes.system_message: ...
90+
def warning(
91+
self,
92+
message: str | Exception,
93+
*children: nodes.Node,
94+
base_node: nodes.Node = ...,
95+
source: str = ...,
96+
**kwargs: Incomplete,
97+
) -> nodes.system_message: ...
98+
def error(
99+
self,
100+
message: str | Exception,
101+
*children: nodes.Node,
102+
base_node: nodes.Node = ...,
103+
source: str = ...,
104+
**kwargs: Incomplete,
105+
) -> nodes.system_message: ...
106+
def severe(
107+
self,
108+
message: str | Exception,
109+
*children: nodes.Node,
110+
base_node: nodes.Node = ...,
111+
source: str = ...,
112+
**kwargs: Incomplete,
113+
) -> nodes.system_message: ...
64114

65115
class SystemMessage(ApplicationError):
66116
level: _SystemMessageLevel

0 commit comments

Comments
 (0)