]> granicus.if.org Git - python/commitdiff
Misc fixes and improvements.
authorPaul Prescod <prescod@prescod.net>
Sat, 1 Jul 2000 19:21:47 +0000 (19:21 +0000)
committerPaul Prescod <prescod@prescod.net>
Sat, 1 Jul 2000 19:21:47 +0000 (19:21 +0000)
Lib/xml/dom/minidom.py

index 0283fee0eb5d231c96556b47194a3ea1367d7578..337ff0375b4212d902a1decd74321284ac72e3bf 100644 (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]