mirror of
https://github.com/exo-explore/exo.git
synced 2025-12-23 22:27:50 -05:00
134 lines
2.7 KiB
TOML
134 lines
2.7 KiB
TOML
[project]
|
|
name = "exo"
|
|
version = "0.3.0"
|
|
description = "Exo"
|
|
readme = "README.md"
|
|
requires-python = ">=3.13"
|
|
dependencies = [
|
|
"aiofiles>=24.1.0",
|
|
"aiohttp>=3.12.14",
|
|
"types-aiofiles>=24.1.0.20250708",
|
|
"typeguard>=4.4.4",
|
|
"pydantic>=2.11.7",
|
|
"base58>=2.1.1",
|
|
"cryptography>=45.0.5",
|
|
"fastapi>=0.116.1",
|
|
"uvicorn>=0.35.0",
|
|
"filelock>=3.18.0",
|
|
"aiosqlite>=0.21.0",
|
|
"networkx>=3.5",
|
|
"openai>=1.99.9",
|
|
"pathlib>=1.0.1",
|
|
"protobuf>=6.32.0",
|
|
"rich>=14.1.0",
|
|
"rustworkx>=0.17.1",
|
|
"sqlmodel>=0.0.24",
|
|
"sqlalchemy[asyncio]>=2.0.43",
|
|
"greenlet>=3.2.4",
|
|
"huggingface-hub>=0.33.4",
|
|
"mlx==0.29.3",
|
|
"mlx-lm==0.28.3",
|
|
"psutil>=7.0.0",
|
|
"transformers>=4.55.2",
|
|
"cobs>=1.2.2",
|
|
"loguru>=0.7.3",
|
|
"textual>=5.3.0",
|
|
"exo_pyo3_bindings", # rust bindings
|
|
"anyio>=4.10.0",
|
|
"bidict>=0.23.1",
|
|
]
|
|
|
|
[project.scripts]
|
|
exo-master = "exo.master.main:main"
|
|
exo-worker = "exo.worker.main:main"
|
|
exo = "exo.main:main"
|
|
|
|
# dependencies only required for development
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=8.4.0",
|
|
"pytest-asyncio>=1.0.0",
|
|
"ruff>=0.11.13",
|
|
]
|
|
|
|
# mlx[cuda] requires a newer version of mlx. the ideal on linux is: default to mlx[cpu] unless[cuda] specified.
|
|
# [project.optional-dependencies]
|
|
# cuda = [
|
|
# "mlx[cuda]==0.26.3",
|
|
# ]
|
|
|
|
###
|
|
# workspace configuration
|
|
###
|
|
|
|
[tool.uv.workspace]
|
|
members = [
|
|
"scripts",
|
|
"rust/exo_pyo3_bindings",
|
|
]
|
|
|
|
[tool.uv.sources]
|
|
exo_pyo3_bindings = { workspace = true }
|
|
|
|
[build-system]
|
|
requires = ["uv_build>=0.8.9,<0.9.0"]
|
|
build-backend = "uv_build"
|
|
|
|
###
|
|
# 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"
|
|
|
|
pythonVersion = "3.13"
|
|
pythonPlatform = "Darwin"
|
|
|
|
exclude = ["**/.venv", "**/venv", "**/__pycache__", "**/exo_scripts", "**/.direnv", "**/rust"]
|
|
stubPath = "typings"
|
|
|
|
[[tool.basedpyright.executionEnvironments]]
|
|
root = "src"
|
|
|
|
[[tool.basedpyright.executionEnvironments]]
|
|
root = "."
|
|
|
|
###
|
|
# 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"
|
|
markers = [
|
|
"slow: marks tests as slow (deselected by default)"
|
|
]
|
|
addopts = "-m 'not slow'"
|