[Checkins] SVN: z3c.image/trunk/ - changed the way how parameters are processed to make it easier to subclass

Juergen Kartnaller juergen at kartnaller.at
Sun Jun 15 08:34:57 EDT 2008


Log message for revision 87405:
  - changed the way how parameters are processed to make it easier to subclass
    It is now no longer necessary to implement __init__ in subclasses.
    To migrate existing code just set or modify the property "params". "params"
    is a dict like request.form.
  

Changed:
  U   z3c.image/trunk/CHANGES.txt
  U   z3c.image/trunk/src/z3c/image/proc/BROWSER.txt
  U   z3c.image/trunk/src/z3c/image/proc/browser.py
  U   z3c.image/trunk/src/z3c/image/proc/tests.py

-=-
Modified: z3c.image/trunk/CHANGES.txt
===================================================================
--- z3c.image/trunk/CHANGES.txt	2008-06-14 19:48:28 UTC (rev 87404)
+++ z3c.image/trunk/CHANGES.txt	2008-06-15 12:34:54 UTC (rev 87405)
@@ -2,6 +2,14 @@
 Changes for z3c.image
 =====================
 
+trunk
+=====
+
+- changed the way how parameters are processed to make it easier to subclass
+  It is now no longer necessary to implement __init__ in subclasses.
+  To migrate existing code just set or modify the property "params". "params"
+  is a dict like request.form.
+
 2008/02/15 0.1.8:
 =================
 

Modified: z3c.image/trunk/src/z3c/image/proc/BROWSER.txt
===================================================================
--- z3c.image/trunk/src/z3c/image/proc/BROWSER.txt	2008-06-14 19:48:28 UTC (rev 87404)
+++ z3c.image/trunk/src/z3c/image/proc/BROWSER.txt	2008-06-15 12:34:54 UTC (rev 87405)
@@ -144,6 +144,6 @@
    >>> browser.open('http://localhost/flower.jpg/@@resized')
    Traceback (most recent call last):
    ...
-   httperror_seek_wrapper: HTTP Error 304: Not Modified
+   HTTPError: HTTP Error 304: Not Modified
 
 TODO: more tests here

Modified: z3c.image/trunk/src/z3c/image/proc/browser.py
===================================================================
--- z3c.image/trunk/src/z3c/image/proc/browser.py	2008-06-14 19:48:28 UTC (rev 87404)
+++ z3c.image/trunk/src/z3c/image/proc/browser.py	2008-06-15 12:34:54 UTC (rev 87405)
@@ -48,20 +48,24 @@
 
     """image processor"""
 
-    def __init__(self,context,request):
+    def __init__(self, context, request):
+        self.params = request.form
         super(ImageProcessorView,self).__init__(context,request)
-        self.degrees =int(self.request.form.get('remote.adjust.rotate',0))
-        self.width = int(self.request.form.get('remote.size.w',0))
-        self.height = int(self.request.form.get('remote.size.h',0))
 
-        self.cropX = self.request.form.get('local.crop.x',None)
-        self.cropW = self.request.form.get('local.crop.w',None)
-        self.cropY = self.request.form.get('local.crop.y',None)
-        self.cropH = self.request.form.get('local.crop.h',None)
-
-        self.afterSizeW = int(self.request.form.get('after.size.w',0))
-        self.afterSizeH = int(self.request.form.get('after.size.h',0))
-
+    def _collectParams(self):
+        # rotate
+        self.degrees =int(self.params.get('remote.adjust.rotate',0))
+        # resize
+        self.width = int(self.params.get('remote.size.w',0))
+        self.height = int(self.params.get('remote.size.h',0))
+        # crop
+        self.cropX = self.params.get('local.crop.x',None)
+        self.cropW = self.params.get('local.crop.w',None)
+        self.cropY = self.params.get('local.crop.y',None)
+        self.cropH = self.params.get('local.crop.h',None)
+        # rezize after crop
+        self.afterSizeW = int(self.params.get('after.size.w',0))
+        self.afterSizeH = int(self.params.get('after.size.h',0))
         self.size = (self.width,self.height)
         self._calcAfterSize()
 
@@ -92,8 +96,9 @@
         return ratio
 
     def _calcAfterSize(self):
-        if (self.afterSizeW == 0 or self.afterSizeH == 0) and \
-           self.afterSizeW != self.afterSizeH:
+        if (    (self.afterSizeW == 0 or self.afterSizeH == 0)
+            and self.afterSizeW != self.afterSizeH
+           ):
             ratio = self._resultingRatio()
             if self.afterSizeH == 0:
                 self.afterSizeH = int(round(self.afterSizeW / ratio))
@@ -102,6 +107,7 @@
         self.afterSize = (self.afterSizeW,self.afterSizeH)
 
     def _process(self):
+        self._collectParams()
         pimg = IProcessableImage(self.context)
         self._pushCommands(pimg)
         return pimg.process()
@@ -163,21 +169,13 @@
 
 class ResizedImageView(ImageProcessorView):
 
-    def __init__(self,context,request):
-        super(ResizedImageView,self).__init__(context,request)
-        data = context.data
-        if not isinstance(data, str):
-            pos = data.tell()
-            data.seek(0)
-            res = data.read(1024*1024)
-            data.seek(pos)
-            data = res
-        else:
-            data = self.context.data
+    def _collectParams(self):
+        super(ResizedImageView,self)._collectParams()
+        data = self.data
         t,w,h = getImageInfo(data)
         self.size = (w,h)
-        self.width = self.request.form.get('w',self.size[0])
-        self.height = self.request.form.get('h',self.size[1])
+        self.width = self.params.get('w',self.size[0])
+        self.height = self.params.get('h',self.size[1])
 
     def _pushCommands(self, pimg):
         new_size = getMaxSize(self.size, (self.width, self.height))
@@ -193,11 +191,11 @@
 
     img = None
 
-    def __init__(self,context,request):
-        super(PasteImageView, self).__init__(context, request)
-        self.x = self.request.form.get('x', 0)
-        self.y = self.request.form.get('y', 0)
-        self.imgId = self.request.form.get('img', 0)
+    def _collectParams(self):
+        super(PasteImageView, self)._collectParams()
+        self.x = self.params.get('x', 0)
+        self.y = self.params.get('y', 0)
+        self.imgId = self.params.get('img', 0)
 
     def _pushCommands(self, pimg):
         super(PasteImageView, self)._pushCommands(pimg)

Modified: z3c.image/trunk/src/z3c/image/proc/tests.py
===================================================================
--- z3c.image/trunk/src/z3c/image/proc/tests.py	2008-06-14 19:48:28 UTC (rev 87404)
+++ z3c.image/trunk/src/z3c/image/proc/tests.py	2008-06-15 12:34:54 UTC (rev 87405)
@@ -13,8 +13,7 @@
 
 def setUp(test):
     component.provideHandler(adapter.invalidateCache,
-                             adapts=(
-        IImage, IObjectModifiedEvent))
+                             adapts=(IImage, IObjectModifiedEvent))
 
 def tearDown(test):
     pass



More information about the Checkins mailing list