Python Project Setup Skill
Set up new Python projects following modern best practices with uv, ruff, pytest, and proper project structure.
When to Use This Skill
Use this skill when:
- User requests to create a new Python project
- User wants to initialize Python tooling in an existing directory
- User mentions setting up a Python development environment
- User asks about Python project structure or best practices
Core Capabilities
-
Project Initialization
- Initialize projects with
uv init - Set up proper directory structure
- Configure Python version with pyenv
- Initialize projects with
-
Dependency Management
- Install and configure uv package manager
- Add essential dependencies (pytest, ruff, mypy, pydantic)
- Set up development vs runtime dependencies
-
Configuration Files
- Create
pyproject.tomlwith tool configurations - Set up
.gitignorefor Python projects - Configure VSCode settings for Python development
- Create
.python-versionfor version management
- Create
-
Project Structure
- Create
src/<project_name>/for source code - Set up
tests/directory for test files - Create
docs/for documentation - Set up
.vscode/for editor configuration
- Create
Context Files
This skill references the following context files in this directory:
project-structure-template.md- Standard directory layoutpyproject-toml-template.md- Configuration templatevscode-settings-template.json- Editor configurationgitignore-template.md- Python gitignore patternsreadme-template.md- README structure
Key Tools and Commands
# Project initialization
uv init <project-name>
# Dependency management
uv add pytest --dev
uv add ruff --dev
uv add mypy --dev
uv add pydantic
# Sync dependencies
uv sync
Expected Outcomes
After using this skill, the user should have:
- A fully initialized Python project with modern tooling
- Proper project structure following best practices
- All essential dependencies installed
- Configuration files set up correctly
- Version control initialized (git)
- Documentation scaffolding in place
Integration with Other Skills
- Works with
python-code-qualityskill for linting setup - Works with
python-testingskill for test framework configuration - Complements the
python-project-setupagent for full orchestration
