-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
97 lines (88 loc) · 3.03 KB
/
Copy pathpyproject.toml
File metadata and controls
97 lines (88 loc) · 3.03 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "scidk"
version = "0.0.1"
description = "SciDK - Science Data Kit (MVP)"
authors = [{name = "SciDK Team"}]
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"Flask>=3.0",
# scidk/app.py imports this at module scope, before anything else — every
# test module that imports create_app fails collection without it. CI
# installs `-e .[dev]`, which reads this list and not requirements.txt, so
# declaring it in the latter alone left CI unable to import the app at all.
"python-dotenv>=1.0",
"ijson>=3.2",
"openpyxl>=3.1",
"PyYAML>=6.0",
"neo4j>=5.14",
"psutil>=5.9",
"python-dateutil>=2.8",
"cryptography>=41.0",
"jsonpath-ng>=1.6",
"pandas>=2.0",
"rapidfuzz>=3.0",
"bcrypt>=4.0",
"APScheduler>=3.10",
# APScheduler's SQLAlchemyJobStore: the persistent jobstore that lets a
# schedule change made in a worker reach the scheduler in the gunicorn master.
"SQLAlchemy>=1.4",
# Validates Pipeline mapping configs against scidk/pipeline/mapping_schema.json.
"jsonschema>=4.0",
"flasgger>=0.9.7",
# Parses incoming RO-Crates in scidk/rocrate_bridge.py:ingest_crate(). Reading
# only; the export path there is hand-rolled in-memory JSON.
"rocrate>=0.15.0",
]
[project.optional-dependencies]
# Dev/test dependencies used locally and in CI
dev = [
"pytest>=7.4",
"pytest-playwright==0.4.3",
"playwright==1.40.0",
"requests>=2.32",
"beautifulsoup4>=4.12",
"coverage>=7.4",
]
# Optional LLM provider (only needed if you enable Graphrag LLM features)
llm = [
"ollama>=0.3",
]
# Whole-slide image metadata (svs_interpreter). Only the first page's
# ImageDescription tag is read, never pixel data. Absent, SVSInterpreter
# returns a stub with a warning rather than failing the enrichment run — so
# this is genuinely optional, but no HistologySlide nodes appear without it.
imaging = [
"tifffile>=2024.1",
]
[project.scripts]
scidk-serve = "scidk.app:main"
# Concept Graph seeding and clean re-initialisation (Cycle 8 Task C). Also
# reachable as `python -m scidk.concept_graph`.
scidk-concept-graph = "scidk.concept_graph.cli:main"
[tool.setuptools]
package-dir = {"" = "."}
[tool.setuptools.package-data]
# intents.yaml is what `scidk-concept-graph seed` reads, so it has to be in the
# wheel. Until Cycle 8 scidk/concept_graph/ had no __init__.py and was not
# collected as a package at all. Note that this declares data for this package
# only — templates, static JS and interpreter profiles are still undeclared.
"scidk.concept_graph" = ["*.yaml", "*.cypher"]
[tool.setuptools.packages.find]
include = ["scidk*"]
exclude = ["dev*", "data*", "singularity*", "scripts*", "neo4j*", "tests*", "*.dist-info*", "*.egg-info*"]
[tool.pytest.ini_options]
testpaths = [
"tests",
]
addopts = "-ra"
markers = [
"unit: fast, pure unit tests",
"integration: tests that touch DB/files/HTTP without browser",
"e2e: end-to-end Playwright/browser tests",
"slow: slow tests",
"smoke: short, high-signal tests",
]