Metadata-Version: 1.1
Name: Products.ExtendedPathIndex
Version: 3.0
Summary: Zope catalog index for paths
Home-page: http://pypi.python.org/pypi/Products.ExtendedPathIndex
Author: Plone Foundation
Author-email: plone-developers@lists.sourceforge.net
License: GPL version 2
Description: Introduction
        ============
        
        This is an index that supports depth limiting, and the ability to build a
        structure usable for navtrees and sitemaps. The actual navtree implementations
        are not (and should not) be in this Product, this is the index implementation
        only.
        
        Assumptions
        ===========
        
        EPI makes an assumption about the catalog and index being in the
        same container as all the content. This makes a lot of sense in a
        Plone setting, but might not work as expected in other scenarios.
        
        A query like ``/plonesite/folder, level=0`` is transformed internally to
        ``/folder, level=1``. This avoids touching the rather large plonesite set
        which contains reference to all content in your site.
        
        Features
        ========
        
        - Can construct a site map with a single catalog query
        
        - Can construct a navigation tree with a single catalog query
        
        Usage
        =====
        
        ``catalog(path='some/path')``
          search for all objects below some/path (recursive, equivalent to depth = -1)
        
        ``catalog(path=dict(query='some/path', depth=0))``
          search for the object with the given path.
        
        ``catalog(path=dict(query='some/path', depth=2))``
          search for all objects below some/path but only down to a depth of 2
        
        ``catalog(path=dict(query='some/path', navtree=True))``
          search for all objects below some/path for rendering a navigation tree. This
          includes all objects below some/path up to a depth of 1 and all parent
          objects.
        
        ``catalog(path=dict(query='some/path', navtree=True, depth=0))``
          search for all objects below some/path for rendering a breadcrumb trail.
          This includes only the parent objects themselves.
        
        ``catalog(path=dict(query='some/path', navtree=True, navtree_start=1))``
          search for all objects below some/path for rendering a partial
          navigation tree. This includes all objects below the path but stops
          1 level above the root.  The given path is included, even if it is at a
          shorter path in the portal than the level parameter would allow.
        
        ``catalog(path=dict(query='some/path', navtree=True, depth=0, navtree_start=1))``
          search for all objects below some/path for rendering a partial
          breadcrumb trail. This includes all parents below the path but stops
          1 level above the root.  The given path is included, even if it is at a
          lower level in the portal than the start parameter would allow.
        
        ``catalog(path=dict(query='some/path', level=2))``
          search for all objects whose path contains some/path at level 2. This 
          includes paths like /foo/bar/some/path and /spam/eggs/some/path, plus all
          children of those paths.
        
        ``catalog(path=dict(query='some/path', level=-1, depth=0))``
          search for all objects whose path contains some/path at *any* level. This
          includes paths like /spam/some/path as well as /foo/bar/baz/some/path, but
          only those exact matches are included in the result because depth is set to
          0.
        
        ``catalog(path=dict(query=(('foo/bar', 2), ('bar/baz'), 1), depth=0))``
          search for multiple paths, each at different levels (foo/bar at level 2,
          and bar/baz at level 1), and return exact matches only.
        
        Credits
        =======
        
        - Zope Corporation for the initial PathIndex code
        
        - Helge Tesdal and Martijn Pieters from Jarn_ for the ExtendedPathIndex implementation
        
        - Alec Mitchell for the navtree and listing optimizations
        
        .. _Jarn: http://jarn.com
        
        
        License
        =======
        
        This software is released under the GPL license.
        
        
        Changelog
        =========
        
        3.0 - 2012-04-26
        ----------------
        
        * Fixed TypeError on insert when parent_path is not in the index_parents.
          [maurits]
        
        * Better protection against corrupted internal data in ``_index_parents``.
          [hannosch]
        
        * Slightly optimize reindexing an object by passing in information from the
          index to the unindex method and avoiding another unindex scan.
          [hannosch]
        
        * Avoid an extra unindex scan for determining length changes in index_object.
          [hannosch]
        
        * Declared support for new ILimitedResultIndex interface and require at least
          Zope 2.13.0a3.
          [hannosch]
        
        * Merge in optimizations from ``experimental.catalogqueryplan``.
          [hannosch]
        
        * PEP8 cleanup and minor optimizations in un/index code.
          [hannosch]
        
        * Specify distribution dependencies.
          [hannosch]
        
        2.9 - 2010-07-18
        ----------------
        
        * Update license to GPL version 2 only.
          [hannosch]
        
        2.8 - 2010-05-01
        ----------------
        
        * No longer depend directly on test internals of PathIndex.
          [hannosch]
        
        2.7 - 2009-11-13
        ----------------
        
        * Added AccessControl import to tests to avoid cyclic import issue in
          Zope 2.12.
          [davisagli]
        
        2.6 - 2009-05-18
        ----------------
        
        * Clarified license to be only GPL.
          [hannosch]
        
        * Declare package dependencies and fixed deprecation warnings for use
          of Globals.
          [hannosch]
        
        2.5 - December 19, 2008
        -----------------------
        
        * Cleaned out tests: removing ZTC cruft, turning them into proper unit tests
          and removing tests that tested other non-index components.
          [mj]
        
        * Fixed level handling for queries where a (path, level) tuple is passed in
          instead of using the general level parameter.
          [mj]
        
        * Refactored and documented the index codebase. Several bugs were discovered 
          and solved in the process. Missing functionality was also added, all search
          options should now work across all scenarios.
          [mj]
        
        2.4.1 - September 28, 2008
        --------------------------
        
        - Fix typo in setup.py which broke installation of the egg
          [ree]
        
          
        
        2.4 - September 11, 2006
        ------------------------
        
        - Relaxed a check for path only allowing strings so far. Now we except all
          basestrings. This closes http://dev.plone.org/plone/ticket/5617.
          [hannosch]
        
        - Converted log infrastructure to use Python's logging module instead zLOG.
          [hannosch] 
        
        2.3 - December 18, 2005
        -----------------------
        
        - Added some extra debug information when an improper path is cataloged.
          [sidnei]
        
        2.2 - October 7, 2005
        ---------------------
        
        - Add seperate index structures on the parent path and the full path of all
          objects.  This significantly improves scaling for navtrees, breadcrumbs,
          and listings.
          [alecm]
        
        - Assume that EPI is used inside same container as content and use relative
          search instead of absolute - basically transforming / plonesite search
          to / search with startlevel set to 1 instead of 0.
          [tesdal]
        
        2.1 - May 20, 2005
        ------------------
        
        - Implement 'indexed_attrs' support for ExtendedPathIndex.
        
        - Prevent navigation tree queries from stopping prematurely if the
          queried-for path does not actually exist in the index, but its parents do.
        
        1.0
        ---
        
        - Path index capable of generating a navigation tree structure from
          cataloged data.
        
Keywords: Zope catalog index
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Zope2
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
