def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ globalreg = getGlobalSiteManager() set_cache_regions_from_settings(settings) deserialized_settings = deserialize(settings) config = Configurator(registry=globalreg) config.setup_registry(settings=settings) config.registry.registerUtility( deserialized_settings, ISettings, name='settings' ) config.add_directive('settings_reader', lambda c: SettingsReader(c)) config.reader = SettingsReader(config) config.include('papaye.config.auth') config.include('papaye.config.routes') config.include('papaye.config.views') config.include('papaye.config.startup') config.add_renderer( name='json_api_compat', factory='papaye.views.api.compat.renderers.CompatAPIRendererFactory' ) config.commit() config.add_tween('papaye.tweens.LoginRequiredTweenFactory') config.scan(ignore=['papaye.tests', 'papaye.conftest']) config.set_request_property( lambda x: deserialized_settings, 'papaye_settings', reify=True ) return config.make_wsgi_app()