From 98372ea5c898eaf233a7290d0967ebfe87fa5fac Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 8 Apr 2021 13:24:53 +0200 Subject: [PATCH 01/11] Add various incomplete docutils modules --- stubs/docutils/docutils/__init__.pyi | 2 +- stubs/docutils/docutils/core.pyi | 3 +++ stubs/docutils/docutils/examples.pyi | 4 +--- stubs/docutils/docutils/frontend.pyi | 3 +++ stubs/docutils/docutils/io.pyi | 3 +++ stubs/docutils/docutils/languages/__init__.pyi | 3 +++ stubs/docutils/docutils/nodes.pyi | 2 +- stubs/docutils/docutils/parsers/null.pyi | 3 +++ stubs/docutils/docutils/parsers/rst/__init__.pyi | 2 +- stubs/docutils/docutils/parsers/rst/nodes.pyi | 2 +- stubs/docutils/docutils/parsers/rst/states.pyi | 2 +- stubs/docutils/docutils/readers/__init__.pyi | 3 +++ stubs/docutils/docutils/readers/doctree.pyi | 3 +++ stubs/docutils/docutils/readers/pep.pyi | 3 +++ stubs/docutils/docutils/readers/standalone.pyi | 3 +++ stubs/docutils/docutils/recommonmark_wrapper.pyi | 3 +++ stubs/docutils/docutils/statemachine.pyi | 3 +++ stubs/docutils/docutils/transforms/__init__.pyi | 3 +++ stubs/docutils/docutils/utils/__init__.pyi | 3 +++ stubs/docutils/docutils/writers/__init__.pyi | 3 +++ 20 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 stubs/docutils/docutils/core.pyi create mode 100644 stubs/docutils/docutils/frontend.pyi create mode 100644 stubs/docutils/docutils/io.pyi create mode 100644 stubs/docutils/docutils/languages/__init__.pyi create mode 100644 stubs/docutils/docutils/parsers/null.pyi create mode 100644 stubs/docutils/docutils/readers/__init__.pyi create mode 100644 stubs/docutils/docutils/readers/doctree.pyi create mode 100644 stubs/docutils/docutils/readers/pep.pyi create mode 100644 stubs/docutils/docutils/readers/standalone.pyi create mode 100644 stubs/docutils/docutils/recommonmark_wrapper.pyi create mode 100644 stubs/docutils/docutils/statemachine.pyi create mode 100644 stubs/docutils/docutils/transforms/__init__.pyi create mode 100644 stubs/docutils/docutils/utils/__init__.pyi create mode 100644 stubs/docutils/docutils/writers/__init__.pyi diff --git a/stubs/docutils/docutils/__init__.pyi b/stubs/docutils/docutils/__init__.pyi index e27843e53382..964e6fa3f426 100644 --- a/stubs/docutils/docutils/__init__.pyi +++ b/stubs/docutils/docutils/__init__.pyi @@ -1,3 +1,3 @@ from typing import Any -def __getattr__(name: str) -> Any: ... +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/core.pyi b/stubs/docutils/docutils/core.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/core.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/examples.pyi b/stubs/docutils/docutils/examples.pyi index 581ebba7e61e..964e6fa3f426 100644 --- a/stubs/docutils/docutils/examples.pyi +++ b/stubs/docutils/docutils/examples.pyi @@ -1,5 +1,3 @@ from typing import Any -html_parts: Any - -def __getattr__(name: str) -> Any: ... +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/frontend.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/io.pyi b/stubs/docutils/docutils/io.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/io.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/languages/__init__.pyi b/stubs/docutils/docutils/languages/__init__.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/languages/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/nodes.pyi b/stubs/docutils/docutils/nodes.pyi index 11773347ff87..fd40a36cd679 100644 --- a/stubs/docutils/docutils/nodes.pyi +++ b/stubs/docutils/docutils/nodes.pyi @@ -3,4 +3,4 @@ from typing import Any, List class reference: def __init__(self, rawsource: str = ..., text: str = ..., *children: List[Any], **attributes: Any) -> None: ... -def __getattr__(name: str) -> Any: ... +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/parsers/null.pyi b/stubs/docutils/docutils/parsers/null.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/parsers/null.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index e27843e53382..964e6fa3f426 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -1,3 +1,3 @@ from typing import Any -def __getattr__(name: str) -> Any: ... +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/parsers/rst/nodes.pyi b/stubs/docutils/docutils/parsers/rst/nodes.pyi index e27843e53382..964e6fa3f426 100644 --- a/stubs/docutils/docutils/parsers/rst/nodes.pyi +++ b/stubs/docutils/docutils/parsers/rst/nodes.pyi @@ -1,3 +1,3 @@ from typing import Any -def __getattr__(name: str) -> Any: ... +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/parsers/rst/states.pyi b/stubs/docutils/docutils/parsers/rst/states.pyi index ac0872693442..a7f106948a78 100644 --- a/stubs/docutils/docutils/parsers/rst/states.pyi +++ b/stubs/docutils/docutils/parsers/rst/states.pyi @@ -3,4 +3,4 @@ from typing import Any class Inliner: def __init__(self) -> None: ... -def __getattr__(name: str) -> Any: ... +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/readers/__init__.pyi b/stubs/docutils/docutils/readers/__init__.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/readers/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/readers/doctree.pyi b/stubs/docutils/docutils/readers/doctree.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/readers/doctree.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/readers/pep.pyi b/stubs/docutils/docutils/readers/pep.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/readers/pep.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/readers/standalone.pyi b/stubs/docutils/docutils/readers/standalone.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/readers/standalone.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/recommonmark_wrapper.pyi b/stubs/docutils/docutils/recommonmark_wrapper.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/recommonmark_wrapper.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/statemachine.pyi b/stubs/docutils/docutils/statemachine.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/statemachine.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/transforms/__init__.pyi b/stubs/docutils/docutils/transforms/__init__.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/transforms/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/utils/__init__.pyi b/stubs/docutils/docutils/utils/__init__.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/utils/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/stubs/docutils/docutils/writers/__init__.pyi b/stubs/docutils/docutils/writers/__init__.pyi new file mode 100644 index 000000000000..964e6fa3f426 --- /dev/null +++ b/stubs/docutils/docutils/writers/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... # incomplete From 585dc72bce09af56a49b2ae87198d2e847060f19 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 8 Apr 2021 13:41:58 +0200 Subject: [PATCH 02/11] Complete docutils/__init__.pyi --- stubs/docutils/docutils/__init__.pyi | 43 ++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/stubs/docutils/docutils/__init__.pyi b/stubs/docutils/docutils/__init__.pyi index 964e6fa3f426..1618fd1e0cb6 100644 --- a/stubs/docutils/docutils/__init__.pyi +++ b/stubs/docutils/docutils/__init__.pyi @@ -1,3 +1,42 @@ -from typing import Any +from collections.abc import Sequence +from typing import Any, ClassVar, NamedTuple, Optional, Union -def __getattr__(name: str) -> Any: ... # incomplete +__docformat__: str +__version__: str + +class _VersionInfo(NamedTuple): + major: int + minor: int + micro: int + releaselevel: str + serial: int + release: bool + +class VersionInfo(_VersionInfo): + def __new__( + cls, major: int = ..., minor: int = ..., micro: int = ..., releaselevel: str = ..., serial: int = ..., release: bool = ... + ) -> VersionInfo: ... + +__version_info__: VersionInfo +__version_details__: str + +class ApplicationError(Exception): ... +class DataError(ApplicationError): ... + +class SettingsSpec: + settings_spec: ClassVar[tuple[Any, ...]] + settings_defaults: ClassVar[Optional[dict[Any, Any]]] + settings_default_overrides: ClassVar[Optional[dict[Any, Any]]] + relative_path_settings: ClassVar[tuple[Any, ...]] + config_section: ClassVar[Optional[str]] + config_section_dependencies: ClassVar[Optional[list[str]]] + +class TransformSpec: + def get_transforms(self) -> list[Any]: ... + default_transforms: ClassVar[tuple[Any, ...]] + unknown_reference_resolvers: ClassVar[list[Any]] + +class Component(SettingsSpec, TransformSpec): + component_type: ClassVar[Optional[str]] + supported: ClassVar[tuple[str, ...]] + def supports(self, format: str) -> bool: ... From 4e3f9ebdcac381b394d34ab687932edae2f967c6 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 8 Apr 2021 14:25:06 +0200 Subject: [PATCH 03/11] Populate docutils.frontend and .io --- stubs/docutils/docutils/frontend.pyi | 71 +++++++++++++++++++++- stubs/docutils/docutils/io.pyi | 68 ++++++++++++++++++++- stubs/docutils/docutils/utils/__init__.pyi | 13 +++- 3 files changed, 147 insertions(+), 5 deletions(-) diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index 964e6fa3f426..ddbd24e71e5e 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -1,3 +1,70 @@ -from typing import Any +import optparse +from configparser import RawConfigParser +from typing import Any, ClassVar, Optional -def __getattr__(name: str) -> Any: ... # incomplete +from . import SettingsSpec +from .utils import DependencyList + +__docformat__: str + +def store_multiple(option, opt, value, parser, *args, **kwargs) -> None: ... +def read_config_file(option, opt, value, parser) -> None: ... +def validate_encoding(setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ...): ... +def validate_encoding_error_handler( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +): ... +def validate_encoding_and_error_handler( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +): ... +def validate_boolean( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> bool: ... +def validate_nonnegative_int( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> int: ... +def validate_threshold( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> int: ... +def validate_colon_separated_string_list( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> list[str]: ... +def validate_comma_separated_list( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> list[str]: ... +def validate_url_trailing_slash( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> str: ... +def validate_dependency_file( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> DependencyList: ... +def validate_strip_class( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +): ... +def validate_smartquotes_locales( + setting, value, option_parser, config_parser: Optional[Any] = ..., config_section: Optional[Any] = ... +) -> list[tuple[str, str]]: ... +def make_paths_absolute(pathdict, keys, base_path: Optional[Any] = ...) -> None: ... +def make_one_path_absolute(base_path, path) -> str: ... +def filter_settings_spec(settings_spec, *exclude, **replace) -> tuple[Any, ...]: ... + +class Values(optparse.Values): + def update(self, other_dict, option_parser) -> None: ... + def copy(self) -> Values: ... + +class Option(optparse.Option): ... + +class OptionParser(optparse.OptionParser, SettingsSpec): + standard_config_files: ClassVar[list[str]] + threshold_choices: ClassVar[list[str]] + thresholds: ClassVar[dict[str, int]] + booleans: ClassVar[dict[str, bool]] + default_error_encoding: ClassVar[str] + default_error_encoding_error_handler: ClassVar[str] + config_section: ClassVar[str] + version_template: ClassVar[str] + def __getattr__(self, name: str) -> Any: ... # incomplete + +class ConfigParser(RawConfigParser): + def __getattr__(self, name: str) -> Any: ... # incomplete + +class ConfigDeprecationWarning(DeprecationWarning): ... diff --git a/stubs/docutils/docutils/io.pyi b/stubs/docutils/docutils/io.pyi index 964e6fa3f426..9efc60baea86 100644 --- a/stubs/docutils/docutils/io.pyi +++ b/stubs/docutils/docutils/io.pyi @@ -1,3 +1,67 @@ -from typing import Any +from typing import Any, ClassVar, Optional, Union +from typing_extensions import Literal -def __getattr__(name: str) -> Any: ... # incomplete +from . import TransformSpec + +__docformat__: str + +class InputError(IOError): ... +class OutputError(IOError): ... + +def check_encoding(stream: Any, encoding: str) -> Optional[bool]: ... + +class Input(TransformSpec): + component_type: ClassVar[str] + default_source_path: ClassVar[Optional[str]] + def read(self) -> Any: ... + def __getattr__(self, name: str) -> Any: ... # incomplete + +class Output(TransformSpec): + component_type: ClassVar[str] + default_destination_path: ClassVar[Optional[str]] + def __init__( + self, + destination: Optional[Any] = ..., + destination_path: Optional[Any] = ..., + encoding: Optional[str] = ..., + error_handler: str = ..., + ) -> None: ... + def write(self, data: str) -> Any: ... # returns bytes or str + def encode(self, data: str) -> Any: ... # returns bytes or str + +class FileInput(Input): + def __init__( + self, + source: Optional[Any] = ..., + source_path: Optional[Any] = ..., + encoding: Optional[str] = ..., + error_handler: str = ..., + autoclose: bool = ..., + mode: Literal["r", "rb"] = ..., + ) -> None: ... + def readlines(self) -> list[str]: ... + def close(self) -> None: ... + +class FileOutput(Output): + mode: ClassVar[Literal["w", "wb"]] + def __getattr__(self, name: str) -> Any: ... # incomplete + +class BinaryFileOutput(FileOutput): ... + +class StringInput(Input): + default_source_path: ClassVar[str] + +class StringOutput(Output): + default_destination_path: ClassVar[str] + destination: Union[str, bytes] # only defined after call to write() + +class NullInput(Input): + default_source_path: ClassVar[str] + def read(self) -> str: ... + +class NullOutput(Output): + default_destination_path: ClassVar[str] + def write(self, data: object) -> None: ... + +class DocTreeInput(Input): + default_source_path: ClassVar[str] diff --git a/stubs/docutils/docutils/utils/__init__.pyi b/stubs/docutils/docutils/utils/__init__.pyi index 964e6fa3f426..a4c6e3168bcb 100644 --- a/stubs/docutils/docutils/utils/__init__.pyi +++ b/stubs/docutils/docutils/utils/__init__.pyi @@ -1,3 +1,14 @@ -from typing import Any +from collections.abc import Iterable +from typing import Any, Optional + +from ..io import FileOutput + +class DependencyList: + list: list[str] + file: Optional[FileOutput] + def __init__(self, output_file: Optional[str] = ..., dependencies: Iterable[str] = ...) -> None: ... + def set_output(self, output_file: Optional[str]) -> None: ... + def add(self, *filenames: str) -> None: ... + def close(self) -> None: ... def __getattr__(name: str) -> Any: ... # incomplete From 78d958bb0c4c7001921a74b488d16dd0a4343761 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 8 Apr 2021 14:26:04 +0200 Subject: [PATCH 04/11] Move recommonmark_wrapper.pyi to correct package --- stubs/docutils/docutils/{ => parsers}/recommonmark_wrapper.pyi | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename stubs/docutils/docutils/{ => parsers}/recommonmark_wrapper.pyi (100%) diff --git a/stubs/docutils/docutils/recommonmark_wrapper.pyi b/stubs/docutils/docutils/parsers/recommonmark_wrapper.pyi similarity index 100% rename from stubs/docutils/docutils/recommonmark_wrapper.pyi rename to stubs/docutils/docutils/parsers/recommonmark_wrapper.pyi From 272c7395001bc89e2a9a5dd2307d9fbb441ee324 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 8 Apr 2021 14:39:28 +0200 Subject: [PATCH 05/11] Partly add docutils parsers --- stubs/docutils/docutils/__init__.pyi | 2 +- stubs/docutils/docutils/parsers/__init__.pyi | 17 ++++++++++++-- stubs/docutils/docutils/parsers/null.pyi | 7 ++++-- .../docutils/parsers/rst/__init__.pyi | 22 +++++++++++++++++-- 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/stubs/docutils/docutils/__init__.pyi b/stubs/docutils/docutils/__init__.pyi index 1618fd1e0cb6..8ab5da6b4464 100644 --- a/stubs/docutils/docutils/__init__.pyi +++ b/stubs/docutils/docutils/__init__.pyi @@ -29,7 +29,7 @@ class SettingsSpec: settings_default_overrides: ClassVar[Optional[dict[Any, Any]]] relative_path_settings: ClassVar[tuple[Any, ...]] config_section: ClassVar[Optional[str]] - config_section_dependencies: ClassVar[Optional[list[str]]] + config_section_dependencies: ClassVar[Optional[tuple[str, ...]]] class TransformSpec: def get_transforms(self) -> list[Any]: ... diff --git a/stubs/docutils/docutils/parsers/__init__.pyi b/stubs/docutils/docutils/parsers/__init__.pyi index e27843e53382..d80d9102f9d1 100644 --- a/stubs/docutils/docutils/parsers/__init__.pyi +++ b/stubs/docutils/docutils/parsers/__init__.pyi @@ -1,3 +1,16 @@ -from typing import Any +from typing import Any, ClassVar -def __getattr__(name: str) -> Any: ... +from .. import Component + +class Parser(Component): + component_type: ClassVar[str] + config_section: ClassVar[str] + inputstring: Any # defined after call to setup_parse() + document: Any # defined after call to setup_parse() + def parse(self, inputstring: str, document) -> None: ... + def setup_parse(self, inputstring: str, document) -> None: ... + def finish_parse(self) -> None: ... + +_parser_aliases: dict[str, str] + +def get_parser_class(parser_name: str) -> type[Parser]: ... diff --git a/stubs/docutils/docutils/parsers/null.pyi b/stubs/docutils/docutils/parsers/null.pyi index 964e6fa3f426..bb8324ef89da 100644 --- a/stubs/docutils/docutils/parsers/null.pyi +++ b/stubs/docutils/docutils/parsers/null.pyi @@ -1,3 +1,6 @@ -from typing import Any +from typing import ClassVar -def __getattr__(name: str) -> Any: ... # incomplete +from .. import parsers + +class Parser(parsers.Parser): + config_section_dependencies: ClassVar[tuple[str, ...]] diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index 964e6fa3f426..f612294ef34c 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -1,3 +1,21 @@ -from typing import Any +from typing import Any, ClassVar, Optional +from typing_extensions import Literal -def __getattr__(name: str) -> Any: ... # incomplete +from ... import parsers + +class Parser(parsers.Parser): + config_section_dependencies: ClassVar[tuple[str, ...]] + initial_state: Literal["Body", "RFC2822Body"] + state_classes: Any + inliner: Any + def __init__(self, rfc2822: bool = ..., inliner: Optional[Any] = ...) -> None: ... + +class DirectiveError(Exception): + level: Any + msg: str + def __init__(self, level: Any, message: str) -> None: ... + +class Directive: + def __getattr__(self, name: str) -> Any: ... # incomplete + +def convert_directive_function(directive_fn): ... From 40fe72fb6e4b17353280133186b8e3ac8a6d7ccf Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Fri, 9 Apr 2021 12:14:22 +0200 Subject: [PATCH 06/11] Use absolute imports --- stubs/docutils/docutils/frontend.pyi | 4 ++-- stubs/docutils/docutils/parsers/__init__.pyi | 2 +- stubs/docutils/docutils/parsers/null.pyi | 2 +- stubs/docutils/docutils/parsers/rst/__init__.pyi | 2 +- stubs/docutils/docutils/utils/__init__.pyi | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index ddbd24e71e5e..c30f161e7a7a 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -2,8 +2,8 @@ import optparse from configparser import RawConfigParser from typing import Any, ClassVar, Optional -from . import SettingsSpec -from .utils import DependencyList +from docutils import SettingsSpec +from docutils.utils import DependencyList __docformat__: str diff --git a/stubs/docutils/docutils/parsers/__init__.pyi b/stubs/docutils/docutils/parsers/__init__.pyi index d80d9102f9d1..75fd95c8956e 100644 --- a/stubs/docutils/docutils/parsers/__init__.pyi +++ b/stubs/docutils/docutils/parsers/__init__.pyi @@ -1,6 +1,6 @@ from typing import Any, ClassVar -from .. import Component +from docutils import Component class Parser(Component): component_type: ClassVar[str] diff --git a/stubs/docutils/docutils/parsers/null.pyi b/stubs/docutils/docutils/parsers/null.pyi index bb8324ef89da..edc977325a1d 100644 --- a/stubs/docutils/docutils/parsers/null.pyi +++ b/stubs/docutils/docutils/parsers/null.pyi @@ -1,6 +1,6 @@ from typing import ClassVar -from .. import parsers +from docutils import parsers class Parser(parsers.Parser): config_section_dependencies: ClassVar[tuple[str, ...]] diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index f612294ef34c..8a0aa36e5430 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -1,7 +1,7 @@ from typing import Any, ClassVar, Optional from typing_extensions import Literal -from ... import parsers +from docutils import parsers class Parser(parsers.Parser): config_section_dependencies: ClassVar[tuple[str, ...]] diff --git a/stubs/docutils/docutils/utils/__init__.pyi b/stubs/docutils/docutils/utils/__init__.pyi index a4c6e3168bcb..a65823037647 100644 --- a/stubs/docutils/docutils/utils/__init__.pyi +++ b/stubs/docutils/docutils/utils/__init__.pyi @@ -1,7 +1,7 @@ from collections.abc import Iterable from typing import Any, Optional -from ..io import FileOutput +from docutils.io import FileOutput class DependencyList: list: list[str] From dcef9b9deaeb071bef88543edfa9e787c1dabee2 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Fri, 9 Apr 2021 12:21:32 +0200 Subject: [PATCH 07/11] Use absolute imports --- stubs/docutils/docutils/io.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/docutils/docutils/io.pyi b/stubs/docutils/docutils/io.pyi index 9efc60baea86..66da54d9391a 100644 --- a/stubs/docutils/docutils/io.pyi +++ b/stubs/docutils/docutils/io.pyi @@ -1,7 +1,7 @@ from typing import Any, ClassVar, Optional, Union from typing_extensions import Literal -from . import TransformSpec +from docutils import TransformSpec __docformat__: str From 9d29e9e44511e0198cd9d82e3b5f857c4c3f34b9 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Fri, 9 Apr 2021 12:42:50 +0200 Subject: [PATCH 08/11] Work around mypy bugs with generic types --- stubs/docutils/docutils/__init__.pyi | 12 ++++++------ stubs/docutils/docutils/frontend.pyi | 4 ++-- stubs/docutils/docutils/parsers/__init__.pyi | 4 ++-- stubs/docutils/docutils/parsers/null.pyi | 4 ++-- stubs/docutils/docutils/parsers/rst/__init__.pyi | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/stubs/docutils/docutils/__init__.pyi b/stubs/docutils/docutils/__init__.pyi index 8ab5da6b4464..be523039ab61 100644 --- a/stubs/docutils/docutils/__init__.pyi +++ b/stubs/docutils/docutils/__init__.pyi @@ -1,5 +1,5 @@ from collections.abc import Sequence -from typing import Any, ClassVar, NamedTuple, Optional, Union +from typing import Any, ClassVar, NamedTuple, Optional, Tuple, Union __docformat__: str __version__: str @@ -24,19 +24,19 @@ class ApplicationError(Exception): ... class DataError(ApplicationError): ... class SettingsSpec: - settings_spec: ClassVar[tuple[Any, ...]] + settings_spec: ClassVar[Tuple[Any, ...]] settings_defaults: ClassVar[Optional[dict[Any, Any]]] settings_default_overrides: ClassVar[Optional[dict[Any, Any]]] - relative_path_settings: ClassVar[tuple[Any, ...]] + relative_path_settings: ClassVar[Tuple[Any, ...]] config_section: ClassVar[Optional[str]] - config_section_dependencies: ClassVar[Optional[tuple[str, ...]]] + config_section_dependencies: ClassVar[Optional[Tuple[str, ...]]] class TransformSpec: def get_transforms(self) -> list[Any]: ... - default_transforms: ClassVar[tuple[Any, ...]] + default_transforms: ClassVar[Tuple[Any, ...]] unknown_reference_resolvers: ClassVar[list[Any]] class Component(SettingsSpec, TransformSpec): component_type: ClassVar[Optional[str]] - supported: ClassVar[tuple[str, ...]] + supported: ClassVar[Tuple[str, ...]] def supports(self, format: str) -> bool: ... diff --git a/stubs/docutils/docutils/frontend.pyi b/stubs/docutils/docutils/frontend.pyi index c30f161e7a7a..ea3eed086c03 100644 --- a/stubs/docutils/docutils/frontend.pyi +++ b/stubs/docutils/docutils/frontend.pyi @@ -1,6 +1,6 @@ import optparse from configparser import RawConfigParser -from typing import Any, ClassVar, Optional +from typing import Any, ClassVar, Optional, Tuple from docutils import SettingsSpec from docutils.utils import DependencyList @@ -45,7 +45,7 @@ def validate_smartquotes_locales( ) -> list[tuple[str, str]]: ... def make_paths_absolute(pathdict, keys, base_path: Optional[Any] = ...) -> None: ... def make_one_path_absolute(base_path, path) -> str: ... -def filter_settings_spec(settings_spec, *exclude, **replace) -> tuple[Any, ...]: ... +def filter_settings_spec(settings_spec, *exclude, **replace) -> Tuple[Any, ...]: ... class Values(optparse.Values): def update(self, other_dict, option_parser) -> None: ... diff --git a/stubs/docutils/docutils/parsers/__init__.pyi b/stubs/docutils/docutils/parsers/__init__.pyi index 75fd95c8956e..a77c183734e0 100644 --- a/stubs/docutils/docutils/parsers/__init__.pyi +++ b/stubs/docutils/docutils/parsers/__init__.pyi @@ -1,4 +1,4 @@ -from typing import Any, ClassVar +from typing import Any, ClassVar, Type from docutils import Component @@ -13,4 +13,4 @@ class Parser(Component): _parser_aliases: dict[str, str] -def get_parser_class(parser_name: str) -> type[Parser]: ... +def get_parser_class(parser_name: str) -> Type[Parser]: ... diff --git a/stubs/docutils/docutils/parsers/null.pyi b/stubs/docutils/docutils/parsers/null.pyi index edc977325a1d..1d3629109243 100644 --- a/stubs/docutils/docutils/parsers/null.pyi +++ b/stubs/docutils/docutils/parsers/null.pyi @@ -1,6 +1,6 @@ -from typing import ClassVar +from typing import ClassVar, Tuple from docutils import parsers class Parser(parsers.Parser): - config_section_dependencies: ClassVar[tuple[str, ...]] + config_section_dependencies: ClassVar[Tuple[str, ...]] diff --git a/stubs/docutils/docutils/parsers/rst/__init__.pyi b/stubs/docutils/docutils/parsers/rst/__init__.pyi index 8a0aa36e5430..cbece715fd96 100644 --- a/stubs/docutils/docutils/parsers/rst/__init__.pyi +++ b/stubs/docutils/docutils/parsers/rst/__init__.pyi @@ -1,10 +1,10 @@ -from typing import Any, ClassVar, Optional +from typing import Any, ClassVar, Optional, Tuple from typing_extensions import Literal from docutils import parsers class Parser(parsers.Parser): - config_section_dependencies: ClassVar[tuple[str, ...]] + config_section_dependencies: ClassVar[Tuple[str, ...]] initial_state: Literal["Body", "RFC2822Body"] state_classes: Any inliner: Any From 6e791f240778002cfe249c2d4eddc8a51be18daf Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Fri, 16 Apr 2021 20:08:00 +0200 Subject: [PATCH 09/11] Split OpenTextMode --- stdlib/_typeshed/__init__.pyi | 36 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/stdlib/_typeshed/__init__.pyi b/stdlib/_typeshed/__init__.pyi index 5be4f1ee12e9..0c78d8254736 100644 --- a/stdlib/_typeshed/__init__.pyi +++ b/stdlib/_typeshed/__init__.pyi @@ -70,61 +70,53 @@ else: BytesPath = bytes AnyPath = Union[Text, bytes] -OpenTextMode = Literal[ - "r", +OpenTextModeUpdating = Literal[ "r+", "+r", - "rt", - "tr", "rt+", "r+t", "+rt", "tr+", "t+r", "+tr", - "w", "w+", "+w", - "wt", - "tw", "wt+", "w+t", "+wt", "tw+", "t+w", "+tw", - "a", "a+", "+a", - "at", - "ta", "at+", "a+t", "+at", "ta+", "t+a", "+ta", - "x", "x+", "+x", - "xt", - "tx", "xt+", "x+t", "+xt", "tx+", "t+x", "+tx", - "U", - "rU", - "Ur", - "rtU", - "rUt", - "Urt", - "trU", - "tUr", - "Utr", ] +OpenTextModeWriting = Literal[ + "w", + "wt", + "tw", + "a", + "at", + "ta", + "x", + "xt", + "tx", +] +OpenTextModeReading = Literal["r", "rt", "tr", "U", "rU", "Ur", "rtU", "rUt", "Urt", "trU", "tUr", "Utr"] +OpenTextMode = Union[OpenTextModeUpdating, OpenTextModeWriting, OpenBinaryModeReading] OpenBinaryModeUpdating = Literal[ "rb+", "r+b", From 15a42fbd1ec2c6af714c7615dd40adbb62e90671 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Fri, 16 Apr 2021 20:10:59 +0200 Subject: [PATCH 10/11] Use file modes from _typeshed --- stubs/docutils/docutils/io.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stubs/docutils/docutils/io.pyi b/stubs/docutils/docutils/io.pyi index 66da54d9391a..556b54792da4 100644 --- a/stubs/docutils/docutils/io.pyi +++ b/stubs/docutils/docutils/io.pyi @@ -1,5 +1,5 @@ +from _typeshed import OpenBinaryModeReading, OpenBinaryModeWriting, OpenTextModeReading, OpenTextModeWriting from typing import Any, ClassVar, Optional, Union -from typing_extensions import Literal from docutils import TransformSpec @@ -37,13 +37,13 @@ class FileInput(Input): encoding: Optional[str] = ..., error_handler: str = ..., autoclose: bool = ..., - mode: Literal["r", "rb"] = ..., + mode: Union[OpenTextModeReading, OpenBinaryModeReading] = ..., ) -> None: ... def readlines(self) -> list[str]: ... def close(self) -> None: ... class FileOutput(Output): - mode: ClassVar[Literal["w", "wb"]] + mode: ClassVar[Union[OpenTextModeWriting, OpenBinaryModeWriting]] def __getattr__(self, name: str) -> Any: ... # incomplete class BinaryFileOutput(FileOutput): ... From 89c75e4cb50c848cad0d38da872725b9701dd1e7 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Fri, 16 Apr 2021 20:13:36 +0200 Subject: [PATCH 11/11] Fix OpenTextMode --- stdlib/_typeshed/__init__.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/_typeshed/__init__.pyi b/stdlib/_typeshed/__init__.pyi index 0c78d8254736..039c948fb055 100644 --- a/stdlib/_typeshed/__init__.pyi +++ b/stdlib/_typeshed/__init__.pyi @@ -116,7 +116,7 @@ OpenTextModeWriting = Literal[ "tx", ] OpenTextModeReading = Literal["r", "rt", "tr", "U", "rU", "Ur", "rtU", "rUt", "Urt", "trU", "tUr", "Utr"] -OpenTextMode = Union[OpenTextModeUpdating, OpenTextModeWriting, OpenBinaryModeReading] +OpenTextMode = Union[OpenTextModeUpdating, OpenTextModeWriting, OpenTextModeReading] OpenBinaryModeUpdating = Literal[ "rb+", "r+b",