Skip to main content

Helper library for Pyramid applications based on Traversal

Project description

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:

>>> 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.

>>> 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/')

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TraversalKit-0.3.1.tar.gz (11.4 kB view details)

Uploaded Source

File details

Details for the file TraversalKit-0.3.1.tar.gz.

File metadata

File hashes

Hashes for TraversalKit-0.3.1.tar.gz
Algorithm Hash digest
SHA256 a93d40e7105433aeee332c518d556027db7e893acaf1bbb800efbe7320487941
MD5 d3c6c4dd7d14166c93ff4292f7d28fa6
BLAKE2b-256 f93d08a795cb04b575622793ed7b85a8f5b316e177f763e0daa4bd1846a08ce0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page