mirror of
https://github.com/python/cpython.git
synced 2025-07-21 10:15:46 +00:00
xml.dom.minidom: add more __slots__ to limit resource usage.
This commit is contained in:
parent
6c75301eb6
commit
8cf4b51fa4
2 changed files with 8 additions and 6 deletions
|
@ -17,6 +17,7 @@ pulldom -- DOM builder supporting on-demand tree-building for selected
|
||||||
|
|
||||||
class Node:
|
class Node:
|
||||||
"""Class giving the NodeType constants."""
|
"""Class giving the NodeType constants."""
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
# DOM implementations may use this as a base class for their own
|
# DOM implementations may use this as a base class for their own
|
||||||
# Node implementations. If they don't, the constants defined here
|
# Node implementations. If they don't, the constants defined here
|
||||||
|
|
|
@ -62,10 +62,7 @@ class Node(xml.dom.Node):
|
||||||
return writer.stream.getvalue()
|
return writer.stream.getvalue()
|
||||||
|
|
||||||
def hasChildNodes(self):
|
def hasChildNodes(self):
|
||||||
if self.childNodes:
|
return bool(self.childNodes)
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def _get_childNodes(self):
|
def _get_childNodes(self):
|
||||||
return self.childNodes
|
return self.childNodes
|
||||||
|
@ -930,6 +927,7 @@ class Childless:
|
||||||
"""Mixin that makes childless-ness easy to implement and avoids
|
"""Mixin that makes childless-ness easy to implement and avoids
|
||||||
the complexity of the Node methods that deal with children.
|
the complexity of the Node methods that deal with children.
|
||||||
"""
|
"""
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
attributes = None
|
attributes = None
|
||||||
childNodes = EmptyNodeList()
|
childNodes = EmptyNodeList()
|
||||||
|
@ -1067,6 +1065,8 @@ defproperty(CharacterData, "length", doc="Length of the string data.")
|
||||||
|
|
||||||
|
|
||||||
class Text(CharacterData):
|
class Text(CharacterData):
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
nodeType = Node.TEXT_NODE
|
nodeType = Node.TEXT_NODE
|
||||||
nodeName = "#text"
|
nodeName = "#text"
|
||||||
attributes = None
|
attributes = None
|
||||||
|
@ -1188,6 +1188,8 @@ class Comment(CharacterData):
|
||||||
|
|
||||||
|
|
||||||
class CDATASection(Text):
|
class CDATASection(Text):
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
nodeType = Node.CDATA_SECTION_NODE
|
nodeType = Node.CDATA_SECTION_NODE
|
||||||
nodeName = "#cdata-section"
|
nodeName = "#cdata-section"
|
||||||
|
|
||||||
|
@ -1266,8 +1268,7 @@ defproperty(ReadOnlySequentialNamedNodeMap, "length",
|
||||||
class Identified:
|
class Identified:
|
||||||
"""Mix-in class that supports the publicId and systemId attributes."""
|
"""Mix-in class that supports the publicId and systemId attributes."""
|
||||||
|
|
||||||
# XXX this does not work, this is an old-style class
|
__slots__ = 'publicId', 'systemId'
|
||||||
# __slots__ = 'publicId', 'systemId'
|
|
||||||
|
|
||||||
def _identified_mixin_init(self, publicId, systemId):
|
def _identified_mixin_init(self, publicId, systemId):
|
||||||
self.publicId = publicId
|
self.publicId = publicId
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue