| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- [project]
- name = "exo"
- version = "0.3.0"
- description = "Exo v2"
- 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'"
|