-import Cookie
+import http.cookies
__all__ = ["cookies", "get", "add"]
class cookiedict(object):
def __init__(self, req):
try:
- self.bk = Cookie.SimpleCookie(req.ihead.get("Cookie"))
- except Cookie.CookieError:
- self.bk = Cookie.SimpleCookie()
- self.codec = Cookie.SimpleCookie()
+ self.bk = http.cookies.SimpleCookie(req.ihead.get("Cookie"))
+ except http.cookies.CookieError:
+ self.bk = http.cookies.SimpleCookie()
+ self.codec = http.cookies.SimpleCookie()
req.oncommit(addcookies)
def __getitem__(self, name):
try:
resp = handler(req)
break
- except restart, i:
+ except restart as i:
handler = i.handle
req.commit(startreq)
return resp
elif ext == "html":
ctype = "text/html"
req.ohead["Content-Type"] = ctype
- return open(path, "r")
+ return open(path, "rb")
def resolvefile(self, req, curpath, el):
if os.path.isfile(pj(curpath, el)):
return list(iter())
def keys(self):
- return self.cf.keys()
+ return list(self.cf.keys())
def values(self):
return [val for key, val in self.items()]
del self.dict[key.lower()]
def __iter__(self):
- return iter((list[0] for list in self.dict.itervalues()))
+ return iter((list[0] for list in self.dict.values()))
def get(self, key, default = ""):
if key.lower() in self.dict:
class usererror(dispatch.restart):
def __init__(self, message, detail):
- super(usererror, self).__init__()
+ super().__init__()
self.message = message
self.detail = detail
class message(dispatch.restart):
def __init__(self, message, detail):
- super(message, self).__init__()
+ super().__init__()
self.message = message
self.detail = detail
message = proto.statusinfo[status][0]
if detail is None:
detail = proto.statusinfo[status][1]
- super(httperror, self).__init__(message, detail)
+ super().__init__(message, detail)
self.status = status
def handle(self, req):
req.status(self.status, self.message)
- return super(httperror, self).handle(req)
+ return super().handle(req)
class notfound(httperror):
def __init__(self):
- return super(notfound, self).__init__(404)
+ return super().__init__(404)
class redirect(dispatch.restart):
def __init__(self, url, status = 303):
- super(redirect, self).__init__()
+ super().__init__()
self.url = url
self.status = status
def gennonce(length):
nonce = ""
- for i in xrange(length):
+ for i in range(length):
nonce += chr(random.randint(0, 255))
return nonce
now = int(time.time())
with self.lock:
dlist = []
- for sess in self.live.itervalues():
+ for sess in self.live.values():
if sess.atime + self.freezetime < now:
try:
if sess.dirty():
class backeddb(db):
def __init__(self, backdb, *args, **kw):
- super(backeddb, self).__init__(*args, **kw)
+ super().__init__(*args, **kw)
self.backdb = backdb
def thaw(self, sessid):
data = self.backdb[sessid]
try:
return pickle.loads(data)
- except Exception, e:
+ except:
raise KeyError()
def freeze(self, sess):