Skip to main content

UNKNOWN

Project description

sqlalchemy_traversal
====================

This is a pyramid extension that allows you to use traversal with SQLAlchemy objects

Demo App here: https://github.com/eventray/sqlalchemy_traversal_demo

To use this you just have to include sqlalchemy_traversal in your pyramid application
by either putting it in your development.ini:

pyramid.includes =
sqlalchemy_traversal

or by including it in your main:

config.include('sqlalchemy_traversal')


Then you just register your SQLAlchemy session and declarative base:

from sqlalchemy_traversal.interfaces import ISASession
from sqlalchemy_traversal.interfaces import ISABase

config.registry.registerUtility(DBSession, ISASession)
config.registry.registerUtility(Base, ISABase)


And then place the TraversalMixin on any SQLAlchemy class and it will automatically
be traversed:

from sqlalchemy_traversal import TraversalMixin


class User(TraversalMixin, Base):
pass


Now you will be able to hit the URL /traverse/user to get all the users in your database


You can also tell it to load relationships via the _json_eager_load property:

class User(TraversalMixin, Base):
_json_eager_load = ['permissions']


Saving
==================================
If you want to be able to create data with your API but the content
coming back doesn't exactly match your model or you want to run it through
schema validation first you can use the register save decorator:

@register_save(MyModel, MySchema):
def saving_my_model(request, data):
data['my_prop'] = 'NEW DATA'
return data

You can also handle data exceptions with exception_handlers:

def handle_integrity_error(model, exception):
return {
'errors': {
'message': 'That data is not unique'
}
}

@register_save(
MyModel
, MySchema
, exception_handlers={
IntegrityError: handle_integrity_error
}
):
def saving_my_model(request, data):
data['my_prop'] = 'NEW DATA'
return data

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

sqlalchemy_traversal-0.5.1.tar.gz (11.2 kB view details)

Uploaded Source

File details

Details for the file sqlalchemy_traversal-0.5.1.tar.gz.

File metadata

File hashes

Hashes for sqlalchemy_traversal-0.5.1.tar.gz
Algorithm Hash digest
SHA256 f027942d6fdcbef6bcad3a8c43113ff8b85b28cc57c9e0d21c6dfff8f70d87f1
MD5 540970c9ad0beef1a1ce39614e21600e
BLAKE2b-256 dadd022406e9027bfa0bf60fc00a55d0e7360278fa16faa0430da2324ada6099

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