-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
44 lines (37 loc) · 1.31 KB
/
Copy pathpyproject.toml
File metadata and controls
44 lines (37 loc) · 1.31 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
[project]
name = "scriptorium"
version = "1.3.0"
description = "Sovereign rigor/audit layer for the scientific knowledge lifecycle"
license = "AGPL-3.0-or-later"
requires-python = ">=3.10"
dependencies = [
"statsmodels>=0.14",
"scipy>=1.11",
"pingouin>=0.5.4",
"lifelines>=0.27",
"PyYAML>=6.0",
]
[project.optional-dependencies]
dev = ["pytest>=8.0", "jsonschema>=4.18", "ruff>=0.5", "pytest-cov>=5.0"]
[tool.setuptools.packages.find]
include = ["scripts*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
markers = [
"llm_judge: model-dependent behavioral test; runs a real agent + judge backend. Skipped unless SCRIPTORIUM_RUN_LLM_JUDGE=1 (nightly/manual, never default CI).",
]
[tool.coverage.run]
# Engines are exercised as subprocesses (black-box CLI contract); patch=subprocess captures
# their execution, so the number reflects real coverage, not just directly-imported modules.
patch = ["subprocess"]
source = ["scripts"]
omit = ["scripts/validate_*.py"] # standalone tooling, exercised via validate_structure.sh
[tool.coverage.report]
fail_under = 80
[tool.ruff]
line-length = 100
[tool.ruff.lint.per-file-ignores]
# Tests intentionally use inline imports (scoped to a test) and compact `a = ...; b = ...`
# data setup; these are deliberate, not defects.
"tests/**" = ["E402", "E702"]