Bläddra i källkod

Add type hints: mwparserfromhell.nodes.wikilink

pull/338/head
Jakub Klinkovský 1 år sedan
förälder
incheckning
8f06437cea
1 ändrade filer med 22 tillägg och 12 borttagningar
  1. +22
    -12
      src/mwparserfromhell/nodes/wikilink.py

+ 22
- 12
src/mwparserfromhell/nodes/wikilink.py Visa fil

@@ -19,36 +19,46 @@
# SOFTWARE. # SOFTWARE.




from typing import TYPE_CHECKING, Any, Optional, Generator, Callable

from ._base import Node from ._base import Node
from ..utils import parse_anything from ..utils import parse_anything


if TYPE_CHECKING:
from ..wikicode import Wikicode

__all__ = ["Wikilink"] __all__ = ["Wikilink"]




class Wikilink(Node): class Wikilink(Node):
"""Represents an internal wikilink, like ``[[Foo|Bar]]``.""" """Represents an internal wikilink, like ``[[Foo|Bar]]``."""


def __init__(self, title, text=None):
def __init__(self, title: Any, text: Any = None):
super().__init__() super().__init__()
self.title = title self.title = title
self.text = text self.text = text


def __str__(self):
def __str__(self) -> str:
if self.text is not None: if self.text is not None:
return "[[" + str(self.title) + "|" + str(self.text) + "]]" return "[[" + str(self.title) + "|" + str(self.text) + "]]"
return "[[" + str(self.title) + "]]" return "[[" + str(self.title) + "]]"


def __children__(self):
def __children__(self) -> Generator["Wikicode", None, None]:
yield self.title yield self.title
if self.text is not None: if self.text is not None:
yield self.text yield self.text


def __strip__(self, **kwargs):
def __strip__(self, **kwargs: Any) -> Optional[str]:
if self.text is not None: if self.text is not None:
return self.text.strip_code(**kwargs) return self.text.strip_code(**kwargs)
return self.title.strip_code(**kwargs) return self.title.strip_code(**kwargs)


def __showtree__(self, write, get, mark):
def __showtree__(
self,
write: Callable[[str], None],
get: Callable[["Wikicode"], None],
mark: Callable[[], None],
) -> None:
write("[[") write("[[")
get(self.title) get(self.title)
if self.text is not None: if self.text is not None:
@@ -58,21 +68,21 @@ class Wikilink(Node):
write("]]") write("]]")


@property @property
def title(self):
def title(self) -> "Wikicode":
"""The title of the linked page, as a :class:`.Wikicode` object.""" """The title of the linked page, as a :class:`.Wikicode` object."""
return self._title return self._title


@title.setter
def title(self, value: Any) -> None:
self._title = parse_anything(value)

@property @property
def text(self):
def text(self) -> Optional["Wikicode"]:
"""The text to display (if any), as a :class:`.Wikicode` object.""" """The text to display (if any), as a :class:`.Wikicode` object."""
return self._text return self._text


@title.setter
def title(self, value):
self._title = parse_anything(value)

@text.setter @text.setter
def text(self, value):
def text(self, value: Any) -> None:
if value is None: if value is None:
self._text = None self._text = None
else: else:


Laddar…
Avbryt
Spara