cookiecutter 0 travis-ci python

A command-line utility that creates projects from cookiecutters (project templates). E.g. Python package projects, jQuery plugin projects.

4 years after BSD-3-Clause

============= Cookiecutter

.. image:: https://badge.fury.io/py/cookiecutter.png :target: http://badge.fury.io/py/cookiecutter

.. image:: https://travis-ci.org/0k/cookiecutter.png?branch=master :target: https://travis-ci.org/0k/cookiecutter

.. image:: https://ci.appveyor.com/api/projects/status/github/audreyr/cookiecutter?branch=master :target: https://ci.appveyor.com/project/0k/cookiecutter/branch/master

.. image:: https://pypip.in/d/cookiecutter/badge.png :target: https://crate.io/packages/cookiecutter?version=latest

.. image:: https://codecov.io/github/0k/cookiecutter/coverage.svg?branch=master :target: https://codecov.io/github/0k/cookiecutter?branch=master

Warning

This is not the official cookiecutter package, but a fork. It should remain compatible although with original cookiecutter as of 2015-01-30.

Here's how to install this fork::

pip install git+https://github.com/0k/cookiecutter

What follows is the original README.

Description

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

.. image:: https://raw.github.com/audreyr/cookiecutter/aa309b73bdc974788ba265d843a65bb94c2e608e/cookiecutter_medium.png

Features

Did someone say features?

  • Cross-platform: Windows, Mac, and Linux are officially supported.

  • Works with Python 2.6, 2.7, 3.3, 3.4, and PyPy. (But you don't have to know/write Python code to use Cookiecutter.)

  • 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:

    .. code-block:: bash

    # 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/audreyr/cookiecutter-pypackage
    # For the sake of brevity, repos on GitHub can just use the 'gh' prefix
    $ cookiecutter gh:audreyr/cookiecutter-pypackage
  • Can also use it at the command line with a local template:

    .. code-block:: bash

    # Create project in the current working directory, from the local
    # cookiecutter-pypackage/ template
    $ cookiecutter cookiecutter-pypackage/
  • Or use it from Python:

    .. code-block:: 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/audreyr/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:

    .. code-block:: json

    {
        "full_name": "Audrey Roy",
        "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:

    .. code-block:: yaml

    default_context:
        full_name: "Audrey Roy"
        email: "[email protected]"
        github_username: "audreyr"
    cookiecutters_dir: "~/.cookiecutters/"
  • Cookiecutters (cloned Cookiecutter project templates) are put into ~/.cookiecutters/ by default, or cookiecutters_dir if specified.

  • 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

  • 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 are always generated to your current directory.

Available Cookiecutters

Here is a list of cookiecutters (aka Cookiecutter project templates) for you to use or fork.

Make your own, then submit a pull request adding yours to this list!

Python


* `cookiecutter-pypackage`_: `@audreyr`_'s ultimate Python package project
  template.
* `cookiecutter-flask`_ : A Flask template with Bootstrap 3, starter templates, and working user registration.
* `cookiecutter-bottle`_ : A cookiecutter template for creating reusable Bottle projects quickly.
* `cookiecutter-simple-django`_: A cookiecutter template for creating reusable Django projects quickly.
* `cookiecutter-django`_: A bleeding edge Django project template with Bootstrap 3, customizable users app, starter templates, and working user registration.
* `cookiecutter-djangopackage`_: A template designed to create reusable third-party PyPI friendly Django apps. Documentation is written in tutorial format.
* `cookiecutter-django-cms`_: A template for Django CMS with simple Bootstrap 3 template. It has a quick start and deploy documentation.
* `cookiecutter-djangocms-plugin`_: A template to get started with custom plugins for django-cms
* `cookiecutter-openstack`_: A template for an OpenStack project.
* `cookiecutter-docopt`_: A template for a Python command-line script that uses `docopt`_ for arguments parsing.
* `cookiecutter-django-crud`_: A template to create a Django app with boilerplate CRUD around a model including a factory and tests.
* `cookiecutter-quokka-module`_: A template to create a blueprint module for Quokka Flask CMS.
* `cookiecutter-django-lborgav`_: Another cookiecutter template for Django project with Booststrap 3 and FontAwesome 4.
* `cookiecutter-django-paas`_: Django template ready to use in SAAS platforms like Heroku, OpenShift, etc..
* `cookiecutter-kivy`_: A template for NUI applications built upon the kivy python-framework.
* `cookiedozer`_: A template for Python Kivy apps ready to be deployed to android devices with Buildozer.
* `cookiecutter-pypackage-minimal`_: A mimimal Python package template.
* `cookiecutter-ansible-role`_: A template to create ansible roles. Forget about file creation and focus on actions.
* `cookiecutter-pylibrary`_: An intricate template designed to quickly get started with good testing and packaging (working configuration for Tox, Pytest, Travis-CI, Coveralls, AppVeyor, Sphinx docs, isort, bumpversion, packaging checks etc).
* `cookiecutter-pylibrary-minimal`_: Same as above but without Pytest and static configuration for Tox/Travis/AppVeyor (no generator).
* `cookiecutter-pyvanguard`_: A template for cutting edge Python development. `Invoke`_, pytest, bumpversion, and Python 2/3 compatability.
* `Python-iOS-template`_: A template to create a Python project that will run on iOS devices.
* `Python-Android-template`_: A template to create a Python project that will run on Android devices.
* `cookiecutter-django-rest-framework`_: A template for creating reusable Django REST Framework packages.

C
~~

* `bootstrap.c`_: A template for simple projects written in C with autotools.
* `cookiecutter-avr`_: A template for avr development.

C++
  • BoilerplatePP_: A simple cmake template with unit testing for projects written in C++.

Common Lisp


* `cookiecutter-cl-project`_: A template for Common Lisp project with bootstrap script and Slime integration.

JS
~~

* `cookiecutter-jquery`_: A jQuery plugin project template based on jQuery
  Boilerplate.
* `cookiecutter-jswidget`_: A project template for creating a generic front-end,
  non-jQuery JS widget packaged for multiple JS packaging systems.
* `cookiecutter-component`_: A template for a Component JS package.

LaTeX/XeTeX
  • pandoc-talk_: A cookiecutter template for giving talks with pandoc and XeTeX.
  • cookiecutter-latex-article_: A LaTeX template geared towards academic use.

Berkshelf-Vagrant


* `slim-berkshelf-vagrant`_: A simple cookiecutter template with sane cookbook defaults for common vagrant/berkshelf cookbooks.

HTML
  • cookiecutter-complexity_: A cookiecutter for a Complexity static site with Bootstrap 3.
  • cookiecutter-tumblr-theme_: A cookiecutter for a Tumblr theme project with GruntJS as concatination tool.

.. cookiecutter-pypackage: https://github.com/audreyr/cookiecutter-pypackage .. cookiecutter-jquery: https://github.com/audreyr/cookiecutter-jquery .. cookiecutter-flask: https://github.com/sloria/cookiecutter-flask .. cookiecutter-bottle: https://github.com/avelino/cookiecutter-bottle .. cookiecutter-simple-django: https://github.com/marcofucci/cookiecutter-simple-django .. cookiecutter-django: https://github.com/pydanny/cookiecutter-django .. cookiecutter-djangopackage: https://github.com/pydanny/cookiecutter-djangopackage .. cookiecutter-django-cms: https://github.com/palazzem/cookiecutter-django-cms .. cookiecutter-djangocms-plugin: https://github.com/mishbahr/cookiecutter-djangocms-plugin .. cookiecutter-django-crud: https://github.com/wildfish/cookiecutter-django-crud .. cookiecutter-quokka-module: https://github.com/pythonhub/cookiecutter-quokka-module .. cookiecutter-django-lborgav: https://github.com/lborgav/cookiecutter-django .. cookiecutter-django-paas: https://github.com/pbacterio/cookiecutter-django-paas .. cookiecutter-kivy: https://github.com/hackebrot/cookiecutter-kivy .. cookiedozer: https://github.com/hackebrot/cookiedozer .. cookiecutter-pypackage-minimal: https://github.com/borntyping/cookiecutter-pypackage-minimal .. cookiecutter-ansible-role: https://github.com/iknite/cookiecutter-ansible-role .. bootstrap.c: https://github.com/vincentbernat/bootstrap.c .. BoilerplatePP: https://github.com/Paspartout/BoilerplatePP .. cookiecutter-openstack: https://github.com/openstack-dev/cookiecutter .. cookiecutter-component: https://github.com/audreyr/cookiecutter-component .. cookiecutter-docopt: https://github.com/sloria/cookiecutter-docopt .. docopt: http://docopt.org/ .. cookiecutter-jswidget: https://github.com/audreyr/cookiecutter-jswidget .. pandoc-talk: https://github.com/larsyencken/pandoc-talk .. cookiecutter-latex-article: https://github.com/Kreger51/cookiecutter-latex-article .. cookiecutter-complexity: https://github.com/audreyr/cookiecutter-complexity .. cookiecutter-cl-project: https://github.com/svetlyak40wt/cookiecutter-cl-project .. slim-berkshelf-vagrant: https://github.com/mahmoudimus/cookiecutter-slim-berkshelf-vagrant .. cookiecutter-avr: https://github.com/solarnz/cookiecutter-avr .. cookiecutter-tumblr-theme: https://github.com/relekang/cookiecutter-tumblr-theme .. cookiecutter-pylibrary: https://github.com/ionelmc/cookiecutter-pylibrary .. cookiecutter-pylibrary-minimal: https://github.com/ionelmc/cookiecutter-pylibrary-minimal .. cookiecutter-pyvanguard: https://github.com/robinandeer/cookiecutter-pyvanguard .. Python-iOS-template: https://github.com/pybee/Python-iOS-template .. Python-Android-template: https://github.com/pybee/Python-Android-template .. Invoke: http://invoke.readthedocs.org/en/latest/ .. cookiecutter-django-rest-framework: https://github.com/jpadilla/cookiecutter-django-rest-framework

Scala


* `cookiecutter-scala-spark`_: A cookiecutter template for Apache Spark applications written in Scala.

.. _`cookiecutter-scala-spark`: https://github.com/jpzk/cookiecutter-scala-spark

6502 Assembly
  • cookiecutter-atari2600_: A cookiecutter template for Atari2600 projects.

.. _cookiecutter-atari2600: https://github.com/joeyjoejoejr/cookiecutter-atari2600

Similar projects

  • Paste_ has a create option that creates a skeleton project.

  • Diecutter_: an API service that will give you back a configuration file from a template and variables.

  • Django_'s startproject and startapp commands can take in a --template option.

  • python-packager_: Creates Python packages from its own template, with configurable options.

  • Yeoman_ has a Rails-inspired generator system that provides scaffolding for apps.

  • Pyramid_'s pcreate command for creating Pyramid projects from scaffold templates.

  • mr.bob_ is a filesystem template renderer, meant to deprecate tools such as paster and templer.

  • grunt-init_ used to be built into Grunt and is now a standalone scaffolding tool to automate project creation.

  • scaffolt_ consumes JSON generators with Handlebars support.

  • init-skeleton_ clones or copies a repository, executes npm install and bower install and removes the .git directory.

  • Cog_ python-based code generation toolkit developed by Ned Batchelder

.. Paste: http://pythonpaste.org/script/#paster-create .. Diecutter: https://github.com/novagile/diecutter .. Django: https://docs.djangoproject.com/en/1.5/ref/django-admin/#django-admin-startproject .. python-packager: https://github.com/fcurella/python-packager .. Yeoman: https://github.com/yeoman/generator .. Pyramid: http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/scaffolding.html .. mr.bob: https://github.com/iElectric/mr.bob .. grunt-init: https://github.com/gruntjs/grunt-init .. scaffolt: https://github.com/paulmillr/scaffolt .. init-skeleton: https://github.com/paulmillr/init-skeleton .. _Cog: https://bitbucket.org/ned/cog

Community

The core committer team is @audreyr, @pydanny, @michaeljoseph, and @pfmoore. We welcome you 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 in #cookiecutter 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 in IRC:

  • cookiecutter on irc.freenode.net (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:

  • Thank a core committer for their efforts.
  • Star Cookiecutter on GitHub_.
  • Join the Cookiecutter Gittip community_.

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? @audreyr_ is available for hire for consultation or custom development.

.. Cookiecutter on GitHub: https://github.com/audreyr/cookiecutter .. Troubleshooting: http://cookiecutter.readthedocs.org/en/latest/troubleshooting.html .. contributors: https://github.com/audreyr/cookiecutter/blob/master/AUTHORS.rst .. contributing instructions: https://github.com/audreyr/cookiecutter/blob/master/CONTRIBUTING.rst .. Stack Overflow: http://stackoverflow.com/ .. File an issue: https://github.com/audreyr/cookiecutter/issues?state=open .. Cookiecutter Gittip community: https://www.gittip.com/for/cookiecutter/ .. @audreyr: https://github.com/audreyr .. @pydanny: https://github.com/pydanny .. @michaeljoseph: https://github.com/michaeljoseph .. _@pfmoore: https://github.com/pfmoore

Related Repositories

cookiecutter-django

cookiecutter-django

Cookiecutter Django is a framework for jumpstarting production-ready Django proj ...

cookiecutter-pypackage

cookiecutter-pypackage

Cookiecutter template for a Python package. ...

cookiecutter-pylibrary

cookiecutter-pylibrary

Enhanced cookiecutter template for Python libraries. ...

wagtail-cookiecutter-foundation

wagtail-cookiecutter-foundation

A Cookiecutter template for Wagtail CMS using Zurb Foundation 6 ...

cookiecutter-pyvanguard

cookiecutter-pyvanguard

Bleeding edge Cookiecutter template for Python development ...


Top Contributors

audreyr hackebrot michaeljoseph pydanny pfmoore raphigaziano ramiroluz foobacca mark0978 benjixx bollwyvl vaab Natim s-m-i-t-a jacebrowning freakboy3742 krallin msabramo lborgav nedbat pokoli vincentbernat treyhunner sloria ionelmc thedrow ThomasChiroux dreftymac mineo saxix

Releases

-   0.9.1 zip tar
-   0.9.0 zip tar
-   0.8.0 zip tar
-   0.7.2 zip tar
-   0.7.1 zip tar
-   0.7.0 zip tar
-   0.6.4 zip tar
-   0.6.3 zip tar
-   0.6.2 zip tar
-   0.6.1 zip tar
-   0.6.0 zip tar
-   0.5 zip tar
-   0.4 zip tar
-   0.3 zip tar
-   0.2.1 zip tar