Merge branch 'master' into python3
authorFredrik Tolf <fredrik@dolda2000.com>
Tue, 4 Jun 2013 13:31:09 +0000 (15:31 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Tue, 4 Jun 2013 13:31:09 +0000 (15:31 +0200)
1  2 
wrw/sp/xhtml.py

diff --combined wrw/sp/xhtml.py
@@@ -1,11 -1,11 +1,11 @@@
 -import xml.dom.minidom, StringIO
 -import cons as _cons
 -import util
 +import xml.dom.minidom, io
 +from . import cons as _cons
 +from . import util
  dom = xml.dom.minidom.getDOMImplementation()
  
 -ns = u"http://www.w3.org/1999/xhtml"
 -doctype = u"-//W3C//DTD XHTML 1.1//EN"
 -dtd = u"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
 +ns = "http://www.w3.org/1999/xhtml"
 +doctype = "-//W3C//DTD XHTML 1.1//EN"
 +dtd = "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
  
  class htmlelement(_cons.element):
      def __todoc__(self):
          return doc
  
  class xhtmlcontext(_cons.context):
 -    attrmap = {u"klass": u"class"}
 +    attrmap = {"klass": "class"}
  
      def addattr(self, node, k, v):
 -        k = unicode(k)
 -        node.attrs[self.attrmap.get(k, k)] = unicode(v)
 +        k = str(k)
 +        node.attrs[self.attrmap.get(k, k)] = str(v)
  
  def cons(ctx=None):
      if ctx is None: ctx = xhtmlcontext()
@@@ -30,7 -30,7 +30,7 @@@ def head(title=None, css=None)
      head = h.head
      if title:
          head(h.title(title))
 -    if isinstance(css, str) or isinstance(css, unicode):
 +    if isinstance(css, str) or isinstance(css, bytes):
          head(h.link(rel="stylesheet", type="text/css", href=css))
      elif css:
          for ss in css:
@@@ -38,7 -38,7 +38,7 @@@
      return head
  
  class htmlformatter(util.formatter):
 -    allowshort = set([u"br", u"hr", u"img", u"input", u"meta", u"link"])
 +    allowshort = set(["br", "hr", "img", "input", "meta", "link"])
      def element(self, el, **extra):
          if el.name in self.allowshort:
              super(htmlformatter, self).element(el, **extra)
@@@ -51,11 -51,12 +51,12 @@@ class htmlindenter(util.indenter, htmlf
  def forreq(req, tree):
      # XXX: Use proper Content-Type for clients accepting it.
      req.ohead["Content-Type"] = "text/html; charset=utf-8"
 -    buf = StringIO.StringIO()
 +    buf = io.BytesIO()
      htmlindenter.output(buf, tree, doctype=(doctype, dtd), charset="utf-8")
      return [buf.getvalue()]
  
  def xhtmlresp(callable):
      def wrapper(req):
          return forreq(req, callable(req))
+     wrapper.__wrapped__ = callable
      return wrapper