Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9dca7d8

Browse files
committed
Make DOM treebuilder's AttrList return a MutableMapping
1 parent911cf45 commit9dca7d8

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

‎html5lib/treebuilders/dom.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__importabsolute_import,division,unicode_literals
22

33

4+
fromcollectionsimportMutableMapping
45
fromxml.domimportminidom,Node
56
importweakref
67

@@ -13,34 +14,41 @@
1314
defgetDomBuilder(DomImplementation):
1415
Dom=DomImplementation
1516

16-
classAttrList(object):
17+
classAttrList(MutableMapping):
1718
def__init__(self,element):
1819
self.element=element
1920

2021
def__iter__(self):
21-
returnlist(self.element.attributes.items()).__iter__()
22+
returniter(self.element.attributes.keys())
2223

2324
def__setitem__(self,name,value):
24-
self.element.setAttribute(name,value)
25+
ifisinstance(name,tuple):
26+
raiseNotImplementedError
27+
else:
28+
attr=self.element.ownerDocument.createAttribute(name)
29+
attr.value=value
30+
self.element.attributes[name]=attr
2531

2632
def__len__(self):
27-
returnlen(list(self.element.attributes.items()))
33+
returnlen(self.element.attributes)
2834

2935
defitems(self):
30-
return [(item[0],item[1])foritemin
31-
list(self.element.attributes.items())]
36+
returnlist(self.element.attributes.items())
3237

33-
defkeys(self):
34-
returnlist(self.element.attributes.keys())
38+
defvalues(self):
39+
returnlist(self.element.attributes.values())
3540

3641
def__getitem__(self,name):
37-
returnself.element.getAttribute(name)
42+
ifisinstance(name,tuple):
43+
raiseNotImplementedError
44+
else:
45+
returnself.element.attributes[name].value
3846

39-
def__contains__(self,name):
47+
def__delitem__(self,name):
4048
ifisinstance(name,tuple):
4149
raiseNotImplementedError
4250
else:
43-
returnself.element.hasAttribute(name)
51+
delself.element.attributes[name]
4452

4553
classNodeBuilder(_base.Node):
4654
def__init__(self,element):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp