From 2b73f318009b013992935c26bce4c96a521cda02 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 17 Sep 2020 15:55:21 +0200 Subject: [PATCH 1/3] Add a few missing stdlib modules Part of #4545 --- .../distutils/command/install_egg_info.pyi | 10 ++++++++++ stdlib/2and3/distutils/command/upload.pyi | 8 ++++++++ stdlib/2and3/distutils/config.pyi | 17 +++++++++++++++++ stdlib/2and3/xml/dom/__init__.pyi | 2 ++ stdlib/2and3/xml/dom/_types.pyi | 10 ++++++++++ stdlib/2and3/xml/dom/domreg.pyi | 9 +++++++++ stdlib/3/json/tool.pyi | 1 + 7 files changed, 57 insertions(+) create mode 100644 stdlib/2and3/distutils/command/install_egg_info.pyi create mode 100644 stdlib/2and3/distutils/command/upload.pyi create mode 100644 stdlib/2and3/distutils/config.pyi create mode 100644 stdlib/2and3/xml/dom/_types.pyi create mode 100644 stdlib/2and3/xml/dom/domreg.pyi create mode 100644 stdlib/3/json/tool.pyi diff --git a/stdlib/2and3/distutils/command/install_egg_info.pyi b/stdlib/2and3/distutils/command/install_egg_info.pyi new file mode 100644 index 000000000000..80ffb19bda74 --- /dev/null +++ b/stdlib/2and3/distutils/command/install_egg_info.pyi @@ -0,0 +1,10 @@ +from distutils.cmd import Command +from typing import ClassVar, List, Optional, Tuple + +class install_egg_info(Command): + description: ClassVar[str] + user_options: ClassVar[List[Tuple[str, Optional[str], str]]] + def initialize_options(self) -> None: ... + def finalize_options(self) -> None: ... + def run(self) -> None: ... + def get_outputs(self) -> List[str]: ... diff --git a/stdlib/2and3/distutils/command/upload.pyi b/stdlib/2and3/distutils/command/upload.pyi new file mode 100644 index 000000000000..c49a4e5b4937 --- /dev/null +++ b/stdlib/2and3/distutils/command/upload.pyi @@ -0,0 +1,8 @@ +from distutils.config import PyPIRCCommand +from typing import ClassVar, List, Optional, Tuple + +class upload(PyPIRCCommand): + description: ClassVar[str] + boolean_options: ClassVar[List[str]] + def run(self) -> None: ... + def upload_file(self, command, pyversion, filename) -> None: ... diff --git a/stdlib/2and3/distutils/config.pyi b/stdlib/2and3/distutils/config.pyi new file mode 100644 index 000000000000..e60507e0b65a --- /dev/null +++ b/stdlib/2and3/distutils/config.pyi @@ -0,0 +1,17 @@ +from abc import abstractmethod +from distutils.cmd import Command +from typing import ClassVar, List, Optional, Tuple + +DEFAULT_PYPIRC: str + +class PyPIRCCommand(Command): + DEFAULT_REPOSITORY: ClassVar[str] + DEFAULT_REALM: ClassVar[str] + repository: None + realm: None + user_options: ClassVar[List[Tuple[str, Optional[str], str]]] + boolean_options: ClassVar[List[str]] + def initialize_options(self) -> None: ... + def finalize_options(self) -> None: ... + @abstractmethod + def run(self) -> None: ... diff --git a/stdlib/2and3/xml/dom/__init__.pyi b/stdlib/2and3/xml/dom/__init__.pyi index 0fbc0a0afcbe..c5766c326c3e 100644 --- a/stdlib/2and3/xml/dom/__init__.pyi +++ b/stdlib/2and3/xml/dom/__init__.pyi @@ -1,5 +1,7 @@ from typing import Any +from .domreg import getDOMImplementation as getDOMImplementation, registerDOMImplementation as registerDOMImplementation + class Node: ELEMENT_NODE: int ATTRIBUTE_NODE: int diff --git a/stdlib/2and3/xml/dom/_types.pyi b/stdlib/2and3/xml/dom/_types.pyi new file mode 100644 index 000000000000..7ad28aef1b75 --- /dev/null +++ b/stdlib/2and3/xml/dom/_types.pyi @@ -0,0 +1,10 @@ +# Stub-only types. This module does not exist at runtime. + +from typing import Any, Optional +from typing_extensions import Protocol + +# As defined https://docs.python.org/3/library/xml.dom.html#domimplementation-objects +class DOMImplementation(Protocol): + def hasFeature(self, feature: str, version: Optional[str]) -> bool: ... + def createDocument(self, namespaceUri: str, qualifiedName: str, doctype: Optional[Any]) -> Any: ... + def createDocumentType(self, qualifiedName: str, publicId: str, systemId: str) -> Any: ... diff --git a/stdlib/2and3/xml/dom/domreg.pyi b/stdlib/2and3/xml/dom/domreg.pyi new file mode 100644 index 000000000000..c65949ef97f8 --- /dev/null +++ b/stdlib/2and3/xml/dom/domreg.pyi @@ -0,0 +1,9 @@ +from typing import Any, Callable, Dict, Iterable, Optional, Tuple, Union + +from ._types import DOMImplementation + +well_known_implementations: Dict[str, str] +registered: Dict[str, Callable[[], DOMImplementation]] + +def registerDOMImplementation(name: str, factory: Callable[[], DOMImplementation]) -> None: ... +def getDOMImplementation(name: Optional[str], features: Union[str, Iterable[Tuple[str, Optional[str]]]]) -> DOMImplementation: ... diff --git a/stdlib/3/json/tool.pyi b/stdlib/3/json/tool.pyi new file mode 100644 index 000000000000..7e7363e797f3 --- /dev/null +++ b/stdlib/3/json/tool.pyi @@ -0,0 +1 @@ +def main() -> None: ... From c672751bf6bf2a30df6c1bd55bc16c6a779444ef Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 17 Sep 2020 16:10:51 +0200 Subject: [PATCH 2/3] Move xml.dom._types to _typeshed.xml --- stdlib/2and3/{xml/dom/_types.pyi => _typeshed/xml.pyi} | 0 stdlib/2and3/xml/dom/domreg.pyi | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) rename stdlib/2and3/{xml/dom/_types.pyi => _typeshed/xml.pyi} (100%) diff --git a/stdlib/2and3/xml/dom/_types.pyi b/stdlib/2and3/_typeshed/xml.pyi similarity index 100% rename from stdlib/2and3/xml/dom/_types.pyi rename to stdlib/2and3/_typeshed/xml.pyi diff --git a/stdlib/2and3/xml/dom/domreg.pyi b/stdlib/2and3/xml/dom/domreg.pyi index c65949ef97f8..e86e56f41564 100644 --- a/stdlib/2and3/xml/dom/domreg.pyi +++ b/stdlib/2and3/xml/dom/domreg.pyi @@ -1,7 +1,6 @@ +from _typeshed.xml import DOMImplementation from typing import Any, Callable, Dict, Iterable, Optional, Tuple, Union -from ._types import DOMImplementation - well_known_implementations: Dict[str, str] registered: Dict[str, Callable[[], DOMImplementation]] From 9467efaa2b7e75478264179f51feeb07ffcc66f2 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 17 Sep 2020 16:13:05 +0200 Subject: [PATCH 3/3] Add missing default value --- stdlib/2and3/xml/dom/domreg.pyi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stdlib/2and3/xml/dom/domreg.pyi b/stdlib/2and3/xml/dom/domreg.pyi index e86e56f41564..6f479b097b65 100644 --- a/stdlib/2and3/xml/dom/domreg.pyi +++ b/stdlib/2and3/xml/dom/domreg.pyi @@ -5,4 +5,6 @@ well_known_implementations: Dict[str, str] registered: Dict[str, Callable[[], DOMImplementation]] def registerDOMImplementation(name: str, factory: Callable[[], DOMImplementation]) -> None: ... -def getDOMImplementation(name: Optional[str], features: Union[str, Iterable[Tuple[str, Optional[str]]]]) -> DOMImplementation: ... +def getDOMImplementation( + name: Optional[str] = ..., features: Union[str, Iterable[Tuple[str, Optional[str]]]] = ... +) -> DOMImplementation: ...