[Python-checkins] python/nondist/peps/docutils nodes.py,1.1,1.2 statemachine.py,1.1,1.2
goodger@users.sourceforge.net
goodger@users.sourceforge.net
Thu, 02 Jan 2003 20:06:28 -0800
Update of /cvsroot/python/python/nondist/peps/docutils
In directory sc8-pr-cvs1:/tmp/cvs-serv9606
Modified Files:
nodes.py statemachine.py
Log Message:
More Python 2.3 & PyXML compatibility updates
Index: nodes.py
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/docutils/nodes.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** nodes.py 8 Nov 2002 23:47:51 -0000 1.1
--- nodes.py 3 Jan 2003 04:06:26 -0000 1.2
***************
*** 58,63 ****
def asdom(self, dom=xml.dom.minidom):
! """Return a DOM representation of this Node."""
! return self._dom_node(dom)
def pformat(self, indent=' ', level=0):
--- 58,64 ----
def asdom(self, dom=xml.dom.minidom):
! """Return a DOM **fragment** representation of this Node."""
! domroot = dom.Document()
! return self._dom_node(domroot)
def pformat(self, indent=' ', level=0):
***************
*** 181,188 ****
return '<%s: %s>' % (self.tagname, data)
! def _dom_node(self, dom):
! return dom.Text(self.data)
!
! def _rooted_dom_node(self, domroot):
return domroot.createTextNode(self.data)
--- 182,186 ----
return '<%s: %s>' % (self.tagname, data)
! def _dom_node(self, domroot):
return domroot.createTextNode(self.data)
***************
*** 261,273 ****
self.tagname = self.__class__.__name__
! def _dom_node(self, dom):
! element = dom.Element(self.tagname)
! for attribute, value in self.attributes.items():
! element.setAttribute(attribute, str(value))
! for child in self.children:
! element.appendChild(child._dom_node(dom))
! return element
!
! def _rooted_dom_node(self, domroot):
element = domroot.createElement(self.tagname)
for attribute, value in self.attributes.items():
--- 259,263 ----
self.tagname = self.__class__.__name__
! def _dom_node(self, domroot):
element = domroot.createElement(self.tagname)
for attribute, value in self.attributes.items():
***************
*** 276,280 ****
element.setAttribute(attribute, str(value))
for child in self.children:
! element.appendChild(child._rooted_dom_node(domroot))
return element
--- 266,270 ----
element.setAttribute(attribute, str(value))
for child in self.children:
! element.appendChild(child._dom_node(domroot))
return element
***************
*** 336,340 ****
return self.children[key]
elif isinstance(key, SliceType):
! assert key.step is None, 'cannot handle slice with stride'
return self.children[key.start:key.stop]
else:
--- 326,330 ----
return self.children[key]
elif isinstance(key, SliceType):
! assert key.step in (None, 1), 'cannot handle slice with stride'
return self.children[key.start:key.stop]
else:
***************
*** 349,353 ****
self.children[key] = item
elif isinstance(key, SliceType):
! assert key.step is None, 'cannot handle slice with stride'
for node in item:
self.setup_child(node)
--- 339,343 ----
self.children[key] = item
elif isinstance(key, SliceType):
! assert key.step in (None, 1), 'cannot handle slice with stride'
for node in item:
self.setup_child(node)
***************
*** 363,367 ****
del self.children[key]
elif isinstance(key, SliceType):
! assert key.step is None, 'cannot handle slice with stride'
del self.children[key.start:key.stop]
else:
--- 353,357 ----
del self.children[key]
elif isinstance(key, SliceType):
! assert key.step in (None, 1), 'cannot handle slice with stride'
del self.children[key.start:key.stop]
else:
***************
*** 702,707 ****
def asdom(self, dom=xml.dom.minidom):
domroot = dom.Document()
! domroot.appendChild(self._rooted_dom_node(domroot))
return domroot
--- 692,698 ----
def asdom(self, dom=xml.dom.minidom):
+ """Return a DOM representation of this document."""
domroot = dom.Document()
! domroot.appendChild(self._dom_node(domroot))
return domroot
Index: statemachine.py
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/docutils/statemachine.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** statemachine.py 8 Nov 2002 23:47:51 -0000 1.1
--- statemachine.py 3 Jan 2003 04:06:26 -0000 1.2
***************
*** 111,114 ****
--- 111,115 ----
import sys
import re
+ from types import SliceType as _SliceType
***************
*** 1105,1124 ****
def __len__(self): return len(self.data)
def __getitem__(self, i):
! try:
! return self.data[i]
! except TypeError:
! assert i.step is None, 'cannot handle slice with stride'
return self.__class__(self.data[i.start:i.stop],
items=self.items[i.start:i.stop],
parent=self, parent_offset=i.start)
def __setitem__(self, i, item):
! try:
! self.data[i] = item
! if self.parent:
! self.parent[i + self.parent_offset] = item
! except TypeError:
! assert i.step is None, 'cannot handle slice with stride'
if not isinstance(item, ViewList):
raise TypeError('assigning non-ViewList to ViewList slice')
--- 1106,1126 ----
def __len__(self): return len(self.data)
+ # The __getitem__()/__setitem__() methods check whether the index
+ # is a slice first, since native list objects start supporting
+ # them directly in Python 2.3 (no exception is raised when
+ # indexing a list with a slice object; they just work).
+
def __getitem__(self, i):
! if isinstance(i, _SliceType):
! assert i.step in (None, 1), 'cannot handle slice with stride'
return self.__class__(self.data[i.start:i.stop],
items=self.items[i.start:i.stop],
parent=self, parent_offset=i.start)
+ else:
+ return self.data[i]
def __setitem__(self, i, item):
! if isinstance(i, _SliceType):
! assert i.step in (None, 1), 'cannot handle slice with stride'
if not isinstance(item, ViewList):
raise TypeError('assigning non-ViewList to ViewList slice')
***************
*** 1129,1132 ****
--- 1131,1138 ----
self.parent[i.start + self.parent_offset
: i.stop + self.parent_offset] = item
+ else:
+ self.data[i] = item
+ if self.parent:
+ self.parent[i + self.parent_offset] = item
def __delitem__(self, i):