From cfa4f8464b4f8bcb4685d299f54e6414ad5d20d0 Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 10:38:59 +0100 Subject: [PATCH 1/7] Added missing stubs for __init__ methods --- stubs/docutils/docutils/frontend.pyi | 11 ++++++++++- stubs/docutils/docutils/parsers/rst/__init__.pyi | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index f482a037adc4..59a6d186109a 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -1,8 +1,9 @@ import optparse from configparser import RawConfigParser -from typing import Any, ClassVar, Tuple +from typing import Any, ClassVar, Dict, Tuple, Type from docutils import SettingsSpec +from docutils.parsers import Parser from docutils.utils import DependencyList __docformat__: str @@ -60,6 +61,14 @@ class OptionParser(optparse.OptionParser, SettingsSpec): default_error_encoding_error_handler: ClassVar[str] config_section: ClassVar[str] version_template: ClassVar[str] + def __init__( + self, + components: Tuple[Type[Parser]] = ..., + defaults: Dict[str, object] = ..., + read_config_files: bool = ..., + *args, + **kwargs, + ) -> None: ... def __getattr__(self, name: str) -> Any: ... # incomplete class ConfigParser(RawConfigParser): diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index d58522203c2e..15159bc02efe 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -1,7 +1,8 @@ -from typing import Any, ClassVar, Tuple +from typing import Any, ClassVar, Dict, List, Tuple from typing_extensions import Literal from docutils import parsers +from docutils.parsers.rst.states import RSTState, RSTStateMachine class Parser(parsers.Parser): config_section_dependencies: ClassVar[Tuple[str, ...]] @@ -16,6 +17,18 @@ class DirectiveError(Exception): def __init__(self, level: Any, message: str) -> None: ... class Directive: + def __init__( + self, + name: str, + arguments: List[object], + options: Dict[str, object], + content: List[str], + lineno: int, + content_offset: int, + block_text: str, + state: RSTState, + state_machine: RSTStateMachine, + ) -> None: ... def __getattr__(self, name: str) -> Any: ... # incomplete def convert_directive_function(directive_fn): ... From 041022b146b8617863409eec5d90f6ddc5aca8f6 Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 11:25:09 +0100 Subject: [PATCH 2/7] Amended allowlist and corrected imports --- stubs/docutils/@tests/stubtest_allowlist.txt | 1 - stubs/docutils/docutils/parsers/rst/__init__.pyi | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/stubs/docutils/@tests/stubtest_allowlist.txt b/stubs/docutils/@tests/stubtest_allowlist.txt index 1896cda62015..9487bd30c0c9 100644 --- a/stubs/docutils/@tests/stubtest_allowlist.txt +++ b/stubs/docutils/@tests/stubtest_allowlist.txt @@ -8,5 +8,4 @@ docutils.io.FileOutput.__init__ docutils.io.Input.__getattr__ docutils.io.Input.__init__ docutils.parsers.rst.Directive.__getattr__ -docutils.parsers.rst.Directive.__init__ docutils.parsers.rst.nodes diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index 15159bc02efe..71774557cd38 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -2,7 +2,6 @@ from typing import Any, ClassVar, Dict, List, Tuple from typing_extensions import Literal from docutils import parsers -from docutils.parsers.rst.states import RSTState, RSTStateMachine class Parser(parsers.Parser): config_section_dependencies: ClassVar[Tuple[str, ...]] @@ -26,8 +25,8 @@ class Directive: lineno: int, content_offset: int, block_text: str, - state: RSTState, - state_machine: RSTStateMachine, + state: parsers.rst.states.RSTState, + state_machine: parsers.rst.states.RSTStateMachine, ) -> None: ... def __getattr__(self, name: str) -> Any: ... # incomplete From e684bc41f8fe2c7c6b200b439b1c3382748ff0b6 Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 11:51:07 +0100 Subject: [PATCH 3/7] Addressing PR feedback --- stubs/docutils/METADATA.toml | 2 +- stubs/docutils/docutils/frontend.pyi | 9 +++++---- stubs/docutils/docutils/parsers/rst/__init__.pyi | 13 +++++++------ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/stubs/docutils/METADATA.toml b/stubs/docutils/METADATA.toml index 5f1541084942..b3849f7d0447 100644 --- a/stubs/docutils/METADATA.toml +++ b/stubs/docutils/METADATA.toml @@ -1 +1 @@ -version = "0.1" +version = "0.17" diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index 59a6d186109a..a5de495dbfa4 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -1,6 +1,7 @@ import optparse from configparser import RawConfigParser -from typing import Any, ClassVar, Dict, Tuple, Type +from typing import Any, ClassVar, Tuple, Type +from collections.abc import Iterable, Mapping from docutils import SettingsSpec from docutils.parsers import Parser @@ -63,9 +64,9 @@ class OptionParser(optparse.OptionParser, SettingsSpec): version_template: ClassVar[str] def __init__( self, - components: Tuple[Type[Parser]] = ..., - defaults: Dict[str, object] = ..., - read_config_files: bool = ..., + components: Iterable[Type[Parser]] = ..., + defaults: Mapping[str, object] = ..., + read_config_files: bool | None = ..., *args, **kwargs, ) -> None: ... diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index 71774557cd38..f605176c4173 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -1,7 +1,8 @@ -from typing import Any, ClassVar, Dict, List, Tuple +from typing import Any, ClassVar, Tuple from typing_extensions import Literal from docutils import parsers +from docutils.parsers.rst import states class Parser(parsers.Parser): config_section_dependencies: ClassVar[Tuple[str, ...]] @@ -19,14 +20,14 @@ class Directive: def __init__( self, name: str, - arguments: List[object], - options: Dict[str, object], - content: List[str], + arguments: list[Any], + options: dict[str, Any], + content: list[str], lineno: int, content_offset: int, block_text: str, - state: parsers.rst.states.RSTState, - state_machine: parsers.rst.states.RSTStateMachine, + state: states.RSTState, + state_machine: states.RSTStateMachine, ) -> None: ... def __getattr__(self, name: str) -> Any: ... # incomplete From 5b11af5f7283c2478bc0cf4f07f9a9edc0ddfd9f Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 11:52:46 +0100 Subject: [PATCH 4/7] isort --- stubs/docutils/docutils/frontend.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index a5de495dbfa4..69ecff658177 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -1,7 +1,7 @@ import optparse +from collections.abc import Iterable, Mapping from configparser import RawConfigParser from typing import Any, ClassVar, Tuple, Type -from collections.abc import Iterable, Mapping from docutils import SettingsSpec from docutils.parsers import Parser From fa1d513be0158d09b91157d696f9feda5a342c36 Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 13:19:08 +0100 Subject: [PATCH 5/7] Replace object with Any as only specific objects are allowed but we cannot express them currently --- stubs/docutils/docutils/frontend.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index 69ecff658177..04f90f55b4a7 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -65,7 +65,7 @@ class OptionParser(optparse.OptionParser, SettingsSpec): def __init__( self, components: Iterable[Type[Parser]] = ..., - defaults: Mapping[str, object] = ..., + defaults: Mapping[str, Any] = ..., read_config_files: bool | None = ..., *args, **kwargs, From bf7a2fdab8964026e0735083315badaea4f502e8 Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 18:26:04 +0100 Subject: [PATCH 6/7] Allow defaults to be None Co-authored-by: Akuli --- stubs/docutils/docutils/frontend.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index 04f90f55b4a7..c32dc44ffb5e 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -65,7 +65,7 @@ class OptionParser(optparse.OptionParser, SettingsSpec): def __init__( self, components: Iterable[Type[Parser]] = ..., - defaults: Mapping[str, Any] = ..., + defaults: Mapping[str, Any] | None = ..., read_config_files: bool | None = ..., *args, **kwargs, From befa9dc2aa5885f0c067b9359d34de93bdd61c7d Mon Sep 17 00:00:00 2001 From: Sam Martin Date: Sat, 14 Aug 2021 18:29:25 +0100 Subject: [PATCH 7/7] Remove now-complete allowlist entry --- stubs/docutils/@tests/stubtest_allowlist.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/stubs/docutils/@tests/stubtest_allowlist.txt b/stubs/docutils/@tests/stubtest_allowlist.txt index 9487bd30c0c9..a6aa9c57efa9 100644 --- a/stubs/docutils/@tests/stubtest_allowlist.txt +++ b/stubs/docutils/@tests/stubtest_allowlist.txt @@ -2,7 +2,6 @@ docutils.TransformSpec.unknown_reference_resolvers docutils.frontend.ConfigParser.__getattr__ docutils.frontend.ConfigParser.read docutils.frontend.OptionParser.__getattr__ -docutils.frontend.OptionParser.__init__ docutils.io.FileOutput.__getattr__ docutils.io.FileOutput.__init__ docutils.io.Input.__getattr__