tet.sqlalchemy.factory module

Root factory base class for SQLAlchemy-backed traversal.

This module provides a base class for implementing Pyramid traversal with SQLAlchemy models.

Example

Creating a root factory for users:

from sqlalchemy.orm import Session
from tet.sqlalchemy.factory import SQLARootFactory

class UserFactory(SQLARootFactory):
    def supplier(self, item):
        session = self.request.find_service(Session)
        return session.query(User).filter(User.id == int(item)).one()

Using in route configuration:

config.add_route("user", "/users/{id}", factory=UserFactory)
class tet.sqlalchemy.factory.SQLARootFactory(request)[source]

Bases: object

Base class for SQLAlchemy-backed traversal root factories.

Subclasses must implement supplier() to look up resources. SQLAlchemy exceptions are converted to KeyError for Pyramid traversal.