Python Boilerplate Project

screenshot of Python Boilerplate Project

A python boilerplate project using poetry and ruff

Overview

The Python boilerplate project designed with Poetry is an efficient starting point for developers who want a well-structured foundation for their Python applications. Built with the latest technologies, including Python 3.11, Docker, and Ruff, this setup alleviates the common pains of project initialization and configuration. With automated processes for installation, testing, and linting, it's structured to help developers focus more on coding and less on setup hassles.

The project is tailored for various environments, allowing for seamless transitions between development, testing, staging, and production. Its organized structure and essential tools make it ideal for both newcomers and experienced developers looking to streamline their workflow.

Features

  • Pre-requisites: Requires Python 3.11, Docker, Docker Compose, and Poetry ensuring a modern development environment.
  • Environment Variables: Configurable via a .env file that supports various application environments such as dev, test, qa, and prod.
  • Installation Commands: Simplified with Makefile commands for both Docker and local setups for easy installation and execution.
  • Test Integration: Built-in commands to run tests with coverage, ensuring quality and reliability of the code.
  • Static Code Analysis: Uses Ruff for linting, allowing for easy detection and fixing of code issues.
  • Logging Configuration: Logging can be easily configured to display outputs in the console, helping developers debug effectively.
  • Settings Management: Customizable settings handled through a configuration class, providing clarity and organization within the project.
template
Templates & Themes

A template or theme refers to a pre-designed layout or structure that provides a basic framework for building a specific type of application or website. It typically includes good design, placeholder content and functional features, allowing developers to customize and fill in the details according to their specific needs.