python-project-setup

Set up Python 3.12+ projects with src layout, pyproject.toml, Ruff, and pytest.

6|1|Updated Mar 30, 2026
One-click install
npx skills add https://github.com/wesleyosantos91/multi-agents --skill python-project-setup-wesleyosantos91
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: python-project-setup
Source: https://github.com/wesleyosantos91/multi-agents/tree/main/devin/.devin/skills/python-project-setup
Command: npx skills add https://github.com/wesleyosantos91/multi-agents --skill python-project-setup-wesleyosantos91

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It solves the common pain of starting Python projects with inconsistent structure, missing tooling configuration, and weak development ergonomics that slow teams down.

Core Features & Use Cases

  • Modern project scaffolding: Establishes a clean layout using the src/ pattern and clear separation between API/service, domain logic, and infrastructure.
  • Production-ready pyproject.toml: Recommends an opinionated setup with dependencies, optional dev tooling, Ruff linting/formatting, and pytest configuration.
  • Quality guardrails: Encourages strict type hints, Protocol-based interfaces for dependency inversion, and consistent configuration via pydantic-settings.
  • Testing and maintainability: Defines unit/integration test structure and includes a Makefile workflow for install, test, lint, format, and run.

Quick Start

Use the skill to generate a complete modern starter structure for a new Python 3.12+ API project including src layout, pyproject.toml, pytest + Ruff config, and a Makefile.

Frequently Asked Questions about python-project-setup

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up a modern Python project with src layout and pyproject.toml?

Setting up a modern Python project requires establishing a clean src/ layout, configuring pyproject.toml for dependency management, and separating domain logic from API and infrastructure modules. This scaffolding enforces consistent structure and improves maintainability for new Python 3.12+ services.

What's the best way to configure Ruff and mypy strict type checking in a new Python project?

Configuring Ruff and mypy strict type checking involves defining rules inside pyproject.toml to enforce strict type hints and Protocol-based interfaces for dependency inversion. This quality guardrail approach ensures consistent linting, formatting, and type discipline across the codebase.

Does this Python project scaffolding work for both FastAPI services and Lambda functions?

This Python project scaffolding applies to creating new Python services like FastAPI-style APIs and Lambda-style functions. It also supports revising existing repositories by applying structured modules for domain, api, infrastructure, and message adapters to improve maintainability.

How do I structure pytest fixtures and markers for a Python src layout project?

Structuring pytest fixtures and markers involves defining unit and integration test configurations within pyproject.toml alongside the src layout. This testing structure ensures consistent execution and maintainability for Python 3.12+ projects using standardized Makefile workflows.

Why use pydantic-settings for configuration management in a Python API project?

Using pydantic-settings for configuration management provides consistent configuration via structured settings objects within the domain and infrastructure modules. This approach enforces strict type discipline and Protocol-based interfaces for dependency inversion in modern Python projects.

Do I need Python 3.12+ to use this project scaffolding configuration?

Yes, this project scaffolding configuration requires Python 3.12+ settings to establish modern project structures with Ruff, mypy strict type discipline, and pytest. This version requirement ensures compatibility with the latest Python features and tooling configurations.