Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@
// Set container-specific settings
"settings": {
"python.defaultInterpreterPath": "/usr/local/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": false,
"python.formatting.provider": "none",
"python.analysis.typeCheckingMode": "basic",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
Expand Down
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Platform Engineering Python monorepo template featuring FastAPI and Typer with best practices built-in.

## Tech Stack
- **Language**: Python 3.11+
- **Language**: Python 3.12+
- **API**: FastAPI
- **CLI**: Typer
- **Package Manager**: uv
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
python-version: '3.13'

- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
Expand All @@ -37,7 +37,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
python-version: '3.13'

- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
Expand All @@ -52,7 +52,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11', '3.12']
python-version: ['3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v4

Expand All @@ -71,7 +71,7 @@ jobs:
run: uv run pytest --cov=api --cov=cli --cov-report=xml --cov-report=term

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
file: ./coverage.xml
fail_ci_if_error: false
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Python monorepo template for platform engineering. FastAPI + Typer with modern t
## Tech Stack
| Component | Technology |
|-----------|------------|
| Language | Python 3.11+ |
| Language | Python 3.12+ |
| API | FastAPI |
| CLI | Typer |
| Package Manager | uv |
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Platform Engineering Python monorepo template. Features FastAPI for APIs and Typer for CLIs, with modern Python tooling (uv, ruff, mypy, pytest).

## Tech Stack
- **Language**: Python 3.11+
- **Language**: Python 3.12+
Comment thread
alexinslc marked this conversation as resolved.
- **API**: FastAPI
- **CLI**: Typer
- **Package Manager**: uv (fast, modern)
Expand Down
2 changes: 1 addition & 1 deletion DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ docker-compose run cli bash
When you open the project in a dev container:

✅ **Auto-configured Python environment**
- Python 3.11 with all dependencies installed
- Python 3.13 with all dependencies installed
- uv package manager ready to use

✅ **Pre-installed VS Code extensions**
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Multi-stage Dockerfile for both API and CLI
FROM python:3.11-slim AS base
FROM python:3.13-slim AS base

# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Choose one of the following approaches:
- [VS Code](https://code.visualstudio.com/) with [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) (optional but recommended)

### Option 2: Local Development
- Python 3.11 or higher
- Python 3.12 or higher
- [uv](https://docs.astral.sh/uv/) package manager

## Quick Start
Expand Down Expand Up @@ -347,7 +347,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
python-version: '3.13'
- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install dependencies
Expand Down
20 changes: 10 additions & 10 deletions api/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
name = "api"
version = "0.1.0"
description = "FastAPI application"
requires-python = ">=3.11"
requires-python = ">=3.12"
dependencies = [
"fastapi>=0.115.0",
"uvicorn[standard]>=0.30.0",
"pydantic>=2.9.0",
"pydantic-settings>=2.5.0",
"fastapi>=0.135.0",
"uvicorn[standard]>=0.44.0",
"pydantic>=2.12.0",
"pydantic-settings>=2.13.0",
]

[project.optional-dependencies]
dev = [
"pytest>=8.3.0",
"pytest-asyncio>=0.24.0",
"httpx>=0.27.0",
"ruff>=0.7.0",
"mypy>=1.11.0",
"pytest>=9.0.0",
"pytest-asyncio>=1.3.0",
"httpx>=0.28.0",
"ruff>=0.15.0",
"mypy>=1.20.0",
]

[build-system]
Expand Down
12 changes: 6 additions & 6 deletions cli/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
name = "cli"
version = "0.1.0"
description = "Typer CLI application"
requires-python = ">=3.11"
requires-python = ">=3.12"
dependencies = [
"typer[all]>=0.12.0",
"rich>=13.8.0",
"typer>=0.24.0",
"rich>=14.0.0",
Comment thread
alexinslc marked this conversation as resolved.
]

[project.scripts]
platform-cli = "cli.main:app"

[project.optional-dependencies]
dev = [
"pytest>=8.3.0",
"ruff>=0.7.0",
"mypy>=1.11.0",
"pytest>=9.0.0",
"ruff>=0.15.0",
"mypy>=1.20.0",
]

[build-system]
Expand Down
29 changes: 9 additions & 20 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@ name = "platform-engineering-template"
version = "0.1.0"
description = "Template monorepo for platform engineering projects"
readme = "README.md"
requires-python = ">=3.11"
requires-python = ">=3.12"
dependencies = [
"api",
"cli",
]

[project.optional-dependencies]
dev = [
"pytest>=8.3.0",
"pytest-asyncio>=0.24.0",
"pytest-cov>=5.0.0",
"httpx>=0.27.0",
"ruff>=0.7.0",
"mypy>=1.11.0",
"pytest>=9.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.0.0",
"httpx>=0.28.0",
"ruff>=0.15.0",
"mypy>=1.20.0",
]

[tool.uv.workspace]
Expand All @@ -28,7 +28,7 @@ cli = { workspace = true }

[tool.ruff]
line-length = 100
target-version = "py311"
target-version = "py312"

[tool.ruff.lint]
select = [
Expand All @@ -46,7 +46,7 @@ ignore = []
"__init__.py" = ["F401"]

[tool.mypy]
python_version = "3.11"
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
Expand All @@ -61,17 +61,6 @@ explicit_package_bases = true
namespace_packages = true
mypy_path = "api/src:cli/src"

[[tool.mypy.overrides]]
module = [
"typer",
"rich.*",
"fastapi",
"uvicorn",
"pydantic",
"pydantic_settings",
]
ignore_missing_imports = true

[tool.pytest.ini_options]
testpaths = ["api/tests", "cli/tests"]
pythonpath = ["api/src", "cli/src"]
Expand Down
Loading