[Zope-Checkins] SVN: Zope/branches/Zope-2_8-branch/lib/python/Products/ reverted r30999, removed all Five dependencies introduced in r30994

Yvo Schubbe y.2005- at wcm-solutions.de
Tue Jul 5 09:38:19 EDT 2005


Log message for revision 31005:
  reverted r30999, removed all Five dependencies introduced in r30994
  (this fixes the infinite loop issue, but adds redundant interface definitions because we can't use Five's bridging code)

Changed:
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateIndex/tests/test_DateIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateRangeIndex/tests/test_DateRangeIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/FieldIndex/tests/testFieldIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/KeywordIndex/tests/testKeywordIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/tests/testPathIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/TextIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/tests/testTextIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/TopicIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/tests/testTopicIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/common/UnIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/interfaces.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/ZCTextIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/tests/testZCTextIndex.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/ZCatalog.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/interfaces.py
  U   Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/tests/testCatalog.py

-=-
Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateIndex/tests/test_DateIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateIndex/tests/test_DateIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateIndex/tests/test_DateIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -172,9 +172,9 @@
         from zope.interface.verify import verifyClass
 
         verifyClass(IDateIndex, DateIndex)
-        verifyClass(IPluggableIndex, DateIndex, 1)
-        verifyClass(ISortIndex, DateIndex, 1)
-        verifyClass(IUniqueValueIndex, DateIndex, 1)
+        verifyClass(IPluggableIndex, DateIndex)
+        verifyClass(ISortIndex, DateIndex)
+        verifyClass(IUniqueValueIndex, DateIndex)
 
     def test_empty(self):
         empty = self._index

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateRangeIndex/tests/test_DateRangeIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateRangeIndex/tests/test_DateRangeIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/DateRangeIndex/tests/test_DateRangeIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -88,9 +88,9 @@
         from zope.interface.verify import verifyClass
 
         verifyClass(IDateRangeIndex, DateRangeIndex)
-        verifyClass(IPluggableIndex, DateRangeIndex, 1)
-        verifyClass(ISortIndex, DateRangeIndex, 1)
-        verifyClass(IUniqueValueIndex, DateRangeIndex, 1)
+        verifyClass(IPluggableIndex, DateRangeIndex)
+        verifyClass(ISortIndex, DateRangeIndex)
+        verifyClass(IUniqueValueIndex, DateRangeIndex)
 
     def test_empty( self ):
 

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/FieldIndex/tests/testFieldIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/FieldIndex/tests/testFieldIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/FieldIndex/tests/testFieldIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -100,9 +100,9 @@
         from Products.PluginIndexes.interfaces import IUniqueValueIndex
         from zope.interface.verify import verifyClass
 
-        verifyClass(IPluggableIndex, FieldIndex, 1)
-        verifyClass(ISortIndex, FieldIndex, 1)
-        verifyClass(IUniqueValueIndex, FieldIndex, 1)
+        verifyClass(IPluggableIndex, FieldIndex)
+        verifyClass(ISortIndex, FieldIndex)
+        verifyClass(IUniqueValueIndex, FieldIndex)
 
     def testEmpty( self ):
         "Test an empty FieldIndex."

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/KeywordIndex/tests/testKeywordIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/KeywordIndex/tests/testKeywordIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/KeywordIndex/tests/testKeywordIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -120,9 +120,9 @@
         from Products.PluginIndexes.interfaces import IUniqueValueIndex
         from zope.interface.verify import verifyClass
 
-        verifyClass(IPluggableIndex, KeywordIndex, 1)
-        verifyClass(ISortIndex, KeywordIndex, 1)
-        verifyClass(IUniqueValueIndex, KeywordIndex, 1)
+        verifyClass(IPluggableIndex, KeywordIndex)
+        verifyClass(ISortIndex, KeywordIndex)
+        verifyClass(IUniqueValueIndex, KeywordIndex)
 
     def testAddObjectWOKeywords(self):
 

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -30,6 +30,7 @@
 from Products.PluginIndexes.common import safe_callable
 from Products.PluginIndexes.common.util import parseIndexRequest
 from Products.PluginIndexes.interfaces import IPathIndex
+from Products.PluginIndexes.interfaces import IUniqueValueIndex
 
 _marker = []
 LOG = getLogger('Zope.PathIndex')
@@ -52,7 +53,7 @@
     """
 
     __implements__ = (PluggableIndex.UniqueValueIndex,)
-    implements(IPathIndex)
+    implements(IPathIndex, IUniqueValueIndex)
 
     meta_type="PathIndex"
 

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/tests/testPathIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/tests/testPathIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/PathIndex/tests/testPathIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -75,7 +75,7 @@
         from zope.interface.verify import verifyClass
 
         verifyClass(IPathIndex, PathIndex)
-        verifyClass(IUniqueValueIndex, PathIndex, 1)
+        verifyClass(IUniqueValueIndex, PathIndex)
 
     def testEmpty(self):
         self.assertEqual(self._index.numObjects() ,0)

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/TextIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/TextIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/TextIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -34,6 +34,7 @@
 from Products.PluginIndexes.common import safe_callable
 from Products.PluginIndexes.common.ResultList import ResultList
 from Products.PluginIndexes.common.util import parseIndexRequest
+from Products.PluginIndexes.interfaces import IPluggableIndex
 from Products.PluginIndexes.interfaces import ITextIndex
 
 from Lexicon import Lexicon
@@ -77,7 +78,7 @@
     """
 
     __implements__ = (PluggableIndex.PluggableIndexInterface,)
-    implements(ITextIndex)
+    implements(ITextIndex, IPluggableIndex)
 
     meta_type='TextIndex'
 

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/tests/testTextIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/tests/testTextIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TextIndex/tests/testTextIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -92,7 +92,7 @@
         from Products.PluginIndexes.TextIndex.TextIndex import TextIndex
         from zope.interface.verify import verifyClass
 
-        verifyClass(IPluggableIndex, TextIndex, 1)
+        verifyClass(IPluggableIndex, TextIndex)
         verifyClass(ITextIndex, TextIndex)
 
     def test_SimpleAddDelete(self):

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/TopicIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/TopicIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/TopicIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -25,6 +25,7 @@
 
 from Products.PluginIndexes import PluggableIndex
 from Products.PluginIndexes.common.util import parseIndexRequest
+from Products.PluginIndexes.interfaces import IPluggableIndex
 from Products.PluginIndexes.interfaces import ITopicIndex
 
 import FilteredSet
@@ -42,7 +43,7 @@
     """
 
     __implements__ = (PluggableIndex.PluggableIndexInterface,)
-    implements(ITopicIndex)
+    implements(ITopicIndex, IPluggableIndex)
 
     meta_type="TopicIndex"
     query_options = ('query','operator')

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/tests/testTopicIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/tests/testTopicIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/TopicIndex/tests/testTopicIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -71,7 +71,7 @@
         from zope.interface.verify import verifyClass
 
         verifyClass(ITopicIndex, TopicIndex)
-        verifyClass(IPluggableIndex, TopicIndex, 1)
+        verifyClass(IPluggableIndex, TopicIndex)
 
     def testOr(self):
         self._searchOr('doc1',[1,2])

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/common/UnIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/common/UnIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/common/UnIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -24,10 +24,14 @@
 import BTrees.Length
 from BTrees.OOBTree import OOBTree
 from OFS.SimpleItem import SimpleItem
+from zope.interface import implements
 
 from Products.PluginIndexes import PluggableIndex
 from Products.PluginIndexes.common import safe_callable
 from Products.PluginIndexes.common.util import parseIndexRequest
+from Products.PluginIndexes.interfaces import IPluggableIndex
+from Products.PluginIndexes.interfaces import ISortIndex
+from Products.PluginIndexes.interfaces import IUniqueValueIndex
 
 _marker = []
 LOG = getLogger('Zope.UnIndex')
@@ -40,6 +44,7 @@
 
     __implements__ = (PluggableIndex.UniqueValueIndex,
                       PluggableIndex.SortIndex)
+    implements(IPluggableIndex, IUniqueValueIndex, ISortIndex)
 
     def __init__(
         self, id, ignore_ex=None, call_methods=None, extra=None, caller=None):

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/interfaces.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/interfaces.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/PluginIndexes/interfaces.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -19,24 +19,99 @@
 from zope.schema import Bool
 
 
-# create IPluggableIndex, IUniqueValueIndex, ISortIndex
-from Products.Five.fiveconfigure import createZope2Bridge
-from common.PluggableIndex import PluggableIndexInterface
-from common.PluggableIndex import SortIndex
-from common.PluggableIndex import UniqueValueIndex
-import interfaces
+# XXX: copied from common.PluggableIndex.PluggableIndexInterface;
+#      should be bridged
+class IPluggableIndex(Interface):
 
-createZope2Bridge(PluggableIndexInterface, interfaces, 'IPluggableIndex')
-createZope2Bridge(SortIndex, interfaces, 'ISortIndex')
-createZope2Bridge(UniqueValueIndex, interfaces, 'IUniqueValueIndex')
+    def getId():
+        """Return Id of index."""
 
-del createZope2Bridge
-del PluggableIndexInterface
-del SortIndex
-del UniqueValueIndex
-del interfaces
+    def getEntryForObject(documentId, default=None):
+        """Get all information contained for 'documentId'."""
 
+    def getIndexSourceNames():
+        """ return a sequence of attribute names that are indexed 
+            by the index. 
+        """
 
+    def index_object(documentId, obj, threshold=None):
+        """Index an object.
+
+        'documentId' is the integer ID of the document.
+        'obj' is the object to be indexed.
+        'threshold' is the number of words to process between committing
+        subtransactions.  If None, subtransactions are disabled.
+        """
+
+    def unindex_object(documentId):
+        """Remove the documentId from the index."""
+
+    def _apply_index(request, cid=''):
+        """Apply the index to query parameters given in 'request'.
+
+        The argument should be a mapping object.
+
+        If the request does not contain the needed parametrs, then
+        None is returned.
+
+        If the request contains a parameter with the name of the column
+        + "_usage", it is sniffed for information on how to handle applying
+        the index. (Note: this style or parameters is deprecated)
+
+        If the request contains a parameter with the name of the
+        column and this parameter is either a Record or a class
+        instance then it is assumed that the parameters of this index
+        are passed as attribute (Note: this is the recommended way to
+        pass parameters since Zope 2.4)
+
+        Otherwise two objects are returned.  The first object is a
+        ResultSet containing the record numbers of the matching
+        records.  The second object is a tuple containing the names of
+        all data fields used.
+        """
+    
+    def numObjects():
+        """Return the number of indexed objects"""
+
+# XXX: this is currently broken
+#    def indexSize():
+#        """Return the size of the index in terms of distinct values"""
+    
+    def clear():
+        """Empty the index"""
+
+
+# XXX: copied from from common.PluggableIndex.UniqueValueIndex;
+#      should be bridged
+class IUniqueValueIndex(IPluggableIndex):
+    """An index which can return lists of unique values contained in it"""
+    
+    def hasUniqueValuesFor(name):
+        """Return true if the index can return the unique values for name"""
+        
+    def uniqueValues(name=None, withLengths=0):
+        """Return the unique values for name.
+
+        If 'withLengths' is true, returns a sequence of tuples of
+        (value, length)."""
+
+
+# XXX: copied from from common.PluggableIndex.SortIndex;
+#      should be bridged
+class ISortIndex(IPluggableIndex):
+    """An index which may be used to sort a set of document ids"""
+    
+    def keyForDocument(documentId):
+        """Return the sort key that cooresponds to the specified document id
+        
+        This method is no longer used by ZCatalog, but is left for backwards 
+        compatibility."""
+        
+    def documentToKeyMap():
+        """Return an object that supports __getitem__ and may be used to quickly
+        lookup the sort key given a document id"""
+
+
 class IDateIndex(Interface):
 
     """Index for dates.

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/ZCTextIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/ZCTextIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/ZCTextIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -31,6 +31,7 @@
      PluggableIndexInterface
 from Products.PluginIndexes.common.util import parseIndexRequest
 from Products.PluginIndexes.common import safe_callable
+from Products.PluginIndexes.interfaces import IPluggableIndex
 
 from Products.ZCTextIndex.ILexicon import ILexicon
 from Products.ZCTextIndex.Lexicon import \
@@ -54,7 +55,7 @@
     """
 
     __implements__ = PluggableIndexInterface
-    implements(IZCTextIndex)
+    implements(IZCTextIndex, IPluggableIndex)
 
     ## Magic class attributes ##
 

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/tests/testZCTextIndex.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/tests/testZCTextIndex.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZCTextIndex/tests/testZCTextIndex.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -267,7 +267,7 @@
         from Products.ZCTextIndex.interfaces import IZCTextIndex
         from zope.interface.verify import verifyClass
 
-        verifyClass(IPluggableIndex, ZCTextIndex, 1)
+        verifyClass(IPluggableIndex, ZCTextIndex)
         verifyClass(IZCTextIndex, ZCTextIndex)
 
     def testRanking(self):

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/ZCatalog.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/ZCatalog.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/ZCatalog.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -37,8 +37,10 @@
      import PluggableIndexInterface
 from Products.PluginIndexes.TextIndex import Splitter
 from zLOG import LOG
+from zope.interface import implements
 
 from Catalog import Catalog, CatalogError
+from interfaces import IZCatalog as z3IZCatalog
 from IZCatalog import IZCatalog as z2IZCatalog
 from ProgressHandler import ZLogHandler
 from ZCatalogIndexes import ZCatalogIndexes
@@ -81,6 +83,7 @@
     """
 
     __implements__ = z2IZCatalog
+    implements(z3IZCatalog)
 
     meta_type = "ZCatalog"
     icon='misc_/ZCatalog/ZCatalog.gif'

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/interfaces.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/interfaces.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/interfaces.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -15,13 +15,239 @@
 $Id$
 """
 
-# create IZCatalog
-from Products.Five.fiveconfigure import createZope2Bridge
-from IZCatalog import IZCatalog as z2IZCatalog
-import interfaces
+from zope.interface import Interface
 
-createZope2Bridge(z2IZCatalog, interfaces, 'IZCatalog')
 
-del createZope2Bridge
-del z2IZCatalog
-del interfaces
+# XXX: copied from IZCatalog.IZCatalog;
+#      should be bridged
+class IZCatalog(Interface):
+    """ZCatalog object
+
+    A ZCatalog contains arbitrary index like references to Zope
+    objects.  ZCatalog's can index object attribute using a variety
+    of "plug-in" index types.
+
+    Several index types are included, and others may be added.
+
+      Text -- Text indexes index textual content.  The index can be
+      used to search for objects containing certain words.
+
+      Field -- Field indexes index atomic values.  The index can be
+      used to search for objects that have certain properties.
+
+      Keyword -- Keyword indexes index sequences of values.  The index
+      can be used to search for objects that match one or more of the
+      search terms.
+
+      Path -- Path indexes index URI paths. They allow you to find objects
+      based on their placement in a hierarchy.
+
+      Date -- Date indexes index date and type data. They are a type of field
+      index specifically optimized for indexing dates.
+
+      Date Range -- Date range indexes index time intervals. They are designed
+      for efficient searching of dates falling between two boundaries
+      (such as effective / expiration dates).
+
+      Topic -- Topic indexes store prefiltered sets of documents. They are used
+      to optimize complex queries into a single fast query by prefiltering
+      documents by an expression
+
+    The ZCatalog can maintain a table of extra data about cataloged
+    objects.  This information can be used on search result pages to
+    show information about a search result.
+
+    The meta-data table schema is used to build the schema for
+    ZCatalog Result objects.  The objects have the same attributes
+    as the column of the meta-data table.
+
+    ZCatalog does not store references to the objects themselves, but
+    rather to a unique identifier that defines how to get to the
+    object.  In Zope, this unique identifier is the object's relative
+    path to the ZCatalog (since two Zope objects cannot have the same
+    URL, this is an excellent unique qualifier in Zope).
+
+    """
+
+    def catalog_object(obj, uid, idxs=None, update_metadata=1):
+        """Catalogs the object 'obj' with the unique identifier 'uid'.
+
+        The uid must be a physical path, either absolute or relative to
+        the catalog.
+
+        If provided, idxs specifies the names of indexes to update.
+
+        If update_metadata is specified (the default), the object's metadata
+        is updated.  If it is not, the metadata is left untouched.  This
+        flag has no effect if the object is not yet cataloged (metadata
+        is always added for new objects).
+        """
+
+    def uncatalog_object(uid):
+        """Uncatalogs the object with the unique identifier 'uid'.
+
+        The uid must be a physical path, either absolute or relative to
+        the catalog.
+        """
+
+    def uniqueValuesFor(name):
+        """returns the unique values for a given FieldIndex named 'name'.
+        """
+
+    def getpath(rid):
+        """Return the path to a cataloged object given a 'data_record_id_'
+        """
+
+    def getrid(rid):
+        """Return the 'data_record_id_' to a cataloged object given a path
+        """
+
+    def getobject(rid, REQUEST=None):
+        """Return a cataloged object given a 'data_record_id_'
+        """
+
+    def schema():
+        """Get the meta-data schema
+
+        Returns a sequence of names that correspond to columns in the
+        meta-data table.
+
+        """
+
+    def indexes():
+        """Returns a sequence of names that correspond to indexes.
+        """
+
+    def index_objects():
+        """Returns a sequence of actual index objects.
+
+        NOTE: This returns unwrapped indexes! You should probably use
+        getIndexObjects instead. Some indexes expect to be wrapped.
+        """
+
+    def getIndexObjects():
+        """Returns a list of acquisition wrapped index objects
+        """
+
+    def searchResults(REQUEST=None, **kw):
+        """Search the catalog.
+
+        Search terms can be passed in the REQUEST or as keyword
+        arguments.
+
+        Search queries consist of a mapping of index names to search
+        parameters.  You can either pass a mapping to searchResults as
+        the variable 'REQUEST' or you can use index names and search
+        parameters as keyword arguments to the method, in other words::
+
+          searchResults(title='Elvis Exposed',
+                        author='The Great Elvonso')
+
+        is the same as::
+
+          searchResults({'title' : 'Elvis Exposed',
+                         'author : 'The Great Elvonso'})
+
+        In these examples, 'title' and 'author' are indexes.  This
+        query will return any objects that have the title *Elvis
+        Exposed* AND also are authored by *The Great Elvonso*.  Terms
+        that are passed as keys and values in a searchResults() call
+        are implicitly ANDed together. To OR two search results, call
+        searchResults() twice and add concatenate the results like this::
+
+          results = ( searchResults(title='Elvis Exposed') +
+                      searchResults(author='The Great Elvonso') )
+
+        This will return all objects that have the specified title OR
+        the specified author.
+
+        There are some special index names you can pass to change the
+        behavior of the search query:
+
+          sort_on -- This parameters specifies which index to sort the
+          results on.
+
+          sort_order -- You can specify 'reverse' or 'descending'.
+          Default behavior is to sort ascending.
+
+          sort_limit -- An optimization hint to tell the catalog how many
+          results you are really interested in. See the limit argument
+          to the search method for more details.
+
+        There are some rules to consider when querying this method:
+
+            - an empty query mapping (or a bogus REQUEST) returns all
+              items in the catalog.
+
+            - results from a query involving only field/keyword
+              indexes, e.g.  {'id':'foo'} and no 'sort_on' will be
+              returned unsorted.
+
+            - results from a complex query involving a field/keyword
+              index *and* a text index,
+              e.g. {'id':'foo','PrincipiaSearchSource':'bar'} and no
+              'sort_on' will be returned unsorted.
+
+            - results from a simple text index query
+              e.g.{'PrincipiaSearchSource':'foo'} will be returned
+              sorted in descending order by 'score'.  A text index
+              cannot beused as a 'sort_on' parameter, and attempting
+              to do so will raise an error.
+
+        Depending on the type of index you are querying, you may be
+        able to provide more advanced search parameters that can
+        specify range searches or wildcards.  These features are
+        documented in The Zope Book.
+
+        """
+
+    def __call__(REQUEST=None, **kw):
+        """Search the catalog, the same way as 'searchResults'.
+        """
+
+    def search(query_request, sort_index=None, reverse=0, limit=None, merge=1):
+        """Programmatic search interface, use for searching the catalog from
+        scripts.
+
+        query_request -- Dictionary containing catalog query. This uses the
+        same format as searchResults.
+
+        sort_index -- Name of sort index
+
+        reverse -- Boolean, reverse sort order (defaults to false)
+
+        limit -- Limit sorted result count to the n best records. This is an
+        optimization hint used in conjunction with a sort_index. If possible
+        ZCatalog will use a different sort algorithm that uses much less memory
+        and scales better then a full sort. The actual number of records
+        returned is not guaranteed to be <= limit. You still need to apply the
+        same batching to the results. Since the len() of the results will no
+        longer be the actual result count, you can use the
+        "actual_result_count" attribute of the lazy result object instead to
+        determine the size of the full result set.
+
+        merge -- Return merged, lazy results (like searchResults) or raw
+        results for later merging. This can be used to perform multiple
+        queries (even across catalogs) and merge and sort the combined results.
+        """
+
+    def refreshCatalog(clear=0, pghandler=None):
+        """Reindex every object we can find, removing the unreachable
+        ones from the index.
+
+        clear -- values: 1|0  clear the catalog before reindexing
+
+        pghandler -- optional Progresshandler as defined in ProgressHandler.py
+        (see also README.txt)
+        """
+
+    def reindexIndex(name, REQUEST, pghandler=None):
+        """Reindex a single index.
+
+        name -- id of index
+
+        REQUEST -- REQUEST object
+
+        pghandler -- optional Progresshandler as defined in ProgressHandler.py
+        (see also README.txt)
+        """

Modified: Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/tests/testCatalog.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/tests/testCatalog.py	2005-07-05 13:35:47 UTC (rev 31004)
+++ Zope/branches/Zope-2_8-branch/lib/python/Products/ZCatalog/tests/testCatalog.py	2005-07-05 13:38:18 UTC (rev 31005)
@@ -193,7 +193,7 @@
         from Products.ZCatalog.ZCatalog import ZCatalog
         from zope.interface.verify import verifyClass
 
-        verifyClass(IZCatalog, ZCatalog, 1)
+        verifyClass(IZCatalog, ZCatalog)
 
     def testGetMetadataForUID(self):
         testNum = str(self.upper - 3) # as good as any..



More information about the Zope-Checkins mailing list