durusmail: quixote-users: StaticDirectory serving index files again
StaticDirectory serving index files again
StaticDirectory serving index files again
Shalabh Chaturvedi
2004-10-03
Oleg Broytmann wrote:
> On Fri, Oct 01, 2004 at 10:55:00AM -0700, Shalabh Chaturvedi wrote:
>
>>Also, I thought of subclassing StaticDirectory but the only reason I
>>couldn't is because the following code in _q_lookup():
>>
>>     item = self.__class__(item_filepath, self.use_cache,
>>                           self.list_directory,
>>                           self.follow_symlinks, self.cache_time,
>>                           self.file_class)
>>
>>Here a new directory object is created using the parameters of the self
>>object. For a subclass, the parameters of __init__() are different, and
>>this line needs to be changed to pass the new parameters. If we instead
>>implement this as:
>>
>>     item = self.new_directory(item_filepath)
>>
>>and:
>>
>> def new_directory(self, item_filepath):
>>     return self.__class__(item_filepath,
>>                           self.use_cache,
>>                           self.list_directory,
>>                           self.follow_symlinks, self.cache_time,
>>                           self.file_class)
>>
>>then not only I could implement my requirement as a subclass, but others
>>too might add what they need by subclassing. Do you think this is better?
>
>
>    +0.5
>
> Oleg.

At least this one got some support :) Attached is a patch for util.py.
It's much simpler than the earlier patch.

Shalabh
--- down/quixote-1/Quixote-1.0/util.py  Fri Oct 10 07:02:46 2003
+++ /usr/local/lib/python2.3/site-packages/quixote/util.py      Sun Oct  3
11:48:19 2004
@@ -234,8 +234,5 @@

             if os.path.isdir(item_filepath):
-                item = self.__class__(item_filepath, self.use_cache,
-                                      self.list_directory,
-                                      self.follow_symlinks, self.cache_time,
-                                      self.file_class)
+                item = self.new_directory(item_filepath)
             elif os.path.isfile(item_filepath):
                 item = self.file_class(item_filepath, self.follow_symlinks,
@@ -246,4 +243,13 @@
                 self.cache[name] = item
         return item
+
+    def new_directory(self, item_filepath):
+        """
+        Return a new directory object using parameters of this object
+        """
+        return self.__class__(item_filepath, self.use_cache,
+                              self.list_directory,
+                              self.follow_symlinks, self.cache_time,
+                              self.file_class)


reply