You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description = "spaex 4.0: reproducible coding harnesses for any repo. Compose skills, MCPs, constitutions, slash commands, and dev-environment files into a single project; add/remove/install/migrate/constitution show CLI."
readme = "README.md"
requires-python = ">=3.14,<3.15"
license = { text = "Apache-2.0" }
authors = [{ name = "spaex contributors" }]
dependencies = [
"jsonschema>=4.18",
"pyyaml>=6.0",
"uv>=0.12.13,<0.13",
]
[project.scripts]
spaex = "spaex.cli.main:main"
[project.optional-dependencies]
dev = [
"pytest>=7.4",
"pytest-subprocess>=1.5",
"ruff>=0.5",
"mypy>=1.8",
"types-PyYAML>=6.0.12",
"types-jsonschema>=4.25.1",
]
[tool.setuptools]
package-dir = { "" = "src" }
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
spaex = ["schema/data/*.json"]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "SIM"]
ignore = []
[tool.mypy]
python_version = "3.14"
strict = true
packages = ["spaex"]
mypy_path = "src"
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
markers = [
"slow: opt-in benchmarks and heavy end-to-end scenarios",