Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add docutils definitions and (incomplete) modules #5192

Merged
merged 11 commits into from
Apr 16, 2021
43 changes: 41 additions & 2 deletions stubs/docutils/docutils/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
from typing import Any
from collections.abc import Sequence
from typing import Any, ClassVar, NamedTuple, Optional, Tuple, Union

def __getattr__(name: str) -> Any: ...
__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[Tuple[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: ...
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/core.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
4 changes: 1 addition & 3 deletions stubs/docutils/docutils/examples.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from typing import Any

html_parts: Any

def __getattr__(name: str) -> Any: ...
def __getattr__(name: str) -> Any: ... # incomplete
70 changes: 70 additions & 0 deletions stubs/docutils/docutils/frontend.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import optparse
from configparser import RawConfigParser
from typing import Any, ClassVar, Optional, Tuple

from docutils import SettingsSpec
from docutils.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): ...
67 changes: 67 additions & 0 deletions stubs/docutils/docutils/io.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
from typing import Any, ClassVar, Optional, Union
from typing_extensions import Literal

from docutils 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"] = ...,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the default but not the only possibility; it also allows rU in Python 2 at least.

) -> None: ...
def readlines(self) -> list[str]: ...
def close(self) -> None: ...

class FileOutput(Output):
mode: ClassVar[Literal["w", "wb"]]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can also be wider; I guess we can use the aliases from _typeshed

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]
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/languages/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
2 changes: 1 addition & 1 deletion stubs/docutils/docutils/nodes.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
17 changes: 15 additions & 2 deletions stubs/docutils/docutils/parsers/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
from typing import Any
from typing import Any, ClassVar, Type

def __getattr__(name: str) -> Any: ...
from docutils 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]: ...
6 changes: 6 additions & 0 deletions stubs/docutils/docutils/parsers/null.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from typing import ClassVar, Tuple

from docutils import parsers

class Parser(parsers.Parser):
config_section_dependencies: ClassVar[Tuple[str, ...]]
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/parsers/recommonmark_wrapper.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
22 changes: 20 additions & 2 deletions stubs/docutils/docutils/parsers/rst/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
from typing import Any
from typing import Any, ClassVar, Optional, Tuple
from typing_extensions import Literal

def __getattr__(name: str) -> Any: ...
from docutils 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): ...
2 changes: 1 addition & 1 deletion stubs/docutils/docutils/parsers/rst/nodes.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ...
def __getattr__(name: str) -> Any: ... # incomplete
2 changes: 1 addition & 1 deletion stubs/docutils/docutils/parsers/rst/states.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/readers/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/readers/doctree.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/readers/pep.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/readers/standalone.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/statemachine.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/transforms/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete
14 changes: 14 additions & 0 deletions stubs/docutils/docutils/utils/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from collections.abc import Iterable
from typing import Any, Optional

from docutils.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
3 changes: 3 additions & 0 deletions stubs/docutils/docutils/writers/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from typing import Any

def __getattr__(name: str) -> Any: ... # incomplete