# HG changeset patch # User Damien Correia # Date 1523283616 -7200 # Node ID d6274edc287c0c3a12db7b34ce44186cbc74e08a # Parent dd396a91bb94bad271a5a7e4de98dff8dca48402 Added Docstring diff -r dd396a91bb94 -r d6274edc287c src/pyams_alchemy/__init__.py --- a/src/pyams_alchemy/__init__.py Thu Mar 22 15:02:15 2018 +0100 +++ b/src/pyams_alchemy/__init__.py Mon Apr 09 16:20:16 2018 +0200 @@ -9,6 +9,35 @@ # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # +""" + +PyAMS SQLAlchemy integration +============================ + +*pyams_alchemy* package is a small package which can be used to make SQLAlchemy integration more simple. + +The main goal of *pyams_alchemy* package is to define the :class:`pyams_alchemy.engine.AlchemyEngineUtility` class: +this class can be stored persistently into PyAMS local site manager (see :ref:`site`) to store settings of an +SQLAlchemy engine; on user request, the :func:`pyams_alchemy.engine.get_user_session` function can be used to get +access to a new SQLAlchemy engine session matching these settings which will to be bound to current Pyramid's +transaction. + + +Dynamic schema names +++++++++++++++++++++ + +Some times you may have to be able to setup, for a given table, a schema name which is not static but can be dynamic +through a configuration option. + +This can be done easily with the help of the :class:`pyams_alchemy.mixin.DynamicSchemaMixin` which you can inherit from +in any SQLAlchemy table subclass. + +When this is done, the schema name can be defined into Pyramid's configuration file into a setting which is called +*pyams_alchemy:{module_name}.{class_name}.schema*; for example like in +*pyams_alchemy:pyams_content.package.TableName.schema*. If not specified, the table's schema name can be defined in a +classic *__schema__* table's attribute. + +""" __docformat__ = 'restructuredtext'