From: Fredrik Tolf Date: Thu, 24 May 2012 03:33:43 +0000 (+0200) Subject: Merge branch 'master' into python3 X-Git-Url: http://dolda2000.com/gitweb/?p=wrw.git;a=commitdiff_plain;h=3414365c207c42f3a2d26edac5b5a1d0bd782d7a;hp=7bcaef26c590cd10955848fbf313f41c78b8d1ce Merge branch 'master' into python3 --- diff --git a/wrw/session.py b/wrw/session.py index 832387e..02d1983 100644 --- a/wrw/session.py +++ b/wrw/session.py @@ -19,7 +19,7 @@ class session(object): def __init__(self, expire = 86400 * 7): self.id = hexencode(gennonce(16)) self.dict = {} - self.lock = threading.Lock() + self.lock = threading.RLock() self.ctime = self.atime = self.mtime = int(time.time()) self.expire = expire self.dctl = set() diff --git a/wrw/sp/cons.py b/wrw/sp/cons.py index 9e81677..d54c314 100644 --- a/wrw/sp/cons.py +++ b/wrw/sp/cons.py @@ -9,6 +9,10 @@ class text(node, str): def __todom__(self, doc): return doc.createTextNode(self) +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 diff --git a/wrw/sp/util.py b/wrw/sp/util.py index c9f9401..adad537 100644 --- a/wrw/sp/util.py +++ b/wrw/sp/util.py @@ -44,6 +44,9 @@ class formatter(object): def text(self, el): self.quotewrite(el) + def rawcode(self, el): + self.write(el) + def attrval(self, buf): qc, qt = ("'", "'") if '"' in buf else ('"', """) self.write(qc) @@ -112,6 +115,8 @@ class formatter(object): self.element(el) elif isinstance(el, cons.text): self.text(el) + elif isinstance(el, cons.raw): + self.rawcode(el) else: raise Exception("Unknown object in element tree: " + el) diff --git a/wrw/util.py b/wrw/util.py index b8461d1..c8b7b2c 100644 --- a/wrw/util.py +++ b/wrw/util.py @@ -53,7 +53,7 @@ class sessiondata(object): except KeyError: if not create: return None - ret = cls(req) + ret = cls(req, sess) sess[cls] = ret return ret