소스 검색

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.


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

from ._base import Node
from ..utils import parse_anything

if TYPE_CHECKING:
from ..wikicode import Wikicode

__all__ = ["Argument"]


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

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

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

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

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

def __showtree__(self, write, get, mark):
def __showtree__(
self,
write: Callable[[str], None],
get: Callable[["Wikicode"], None],
mark: Callable[[], None],
) -> None:
write("{{{")
get(self.name)
if self.default is not None:
@@ -59,12 +69,16 @@ class Argument(Node):
write("}}}")

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

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

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

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

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

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


불러오는 중...
취소
저장