[Python-checkins] r43681 - python/trunk/Lib/xmlcore/dom/expatbuilder.py python/trunk/Lib/xmlcore/dom/minicompat.py python/trunk/Lib/xmlcore/dom/minidom.py python/trunk/Lib/xmlcore/dom/xmlbuilder.py (original) (raw)
fred.drake python-checkins at python.org
Thu Apr 6 03:29:07 CEST 2006
- Previous message: [Python-checkins] buildbot warnings in x86 OpenBSD 2.4
- Next message: [Python-checkins] r43682 - python/trunk/Lib/xmlcore/dom/minidom.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: fred.drake Date: Thu Apr 6 03:29:04 2006 New Revision: 43681
Modified: python/trunk/Lib/xmlcore/dom/expatbuilder.py python/trunk/Lib/xmlcore/dom/minicompat.py python/trunk/Lib/xmlcore/dom/minidom.py python/trunk/Lib/xmlcore/dom/xmlbuilder.py Log: remove much of the Python-version compatibility cruft; the minimum Python version this should support is Python 2.3
Modified: python/trunk/Lib/xmlcore/dom/expatbuilder.py
--- python/trunk/Lib/xmlcore/dom/expatbuilder.py (original) +++ python/trunk/Lib/xmlcore/dom/expatbuilder.py Thu Apr 6 03:29:04 2006 @@ -59,7 +59,7 @@ "NMTOKENS": minidom.TypeInfo(None, "nmtokens"), }
-class ElementInfo(NewStyle): +class ElementInfo(object): slots = '_attr_info', '_model', 'tagName'
def __init__(self, tagName, model=None):
@@ -460,7 +460,7 @@
where allowed.
_ALLOWED_FILTER_RETURNS = (FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP)
-class FilterVisibilityController(NewStyle): +class FilterVisibilityController(object): """Wrapper around a DOMBuilderFilter which implements the checks to make the whatToShow filter attribute work."""
@@ -518,7 +518,7 @@ }
-class FilterCrutch(NewStyle): +class FilterCrutch(object): slots = '_builder', '_level', '_old_start', '_old_end'
def __init__(self, builder):
@@ -908,7 +908,7 @@ raise ParseEscape()
-def parse(file, namespaces=1): +def parse(file, namespaces=True): """Parse a document, returning the resulting Document node.
'file' may be either a file name or an open file object.
@@ -929,7 +929,7 @@ return result
-def parseString(string, namespaces=1): +def parseString(string, namespaces=True): """Parse a document from a string, returning the resulting Document node. """ @@ -940,7 +940,7 @@ return builder.parseString(string)
-def parseFragment(file, context, namespaces=1): +def parseFragment(file, context, namespaces=True): """Parse a fragment of a document, given the context from which it was originally extracted. context should be the parent of the node(s) which are in the fragment. @@ -963,7 +963,7 @@ return result
-def parseFragmentString(string, context, namespaces=1): +def parseFragmentString(string, context, namespaces=True): """Parse a fragment of a document from a string, given the context from which it was originally extracted. context should be the parent of the node(s) which are in the fragment.
Modified: python/trunk/Lib/xmlcore/dom/minicompat.py
--- python/trunk/Lib/xmlcore/dom/minicompat.py (original) +++ python/trunk/Lib/xmlcore/dom/minicompat.py Thu Apr 6 03:29:04 2006 @@ -4,10 +4,6 @@ # # The following names are defined: # -# isinstance -- version of the isinstance() function that accepts -# tuples as the second parameter regardless of the -# Python version -# # NodeList -- lightest possible NodeList implementation # # EmptyNodeList -- lightest possible NodeList that is guarateed to @@ -15,8 +11,6 @@ # # StringTypes -- tuple of defined string types # -# GetattrMagic -- base class used to make get be magically -# invoked when available # 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+ @@ -41,14 +35,8 @@ # # defproperty() should be used for each version of # the relevant get() function. -# -# NewStyle -- base class to cause slots to be honored in -# the new world -# -# True, False -- only for Python 2.2 and earlier -all = ["NodeList", "EmptyNodeList", "NewStyle", - "StringTypes", "defproperty", "GetattrMagic"] +all = ["NodeList", "EmptyNodeList", "StringTypes", "defproperty"] import xmlcore.dom @@ -60,125 +48,62 @@ StringTypes = type(''), type(unicode('')) -# define True and False only if not defined as built-ins -try: - True -except NameError: - True = 1 - False = 0 - all.extend(["True", "False"]) +class NodeList(list): + slots = () + def item(self, index): + if 0 <= index < len(self): + return self[index] -try: - isinstance('', StringTypes) -except TypeError: - # - # Wrap isinstance() to make it compatible with the version in - # Python 2.2 and newer. - # - _isinstance = isinstance - def isinstance(obj, type_or_seq): - try: - return _isinstance(obj, type_or_seq) - except TypeError: - for t in type_or_seq: - if _isinstance(obj, t): - return 1 - return 0 - all.append("isinstance")
- -if list is type([]):
- 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 xmlcore.dom.NoModificationAllowedErr(
"attempt to modify read-only attribute 'length'")
length = property(_get_length, _set_length,
doc="The number of nodes in the NodeList.")
def __getstate__(self):
return list(self)
def __setstate__(self, 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 xmlcore.dom.NoModificationAllowedErr(
"attempt to modify read-only attribute 'length'")
- def _get_length(self):
return len(self)
length = property(_get_length, _set_length,
doc="The number of nodes in the NodeList.")
- def _set_length(self, value):
raise xml.dom.NoModificationAllowedErr(
"attempt to modify read-only attribute 'length'")
-else: - def NodeList(): - return [] + length = property(_get_length, _set_length, + doc="The number of nodes in the NodeList.") - def EmptyNodeList(): - return [] + def getstate(self): + return list(self) + def setstate(self, state): + self[:] = state -try: - property -except NameError: - def defproperty(klass, name, doc): - # taken care of by the base getattr() - pass
- class GetattrMagic:
def __getattr__(self, key):
if key.startswith("_"):
raise AttributeError, key
try:
get = getattr(self, "_get_" + key)
except AttributeError:
raise AttributeError, key
return get()
+class EmptyNodeList(tuple):
- slots = ()
- class NewStyle:
pass
- def add(self, other):
NL = NodeList()
NL.extend(other)
return NL
-else:
- def defproperty(klass, name, doc):
get = getattr(klass, ("_get_" + name)).im_func
def set(self, value, name=name):
raise xmlcore.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)
- 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.")
class GetattrMagic:
pass
NewStyle = object
+def defproperty(klass, name, doc):
- get = getattr(klass, ("get" + name)).im_func
- 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)
Modified: python/trunk/Lib/xmlcore/dom/minidom.py
--- python/trunk/Lib/xmlcore/dom/minidom.py (original) +++ python/trunk/Lib/xmlcore/dom/minidom.py Thu Apr 6 03:29:04 2006 @@ -31,7 +31,7 @@ xmlcore.dom.Node.ENTITY_REFERENCE_NODE)
-class Node(xmlcore.dom.Node, GetattrMagic): +class Node(xmlcore.dom.Node): namespaceURI = None # this is non-null only for elements and attributes parentNode = None ownerDocument = None @@ -459,7 +459,7 @@ defproperty(Attr, "schemaType", doc="Schema type for this attribute.")
-class NamedNodeMap(NewStyle, GetattrMagic): +class NamedNodeMap(object): """The attribute list is a transient interface to the underlying dictionaries. Mutations here will change the underlying element's dictionary. @@ -613,7 +613,7 @@ AttributeList = NamedNodeMap
-class TypeInfo(NewStyle): +class TypeInfo(object): slots = 'namespace', 'name'
def __init__(self, namespace, name):
@@ -1146,7 +1146,7 @@ writer.write("" % self.data)
-class ReadOnlySequentialNamedNodeMap(NewStyle, GetattrMagic): +class ReadOnlySequentialNamedNodeMap(object): slots = '_seq',
def __init__(self, seq=()):
@@ -1418,7 +1418,7 @@ def _create_document(self): return Document()
-class ElementInfo(NewStyle): +class ElementInfo(object): """Object that represents content-model information for an element.
This implementation is not expected to be used in practice; DOM
Modified: python/trunk/Lib/xmlcore/dom/xmlbuilder.py
--- python/trunk/Lib/xmlcore/dom/xmlbuilder.py (original) +++ python/trunk/Lib/xmlcore/dom/xmlbuilder.py Thu Apr 6 03:29:04 2006 @@ -3,8 +3,6 @@ import copy import xmlcore.dom -from xmlcore.dom.minicompat import *
from xmlcore.dom.NodeFilter import NodeFilter @@ -211,7 +209,7 @@ return name.lower().replace('-', '_') -class DOMEntityResolver(NewStyle): +class DOMEntityResolver(object): slots = '_opener', def resolveEntity(self, publicId, systemId): @@ -255,7 +253,7 @@ return param.split("=", 1)[1].lower() -class DOMInputSource(NewStyle): +class DOMInputSource(object): slots = ('byteStream', 'characterStream', 'stringData', 'encoding', 'publicId', 'systemId', 'baseURI')
- Previous message: [Python-checkins] buildbot warnings in x86 OpenBSD 2.4
- Next message: [Python-checkins] r43682 - python/trunk/Lib/xmlcore/dom/minidom.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]