Merge branch 'master' into python3
authorFredrik Tolf <fredrik@dolda2000.com>
Sun, 1 Jan 2012 21:42:41 +0000 (22:42 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Sun, 1 Jan 2012 21:42:41 +0000 (22:42 +0100)
Conflicts:
wrw/session.py

setup.py
wrw/__init__.py
wrw/cookie.py
wrw/dispatch.py
wrw/filesys.py
wrw/form.py
wrw/req.py
wrw/resp.py
wrw/session.py
wrw/util.py
wrw/wmako.py

index a3f45d2..85a07ae 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 from distutils.core import setup, Extension
 
index c0b8273..d4b0a63 100644 (file)
@@ -1,6 +1,6 @@
 __all__ = ["wsgiwrap", "restart", "cookie", "formdata"]
 
-from util import wsgiwrap, formparams, persession, sessiondata, autodirty, manudirty
-from dispatch import restart
-import cookie
-from form import formdata
+from .util import wsgiwrap, formparams, persession, sessiondata, autodirty, manudirty
+from .dispatch import restart
+from . import cookie
+from .form import formdata
index 37e8708..c6ae36c 100644 (file)
@@ -1,4 +1,4 @@
-import Cookie
+import http.cookies
 
 __all__ = ["cookies", "get", "add"]
 
@@ -10,10 +10,10 @@ def addcookies(req):
 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):
index fe62df3..709cfe4 100644 (file)
@@ -20,17 +20,17 @@ class iterproxy(object):
         self.bk = real
         self.bki = iter(real)
         self._next = [None]
-        self.next()
+        self.__next__()
 
     def __iter__(self):
         return self
 
-    def next(self):
+    def __next__(self):
         if self._next is None:
             raise StopIteration()
         ret = self._next[0]
         try:
-            self._next[:] = [self.bki.next()]
+            self._next[:] = [self.bki.__next__()]
         except StopIteration:
             self._next = None
         return ret
@@ -46,7 +46,7 @@ def handle(req, startreq, handler):
             try:
                 resp = iterproxy(handler(req))
                 break
-            except restart, i:
+            except restart as i:
                 handler = i.handle
         req.commit(startreq)
         return resp
index dcdc802..56d58aa 100644 (file)
@@ -1,5 +1,5 @@
 import os
-import resp
+from . import resp
 pj = os.path.join
 
 __all__ = ["filehandler"]
@@ -29,7 +29,7 @@ class filehandler(object):
             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)):
index af599e6..dd1d5e9 100644 (file)
@@ -31,7 +31,7 @@ class formwrap(object):
         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()]
index 0d26964..0689cbd 100644 (file)
@@ -17,7 +17,7 @@ class headdict(object):
         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:
index 8216d23..75a7f3a 100644 (file)
@@ -1,4 +1,4 @@
-import dispatch, proto
+from . import dispatch, proto
 
 __all__ = ["skeleton", "skelfor", "setskel", "usererror"]
 
@@ -38,7 +38,7 @@ def setskel(req, skel):
 
 class usererror(dispatch.restart):
     def __init__(self, message, detail):
-        super(usererror, self).__init__()
+        super().__init__()
         self.message = message
         self.detail = detail
 
@@ -47,7 +47,7 @@ class usererror(dispatch.restart):
 
 class message(dispatch.restart):
     def __init__(self, message, detail):
-        super(message, self).__init__()
+        super().__init__()
         self.message = message
         self.detail = detail
 
@@ -60,20 +60,20 @@ class httperror(usererror):
             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
 
index 7632449..d78c43b 100644 (file)
@@ -1,5 +1,5 @@
 import threading, time, pickle, random, os
-import cookie
+from . import cookie
 
 __all__ = ["db", "get"]
 
@@ -11,7 +11,7 @@ def hexencode(str):
 
 def gennonce(length):
     nonce = ""
-    for i in xrange(length):
+    for i in range(length):
         nonce += chr(random.randint(0, 255))
     return nonce
 
@@ -84,7 +84,7 @@ class db(object):
         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():
@@ -151,7 +151,7 @@ class db(object):
         data = self.backdb[sessid]
         try:
             return pickle.loads(data)
-        except Exception, e:
+        except:
             raise KeyError()
 
     def freeze(self, sess):
index b94564b..e338e2c 100644 (file)
@@ -1,5 +1,5 @@
 import inspect
-import req, dispatch, session, form
+from . import req, dispatch, session, form
 
 def wsgiwrap(callable):
     def wrapper(env, startreq):
@@ -55,7 +55,7 @@ class sessiondata(object):
 class autodirty(sessiondata):
     @classmethod
     def get(cls, req):
-        ret = super(autodirty, cls).get(req)
+        ret = super().get(req)
         if "_is_dirty" not in ret.__dict__:
             ret.__dict__["_is_dirty"] = False
         return ret
@@ -67,18 +67,18 @@ class autodirty(sessiondata):
         return self._is_dirty
 
     def __setattr__(self, name, value):
-        super(autodirty, self).__setattr__(name, value)
+        super().__setattr__(name, value)
         if "_is_dirty" in self.__dict__:
             self.__dict__["_is_dirty"] = True
 
     def __delattr__(self, name):
-        super(autodirty, self).__delattr__(name, value)
+        super().__delattr__(name, value)
         if "_is_dirty" in self.__dict__:
             self.__dict__["_is_dirty"] = True
 
 class manudirty(object):
     def __init__(self, *args, **kwargs):
-        super(manudirty, self).__init__(*args, **kwargs)
+        super().__init__(*args, **kwargs)
         self.__dirty = False
 
     def sessfrozen(self):
index 9945345..817233d 100644 (file)
@@ -1,6 +1,6 @@
 import os, threading
 from mako import template, lookup, filters
-import util, form, session
+from . import util, form, session
 
 # It seems Mako isn't thread-safe.
 makolock = threading.Lock()