Merge branch 'master' into python3
authorFredrik Tolf <fredrik@dolda2000.com>
Sun, 23 Dec 2012 05:10:13 +0000 (06:10 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Sun, 23 Dec 2012 05:10:13 +0000 (06:10 +0100)
1  2 
wrw/sp/cons.py

diff --combined wrw/sp/cons.py
@@@ -1,22 -1,20 +1,20 @@@
  import xml.dom.minidom
  
  class node(object):
-     def __str__(self):
-         doc = xml.dom.minidom.Document()
-         return self.__todom__(doc).toxml()
+     pass
  
 -class text(node, unicode):
 +class text(node, str):
      def __todom__(self, doc):
          return doc.createTextNode(self)
  
 -class raw(node, unicode):
 +class raw(node, str):
      def __todom__(self, doc):
          raise Exception("Cannot convert raw code to DOM objects")
  
  class element(node):
      def __init__(self, ns, name, ctx):
          self.ns = ns
 -        self.name = unicode(name)
 +        self.name = str(name)
          self.ctx = ctx
          self.attrs = {}
          self.children = []
      def __call__(self, *children, **attrs):
          for child in children:
              self.ctx.addchild(self, child)
 -        for k, v in attrs.iteritems():
 +        for k, v in attrs.items():
              self.ctx.addattr(self, k, v)
          return self
  
      def __todom__(self, doc):
          el = doc.createElementNS(self.ns, self.name)
 -        for k, v in self.attrs.iteritems():
 +        for k, v in self.attrs.items():
              el.setAttribute(k, v)
          for child in self.children:
              el.appendChild(child.__todom__(doc))
          return el
  
+     def __str__(self):
+         doc = xml.dom.minidom.Document()
+         return self.__todom__(doc).toxml()
  class context(object):
      def __init__(self):
          self.nodeconv = {}
 -        self.nodeconv[str] = lambda ob: text(ob, "utf-8")
 -        self.nodeconv[unicode] = text
 +        self.nodeconv[bytes] = lambda ob: text(ob, "utf-8")
 +        self.nodeconv[str] = text
          self.nodeconv[int] = text
 -        self.nodeconv[long] = text
          self.nodeconv[float] = text
  
      def nodefrom(self, ob):
@@@ -57,7 -60,7 +59,7 @@@
          node.children.append(self.nodefrom(child))
  
      def addattr(self, node, k, v):
 -        node.attrs[unicode(k)] = unicode(v)
 +        node.attrs[str(k)] = str(v)
  
  class constructor(object):
      def __init__(self, ns, elcls = element, ctx=None):