Skip to content

spicedacademy/spiced-cookiecutter-pypackage

Repository files navigation

SPICED Data Science Cookiecutter PyPackage

Cookiecutter template for a Python package, adapted for SPICED Academy Data Science Program, based on the original cookiecutter-pypackage developed by Audrey Roy Greenfeld (github: audreyr).

Features

  • Testing setup with unittest and python setup.py test or py.test
  • Travis-CI: Ready for Travis Continuous Integration testing
  • Sphinx docs: Documentation ready for generation with, for example, ReadTheDocs
  • Bumpversion: Pre-configured version bumping with a single command
  • Auto-release to PyPI when you push a new tag to master (optional)
  • Command line interface using Click (optional)

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/spicedacademy/spiced-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 virtual environment (e.g. conda). (pip install -r requirements_dev.txt)
  • Register your project with PyPI.
  • 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 ReadTheDocs account + turn on the ReadTheDocs service hook.
  • Release your package by pushing a new tag to master.
  • 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.

For more details, see the cookiecutter-pypackage tutorial.

Generating Documentation with Sphinx

For MacOS / Linux, at the root level of your project slug, run:

make docs

Alternatively:

cd docs/
make html
open _build/html/index.html

For Windows users:

Run the make.bat file inside the `docs/` directory. (TO-DO: Needs to be tested)

Not Exactly What You Want?

Don't worry, you have options:

Similar Cookiecutter Templates

Support this Project

You can take our detailed course that covers all the features of this template, which has the added bonus of funding this project:

Creating and Distributing Python Packages

También disponible en español:

Creating and Distributing Python Packages ES

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.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •