瀏覽代碼

Add type hints: mwparserfromhell.nodes.extras.parameter

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

+ 20
- 15
src/mwparserfromhell/nodes/extras/parameter.py 查看文件

@@ -18,11 +18,16 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

from typing import TYPE_CHECKING, Any, Union

import re

from ...string_mixin import StringMixIn
from ...utils import parse_anything

if TYPE_CHECKING:
from ...wikicode import Wikicode

__all__ = ["Parameter"]


@@ -35,47 +40,47 @@ class Parameter(StringMixIn):
``showkey`` is ``True``.
"""

def __init__(self, name, value, showkey=True):
def __init__(self, name: Any, value: Any, showkey: bool = True) -> None:
super().__init__()
self.name = name
self.value = value
self.showkey = showkey

def __str__(self):
def __str__(self) -> str:
if self.showkey:
return str(self.name) + "=" + str(self.value)
return str(self.value)

@staticmethod
def can_hide_key(key):
def can_hide_key(key: Any) -> Union[re.Match, None]:
"""Return whether or not the given key can be hidden."""
return re.match(r"[1-9][0-9]*$", str(key).strip())

@property
def name(self):
def name(self) -> "Wikicode":
"""The name of the parameter as a :class:`.Wikicode` object."""
return self._name

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

@property
def value(self):
def value(self) -> "Wikicode":
"""The value of the parameter as a :class:`.Wikicode` object."""
return self._value

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

@property
def showkey(self):
def showkey(self) -> bool:
"""Whether to show the parameter's key (i.e., its "name")."""
return self._showkey

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

@value.setter
def value(self, newval):
self._value = parse_anything(newval)

@showkey.setter
def showkey(self, newval):
def showkey(self, newval: Any) -> None:
newval = bool(newval)
if not newval and not self.can_hide_key(self.name):
raise ValueError("parameter key {!r} cannot be hidden".format(self.name))


Loading…
取消
儲存