cement.core.template

Cement core template module.

class cement.core.template.TemplateHandler(*args, **kwargs)[source]

Bases: cement.core.template.TemplateInterface, cement.core.handler.Handler

Base class that all template implementations should sub-class from. Keyword arguments passed to this class will override meta-data options.

copy(src, dest, data, force=False, exclude=None, ignore=None)[source]

Render src directory as template, including directory and file names, and copy to dest directory.

Parameters:
  • src (str) – The source directory path.
  • dest (str) – The destination directory path.
  • data (dict) – The data dictionary to interpolate in the template.
  • force (bool) – Whether to overwrite existing files.
  • exclude (list) – List of regular expressions to match files that should only be copied, and not rendered as template.
  • ignore (list) – List of regular expressions to match files that should be completely ignored and not copied at all.
Returns:

Returns True if the copy completed successfully.

Return type:

bool

Raises:

AssertionError – If the src template directory path does not exists, and when a dest file already exists and force is not True.

load(template_path)[source]

Loads a template file first from self.app._meta.template_dirs and secondly from self.app._meta.template_module. The template_dirs have presedence.

Parameters:template_path (str) – The secondary path of the template after either template_module or template_dirs prefix (set via App.Meta)
Returns:The content of the template (str), the type of template (str: directory, or module), and the path (str) of the directory or module)
Return type:tuple
Raises:cement.core.exc.FrameworkError – If the template does not exist in either the template_module or template_dirs.
render(content, data)[source]

Render content as template using using the data dictionary.

Parameters:
  • content (str) – The content to render.
  • data (dict) – The data dictionary to interpolate in the template.
Returns:

The rendered content.

Return type:

str

class cement.core.template.TemplateInterface(**kw)[source]

Bases: cement.core.interface.Interface

This class defines the Template Interface. Handlers that implement this interface must provide the methods and attributes defined below. In general, most implementations should sub-class from the provided TemplateHandler base class as a starting point.

class Meta[source]

Bases: object

Handler meta-data.

interface = 'template'

The string identifier of the interface

copy(src, dest, data)[source]

Render the src directory path, and copy to dest. This method must render directory and file names as template content, as well as the contents of files.

Parameters:
  • src (str) – The source template directory path.
  • dest (str) – The destination directory path.
  • data (dict) – The data dictionary to render with template.

Returns: None

load(path)[source]

Loads a template file first from self.app._meta.template_dirs and secondly from self.app._meta.template_module. The template_dirs have presedence.

Parameters:path (str) – The secondary path of the template after either template_module or template_dirs prefix (set via App.Meta)
Returns:The content of the template (str), the type of template (str: directory, or module), and the path (str) of the directory or module)
Return type:tuple
Raises:cement.core.exc.FrameworkError – If the template does not exist in either the template_module or template_dirs.
render(content, data)[source]

Render content as a template using the data dict.

Parameters:
  • content (str) – The content to be rendered as a template.
  • data (dict) – The data dictionary to render with template.
Returns:

The rendered template string.

Return type:

str