Extension that combines the flexibility of Cookiecutter templates
with the power of PyScaffold.
Cookiecutter is a flexible utility that allows the definition of templates
for a diverse range of software projects.
On the other hand, PyScaffold is focused in a good out-of-the-box experience
for developing distributable Python packages (exclusively).
Despite the different objectives, it is possible to combine the power of both
tools to create a custom Python project setup.
Quickstart
This extension can be directly installed with pip:
$pipinstallpyscaffoldext-cookiecutter
Or, if you prefer pipx:
$pipxinstallpyscaffold# if you haven't installed pyscaffold yet
$pipxinjectpyscaffoldpyscaffoldext-cookiecutter
Note that, after the installation, putup -h will show a new option
--cookiecutter TEMPLATE.
Use this option to point out which template you want to use (path or url).
The file structure created by Cookiecutter will be refined by PyScaffold
afterwards.
For example:
Note that PyScaffold will overwrite some files generated by Cookiecutter,
like setup.py, the __init__.py file under the package folder
and most of the docs folder, in order to provide setuptools_scm
and sphinx integration.
Therefore not all Cookiecutter templates are suitable for this approach.
Ideally, interoperable templates should focus on the file structure inside the
src folder instead of packaging or distributing, since PyScaffold already
handles it under-the-hood. This also means that your template should adhere to
the src-layout if you want to generate files within your Python package.
In addition, PyScaffold runs Cookiecutter with the --no-input flag
activated and thus the user is not prompted for manual configuration. Instead,
PyScaffold injects the following parameters: