Ben Bangert
2010-11-16 ae60bafb11bcf3a85a8ed3c78b8fc57961e8c3b6
- Added Mako TemplateLookup settings for ``mako.error_handler``,
``mako.default_filters``, and ``mako.imports``.
3 files modified
57 ■■■■■ changed files
CHANGES.txt 3 ●●●●● patch | view | raw | blame | history
docs/narr/environment.rst 48 ●●●●● patch | view | raw | blame | history
pyramid/mako_templating.py 6 ●●●●● patch | view | raw | blame | history
CHANGES.txt
@@ -4,6 +4,9 @@
Features
--------
- Added Mako TemplateLookup settings for ``mako.error_handler``,
  ``mako.default_filters``, and ``mako.imports``.
- Normalized all paster templates: each now uses the name ``main`` to
  represent the function that returns a WSGI application, each now uses
  WebError, each now has roughly the same shape of development.ini style.
docs/narr/environment.rst
@@ -201,6 +201,54 @@
|                             |
+-----------------------------+
Mako Error Handler
++++++++++++++++++
Python callable which is called whenever Mako compile or runtime exceptions
occur. The callable is passed the current context as well as the exception. If
the callable returns True, the exception is considered to be handled, else it
is re-raised after the function completes. Is used to provide custom
error-rendering functions.
+-----------------------------+
| Config File Setting Name    |
+=============================+
|  ``mako.error_handler``   _ |
|                             |
|                             |
|                             |
+-----------------------------+
Mako Default Filters
++++++++++++++++++++
List of string filter names that will be applied to all Mako expressions.
+-----------------------------+
| Config File Setting Name    |
+=============================+
|  ``mako.default_filters`` _ |
|                             |
|                             |
|                             |
+-----------------------------+
Mako Import
+++++++++++
String list of Python statements, typically individual “import” lines, which
will be placed into the module level preamble of all generated Python modules.
+-----------------------------+
| Config File Setting Name    |
+=============================+
|  ``mako.imports``________ _ |
|                             |
|                             |
|                             |
+-----------------------------+
Examples
--------
pyramid/mako_templating.py
@@ -64,6 +64,9 @@
        directories = settings.get('mako.directories')
        module_directory = settings.get('mako.module_directory')
        input_encoding = settings.get('mako.input_encoding', 'utf-8')
        error_handler = settings.get('mako.error_handler', None)
        default_filters = settings.get('mako.default_filters', [])
        imports = settings.get('mako.imports', [])
        if directories is None:
            raise ConfigurationError(
                'Mako template used without a ``mako.directories`` setting')
@@ -72,6 +75,9 @@
        lookup = PkgResourceTemplateLookup(directories=directories,
                                           module_directory=module_directory,
                                           input_encoding=input_encoding,
                                           error_handler=error_handler,
                                           default_filters=default_filters,
                                           imports=imports,
                                           filesystem_checks=reload_templates)
        registry_lock.acquire()
        try: