Metadata-Version: 1.0
Name: repoze.bfg.traversalwrapper
Version: 0.3
Summary: An add-on for the repoze.bfg web framework which supplies a model graph traverser which proxies location-ignorant model objects
Home-page: http://bfg.repoze.org
Author: Agendaless Consulting
Author-email: repoze-dev@lists.repoze.org
License: BSD-derived (http://www.repoze.org/LICENSE.txt)
Description: repoze.bfg.traversalwrapper
        ===========================
        
        An alternate implementation of the
        ``repoze.bfg.interfaces.ITraverserFactory`` (a "traverser") which
        wraps each traversed object in a proxy.  This allows a
        "location-ignorant" model (a model which does not possess intrinsic
        ``__name__`` and ``__parent__`` attributes) to be used as the root
        object and as any object returned from any other model's
        ``__getitem__`` method during traversal.
        
        When this ITraverserFactory is registered as the traverser for a
        ``repoze.bfg`` application, during traversal, each object, including
        the root object is wrapped in a proxy.  The proxy that provides the
        traversed object with a ``__name__`` and ``__parent__`` attribute.
        The ``__name__`` and ``__parent__`` attributes of the root proxy are
        both ``None``.  The ``__name__`` of subsequently traversed object is
        the Unicode URL segment name which was used to look it up.  The
        ``__parent__`` of subsequently traversed objects is the previous
        object traversed.
        
        In order to enable this package's ITraverserFactory, register the
        ``repoze.bfg.traversalwrapper.ModelGraphTraverser`` as the traversal
        policy, rather than the default ``ModelGraphTraverser``. To use this
        feature, your application will need to have a dependency on this
        package, as well as following stanza in its ``configure.zcml``::
        
            <adapter
                factory="repoze.bfg.traversalwrapper.ModelGraphTraverser"
                provides="repoze.bfg.interfaces.ITraverserFactory"
                for="*"
                />
        
        .. note:: When this ITraverserFactory is used, the intrinsic
           ``__name__`` or ``__parent__`` attribute of an object are ignored.
           Even if an object in the graph (including the root objects) has an
           intrinsic ``__name__`` and ``__parent__`` attribute, it will still
           be wrapped in a proxy that override the object's "real"
           ``__parent__`` and ``__name__`` attributes.
        
        
        
        repoze.bfg.traversalwrapper Changelog
        =====================================
        
        0.3 (2009-06-22)
        -----------------
        
        - Compatibility with BFG 1.0a1.  This version is not guaranteed to be
          compatible with any BFG version before 1.0a1.
        
        0.2 (2008-05-18)
        ----------------
        
        - Use dictionary return values from our ITraverser in lockstep with
          changes to 0.8dev.
        
        0.1
        ---
        
        - Initial release (functionality moved out of BFG core).
        
        
Keywords: bfg repoze.bfg traverser traversal proxy
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
