Skip to main content

Helpful utilities for Pyramid projects

Project description


This package is a collection of utility code to make building Pyramid applications backed by SQLAlchemy easier. It includes:

  • A TemplateAPI class to inject variables into all your templates
  • A Deform CSRF-validation schema
  • A Deform Recaptcha widget
  • SQLAlchemy DBSession and declarative_base stubs

Extra Models

If you have models that you would like the main initialize_db script to create, they need to inherit from sixfeetup.bowab.db.Base. Then add the following to your config:

bowab.models =

Using the TemplateAPI

If you would like to include the sixfeetup.bowab.api.TemplateAPI class as is, you simply need to include this in your Pyramid app configuration:


This will add an event subscriber to the event. This means that all templates will have access to an api variable that represents the TemplateAPI instance.

Google Analytics

The TemplateAPI class supports extracting Google Analytics settings from the Pyramid settings registry. The following keys are supported:

Property ID from Google
explicit domain name to use
boolean; use a push per setting, or one single push

To use this in your project, update to include:

<!-- Google Analytics -->
<tal:gaq condition="api.gaq">
    <tal:code replace="structure api.gaq.as_html()" />

Customizing the TemplateAPI

Often, you will want to use the sixfeetup.bowab.api.TemplateAPI class as a base for your own API instances, since you may have extra variables that should be available to templates.

To do this, you need to include sixfeetup.bowab as specified in the ‘Using the TemplateAPI’ section.

Then, create a subclass within your project that inherits from sixfeetup.bowab.api.TemplateAPI:

from sixfeetup.bowab.api import TemplateAPI

class MyTemplateAPI(TemplateAPI):
    def __init__(self, request, rendering_val):
        super(MyTemplateAPI, self).__init__(request, rendering_val)
        # Any custom initalization

    def my_func(self):
        return 'my func'

Then, in your paster.ini file, include the following:

bowab.api_class = my_project.MyTemplateAPI

Make sure the bowab.api_class variable points to the full dotted path of your custom class. This class will then be registered by the sixfeetup.bowab include process.

Using the Recaptcha Widget

The Recaptcha widget needs the private and public keys for your Recaptcha account. These can be set in your config file using the bowab.recaptcha_private_key and bowab.recaptcha_public_key values, respectively.

Using the SpectrumColorPickerWidget

The spectrum color picker widget can be used to convert text inputs expecting ‘#’-prefixed hexidecimal values to a nice jquery-based color picker input.

If the widget is initialized with a ‘default’ color value, that value will be presented as a pallet swatch to ease returning to default. If initialized with a ‘color’ value, that will be the initial color displayed.

Forms using the color picker widget will need to use the colorpicker_registry in order to ensure that the color picker js and css files are found. Alternatively, the resources may be imported and loaded into a custom registry, or into the deform default_resource_registry.

If you have more than one color field in a form, and wish to have separate values used for color and default, import the build_color_widget function which is suitable for use inside a defered widget generator. (See speak_friend.forms.profiles.Domain for an example).


  • David Blewett
  • Nolan Brubaker
  • Cris Ewing
  • Chrissy Wainwright
  • Clayton Parker



  • Initial implementation

Project details

Release history Release notifications

This version
History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date (49.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page