← ClaudeAtlas

python-monorepolisted

Python monorepo architecture with uv workspaces, mise, and apps/packages pattern. Use when setting up project structure, configuring workspaces, managing dependencies across packages, or designing multi-app Python repositories.
martinffx/atelier · ★ 28 · AI & Automation · score 83
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/