cookiecutter Package¶
config Module¶
cookiecutter.config¶
Global configuration handling
Retrieve the config from the specified path, returning it as a config dict.
Retrieve config from the user’s ~/.cookiecutterrc, if it exists. Otherwise, return None.
exceptions Module¶
cookiecutter.exceptions¶
All exceptions used in the Cookiecutter code base are defined here.
Bases: cookiecutter.exceptions.CookiecutterException
Raised when get_config() is passed a path to a config file, but no file is found at that path.
Bases: exceptions.Exception
Base exception class. All Cookiecutter-specific exceptions should subclass this class.
Bases: cookiecutter.exceptions.CookiecutterException
Raised if the global configuration file is not valid YAML or is badly contructed.
Bases: cookiecutter.exceptions.CookiecutterException
Raised during cleanup when remove_repo() can’t find a generated project directory inside of a repo.
Bases: cookiecutter.exceptions.CookiecutterException
Raised when a project’s input dir is not templated. The name of the input directory should always contain a string that is rendered to something else, so that input_dir != output_dir.
Bases: cookiecutter.exceptions.CookiecutterException
Raised if a repo’s type cannot be determined.
Bases: cookiecutter.exceptions.CookiecutterException
Raised when Cookiecutter cannot determine which directory is the project template, e.g. more than one dir appears to be a template dir.
find Module¶
cookiecutter.find¶
Functions for finding Cookiecutter templates and other components.
Determines which child directory of repo_dir is the project template.
Parameters: repo_dir – Local directory of newly cloned repo. Returns project_template: Relative path to project template.
generate Module¶
cookiecutter.generate¶
Functions for generating a project from a project template.
Ensures that dirname is a templated directory name.
Generates the context for a Cookiecutter project template. Loads the JSON file as a Python object, with key being the JSON filename.
Parameters: - context_file – JSON file containing key/value pairs for populating the cookiecutter’s variables.
- config_dict – Dict containing any config to take into account.
Render the filename of infile as the name of outfile.
Deal with infile appropriately:
- If infile is a binary file, copy it over without rendering.
- If infile is a text file, render its contents and write the rendered infile to outfile.
Precondition:
When calling generate_file(), the root template dir must be the current working directory. Using utils.work_in() is the recommended way to perform this directory change.Parameters: - project_dir – Absolute path to the resulting generated project.
- infile – Input file to generate the file from. Relative to the root template dir.
- context – Dict for populating the cookiecutter’s variables.
- env – Jinja2 template execution environment.
Renders the templates and saves them to files.
Parameters: - repo_dir – Project template input directory.
- context – Dict for populating the template’s variables.
- output_dir – Where to output the generated project dir into.
Renders the name of a directory, creates the directory, and returns its path.
hooks Module¶
cookiecutter.hooks¶
Functions for discovering and executing various cookiecutter hooks.
Must be called with the project template as the current working directory. Returns a dict of all hook scripts provided. Dict’s key will be the hook/script’s name, without extension, while values will be the absolute path to the script. Missing scripts will not be included in the returned dict.
Try and find a script mapped to hook_name in the current working directory, and execute it from project_dir.
main Module¶
cookiecutter.main¶
Main entry point for the cookiecutter command.
The code in this module is also a good example of how to use Cookiecutter as a library rather than a script.
API equivalent to using Cookiecutter at the command line.
Parameters: - input_dir – A directory containing a project template dir, or a URL to git repo.
- checkout – The branch, tag or commit ID to checkout after clone
Entry point for the package, as defined in setup.py.
Parse the command-line arguments to Cookiecutter.
prompt Module¶
cookiecutter.prompt¶
Functions for prompting the user for project info.
Prompts the user to enter new config, using context as a source for the field names and sample values.
Ask a yes/no question via raw_input() and return their answer.
Parameters: - question – A string that is presented to the user.
- default – The presumed answer if the user just hits <Enter>. It must be “yes” (the default), “no” or None (meaning an answer is required of the user).
The “answer” return value is one of “yes” or “no”.
Adapted from http://stackoverflow.com/questions/3041986/python-command-line-yes-no-input http://code.activestate.com/recipes/577058/
utils Module¶
cookiecutter.utils¶
Helper functions used throughout Cookiecutter.
Error handler for shutil.rmtree() equivalent to rm -rf Usage: shutil.rmtree(path, onerror=force_delete) From stackoverflow.com/questions/1889597
Ensures that a directory exists.
Parameters: path – A directory path.
Removes a directory and all its contents. Like rm -rf on Unix.
Parameters: path – A directory path.
Context manager version of os.chdir. When exited, returns to the working directory prior to entering.
vcs Module¶
cookiecutter.vcs¶
Helper functions for working with version control systems.
Clone a repo to the current directory.
Parameters: - repo_url – Repo URL of unknown type.
- checkout – The branch, tag or commit ID to checkout after clone
Determines if repo_url should be treated as a URL to a git or hg repo.
Parameters: repo_url – Repo URL of unknown type. Returns: “git”, “hg”, or None.
Asks the user whether it’s okay to delete the previously-cloned repo. If yes, deletes it. Otherwise, Cookiecutter exits.
Parameters: repo_dir – Directory of previously-cloned repo.