summaryrefslogtreecommitdiff
path: root/modules/language/python/module/xml/dom/minicompat.py~
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/xml/dom/minicompat.py~')
-rw-r--r--modules/language/python/module/xml/dom/minicompat.py~109
1 files changed, 0 insertions, 109 deletions
diff --git a/modules/language/python/module/xml/dom/minicompat.py~ b/modules/language/python/module/xml/dom/minicompat.py~
deleted file mode 100644
index 5d6fae9..0000000
--- a/modules/language/python/module/xml/dom/minicompat.py~
+++ /dev/null
@@ -1,109 +0,0 @@
-"""Python version compatibility support for minidom.
-
-This module contains internal implementation details and
-should not be imported; use xml.dom.minidom instead.
-"""
-
-# This module should only be imported using "import *".
-#
-# The following names are defined:
-#
-# NodeList -- lightest possible NodeList implementation
-#
-# EmptyNodeList -- lightest possible NodeList that is guaranteed to
-# remain empty (immutable)
-#
-# StringTypes -- tuple of defined string types
-#
-# defproperty -- function used in conjunction with GetattrMagic;
-# using these together is needed to make them work
-# as efficiently as possible in both Python 2.2+
-# and older versions. For example:
-#
-# class MyClass(GetattrMagic):
-# def _get_myattr(self):
-# return something
-#
-# defproperty(MyClass, "myattr",
-# "return some value")
-#
-# For Python 2.2 and newer, this will construct a
-# property object on the class, which avoids
-# needing to override __getattr__(). It will only
-# work for read-only attributes.
-#
-# For older versions of Python, inheriting from
-# GetattrMagic will use the traditional
-# __getattr__() hackery to achieve the same effect,
-# but less efficiently.
-#
-# defproperty() should be used for each version of
-# the relevant _get_<property>() function.
-
-__all__ = ["NodeList", "EmptyNodeList", "StringTypes", "defproperty"]
-
-import xml.dom
-
-StringTypes = (str,)
-
-
-class NodeList(list):
- __slots__ = ()
-
- def item(self, index):
- if 0 <= index < len(self):
- return self[index]
-
- def _get_length(self):
- return len(self)
-
- def _set_length(self, value):
- raise xml.dom.NoModificationAllowedErr(
- "attempt to modify read-only attribute 'length'")
-
- length = property(_get_length, _set_length,
- doc="The number of nodes in the NodeList.")
-
- # For backward compatibility
- def __setstate__(self, state):
- if state is None:
- state = []
- self[:] = state
-
-
-class EmptyNodeList(tuple):
- __slots__ = ()
-
- def __add__(self, other):
- NL = NodeList()
- NL.extend(other)
- return NL
-
- def __radd__(self, other):
- NL = NodeList()
- NL.extend(other)
- return NL
-
- def item(self, index):
- return None
-
- def _get_length(self):
- return 0
-
- def _set_length(self, value):
- raise xml.dom.NoModificationAllowedErr(
- "attempt to modify read-only attribute 'length'")
-
- length = property(_get_length, _set_length,
- doc="The number of nodes in the NodeList.")
-
-
-def defproperty(klass, name, doc):
- get = getattr(klass, ("_get_" + name))
- def set(self, value, name=name):
- raise xml.dom.NoModificationAllowedErr(
- "attempt to modify read-only attribute " + repr(name))
- assert not hasattr(klass, "_set_" + name), \
- "expected not to find _set_" + name
- prop = property(get, set, doc=doc)
- setattr(klass, name, prop)