changeset 2407:a7054f5ff46f

Simplify the request class
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 18 May 2013 13:59:15 +0200
parents 31754fe5172b
children abc4bc7f7433
files hatta/request.py hatta/wiki.py
diffstat 2 files changed, 7 insertions(+), 68 deletions(-) [+]
line wrap: on
line diff
--- a/hatta/request.py	Sat May 18 13:46:04 2013 +0200
+++ b/hatta/request.py	Sat May 18 13:59:15 2013 +0200
@@ -1,45 +1,8 @@
 # -*- coding: utf-8 -*-
 
-import os
-import tempfile
-
 import werkzeug
 
-
-class WikiTempFile(object):
-    """Wrap a file for uploading content."""
-
-    def __init__(self, tmppath):
-        self.tmppath = tempfile.mkdtemp(dir=tmppath)
-        self.tmpname = os.path.join(self.tmppath, 'saved')
-        self.f = open(self.tmpname, "wb")
-
-    def read(self, *args, **kw):
-        return self.f.read(*args, **kw)
-
-    def readlines(self, *args, **kw):
-        return self.f.readlines(*args, **kw)
-
-    def write(self, *args, **kw):
-        return self.f.write(*args, **kw)
-
-    def seek(self, *args, **kw):
-        return self.f.seek(*args, **kw)
-
-    def truncate(self, *args, **kw):
-        return self.f.truncate(*args, **kw)
-
-    def close(self, *args, **kw):
-        ret = self.f.close(*args, **kw)
-        try:
-            os.unlink(self.tmpname)
-        except OSError:
-            pass
-        try:
-            os.rmdir(self.tmppath)
-        except OSError:
-            pass
-        return ret
+import hatta.views
 
 
 class WikiRequest(werkzeug.BaseRequest, werkzeug.ETagRequestMixin):
@@ -55,20 +18,18 @@
         werkzeug.BaseRequest.__init__(self, environ, shallow=False, **kw)
         self.wiki = wiki
         self.adapter = adapter
-        self.tmpfiles = []
-        self.tmppath = wiki.path
 
     def get_url(self, title=None, view=None, method='GET',
                 external=False, **kw):
         if view is None:
-            view = self.wiki.view
+            view = hatta.views.view
         if title is not None:
             kw['title'] = title.strip()
         return self.adapter.build(view, kw, method=method,
                                   force_external=external)
 
     def get_download_url(self, title):
-        return self.get_url(title, view=self.wiki.download)
+        return self.get_url(title, view=hatta.views.download)
 
     def get_author(self):
         """Try to guess the author name. Use IP address as last resort."""
@@ -85,19 +46,3 @@
                   self.remote_addr)
         return author
 
-    def _get_file_stream(self, total_content_length=None, content_type=None,
-                         filename=None, content_length=None):
-        """Save all the POSTs to temporary files."""
-
-        temp_file = WikiTempFile(self.tmppath)
-        self.tmpfiles.append(temp_file)
-        return temp_file
-
-    def cleanup(self):
-        """Clean up the temporary files created by POSTs."""
-
-        for temp_file in self.tmpfiles:
-            temp_file.close()
-        self.tmpfiles = []
-
-
--- a/hatta/wiki.py	Sat May 18 13:46:04 2013 +0200
+++ b/hatta/wiki.py	Sat May 18 13:59:15 2013 +0200
@@ -33,7 +33,6 @@
     regex = '.*'
 
 
-
 class Wiki(object):
     """
     The main class of the wiki, handling initialization of the whole
@@ -126,12 +125,7 @@
         adapter = self.url_map.bind_to_environ(environ)
         request = hatta.request.WikiRequest(self, adapter, environ)
         try:
-            try:
-                endpoint, values = adapter.match()
-                return endpoint(request, **values)
-            except werkzeug.exceptions.HTTPException as err:
-                return err
-        finally:
-            request.cleanup()
-            del request
-            del adapter
+            endpoint, values = adapter.match()
+            return endpoint(request, **values)
+        except werkzeug.exceptions.HTTPException as err:
+            return err