Pyramid directives¶
Pyramid Configuration directive from Ptah. An example:
auth_policy = AuthTktAuthenticationPolicy('secret') session_factory = UnencryptedCookieSessionFactoryConfig('secret') def main(global_config, **settings): """ This is your application startup.""" config = Configurator(settings=settings, session_factory = session_factory, authentication_policy = auth_policy) config.include('ptah') config.ptah_init_settings() config.ptah_init_sql()
ptah_init_sql(prefix=’sqlalchemy.’)¶
This directive creates new SQLAlchemy engine and bind session and declarative base.
param prefix: INI settings prefix, default is sqlalchemy.Example:
[app:ptah] sqlalchemy.url = sqlite:///%(here)s/var/db.sqlite
ptah_init_settings(settings=None)¶
Initialize settings management system and load settings from system settings. Also it sends
ptah.events.SettingsInitializingand thenptah.events.SettingsInitialized. By default it reads info fromconfig.registry.settings. Its possible to pass custom settings as first parameter.
param settings: Custom settings config = Configurator() config.include('ptah') # initialize ptah setting management system config.ptah_initialize_settings() .. config.ptah_initialize_settings({'ptah.managers': '["*"]'})
ptah_init_manage()¶
Initialize and enable ptah management subsystem.
param name: Management ui prefix. Default is ptah-manage.param access_manager: Set custom access manager. param managers: List of user logins with access rights to ptah management ui. param manager_role: Specific role with access rights to ptah management ui. param disable_modules: List of modules names to hide in manage ui param enable_modules: List of modules names to enable in manage ui Also it possible to enable and configure management subsystem with settings in ini file:
[app:ptah] ptah.manage = "ptah-manage" ptah.managers = ["*"] ptah.manager_role = ... ptah.disable_modules = ...
ptah_init_mailer(mailer)¶
Set mailer object. Mailer interface is compatible with
repoze.sendmailandpyramid_mailer. By default stub mailer is beeing used.
param mailer: Mailer object
ptah_auth_checker(checker)¶
Register auth checker. Checker function interface
ptah.interfaces.auth_checker
param checker: Checker function config = Configurator() config.include('ptah') def my_checker(info): ... config.ptah_auth_checker(my_checker)
ptah_auth_provider(name, provider)¶
Register auth provider. Authentication provider interfaceptah.interfaces.AuthProvider
ptah_principal_searcher(name, searcher)¶
Register principal searcher function. Principal searcher function interfaceptah.interfaces.principal_searcher()
ptah_uri_resolver(schema, resolver)¶
Register resolver for given schema. Resolver function interface
ptah.interfaces.resolver()
param schema: uri schema param resolver: Callable object that accept one parameter. config = Configurator() config.include('ptah') def my_resolver(uri): .... config.ptah_uri_resolver('custom-schema', my_resolver)
ptah_password_changer(schema, changer)¶
Register password changer function for specific user uri schema. Password changer interface
ptah.intefaces.password_changer()
param schema: Principal uri schema. param changer: Function config = Configurator() config.include('ptah') config.ptah_password_changer('custom-schema', custom_changer)
ptah_layout(...)¶
Registers a layout.
param name: Layout name param context: Specific context for this layout. param root: Root object param parent: A parent layout. None means no parent layout. param renderer: A pyramid renderer param route_name: A pyramid route_name. Apply layout only for specific route param use_global_views: Apply layout to all routes. even is route doesnt use use_global_views. param view: Layout implementation (same as for pyramid view) config = Configurator() config.include('ptah') config.ptah_layout( 'page', parent='page', renderer='ptah:template/page.pt') config.add_view(' index.html', wrapper=ptah.wrap_layout(), renderer = '...')
ptah_populate()¶
Execute active populate steps.
config = Configurator() config.include('ptah') config.ptah_populate()
ptah_populate_step()¶
Register populate step. Step interface
ptah.interfaces.populate_step.
param name: Step name param factory: Step callable factory param title: Snippet context param active: View implementation param requires: List of step names that should be executed before this step. config = Configurator() config.include('ptah') def create_db_schemas(registry): ... config.ptah_populate_step('ptah-create-db-schemas', factory=create_db_schemas, title='Create db scehams', active=True, requires=())
ptah_migrate()¶
Execute all registered database migration scripts. Check Data migration chapter for detailed description.
config = Configurator() config.include('ptah') config.ptah_migrate()