cookiecutter-modern-pypackage

Cookiecutter ๐Ÿช template for a modern Python package ๐Ÿ๐Ÿ“ฆ.

https://github.com/fedejaure/cookiecutter-modern-pypackage

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • โœ“
    CITATION.cff file
    Found CITATION.cff file
  • โœ“
    codemeta.json file
    Found codemeta.json file
  • โœ“
    .zenodo.json file
    Found .zenodo.json file
  • โ—‹
    DOI references
  • โ—‹
    Academic publication links
  • โ—‹
    Academic email domains
  • โ—‹
    Institutional organization owner
  • โ—‹
    JOSS paper metadata
  • โ—‹
    Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

cookiecutter cookiecutter-pypackage cookiecutter-template modern poetry pypackage python template
Last synced: 6 months ago · JSON representation ·

Repository

Cookiecutter ๐Ÿช template for a modern Python package ๐Ÿ๐Ÿ“ฆ.

Basic Info
Statistics
  • Stars: 128
  • Watchers: 1
  • Forks: 23
  • Open Issues: 16
  • Releases: 27
Topics
cookiecutter cookiecutter-pypackage cookiecutter-template modern poetry pypackage python template
Created almost 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Codeowners Security

README.md

Cookiecutter Modern PyPackage ๐Ÿ๐Ÿ“ฆ

[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/fedejaure/cookiecutter-modern-pypackage?logo=github)](https://github.com/fedejaure/cookiecutter-modern-pypackage/releases) [![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue?logo=python)](https://www.python.org/) [![Tests](https://github.com/fedejaure/cookiecutter-modern-pypackage/workflows/tests/badge.svg)](https://github.com/fedejaure/cookiecutter-modern-pypackage/actions?workflow=tests) [![Read the Docs](https://readthedocs.org/projects/cookiecutter-modern-pypackage/badge/)](https://cookiecutter-modern-pypackage.readthedocs.io/) [![License](https://img.shields.io/badge/license-MIT-brightgreen)](https://opensource.org/licenses/MIT) [![Black](https://img.shields.io/badge/code%20style-black-000000)](https://github.com/psf/black) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)

Cookiecutter ๐Ÿช template for a modern Python package ๐Ÿ๐Ÿ“ฆ.

๐Ÿš€ Features

  • Dependency tracking: ๐Ÿ“ฆ Utilizes Poetry for efficient package management.
  • Testing setup: ๐Ÿงช Includes Pytest for comprehensive and reliable testing.
  • Continuous Integration: ๐Ÿ”„ Github Actions integration for seamless CI testing.
  • Linting: ๐Ÿงน Enhanced code quality with Ruff.
  • Docstring: ๐Ÿ“š Follows the Google Python Style Guide for clear and consistent documentation.
  • Static type checking: ๐Ÿ” Ensured by Mypy.
  • Formatting: โœจ Consistent code formatting with Black and Isort.
  • Security checks: ๐Ÿ” Uses Safety to identify and address known vulnerabilities.
  • Git hooks: ๐ŸŽฃ Managed by pre-commit for streamlined development workflows.
  • Development tasks CLI: ๐Ÿ› ๏ธ All-in-one Python CLI provided by invoke.
  • Multiple Python environments testing: ๐Ÿฅ Supported by Nox.
  • Documentation: ๐Ÿ“– Utilizes Sphinx for clear and comprehensive documentation, ready for Read the Docs.
  • Command line interface: ๐Ÿ’ป Optional integration with Typer.
  • Automated dependency updates: ๐Ÿค– Enabled by Dependabot.
  • Coverage reports: ๐Ÿ“Š Integrated with Codecov.
  • Automated releases: ๐Ÿšข Push a new tag to trigger releases to PyPI and TestPyPI.
  • GitHub community health files (optional):

โšก๏ธ Quickstart

Get started with your modern Python package in just a few steps:

1. Install Cookiecutter

If you haven't installed Cookiecutter yet, make sure to have version 1.4.0 or higher:

sh pip install -U cookiecutter

2. Generate your Python Package

Run Cookiecutter using the latest release

sh cookiecutter gh:fedejaure/cookiecutter-modern-pypackage --checkout v3.1.0

3. Set up Your Project

Follow these steps to complete the setup:

  • Create a new GitHub repository and push your generated project there.
  • Install the development requirements into a virtual environment:

    sh poetry install

  • Install pre-commit hooks:

    sh poetry run inv install-hooks

  • Configure Codecov repository settings. (Codecov App, CODECOV_TOKEN)

  • Add your repository to your Read the Docs account and enable the Read the Docs service hook.

  • Configure PyPI and TestPyPI tokens. (PYPI_TOKEN, TEST_PYPI_TOKEN)

  • Release your package by pushing a new tag.

[!TIP] For more details, see the tutorial.

๐Ÿ“ Credits

This cookiecutter was built for learning purpose and inspired by:

Owner

  • Name: Federico Jaureguialzo
  • Login: fedejaure
  • Kind: user
  • Location: Hamburg, Germany

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Cookiecutter Modern PyPackage
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Federico
    family-names: Jaureguialzo
    alias: fedejaure
identifiers:
  - type: url
    value: >-
      https://github.com/fedejaure/cookiecutter-modern-pypackage/releases/tag/v3.1.0
    description: The Software Heritage link for version 3.1.0.
repository-code: 'https://github.com/fedejaure/cookiecutter-modern-pypackage'
abstract: Cookiecutter template for a modern Python package.
keywords:
  - cookiecutter
  - template
  - package
license: MIT
version: 3.1.0

GitHub Events

Total
  • Create event: 24
  • Release event: 1
  • Issues event: 3
  • Watch event: 7
  • Delete event: 26
  • Issue comment event: 30
  • Push event: 19
  • Pull request review event: 6
  • Pull request event: 53
  • Fork event: 3
Last Year
  • Create event: 24
  • Release event: 1
  • Issues event: 3
  • Watch event: 7
  • Delete event: 26
  • Issue comment event: 30
  • Push event: 19
  • Pull request review event: 6
  • Pull request event: 53
  • Fork event: 3

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 11
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.27
  • Merged pull requests: 0
  • Bot issues: 1
  • Bot pull requests: 11
Past Year
  • Issues: 2
  • Pull requests: 11
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.27
  • Merged pull requests: 0
  • Bot issues: 1
  • Bot pull requests: 11
Top Authors
Issue Authors
  • fedejaure (8)
  • dependabot[bot] (3)
  • puttehi (1)
Pull Request Authors
  • dependabot[bot] (103)
  • fedejaure (19)
  • github-actions[bot] (3)
Top Labels
Issue Labels
enhancement (7) dependencies (3) python (2) bug (2) github_actions (1)
Pull Request Labels
dependencies (112) python (93) github_actions (23) enhancement (6) bug (5) documentation (2)

Dependencies

docs/requirements.txt pypi
  • recommonmark ==0.7.1
  • sphinx ==4.2.0
poetry.lock pypi
  • alabaster 0.7.12 develop
  • arrow 1.2.0 develop
  • atomicwrites 1.4.0 develop
  • attrs 21.2.0 develop
  • babel 2.9.1 develop
  • backports.entry-points-selectable 1.1.0 develop
  • bandit 1.7.0 develop
  • binaryornot 0.4.4 develop
  • black 21.9b0 develop
  • bump2version 1.0.1 develop
  • certifi 2021.10.8 develop
  • cfgv 3.3.1 develop
  • chardet 4.0.0 develop
  • charset-normalizer 2.0.6 develop
  • click 8.0.3 develop
  • colorama 0.4.4 develop
  • commonmark 0.9.1 develop
  • cookiecutter 1.7.3 develop
  • darglint 1.8.0 develop
  • distlib 0.3.3 develop
  • docutils 0.17.1 develop
  • dparse 0.5.1 develop
  • entrypoints 0.3 develop
  • filelock 3.3.0 develop
  • flake8 3.9.2 develop
  • flake8-annotations 2.7.0 develop
  • flake8-bandit 2.1.2 develop
  • flake8-blind-except 0.2.0 develop
  • flake8-bugbear 21.9.2 develop
  • flake8-builtins 1.5.3 develop
  • flake8-docstrings 1.6.0 develop
  • flake8-logging-format 0.6.0 develop
  • flake8-polyfill 1.0.2 develop
  • flakehell 0.9.0 develop
  • gitdb 4.0.7 develop
  • gitpython 3.1.24 develop
  • identify 2.3.0 develop
  • idna 3.2 develop
  • imagesize 1.2.0 develop
  • importlib-metadata 4.8.1 develop
  • iniconfig 1.1.1 develop
  • invoke 1.6.0 develop
  • isort 5.9.3 develop
  • jinja2 3.0.2 develop
  • jinja2-time 0.2.0 develop
  • markupsafe 2.0.1 develop
  • mccabe 0.6.1 develop
  • mypy 0.910 develop
  • mypy-extensions 0.4.3 develop
  • nodeenv 1.6.0 develop
  • packaging 21.0 develop
  • pathspec 0.9.0 develop
  • pbr 5.6.0 develop
  • platformdirs 2.4.0 develop
  • pluggy 1.0.0 develop
  • poyo 0.5.0 develop
  • pre-commit 2.15.0 develop
  • py 1.10.0 develop
  • pycodestyle 2.7.0 develop
  • pydocstyle 6.1.1 develop
  • pyflakes 2.3.1 develop
  • pygments 2.10.0 develop
  • pyparsing 2.4.7 develop
  • pytest 6.2.5 develop
  • pytest-cookies 0.6.1 develop
  • python-dateutil 2.8.2 develop
  • python-slugify 5.0.2 develop
  • pytz 2021.3 develop
  • pyyaml 5.4.1 develop
  • recommonmark 0.7.1 develop
  • regex 2021.10.8 develop
  • requests 2.26.0 develop
  • safety 1.10.3 develop
  • six 1.16.0 develop
  • smmap 4.0.0 develop
  • snowballstemmer 2.1.0 develop
  • sphinx 4.2.0 develop
  • sphinxcontrib-applehelp 1.0.2 develop
  • sphinxcontrib-devhelp 1.0.2 develop
  • sphinxcontrib-htmlhelp 2.0.0 develop
  • sphinxcontrib-jsmath 1.0.1 develop
  • sphinxcontrib-qthelp 1.0.3 develop
  • sphinxcontrib-serializinghtml 1.1.5 develop
  • stevedore 3.4.0 develop
  • text-unidecode 1.3 develop
  • toml 0.10.2 develop
  • tomli 1.2.1 develop
  • typed-ast 1.4.3 develop
  • typing-extensions 3.10.0.2 develop
  • urllib3 1.26.7 develop
  • virtualenv 20.8.1 develop
  • watchdog 2.1.6 develop
  • xdoctest 0.15.10 develop
  • zipp 3.6.0 develop
pyproject.toml pypi
  • black ^21.9b0 develop
  • bump2version ^1.0.1 develop
  • cookiecutter ^1.7.3 develop
  • darglint ^1.8.0 develop
  • flake8 ^3.9.2 develop
  • flake8-annotations ^2.6.2 develop
  • flake8-bandit ^2.1.2 develop
  • flake8-blind-except ^0.2.0 develop
  • flake8-bugbear ^21.9.2 develop
  • flake8-builtins ^1.5.3 develop
  • flake8-docstrings ^1.6.0 develop
  • flake8-logging-format ^0.6.0 develop
  • flakehell ^0.9.0 develop
  • invoke ^1.6.0 develop
  • isort ^5.9.3 develop
  • mypy ^0.910 develop
  • pre-commit ^2.15.0 develop
  • pytest ^6.2.5 develop
  • pytest-cookies ^0.6.1 develop
  • recommonmark ^0.7.1 develop
  • safety ^1.10.3 develop
  • sphinx ^4.2.0 develop
  • watchdog ^2.1.6 develop
  • xdoctest ^0.15.10 develop
  • python <3.10,>=3.7
{{cookiecutter.project_name}}/docs/requirements.txt pypi
  • recommonmark ==0.7.1
  • sphinx ==4.2.0
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2.3.4 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
.github/workflows/pre-commit-autoupdate.yml actions
  • actions/checkout v2.3.4 composite
  • actions/setup-python v2.2.2 composite
  • peter-evans/create-pull-request v3.10.1 composite
.github/workflows/release.yml actions
  • actions/checkout v2.3.4 composite
  • actions/create-release v1.1.4 composite
  • mindsers/changelog-reader-action v2.0.0 composite
.github/workflows/tests.yml actions
  • actions/checkout v2.3.4 composite
  • actions/setup-python v2.2.2 composite
{{cookiecutter.project_name}}/pyproject.toml pypi