Files
exo/pyproject.toml
Matt Beton 21acd3794a New Runner!
2025-07-10 16:34:35 +01:00

112 lines
2.0 KiB
TOML

[project]
name = "exo"
version = "0.2.0"
description = "Exo"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"exo-master",
"exo-worker",
]
# dependencies only required for development
[dependency-groups]
dev = [
"basedpyright>=1.29.4",
"maturin>=1.9.0",
"pytest>=8.4.0",
"pytest-asyncio>=1.0.0",
"ruff>=0.11.13",
]
# dependencies only required for Apple Silicon
[project.optional-dependencies]
darwin = [
"mlx",
]
###
# workspace configuration
###
[tool.uv.workspace]
members = [
"master",
"worker",
"shared",
"engines/*",
"networking",
]
[tool.uv.sources]
exo-shared = { workspace = true }
exo-master = { workspace = true }
exo-worker = { workspace = true }
exo-engine-mlx = { workspace = true }
exo-networking = { workspace = true }
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build]
clean = true
[tool.hatch.build.targets.wheel]
packages = []
only-include = ["pyproject.toml", "README.md"]
[tool.hatch.build.targets.sdist]
packages = []
only-include = ["pyproject.toml", "README.md"]
###
# type-checker configuration
###
[tool.basedpyright]
typeCheckingMode = "strict"
failOnWarnings = true
reportAny = "error"
reportUnknownVariableType = "error"
reportUnknownParameterType = "error"
reportMissingParameterType = "error"
reportMissingTypeStubs = "error"
reportInvalidCast = "error"
reportUnnecessaryCast = "error"
reportUnnecessaryTypeIgnoreComment = "error"
include = ["master", "worker", "shared", "engines/*"]
pythonVersion = "3.13"
pythonPlatform = "Darwin"
stubPath = "shared/protobufs/types"
ignore = [
"shared/protobufs/types/**/*",
]
###
# uv configuration
###
# supported platforms for this project
[tool.uv]
environments = [
"sys_platform == 'darwin'",
"sys_platform == 'linux'",
]
###
# ruff configuration
###
[tool.ruff]
extend-exclude = ["shared/protobufs/**"]
[tool.ruff.lint]
extend-select = ["I", "N", "B", "A", "PIE", "SIM"]
[tool.pytest.ini_options]
pythonpath = "."
asyncio_mode = "auto"