瀏覽代碼

Add type hints: mwparserfromhell.nodes.argument

pull/338/head
Jakub Klinkovský 1 年之前
父節點
當前提交
c7122e4661
共有 1 個文件被更改,包括 22 次插入 和 12 次删除
  1. +22
    -12
      src/mwparserfromhell/nodes/argument.py

+ 22
- 12
src/mwparserfromhell/nodes/argument.py 查看文件

@@ -19,37 +19,47 @@
# SOFTWARE. # SOFTWARE.




from typing import TYPE_CHECKING, Any, Generator, Optional, 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__ = ["Argument"] __all__ = ["Argument"]




class Argument(Node): class Argument(Node):
"""Represents a template argument substitution, like ``{{{foo}}}``.""" """Represents a template argument substitution, like ``{{{foo}}}``."""


def __init__(self, name, default=None):
def __init__(self, name: Any, default: Any = None):
super().__init__() super().__init__()
self.name = name self.name = name
self.default = default self.default = default


def __str__(self):
def __str__(self) -> str:
start = "{{{" + str(self.name) start = "{{{" + str(self.name)
if self.default is not None: if self.default is not None:
return start + "|" + str(self.default) + "}}}" return start + "|" + str(self.default) + "}}}"
return start + "}}}" return start + "}}}"


def __children__(self):
def __children__(self) -> Generator["Wikicode"]:
yield self.name yield self.name
if self.default is not None: if self.default is not None:
yield self.default yield self.default


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


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.name) get(self.name)
if self.default is not None: if self.default is not None:
@@ -59,12 +69,16 @@ class Argument(Node):
write("}}}") write("}}}")


@property @property
def name(self):
def name(self) -> "Wikicode":
"""The name of the argument to substitute.""" """The name of the argument to substitute."""
return self._name return self._name


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

@property @property
def default(self):
def default(self) -> Optional["Wikicode"]:
"""The default value to substitute if none is passed. """The default value to substitute if none is passed.


This will be ``None`` if the argument wasn't defined with one. The This will be ``None`` if the argument wasn't defined with one. The
@@ -74,12 +88,8 @@ class Argument(Node):
""" """
return self._default return self._default


@name.setter
def name(self, value):
self._name = parse_anything(value)

@default.setter @default.setter
def default(self, default):
def default(self, default: Any) -> None:
if default is None: if default is None:
self._default = None self._default = None
else: else:


Loading…
取消
儲存