-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
81 lines (74 loc) · 2.95 KB
/
Copy pathpyproject.toml
File metadata and controls
81 lines (74 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[project]
name = "programsmith"
version = "0.2.0"
description = "Generate, verify, and difficulty-calibrate reproducible ProgramBench tasks from real-world CLI repositories."
readme = "README.md"
license = "Apache-2.0"
license-files = ["LICENSE"]
requires-python = ">=3.11"
keywords = ["ai", "benchmarking", "evals", "programbench", "software-engineering"]
classifiers = [
"Development Status :: 3 - Alpha",
"Environment :: Console",
"License :: OSI Approved :: Apache Software License",
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Testing",
]
# The pipeline core (CLI, orchestrator, local sweep engine) is stdlib + pydantic + rich;
# fastapi/uvicorn power the bundled dashboard (`programsmith serve` must work from a bare
# install — the built frontend ships inside the wheel). Docker itself is a SYSTEM
# dependency (install Docker Desktop / engine).
dependencies = [
"pydantic>=2.7",
"rich>=13",
"fastapi>=0.110",
"uvicorn>=0.29",
"httpx>=0.27",
]
[project.urls]
Homepage = "https://github.com/abundant-ai/ProgramSmith"
Repository = "https://github.com/abundant-ai/ProgramSmith"
Issues = "https://github.com/abundant-ai/ProgramSmith/issues"
[project.optional-dependencies]
dev = ["pytest>=8", "httpx>=0.27"]
[project.scripts]
programsmith = "programsmith.cli:main"
psmith = "programsmith.cli:main" # short alias — same CLI, fewer keystrokes
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/programsmith"]
# Non-Python assets that MUST ship in the wheel:
# - the vendored STATIC_CI check suite (checks/ci/) — the gate replays it at run time
# - the built dashboard (ui/frontend/dist/) — `programsmith serve` works from a bare pip install
artifacts = [
"src/programsmith/checks/ci/*",
"src/programsmith/ui/frontend/dist/**",
]
# The dashboard's TS sources/tooling stay out of the wheel — only the built dist ships.
exclude = [
"src/programsmith/ui/frontend/src",
"src/programsmith/ui/frontend/public",
"src/programsmith/ui/frontend/node_modules",
"src/programsmith/ui/frontend/index.html",
"src/programsmith/ui/frontend/package.json",
"src/programsmith/ui/frontend/package-lock.json",
"src/programsmith/ui/frontend/tsconfig.json",
"src/programsmith/ui/frontend/tsconfig.app.json",
"src/programsmith/ui/frontend/tsconfig.node.json",
"src/programsmith/ui/frontend/vite.config.ts",
"src/programsmith/ui/frontend/.gitignore",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q"
[tool.check-wheel-contents]
# These are runtime-executed Static-CI scripts, not importable Python modules. Their stable
# hyphenated filenames are part of the check-suite interface.
ignore = ["W004"]