From b8ef1ee3e51b0772548673fd2e77ce9d5680be60 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sat, 8 Aug 2020 15:43:40 -0700 Subject: [PATCH 1/4] Contributed stubs for markdown package --- third_party/2and3/markdown/core.pyi | 46 +++++++++++++++++++ .../2and3/markdown/extensions/__init__.pyi | 12 +++++ 2 files changed, 58 insertions(+) create mode 100644 third_party/2and3/markdown/core.pyi create mode 100644 third_party/2and3/markdown/extensions/__init__.pyi diff --git a/third_party/2and3/markdown/core.pyi b/third_party/2and3/markdown/core.pyi new file mode 100644 index 000000000000..d169d7e8886b --- /dev/null +++ b/third_party/2and3/markdown/core.pyi @@ -0,0 +1,46 @@ +from .extensions import Extension +from typing import BinaryIO, Mapping, Optional, Sequence, Text, TextIO, Union + +from typing_extensions import Literal + +class Markdown: + def __init__( + self, + extensions: Optional[Sequence[Union[str, Extension]]] = ..., + extension_configs: Optional[Mapping[str, Mapping[str, str]]] = ..., + output_format: Optional[Literal["xhtml", "html"]] = ..., + tab_length: Optional[int] = ..., + ) -> None: ... + def build_parser(self) -> Markdown: ... + def registerExtensions( + self, extensions: Sequence[Union[Extension, str]], configs: Mapping[str, Mapping[str, str]] + ) -> Markdown: ... + def build_extension(self, ext_name: Text, configs: Mapping[str, str]) -> Extension: ... + def registerExtension(self, extension: Extension) -> Markdown: ... + def reset(self: Markdown) -> Markdown: ... + def set_output_format(self, format: Literal["xhtml", "html"]) -> Markdown: ... + def is_block_level(self, tag: str) -> bool: ... + def convert(self, source: Text) -> Text: ... + def convertFile( + self, + input: Optional[Union[str, TextIO, BinaryIO]] = ..., + output: Optional[Union[str, TextIO, BinaryIO]] = ..., + encoding: Optional[str] = ..., + ) -> Markdown: ... + +def markdown( + text: Text, + extensions: Optional[Sequence[Union[str, Extension]]] = ..., + extension_configs: Optional[Mapping[str, Mapping[str, str]]] = ..., + output_format: Optional[Literal["xhtml", "html"]] = ..., + tab_length: Optional[int] = ..., +) -> Text: ... +def markdownFromFile( + input: Optional[Union[str, TextIO, BinaryIO]] = ..., + output: Optional[Union[str, TextIO, BinaryIO]] = ..., + encoding: Optional[str] = ..., + extensions: Optional[Sequence[Union[str, Extension]]] = ..., + extension_configs: Optional[Mapping[str, Mapping[str, str]]] = ..., + output_format: Optional[Literal["xhtml", "html"]] = ..., + tab_length: Optional[int] = ..., +) -> None: ... diff --git a/third_party/2and3/markdown/extensions/__init__.pyi b/third_party/2and3/markdown/extensions/__init__.pyi new file mode 100644 index 000000000000..2943805ec1f5 --- /dev/null +++ b/third_party/2and3/markdown/extensions/__init__.pyi @@ -0,0 +1,12 @@ +from ..core import Markdown +from typing import Mapping, Sequence + +class Extension: + config: Mapping[str, str] = ... + def __init__(self, **kwargs: Mapping[str, str]) -> None: ... + def getConfig(self, key: str, default: str = ...) -> str: ... + def getConfigs(self) -> Mapping[str, str]: ... + def getConfigInfo(self) -> Sequence[Mapping[str, str]]: ... + def setConfig(self, key: str, value: str) -> None: ... + def setConfigs(self, items: Mapping[str, str]) -> None: ... + def extendMarkdown(self, md: Markdown) -> None: ... From 132038155c5d30bc48f0a327a4f26ec3b274cbba Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sat, 8 Aug 2020 16:09:39 -0700 Subject: [PATCH 2/4] Incorporated code review feedback and fixed CI isort error --- third_party/2and3/markdown/core.pyi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/third_party/2and3/markdown/core.pyi b/third_party/2and3/markdown/core.pyi index d169d7e8886b..116bf2f83eaf 100644 --- a/third_party/2and3/markdown/core.pyi +++ b/third_party/2and3/markdown/core.pyi @@ -1,11 +1,12 @@ -from .extensions import Extension from typing import BinaryIO, Mapping, Optional, Sequence, Text, TextIO, Union +from .extensions import Extension from typing_extensions import Literal class Markdown: def __init__( self, + *, extensions: Optional[Sequence[Union[str, Extension]]] = ..., extension_configs: Optional[Mapping[str, Mapping[str, str]]] = ..., output_format: Optional[Literal["xhtml", "html"]] = ..., @@ -30,12 +31,14 @@ class Markdown: def markdown( text: Text, + *, extensions: Optional[Sequence[Union[str, Extension]]] = ..., extension_configs: Optional[Mapping[str, Mapping[str, str]]] = ..., output_format: Optional[Literal["xhtml", "html"]] = ..., tab_length: Optional[int] = ..., ) -> Text: ... def markdownFromFile( + *, input: Optional[Union[str, TextIO, BinaryIO]] = ..., output: Optional[Union[str, TextIO, BinaryIO]] = ..., encoding: Optional[str] = ..., From a82f0209d7c542e681bb9eb85a6fdd5616efe47b Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sat, 8 Aug 2020 16:11:30 -0700 Subject: [PATCH 3/4] Added missing `__init__.pyi` file --- third_party/2and3/markdown/__init__.pyi | 1 + 1 file changed, 1 insertion(+) create mode 100644 third_party/2and3/markdown/__init__.pyi diff --git a/third_party/2and3/markdown/__init__.pyi b/third_party/2and3/markdown/__init__.pyi new file mode 100644 index 000000000000..07ef67f1e2be --- /dev/null +++ b/third_party/2and3/markdown/__init__.pyi @@ -0,0 +1 @@ +from .core import Markdown as Markdown, markdown as markdown, markdownFromFile as markdownFromFile From c3386b820034b8cf7a05bc999f1f4c78312d7320 Mon Sep 17 00:00:00 2001 From: hauntsaninja <> Date: Sat, 8 Aug 2020 16:40:02 -0700 Subject: [PATCH 4/4] make isort happy --- third_party/2and3/markdown/core.pyi | 4 ++-- third_party/2and3/markdown/extensions/__init__.pyi | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/third_party/2and3/markdown/core.pyi b/third_party/2and3/markdown/core.pyi index 116bf2f83eaf..5cf7c630543d 100644 --- a/third_party/2and3/markdown/core.pyi +++ b/third_party/2and3/markdown/core.pyi @@ -1,8 +1,8 @@ from typing import BinaryIO, Mapping, Optional, Sequence, Text, TextIO, Union -from .extensions import Extension - from typing_extensions import Literal +from .extensions import Extension + class Markdown: def __init__( self, diff --git a/third_party/2and3/markdown/extensions/__init__.pyi b/third_party/2and3/markdown/extensions/__init__.pyi index 2943805ec1f5..13905d15032e 100644 --- a/third_party/2and3/markdown/extensions/__init__.pyi +++ b/third_party/2and3/markdown/extensions/__init__.pyi @@ -1,6 +1,7 @@ -from ..core import Markdown from typing import Mapping, Sequence +from ..core import Markdown + class Extension: config: Mapping[str, str] = ... def __init__(self, **kwargs: Mapping[str, str]) -> None: ...