- Notifications
You must be signed in to change notification settings - Fork294
Closed
Description
In SVG 1.1, you could have something like this:
<svg><pattern xlink:href="http://example.com/#whatever" /></svg>
In Python 3, that creates the following attributes:
dict_items([((None, 'id'), 'patt1'), (('http://www.w3.org/1999/xlink', 'href'), '#patt2')])
The problem is that this means we're comparingNone
with a str here:
key=lambdax:x[0]): |
That kicks up a TypeError.
Script:
import html5libfrom html5lib.serializer import HTMLSerializertext = '<svg><pattern xlink:href="http://example.com/#foo" /></svg>'parser = html5lib.HTMLParser()dom = parser.parseFragment(text)walker = html5lib.getTreeWalker('etree')ser = HTMLSerializer(alphabetical_attributes=True)ser.render(walker(dom))
Traceback:
Traceback (most recent call last): File "foo.py", line 12, in <module> ser.render(walker(dom)) File "/home/willkg/mozilla/bleach/.tox/py34-html5lib99999999/lib/python3.4/site-packages/html5lib/serializer.py", line 323, in render return "".join(list(self.serialize(treewalker))) File "/home/willkg/mozilla/bleach/.tox/py34-html5lib99999999/lib/python3.4/site-packages/html5lib/serializer.py", line 209, in serialize for token in treewalker: File "/home/willkg/mozilla/bleach/.tox/py34-html5lib99999999/lib/python3.4/site-packages/html5lib/filters/optionaltags.py", line 18, in __iter__ for previous, token, next in self.slider(): File "/home/willkg/mozilla/bleach/.tox/py34-html5lib99999999/lib/python3.4/site-packages/html5lib/filters/optionaltags.py", line 9, in slider for token in self.source: File "/home/willkg/mozilla/bleach/.tox/py34-html5lib99999999/lib/python3.4/site-packages/html5lib/filters/alphabeticalattributes.py", line 17, in __iter__ key=lambda x: x[0]):TypeError: unorderable types: str() < NoneType()
This is true of html5lib 0.99999999 (8 9s) and 0.999999999 (9 9s).
Metadata
Metadata
Assignees
Labels
No labels