/cookiecutter-pypackage

Cookiecutter template for a poetry-managed Python package.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Cookiecutter PyPackage

Linux build status on Travis CI Windows build status on Appveyor

Cookiecutter template for a Python package, forked from audreyr/cookiecutter-pypackage.

Features

This template has all of the features of the original audreyr/cookiecutter-pypackage, plus the following:

  • Dependency tracking using poetry
  • Linting provided by both pylint and flake8 [executed by Tox]
  • Formatting provided by yapf and isort [checked by Tox]
  • Autodoc your code from Google docstring style (optional)
  • All development tasks (lint, format, test, etc) wrapped up in a python CLI by invoke

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/briggySmalls/cookiecutter-pypackage.git

Then:

  • Create a repo and put it there.
  • Add the repo to your Travis-CI account.
  • Install the dev requirements into a virtualenv. (poetry install)
  • Run the Travis CLI command travis encrypt --add deploy.password to encrypt your PyPI password in Travis config and activate automated deployment on PyPI when you push a new tag to master branch.
  • 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 master.
  • Get your code on! 😎 Add your package dependencies as you go, locking them into your virtual environment with poetry add.
  • Activate your project on pyup.io.

For more details, see the cookiecutter-pypackage tutorial.