distinct / pyproject.toml
aaxaxax's picture
initial commit
2aa8b3a
Raw
History Blame
1.65 kB
[build-system]
requires = ["setuptools>=75", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "distinct-server"
version = "0.1.0"
description = "Session-only Gradio control plane for community-run open-weight LLM agents"
requires-python = ">=3.10"
dependencies = ["gradio[oauth]==6.24.0"]
[project.optional-dependencies]
agent = [
"dspy[deno]==3.3.0",
"gradio_client==2.6.0",
"pyRAPL==0.2.3.1; sys_platform == 'linux'",
# The worker's own screen. Pinned rather than ranged because the frozen
# build has to be reproducible, and because a Textual minor release can
# change how a widget lays out, which is a visual regression no test in
# this repository would catch.
"textual==8.2.8",
]
dev = [
"pytest==8.4.2",
"ruff==0.12.11",
]
[tool.setuptools.packages.find]
include = [
"distinct_agent*", "distinct_mcp*", "distinct_protocol*",
"distinct_server*", "distinct_skills*", "distinct_tools*",
]
# A skill in `distinct_skills` is a directory of text, not a module: SKILL.md,
# tool.json and the templates beside them. Without this they are left out of a
# wheel, the digest table finds nothing on disk, and the repository degrades to
# empty in exactly the build where nobody is watching a test run.
[tool.setuptools.package-data]
distinct_skills = ["NOTICE.md", "skills/**/*.md", "skills/**/*.json"]
distinct_agent = ["deno.lock"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q"
[tool.ruff]
target-version = "py310"
line-length = 110
exclude = [".venv", "Measure-PcPower.ps1", "measure_pc_energy.py"]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I", "B"]