python-monorepolisted
Install: claude install-skill martinffx/atelier
# Python Monorepo with uv Workspaces
Modern Python monorepo architecture using `uv` for workspace management and `mise` for Python version and task orchestration.
## Core Concepts
**Monorepo**: Single repository containing multiple related packages and applications
**uv workspace**: Python's answer to npm/pnpm workspaces
- Single lock file for entire repo
- Shared virtual environment
- Cross-package dependency resolution
## Directory Structure
```
my-monorepo/
├── .mise.toml # Python version + task runner
├── pyproject.toml # Root workspace config
├── uv.lock # Unified lock file
├── apps/ # Deployable applications
│ ├── api/
│ └── worker/
└── packages/ # Shared libraries
├── core/
└── utils/
```
## Workspace Configuration
**Root pyproject.toml:**
```toml
[project]
name = "my-monorepo"
version = "0.1.0"
requires-python = ">=3.12"
[tool.uv.workspace]
members = ["apps/*", "packages/*"]
[tool.uv]
dev-dependencies = [
"pytest>=8.0.0",
"ruff>=0.8.0",
"basedpyright>=1.0.0",
]
```
See `references/workspace-config.md` for detailed configurations.
## Package Linking
Workspace packages reference each other by distribution name:
**packages/utils/pyproject.toml:**
```toml
[project]
name = "my-utils"
dependencies = ["my-core"]
```
**apps/api/pyproject.toml:**
```toml
[project]
name = "my-api"
dependencies = ["my-core", "my-utils", "fastapi>=0.100.0"]
```
## Cross-Package Import
**packages/core/