Przeglądaj źródła

Add type hints: mwparserfromhell.nodes.extras.parameter

pull/338/head
Jakub Klinkovský 1 rok temu
rodzic
commit
d23cc614db
1 zmienionych plików z 20 dodań i 15 usunięć
  1. +20
    -15
      src/mwparserfromhell/nodes/extras/parameter.py

+ 20
- 15
src/mwparserfromhell/nodes/extras/parameter.py Wyświetl plik

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


from typing import TYPE_CHECKING, Any, Union

import re import re


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


if TYPE_CHECKING:
from ...wikicode import Wikicode

__all__ = ["Parameter"] __all__ = ["Parameter"]




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


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


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


@staticmethod @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 whether or not the given key can be hidden."""
return re.match(r"[1-9][0-9]*$", str(key).strip()) return re.match(r"[1-9][0-9]*$", str(key).strip())


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


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

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


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

@property @property
def showkey(self):
def showkey(self) -> bool:
"""Whether to show the parameter's key (i.e., its "name").""" """Whether to show the parameter's key (i.e., its "name")."""
return self._showkey 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 @showkey.setter
def showkey(self, newval):
def showkey(self, newval: Any) -> None:
newval = bool(newval) newval = bool(newval)
if not newval and not self.can_hide_key(self.name): if not newval and not self.can_hide_key(self.name):
raise ValueError("parameter key {!r} cannot be hidden".format(self.name)) raise ValueError("parameter key {!r} cannot be hidden".format(self.name))


Ładowanie…
Anuluj
Zapisz