return default
return self.bk[name].value
- def add(self, name, value, path = None):
+ def add(self, name, value, **kw):
self.codec[name] = value
- if path is not None: self.codec[name]["path"] = path
+ for key, value in kw.items():
+ self.codec[name][key] = value
def __setitem__(self, name, value):
self.add(name, value)
def get(req, name, default = None):
return cookies(req).get(name, default)
-def add(req, name, value, path = None):
- cookies(req).add(name, value, path)
+def add(req, name, value, **kw):
+ cookies(req).add(name, value, **kw)
self.cthread.setDaemon(True)
self.cthread.start()
+ def mksession(self, req):
+ return session(threading.RLock())
+
+ def mkcookie(self, req, sess):
+ cookie.add(req, self.cookiename, sess.id, path=self.path)
+
def fetch(self, req):
now = int(time.time())
sessid = cookie.get(req, self.cookiename)
raise KeyError()
sess = self._fetch(sessid)
except KeyError:
- sess = session(threading.RLock())
+ sess = self.mksession(req)
new = True
def ckfreeze(req):
if sess.dirty():
if new:
- cookie.add(req, self.cookiename, sess.id, self.path)
+ self.mkcookie(req, sess)
with self.lock:
self.live[sess.id] = [sess.lock, sess]
try:
@classmethod
def fragment(cls, out, el, *args, **kw):
- cls(out=out, root=el, *args, **kw).element(el)
+ cls(out=out, root=el, *args, **kw).node(el)
def update(self, **ch):
ret = type(self).__new__(type(self))