Metadata-Version: 1.1
Name: TraversalKit
Version: 0.3.1
Summary: Helper library for Pyramid applications based on Traversal
Home-page: https://bitbucket.org/kr41/traversalkit
Author: Dmitry Vakhrushev
Author-email: self@kr41.net
License: BSD
Download-URL: https://bitbucket.org/kr41/traversalkit/downloads
Description: 
        TraversalKit
        ============
        
        The library provides tools to build resource tree for applications that use
        traversal routing.  It has been developed to be used with Pyramid_ web
        application framework, however it does not depend on it and can be used
        within any application.
        
        It helps implement resource tree hierarchy in a simple declarative way:
        
        ..  _Pyramid: http://docs.pylonsproject.org/projects/pyramid/en/latest/
        
        ..  code-block:: pycon
        
            >>> from traversalkit import Resource, DEC_ID
        
            >>> class Root(Resource):
            ...     """ Tree root """
        
            >>> @Root.mount('users')
            ... class Users(Resource):
            ...     """ Users collection """
        
            >>> @Users.mount_set(DEC_ID, metaname='user_id')
            ... class User(Resource):
            ...     """ User resource """
        
            >>> @Root.mount('posts')
            ... @User.mount('posts')
            ... class Posts(Resource):
            ...     """ Posts collection """
        
            >>> @Posts.mount_set(DEC_ID, metaname='post_id')
            ... class Post(Resource):
            ...     """ Post resource """
        
            >>> for route in Root.routes():
            ...     print(route)
            <Route: />
            <Route: /posts/>
            <Route: /posts/{post_id}/>
            <Route: /users/>
            <Route: /users/{user_id}/>
            <Route: /users/{user_id}/posts/>
            <Route: /users/{user_id}/posts/{post_id}/>
        
        These resources comply `Pyramid traversal`_ interface and
        `Pyramid location awareness`_ interface.
        
        ..  _Pyramid traversal: http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/traversal.html
        ..  _Pyramid location awareness: http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/resources.html#location-aware-resources
        
        ..  code-block:: pycon
        
            >>> root = Root()
            >>> user = root['users']['1']
            >>> user
            <User: /users/1/>
            >>> user.__name__
            '1'
            >>> user.__parent__
            <Users: /users/>
            >>> user['posts']
            <Posts: /users/1/posts/>
            >>> user['documents']  # DOCTEST: +ellipsis
            Traceback (most recent call last):
            ...
            KeyError: ('documents', '/users/1/')
        
        
        Links
        ~~~~~
        
        * `Documentation <http://traversalkit.readthedocs.io/en/latest/index.html>`_.
        * `Source Code and Issue Tracker <https://bitbucket.org/kr41/traversalkit>`_.
        
        
        Changes
        -------
        
        0.3.1
        ~~~~~
        
        *   Fixed typos of ``README.rst`` and ``CHANGES.rst``.
        
        
        0.3
        ~~~
        
        *   Added support of conditional routes.
        *   Added support of resource tree introspection by ``Resource.routes()``.
        *   Added resource URI into raising errors to make them more informative.
        *   Added support of disengageable resource cache.
        
        
        0.2
        ~~~
        
        *   Added method ``Resource.get()``.
        
        
        0.1
        ~~~
        
        Initial release.
        
Keywords: pyramid traversal resources
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Classifier: Framework :: Pyramid
