Skip to content

TheAndrewJackson/python-project-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Python Project Template Cookiecutter

This projects goal is to kick start the process of creating a best practices python project. It utilizes cookiecutter to copy the template.

Features

  • Formatting, import sorting, and linting with ruff
  • Testing with pytest
  • Code coverage with pytest-cov
  • Static type linting with mypy
  • Git hooks that run all the above with pre-commit
  • Runtime enforced static type checking and data validation with pydantic
    • This works by implementing pydantic based models.
    • This also includes enhanced mypy linting with the pydantic-mypy plugin

Quickstart

# Install pipx if cookiecutter isn't installed
python3 -m pip install --user pipx
# You may need to manually add the script directory to PATH
# pip should tell you the install location
# Restart terminal
pipx ensurepath
# Restart terminal again

# Install cookiecutter with pipx
pipx install cookiecutter

# Use cookiecutter to create project from this template
cookiecutter gh:theandrewjackson/python-project-template

# Enter project directory
cd <repo_name>

# Initialise git repo
git init

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

## Create and activate virtualenv
uv venv
source .venv/bin/active

# Install dependencies
uv pip install -r pyproject.toml --all-extras

# Setup pre-commit and pre-push hooks
pre-commit install -t pre-commit
pre-commit install -t pre-push

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages