2.3 KiB
2.3 KiB
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