Selaa lähdekoodia

Add type hints: mwparserfromhell.nodes.wikilink

pull/338/head
Jakub Klinkovský 1 vuosi sitten
vanhempi
commit
8f06437cea
1 muutettua tiedostoa jossa 22 lisäystä ja 12 poistoa
  1. +22
    -12
      src/mwparserfromhell/nodes/wikilink.py

+ 22
- 12
src/mwparserfromhell/nodes/wikilink.py Näytä tiedosto

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


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

from ._base import Node
from ..utils import parse_anything

if TYPE_CHECKING:
from ..wikicode import Wikicode

__all__ = ["Wikilink"]


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

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

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

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

def __strip__(self, **kwargs):
def __strip__(self, **kwargs: Any) -> Optional[str]:
if self.text is not None:
return self.text.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("[[")
get(self.title)
if self.text is not None:
@@ -58,21 +68,21 @@ class Wikilink(Node):
write("]]")

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

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

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

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

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


Ladataan…
Peruuta
Tallenna