All Projects → cookiecutter → Cookiecutter

cookiecutter / Cookiecutter

Licence: bsd-3-clause
A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cookiecutter

Cookiecutter Fastapi
Cookiecutter template for FastAPI projects using: Machine Learning, Poetry, Azure Pipelines and Pytests
Stars: ✭ 89 (-99.44%)
Mutual labels:  cookiecutter
Cookiecutter Reproducible Science
boilerplate for reproducible and transparent science
Stars: ✭ 120 (-99.24%)
Mutual labels:  cookiecutter
Hatch
A modern project, package, and virtual env manager for Python
Stars: ✭ 2,268 (-85.71%)
Mutual labels:  cookiecutter
Wildfish Django Starter
Django 2 cookiecutter starter project template.
Stars: ✭ 93 (-99.41%)
Mutual labels:  cookiecutter
Wagtail Pipit
Pipit is a Wagtail CMS boilerplate which aims to provide an easy and modern developer workflow with a React-rendered frontend.
Stars: ✭ 109 (-99.31%)
Mutual labels:  cookiecutter
Data Science Stack Cookiecutter
🐳📊🤓Cookiecutter template to launch an awesome dockerized Data Science toolstack (incl. Jupyster, Superset, Postgres, Minio, AirFlow & API Star)
Stars: ✭ 153 (-99.04%)
Mutual labels:  cookiecutter
Cookietemple
A collection of best practice cookiecutter templates for all domains and languages with extensive Github support
Stars: ✭ 81 (-99.49%)
Mutual labels:  cookiecutter
Create Aio App
The boilerplate for aiohttp. Quick setup for your asynchronous web service.
Stars: ✭ 207 (-98.7%)
Mutual labels:  cookiecutter
Boilerplate
🍪 ML application template to create API services around your ML code.
Stars: ✭ 112 (-99.29%)
Mutual labels:  cookiecutter
Cookiecutter Pytest Plugin
A Cookiecutter template for pytest plugins 💻
Stars: ✭ 181 (-98.86%)
Mutual labels:  cookiecutter
Pytest Cookies
The pytest plugin for your Cookiecutter templates. 🍪
Stars: ✭ 96 (-99.4%)
Mutual labels:  cookiecutter
Project Init
Project templates in rust
Stars: ✭ 104 (-99.34%)
Mutual labels:  cookiecutter
Sugardough
A web application template based on Django.
Stars: ✭ 173 (-98.91%)
Mutual labels:  cookiecutter
Django Project Template
Thorgate's Django project template - Django, React, Sass, optional Docker and more
Stars: ✭ 91 (-99.43%)
Mutual labels:  cookiecutter
Cookiecutter Cms
Python-centric Cookiecutter for Molecular Computational Chemistry Packages
Stars: ✭ 197 (-98.76%)
Mutual labels:  cookiecutter
Cookiecutter Webpack
Boilerplate for webpack 2, babel, react + redux + hmr, and karma. Can be inserted into existing django projects.
Stars: ✭ 87 (-99.45%)
Mutual labels:  cookiecutter
Poyo
A lightweight YAML Parser for Python. 🐓
Stars: ✭ 123 (-99.23%)
Mutual labels:  cookiecutter
Cookiecutter Django Vue Graphql Aws
A highly opinionated Cookiecutter template that fuses together Django, Vue.js, GraphQL, and AWS into one full-stack web application.
Stars: ✭ 213 (-98.66%)
Mutual labels:  cookiecutter
Aiohttp Devtools
dev tools for aiohttp
Stars: ✭ 202 (-98.73%)
Mutual labels:  cookiecutter
Cruft
Allows you to maintain all the necessary cruft for packaging and building projects separate from the code you intentionally write. Built on-top of, and full compatible with, CookieCutter.
Stars: ✭ 180 (-98.87%)
Mutual labels:  cookiecutter

Cookiecutter

pypi python Build Status codecov slack docs Code Quality

A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python package project template.

Cookiecutter

We are proud to be an open source sponsor of PyCon 2016.

Features

  • Cross-platform: Windows, Mac, and Linux are officially supported.
  • You don't have to know/write Python code to use Cookiecutter.
  • Works with Python 3.7, 3.8, 3.9.
  • Project templates can be in any programming language or markup format: Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML, you name it. You can use multiple languages in the same project template.
  • Simple command line usage:
# Create project from the cookiecutter-pypackage.git repo template
# You'll be prompted to enter values.
# Then it'll create your Python package in the current working directory,
# based on those values.
$ cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackage
# For the sake of brevity, repos on GitHub can just use the 'gh' prefix
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
  • Use it at the command line with a local template:
# Create project in the current working directory, from the local
# cookiecutter-pypackage/ template
$ cookiecutter cookiecutter-pypackage/
  • Or use it from Python:
from cookiecutter.main import cookiecutter

# Create project from the cookiecutter-pypackage/ template
cookiecutter('cookiecutter-pypackage/')

# Create project from the cookiecutter-pypackage.git repo template
cookiecutter('https://github.com/audreyfeldroy/cookiecutter-pypackage.git')
  • Directory names and filenames can be templated. For example:
{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.py
  • Supports unlimited levels of directory nesting.
  • 100% of templating is done with Jinja2. This includes file and directory names.
  • Simply define your template variables in a cookiecutter.json file. For example:
{
  "full_name": "Audrey Roy Greenfeld",
  "email": "[email protected]",
  "project_name": "Complexity",
  "repo_name": "complexity",
  "project_short_description": "Refreshingly simple static site generator.",
  "release_date": "2013-07-10",
  "year": "2013",
  "version": "0.1.1"
}
  • Unless you suppress it with --no-input, you are prompted for input:
    • Prompts are the keys in cookiecutter.json.
    • Default responses are the values in cookiecutter.json.
    • Prompts are shown in order.
  • Cross-platform support for ~/.cookiecutterrc files:
default_context:
  full_name: "Audrey Roy Greenfeld"
  email: "[email protected]"
  github_username: "audreyfeldroy"
cookiecutters_dir: "~/.cookiecutters/"
  • Cookiecutters (cloned Cookiecutter project templates) are put into ~/.cookiecutters/ by default, or cookiecutters_dir if specified.
  • If you have already cloned a cookiecutter into ~/.cookiecutters/, you can reference it by directory name:
# Clone cookiecutter-pypackage
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
# Now you can use the already cloned cookiecutter by name
$ cookiecutter cookiecutter-pypackage
  • You can use local cookiecutters, or remote cookiecutters directly from Git repos or from Mercurial repos on Bitbucket.
  • Default context: specify key/value pairs that you want used as defaults whenever you generate a project.
  • Inject extra context with command-line arguments:
cookiecutter --no-input gh:msabramo/cookiecutter-supervisor program_name=foobar startsecs=10
  • Direct access to the Cookiecutter API allows for injection of extra context.
  • Pre- and post-generate hooks: Python or shell scripts to run before or after generating a project.
  • Paths to local projects can be specified as absolute or relative.
  • Projects generated to your current directory or to target directory if specified with -o option.

Available Cookiecutters

Making great cookies takes a lot of cookiecutters and contributors. We're so pleased that there are many Cookiecutter project templates to choose from. We hope you find a cookiecutter that is just right for your needs.

A Pantry Full of Cookiecutters

The best place to start searching for specific and ready to use cookiecutter template is Github search. Just type cookiecutter and you will discover over 4000 related repositories.

We also recommend you to check related GitHub topics. For general search use cookiecutter-template. For specific topics try to use cookiecutter-yourtopic, like cookiecutter-python or cookiecutter-datascience. This is a new GitHub feature, so not all active repositories use it at the moment.

If you are template developer please add related topics with cookiecutter prefix to you repository. We believe it will make it more discoverable. You are almost not limited in topics amount, use it!

Cookiecutter Specials

These Cookiecutters are maintained by the cookiecutter team:

Community

The core committer team can be found in authors section. We are always welcome and invite you to participate.

Stuck? Try one of the following:

  • See the Troubleshooting page.
  • Ask for help on Stack Overflow.
  • You are strongly encouraged to file an issue about the problem, even if it's just "I can't get it to work on this cookiecutter" with a link to your cookiecutter. Don't worry about naming/pinpointing the issue properly.
  • Ask for help on Slack if you must (but please try one of the other options first, so that others can benefit from the discussion).

Development on Cookiecutter is community-driven:

  • Huge thanks to all the contributors who have pitched in to help make Cookiecutter an even better tool.
  • Everyone is invited to contribute. Read the contributing instructions, then get started.
  • Connect with other Cookiecutter contributors and users on Slack (note: due to work and commitments, a core committer might not always be available)

Encouragement is unbelievably motivating. If you want more work done on Cookiecutter, show support:

Got criticism or complaints?

  • File an issue so that Cookiecutter can be improved. Be friendly and constructive about what could be better. Make detailed suggestions.
  • Keep us in the loop so that we can help. For example, if you are discussing problems with Cookiecutter on a mailing list, file an issue where you link to the discussion thread and/or cc at least 1 core committer on the email.
  • Be encouraging. A comment like "This function ought to be rewritten like this" is much more likely to result in action than a comment like "Eww, look how bad this function is."

Waiting for a response to an issue/question?

  • Be patient and persistent. All issues are on the core committer team's radar and will be considered thoughtfully, but we have a lot of issues to work through. If urgent, it's fine to ping a core committer in the issue with a reminder.
  • Ask others to comment, discuss, review, etc.
  • Search the Cookiecutter repo for issues related to yours.
  • Need a fix/feature/release/help urgently, and can't wait? @audreyfeldroy is available for hire for consultation or custom development.

Support This Project

This project is run by volunteers. Shortly we will be providing means for organizations and individuals to support the project.

Code of Conduct

Everyone interacting in the Cookiecutter project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].