Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Feb 15, 2024. It is now read-only.

yxtay/python-project-template

Open more actions menu

Repository files navigation

Python Project Template

Starter template for python projects

Features

  • environment management with Conda
  • project metadata and dependency management with Poetry
  • preconfigured continuous integration tasks
    • code formatting with isort and Black
    • code linting with isort, Black, Flake8, Bandit and Mypy
    • unit tests with pytest
    • pre-commit hooks
    • CICD pipelines with GitHub Actions
  • application
    • logging with standard logging and python-json-logger
    • configuration with standard configparser, python-dotenv and pydantic
    • command line with Typer
    • web service with FastAPI, Uvicorn and Gunicorn
  • deployment with Docker images
    • development image based on python:latest
    • lightweight production image based on python:slim using multi-stage build
  • Make formula for common development tasks
    • install dependencies
    • run continuous integration tasks
    • run application
    • build Docker images

Usage

Clone this repository or use it as a template to generate a new repository.

Update the project name and metadata in pyproject.toml and configs/main.ini.

External dependencies

Create environment

Use Conda to create a virtual environment and activate it for the project.

PROJECT_NAME = python-project-template
PYTHON_VERSION = 3.8

conda create --name $PROJECT_NAME --yes python=$PYTHON_VERSION
conda activate $PROJECT_NAME

Install dependencies

Install Poetry with pip. Then install project dependencies with Poetry.

make deps-install

Use Poetry to add project and development dependencies into pyproject.toml.

NOTE: Poetry must be included as a development dependency to prevent Poetry from uninstalling itself and its dependencies.

# development dependency
poetry add --dev poetry

# project dependency
poetry add pydantic

Tools

Releases

No releases published

Packages

 
 
 

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.