summaryrefslogtreecommitdiff
path: root/src/lxml/html
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2016-07-29 18:39:46 +0200
committerStefan Behnel <stefan_ml@behnel.de>2016-07-29 18:39:46 +0200
commit8132c755adad4a75ba855d985dd257493bccc7fd (patch)
tree5437b2d545e68a4b4f25cef8f979e33f09e87737 /src/lxml/html
parent2feb26c2a412880c77adb10dfc382d22275813c8 (diff)
downloadpython-lxml-8132c755adad4a75ba855d985dd257493bccc7fd.tar.gz
allow el.set("attr") in HTML trees without having to specify an explicit None value
Diffstat (limited to 'src/lxml/html')
-rw-r--r--src/lxml/html/__init__.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lxml/html/__init__.py b/src/lxml/html/__init__.py
index ba36272d..9d5ae953 100644
--- a/src/lxml/html/__init__.py
+++ b/src/lxml/html/__init__.py
@@ -239,6 +239,15 @@ class Classes(MutableSet):
class HtmlMixin(object):
+ def set(self, key, value=None):
+ """set(self, key, value=None)
+
+ Sets an element attribute. If no value is provided, or if the value is None,
+ creates a 'boolean' attribute without value, e.g. "<form novalidate></form>"
+ for ``form.set('novalidate')``.
+ """
+ super(HtmlElement, self).set(key, value)
+
@property
def classes(self):
"""
@@ -682,8 +691,9 @@ class HtmlComment(etree.CommentBase, HtmlMixin):
class HtmlElement(etree.ElementBase, HtmlMixin):
- # Override etree.ElementBase.cssselect, despite the MRO
+ # Override etree.ElementBase.cssselect() and set(), despite the MRO (FIXME: change base order?)
cssselect = HtmlMixin.cssselect
+ set = HtmlMixin.set
class HtmlProcessingInstruction(etree.PIBase, HtmlMixin):