[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 = [ "maturin>=1.9.0", "pytest>=8.4.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"]