Generate
Introduction
The Generate Extension includes the Generate controller, and provides a mechanism for generating common content from template directories. An example use case would be the ability for application developers to easily generate new plugins for their application… similar in other applications such as Chef Software’s chef generate cookbook
type utilities.
The Cement Developer Tools use this extension to generate projects, plugins, extensions, scripts, etc for developers building their applications on the framework.
Documentation References:
API References:
Requirements
pyYaml
A valid template handler must be defined at the application level via
App.Meta.template_handler
such asjinja2
,mustache
, etc.
Cement 3.0.8+:
pip install cement[generate]
Applications using Cement <3.0.8 should continue to include pyYaml
in their dependencies.
Configuration
Application Configuration Settings
This extension honors the following settings under the primary namespace (ex: [myapp]
) of the application configuration:
Setting | Description |
template_dir | Directory path of a local template directory. |
Application Meta Options
This extension honors the following App.Meta
options:
Option | Description |
template_handler | A template handler to use as the backend for templating |
template_dirs | A list of data directories to look for templates |
template_module | A python module to look for templates |
Usage
Examples
Generate Templates
The Generate Extension looks for a generate
sub-directory in all defined template directory paths defined at the application level. If it finds a generate
directory it treats all items within that directory as a generate template.
A Generate Template requires a single configuration YAML file called .generate.yml
that looks something like:
Generate Template Configuration
The following configurations are supported in a generate template’s config:
ignore | A list of regular expressions to match files that you want to completely ignore |
exclude | A list of regular expressions to match files that you want to copy only (not rendered as template) |
variables | A list of variable definitions that support the following sub-keys: |
Last updated