repoze.bfg.convention ===================== Optional "convention over configuration" for ``repoze.bfg``. ``repoze.bfg.convention`` allows developers to make application registry registrations within their application's Python instead of using ZCML for the same purpose. To make use of any convention declarations, you must insert the following boilerplate into your application's ``configure.zcml``:: After you do so, you will not need to use any other ZCML to configure most ``repoze.bfg`` application registry directives in your application. Instead, you will use decorators to do this work. Note that this package tends to slows down application startup, as the application registry is not capable of being cached within a ``.cache`` file when this package is in use, and more work is performed at startup to scan for registrations. ``bfg_view`` Declaration Decorator ---------------------------------- ``repoze.bfg.convention.bfg_view`` is a decorator which allows Python code to make view registrations instead of using ZCML for the same purpose. E.g. in a bfg application module ``views.py``:: from models import IMyModel from repoze.bfg.interfaces import IRequest from repoze.bfg.convention import bfg_view @bfg_view(name='my_view', request_type=IRequest, for_=IMyModel, permission='read')) def my_view(context, request): return render_template_to_response('templates/my.pt') Using this decorator as above replaces the need to add this ZCML to your application registry:: If ``name`` is not supplied, the empty string is used (implying the default view). If ``request_type`` is not supplied, the interface ``repoze.bfg.interfaces.IRequest`` is used. If ``for_`` is not supplied, the interface ``zope.interface.Interface`` (which matches any model) is used. ``for_`` can also name a class, like its ZCML brother. If ``permission`` is not supplied, no permission is registered for this view (it's accessible by any caller). Any individual or all parameters can be omitted. The simplest bfg_view declaration then becomes:: @bfg_view() def my_view(...): ... Such a registration implies that the view name will be ``my_view``, registered for models with the ``zope.interface.Interface`` interface (which matches anything), using no permission, registered against requests which implement the default IRequest interface. Installation ------------ Install using setuptools, e.g. (within a virtualenv):: $ easy_install -i http://dist.repoze.org/lemonade/dev/simple \ repoze.bfg.convention Reporting Bugs / Development Versions ------------------------------------- Visit http://bugs.repoze.org to report bugs. Visit http://svn.repoze.org to download development or tagged versions. Indices and tables ------------------ * :ref:`genindex` * :ref:`modindex` * :ref:`search`