Cookiecutter Py3-Package


cookiecutter-py3-package

A fork of cookiecutter-pypackage.

Currently, this is being updated to meet my specific needs, and perhaps yours.

Checkout the CHANGELOG to see what has been done so far.

Checkout the Projects page to see what is planned.

We are aiming for Continuous Delivery, also, Keeping it automated and straightforward.

Code Quality pre-commit Documentation Status

Cookiecutter template for a Python package.

Notable changes from the Original project so far.

  1. Links from the original fork have been updated to point to this repository.

  2. Support for Travis has been removed.

  3. Stale Similar Cookiecutter Templates have been removed.

  4. Conventional Commits specification custom commit message are now built into the cookiecutter-p3-package project.

  5. Choose to use a Conventional Commits specification custom commits message in your built package.

Features

  • Testing setup with unittest and python setup.py test or pytest.

  • Tox testing: Setup to easily test for Python 3.6, 3.7, 3.8 and 3.9.

  • Sphinx docs: Documentation ready for generation with, for example, Read the Docs.

  • bump2version: Pre-configured version bumping with a single command.

  • Auto-release to PyPI when you push a new tag to master (optional).

  • Use commit tags to release to Test-PyPi. Coming soon.

  • Command line interface using Click (optional).

Linux:

Quickstart

Install the latest Cookiecutter if you haven’t installed it yet (this requires Cookiecutter 1.4.0 or higher):

pip install -U cookiecutter

Generate a Python package project:

cookiecutter https://github.com/imAsparky/cookiecutter-py3-package.git

Then:

  • Create a repo and put it there.

    This project will be aimed towards Github with use of Github Actions.

  • Install the dev requirements into a virtualenv. (pip install -r requirements_dev.txt).

  • Register your project with PyPI.

  • Add the repo to your Read the Docs account + turn on the Read the Docs service hook.

  • Release your package by pushing a new tag to main.

  • Add a requirements.txt file that specifies the packages you will need for your project and their versions. For more info see the pip docs for requirements files.

  • Activate your project on pyup.io.

For more details, see the cookiecutter-pypackage tutorial.

Not Exactly What You Want?

Don’t worry, you have options:

Similar Cookiecutter Templates

Fork This / Create Your Own

If you have differences in your preferred setup, I encourage you to fork this to create your own version. Or create your own; it doesn’t strictly have to be a fork.

  • Once you have your own version working, add it to the Similar Cookiecutter Templates list above with a brief description.

  • It’s up to you whether or not to rename your fork/own version. Do whatever you think sounds good.

Or Submit a Pull Request

I also accept pull requests on this, if they’re small, atomic, and if they make my own packaging experience better.