Introduction

Shabti is a collection of paster templates for Pylons. Shabti templates enable a variety of Pylons power-ups through using Pylons with several related Python libraries.

Shabti is just a thin layer of glue around these libraries, allowing developers to get started quickly:

Pylons – web framework

SQLAlchemy – ORM and SQL generation

PyCouchDB – Python API for Apache’s CouchDB

Elixir – declarative layer for SQLAlchemy

Paste – WSGI server and other tools

FormEncode – form validation

Toscawidgets – form widgets middleware

rdflib – Python RDF and SPARQL library

RDFAlchemy – Object-RDF Mapper layered on top of rdflib

FormAlchemy – forms generation from database introspection

Sprox – forms layer on top of Toscawidgets

Note

It is strongly recommended that developers at least familiarize themselves with the documentation of these core libraries when using Shabti project templates.

In addition to these core packages and modules Shabti makes optional use of the sqlalchemy-migrate library for handling database migrations with SQLAlchemy.

Philosophy and design goals

Shabti is a re-working of Tesla, which started as a simple template with glue code for Pylons and SQLAlchemy plus Elixir so that developers could get started quickly with these libraries. Some additional paster command line tools were added for common handlng database management tasks, inspired by similar tools available to developers working with Rails and Django.

Shabti extends the notion beyond ORM support for relational store into support for

  1. hierarchical store via the eXist native XML database’s XMLRPC controller and
  2. directed graph store via rdflib and RDFAlchemy.

The AuthKit library was initially widely used by Pylons developers for handling authentication and authorization work. In consequence, an additional Shabti template, shabti_auth, implemented AuthKit integration and provided a set of very basic classes for User, Group and Permission entities. However, the previous author decided to remove the AuthKit dependency due to various design and documentation issues with that library.

Table Of Contents

Previous topic

Shabti

Next topic

Getting started

This Page