SVN: r25826 - trunk/quixote

David Binger <dbinger-fVcApmY9cLvQ3/1i3zOLAti2O/[email protected]> Wed, 5 Jan 2005 11:22:24 -0500
Newsgroups gmane.comp.web.quixote.cvs
Message-ID <[email protected]>
Author: dbinger
Date: 2005-01-05 08:51:15 -0500 (Wed, 05 Jan 2005)
New Revision: 25826

Modified:
   trunk/quixote/publish.py
Log:
Make publisher check that root_directory has a _q_traverse method, instead of
checking that it is a Directory instance.  


Modified: trunk/quixote/publish.py
===================================================================
--- trunk/quixote/publish.py	2005-01-05 13:33:33 UTC (rev 25825)
+++ trunk/quixote/publish.py	2005-01-05 13:51:15 UTC (rev 25826)
@@ -9,7 +9,6 @@
 import urlparse
 import cgitb
 
-from quixote.directory import Directory
 from quixote.errors import PublishError, format_publish_error
 from quixote import util
 from quixote.config import Config
@@ -57,7 +56,8 @@
     Instance attributes:
       root_directory : Directory
         the root directory that will be searched for objects to fulfill
-        each request
+        each request.  This can be any object with a _q_traverse method
+        that acts like Directory._q_traverse.
       logger : DefaultLogger
         controls access log and error log behavior
       config : Config
@@ -88,9 +88,10 @@
             raise RuntimeError, "only one instance of Publisher allowed"
         _publisher = self
 
-        if not isinstance(root_directory, Directory):
-            raise TypeError('Directory instance expected, got %r' %
-                            root_directory)
+        if not callable(getattr(root_directory, '_q_traverse')):
+            raise TypeError(
+                'Expected something with a _q_traverse method, got %r' %
+                root_directory)
         self.root_directory = root_directory
 
         self._request = None