|
1 | 1 | from __future__importabsolute_import,division,unicode_literals |
2 | 2 |
|
3 | 3 |
|
| 4 | +fromcollectionsimportMutableMapping |
4 | 5 | fromxml.domimportminidom,Node |
5 | 6 | importweakref |
6 | 7 |
|
|
13 | 14 | defgetDomBuilder(DomImplementation): |
14 | 15 | Dom=DomImplementation |
15 | 16 |
|
16 | | -classAttrList(object): |
| 17 | +classAttrList(MutableMapping): |
17 | 18 | def__init__(self,element): |
18 | 19 | self.element=element |
19 | 20 |
|
20 | 21 | def__iter__(self): |
21 | | -returnlist(self.element.attributes.items()).__iter__() |
| 22 | +returniter(self.element.attributes.keys()) |
22 | 23 |
|
23 | 24 | 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 |
25 | 31 |
|
26 | 32 | def__len__(self): |
27 | | -returnlen(list(self.element.attributes.items())) |
| 33 | +returnlen(self.element.attributes) |
28 | 34 |
|
29 | 35 | defitems(self): |
30 | | -return [(item[0],item[1])foritemin |
31 | | -list(self.element.attributes.items())] |
| 36 | +returnlist(self.element.attributes.items()) |
32 | 37 |
|
33 | | -defkeys(self): |
34 | | -returnlist(self.element.attributes.keys()) |
| 38 | +defvalues(self): |
| 39 | +returnlist(self.element.attributes.values()) |
35 | 40 |
|
36 | 41 | def__getitem__(self,name): |
37 | | -returnself.element.getAttribute(name) |
| 42 | +ifisinstance(name,tuple): |
| 43 | +raiseNotImplementedError |
| 44 | +else: |
| 45 | +returnself.element.attributes[name].value |
38 | 46 |
|
39 | | -def__contains__(self,name): |
| 47 | +def__delitem__(self,name): |
40 | 48 | ifisinstance(name,tuple): |
41 | 49 | raiseNotImplementedError |
42 | 50 | else: |
43 | | -returnself.element.hasAttribute(name) |
| 51 | +delself.element.attributes[name] |
44 | 52 |
|
45 | 53 | classNodeBuilder(_base.Node): |
46 | 54 | def__init__(self,element): |
|