/python-template

Template Repository for quickly starting a Python project

Primary LanguagePythonMIT LicenseMIT

Python Template Icon

Python Template

Template Repository for quickly starting a Python project

Codeql badge Lint badge Python 3.11+ badge PEP8 badge MIT License

Report Bug · Request Feature · Ask Question


Built-in Python Tooling Features

Lint Workflow

  • Ruff (extremely fast linter written in rust + configured to use isort and flake8-bandit)
  • Ruff Formatter (extremely fast opinionated formatter)
  • Mypy (type checking + strict config)

Lint pre-commit (see Setup: pre-commit)

Misc

  • Dependabot for pip and github actions

    • .github/dependabot.yaml
  • Auto-update pre-commit

    • .github/workflows/auto-update-pre-commit.yaml
  • Tooling

    • pyproject.toml
  • Logging (see Usage: logging with logging.ini)

    • logging.ini
  • Global Editor Rules

    • .editorconfig

Setup: pre-commit

pip install pre-commit
pre-commit install

Usage: logging with logging.ini

import logging
from logging.config import fileConfig
from pathlib import Path

Path("logs").mkdir(exist_ok=True)
fileConfig("logging.ini")

logging.info("Works as expected.")