Coder Social home page Coder Social logo

gvee-uk / cookiecutter-pypackage Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thedatashed/cookiecutter-pypackage

0.0 0.0 0.0 602 KB

Cookiecutter template for a Python package.

License: BSD 3-Clause "New" or "Revised" License

Python 91.52% Makefile 8.48%

cookiecutter-pypackage's Introduction

Cookiecutter PyPackage

Updates Build Status Documentation Status

Cookiecutter template for a Python package.

Features

  • Testing: pytest
  • Travis-CI_: Ready for Travis Continuous Integration testing
  • Tox_ testing: Setup to easily test for Python 3.7, 3.8, 3.9
  • Mkdocs docs: Documentation ready for generation with, for example, `Read the Docs`_ Tagged releases get built a github pages build automatically.
  • Pre-commit hooks inline with what is python standard. Flake8, Black, Isort, Bandit, Docstrings Check as well as pre-commit hooks for code quality and git commit message quality.
  • commitzen: 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)
  • Uses pyenv to auto use the most recent stable python version and pyenv virtualenv to keep dependencies isolated. (Will install missing version if missing)

Build Status

Linux:

Linux build status on Travis CI

Windows:

Windows build status on Appveyor

Quickstart

This cookiecutter makes use of the following packages that you need to have installed and configred for a seamless installation:

  1. [pyenv](https://github.com/pyenv/pyenv)
  2. [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)

Once configured you should install cookiecutter and pre-commit

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

pip install -U cookiecutter pre-commit

Generate a Python package project:

cookiecutter https://github.com/KingMichaelPark/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. (pip install -e .["dev,docs"])
  • 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 `Read the Docs`_ account + turn on the Read the Docs service hook.
  • Release your package by pushing a new tag to master.
  • This fork uses requirements in the setup.cfg file until [PEP621](https://peps.python.org/pep-0621/) is merged. I prefer having all requirements in one file split into groups.
  • Activate your project on `pyup.io`_.

For more details, see the cookiecutter-pypackage tutorial.

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.

cookiecutter-pypackage's People

Contributors

audreyfeldroy avatar eliasdorneles avatar pydanny avatar psiace avatar cerickson avatar purplediane avatar pyup-bot avatar kingmichaelpark avatar skarbot avatar breezko avatar katialira avatar westurner avatar treyhunner avatar rwanyoike avatar palmerev avatar thejonanshow avatar erwinjanssen avatar hugovk avatar tony avatar mandeep avatar jhonjairoroa87 avatar manuphatak avatar rgbkrk avatar kevgathuku avatar jestaubach avatar gregmuellegger avatar cxong avatar chadbailey avatar benjaoming avatar andremiras avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.