Просмотр исходного кода

Add missing setters for some nodes and extras (#8)

tags/v0.1
Ben Kurtovic 12 лет назад
Родитель
Сommit
38b664f8c5
5 измененных файлов: 80 добавлений и 2 удалений
  1. +13
    -0
      mwparserfromhell/nodes/extras/attribute.py
  2. +1
    -1
      mwparserfromhell/nodes/extras/parameter.py
  3. +12
    -0
      mwparserfromhell/nodes/heading.py
  4. +22
    -1
      mwparserfromhell/nodes/html_entity.py
  5. +32
    -0
      mwparserfromhell/nodes/tag.py

+ 13
- 0
mwparserfromhell/nodes/extras/attribute.py Просмотреть файл

@@ -24,6 +24,7 @@ from __future__ import unicode_literals


from ...compat import str from ...compat import str
from ...string_mixin import StringMixIn from ...string_mixin import StringMixIn
from ...utils import parse_anything


__all__ = ["Attribute"] __all__ = ["Attribute"]


@@ -62,3 +63,15 @@ class Attribute(StringMixIn):
def quoted(self): def quoted(self):
"""Whether the attribute's value is quoted with double quotes.""" """Whether the attribute's value is quoted with double quotes."""
return self._quoted return self._quoted

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

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

@quoted.setter
def quoted(self, newval):
self._quoted = bool(newval)

+ 1
- 1
mwparserfromhell/nodes/extras/parameter.py Просмотреть файл

@@ -73,4 +73,4 @@ class Parameter(StringMixIn):


@showkey.setter @showkey.setter
def showkey(self, newval): def showkey(self, newval):
self._showkey = newval
self._showkey = bool(newval)

+ 12
- 0
mwparserfromhell/nodes/heading.py Просмотреть файл

@@ -24,6 +24,7 @@ from __future__ import unicode_literals


from . import Node from . import Node
from ..compat import str from ..compat import str
from ...utils import parse_anything


__all__ = ["Heading"] __all__ = ["Heading"]


@@ -60,3 +61,14 @@ class Heading(Node):
def level(self): def level(self):
"""The heading level, as an integer between 1 and 6, inclusive.""" """The heading level, as an integer between 1 and 6, inclusive."""
return self._level return self._level

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

@level.setter
def level(self, value):
value = int(value)
if value < 1 or value > 6:
raise ValueError(value)
self._level = value

+ 22
- 1
mwparserfromhell/nodes/html_entity.py Просмотреть файл

@@ -23,7 +23,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals


from . import Node from . import Node
from ..compat import htmlentities
from ..compat import htmlentities, str


__all__ = ["HTMLEntity"] __all__ = ["HTMLEntity"]


@@ -116,6 +116,27 @@ class HTMLEntity(Node):
""" """
return self._hex_char return self._hex_char


@value.setter
def value(self, newval):
newval = str(newval)
if newval not in htmlentities.entitydefs:
test = int(self.value, 16)
if test < 0 or (test > 0x10FFFF and int(self.value) > 0x10FFFF):
raise ValueError(newval)
self._value = newval

@named.setter
def named(self, newval):
self._named = bool(newval)

@hexadecimal.setter
def hexadecimal(self, newval):
self._hexadecimal = bool(newval)

@hex_char.setter
def hex_char(self, newval):
self._hex_char = bool(newval)

def normalize(self): def normalize(self):
"""Return the unicode character represented by the HTML entity.""" """Return the unicode character represented by the HTML entity."""
if self.named: if self.named:


+ 32
- 0
mwparserfromhell/nodes/tag.py Просмотреть файл

@@ -24,6 +24,7 @@ from __future__ import unicode_literals


from . import Node, Text from . import Node, Text
from ..compat import str from ..compat import str
from ..utils import parse_anything


__all__ = ["Tag"] __all__ = ["Tag"]


@@ -207,3 +208,34 @@ class Tag(Node):
def close_padding(self): def close_padding(self):
"""How much spacing to insert before the last closing >.""" """How much spacing to insert before the last closing >."""
return self._close_padding return self._close_padding

@type.setter
def type(self, value):
value = int(value)
if value not in self.TAGS_INVISIBLE | self.TAGS_VISIBLE:
raise ValueError(value)
self._type = value

@tag.setter
def tag(self, value):
self._tag = parse_anything(value)

@contents.setter
def contents(self, value):
self._contents = parse_anything(value)

@showtag.setter
def showtag(self, value):
self._showtag = bool(value)

@self_closing.setter
def self_closing(self, value):
self._self_closing = bool(value)

@open_padding.setter
def open_padding(self, value):
self._open_padding = int(value)

@close_padding.setter
def close_padding(self, value):
self._close_padding = int(value)

Загрузка…
Отмена
Сохранить