Misc fixes and improvements.

This commit is contained in:
Paul Prescod 2000-07-01 19:21:47 +00:00
parent bd8c2ae758
commit 1e68827c8f
1 changed files with 16 additions and 4 deletions

View File

@ -40,7 +40,8 @@ class Node:
index=repr( id( self ))+repr( self.__class__ )
Node.allnodes[index]=repr( self.__dict__ )
if Node.debug==None:
Node.debug=open( "debug4.out", "w" )
Node.debug=StringIO()
#open( "debug4.out", "w" )
Node.debug.write( "create %s\n"%index )
def __getattr__( self, key ):
@ -216,13 +217,24 @@ dictionary"""
#FIXME: is it appropriate to return .value?
def __getitem__( self, attname_or_tuple ):
if type( attname_or_tuple ) == type( () ):
if type( attname_or_tuple ) == types.TupleType:
return self._attrsNS[attname_or_tuple]
else:
return self._attrs[attname_or_tuple]
def __setitem__( self, attname ):
raise TypeError, "object does not support item assignment"
# same as set
def __setitem__( self, attname, value ):
if type( value ) == types.StringType:
node=Attr( attname )
node.value=value
else:
assert isinstance( value, Attr ) or type( value )==types.StringType
node=value
old=self._attrs.get( attname, None)
if old:
old.unlink()
self._attrs[node.name]=node
self._attrsNS[(node.namespaceURI,node.localName)]=node
def __delitem__( self, attname_or_tuple ):
node=self[attname_or_tuple]