Skip to main content

A user-friendly wrapper to cookiecutter

Project description

pieceofcake - a user-friendly cookiecutter wrapper

This is a wrapper around the cookiecutter tool which provides a more user-friendly way of asking questions.

With cookiecutter, the user is not presented with any questions, just the names of the parameters to set:

% cookiecutter gh:astrofrog/fake-template
package_name [example]: test-package
include_example_code [n]: y

With pieceofcake, the user is shown a series of verbose questions which provide more context as to the meaning/implications of each parameter:

% cookiecutter gh:astrofrog/fake-template final-package

Welcome to the pieceofcake, a user-friendly cookiecutter wrapper!

This script will now ask you a series of questions to help you set up
your package.

What is the name of your package? This is the name that will appear on
PyPI and which users will use when installing the package with e.g.
pip or conda.
> Package name [example]: test-package

Should example code be included? This will consist of sample Python
and Cython files in the package, demonstrating how to create different
sub-modules and importing between them.
> Include example code? [n]: y

Running cookiecutter...

You should now be all set! Your generated package is in final-package

Installing

To install, run:

pip install pieceofcake

Using

To use pieceofcake:

pieceofcake template output_directory

where template follows the same syntax as for cookiecutter, and can be the path to a local directory, or e.g. gh:astrofrog/fake-template to use a GitHub repository.

Note that pieceofcake will work with all cookiecutter templates, but nice questions will only be shown if the cookiecutter.json file contains the _parameters key as described below in For template creators.

For template creators

To define questions for each parameter, add a new _parameters key in your cookiecutter.json file, which should then contain a dictionary for each parameter:

"_parameters": {
    "package_name": {
        "default_value": "test-package",
        "prompt": "Package name",
        "help": "What is the name of your package? This is the name that will appear on PyPI and which users will use when installing the package with e.g. pip or conda."
    },
    "include_example_code": {
        "prompt": "Include example code?",
        "help": "Should example code be included? This will consist of sample Python and Cython files in the package, demonstrating how to create different sub-modules and importing between them."
    }
}

The default_value, prompt, and help keys are all optional - if default_value is not defined, the default value is taken from the main cookiecutter section. If prompt is not included, it is set to the parameter name, and if help is not included, no help/question is shown.

This approach was inspired by cookiecutter/cookiecutter#794

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pieceofcake, version 0.1a2
Filename, size File type Python version Upload date Hashes
Filename, size pieceofcake-0.1a2-py3-none-any.whl (5.7 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pieceofcake-0.1a2.tar.gz (5.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page