rattail-demo/rattail_demo/web/app.py
2022-11-21 22:08:55 -06:00

50 lines
1.6 KiB
Python

# -*- coding: utf-8; -*-
"""
Pyramid web application
"""
from tailbone import app
from tailbone_corepos.db import CoreOfficeSession, CoreTransSession
def main(global_config, **settings):
"""
This function returns a Pyramid WSGI application.
"""
# prefer demo templates over tailbone
settings.setdefault('mako.directories', ['rattail_demo.web:templates',
'tailbone_corepos:templates',
'tailbone_woocommerce:templates',
'tailbone:templates',])
# for graceful handling of postgres restart
settings.setdefault('retry.attempts', 2)
# make config objects
rattail_config = app.make_rattail_config(settings)
pyramid_config = app.make_pyramid_config(settings)
# configure database sessions
CoreOfficeSession.configure(bind=rattail_config.corepos_engine)
CoreTransSession.configure(bind=rattail_config.coretrans_engine)
# bring in rest of rattail-demo etc.
pyramid_config.include('tailbone.static')
pyramid_config.include('rattail_demo.web.subscribers')
pyramid_config.include('rattail_demo.web.views')
# for graceful handling of postgres restart
pyramid_config.add_tween('tailbone.tweens.sqlerror_tween_factory',
under='pyramid_tm.tm_tween_factory')
return pyramid_config.make_wsgi_app()
def asgi_main():
"""
This function returns an ASGI application.
"""
from tailbone.asgi import make_asgi_app
return make_asgi_app(main)