tablassert 7.5.2__tar.gz → 8.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tablassert-7.5.2 → tablassert-8.0.0}/PKG-INFO +56 -68
- {tablassert-7.5.2 → tablassert-8.0.0}/README.md +20 -28
- {tablassert-7.5.2 → tablassert-8.0.0}/pyproject.toml +70 -27
- tablassert-8.0.0/rust/Cargo.lock +677 -0
- tablassert-8.0.0/rust/Cargo.toml +51 -0
- tablassert-8.0.0/rust/examples/count_tables.rs +47 -0
- tablassert-8.0.0/rust/src/fullmap.rs +4505 -0
- tablassert-8.0.0/rust/src/json.rs +118 -0
- tablassert-8.0.0/rust/src/lib.rs +83 -0
- tablassert-8.0.0/rust/src/ndjson.rs +254 -0
- tablassert-8.0.0/rust/src/uuid.rs +146 -0
- tablassert-8.0.0/rust/tests/build_golden.rs +641 -0
- tablassert-8.0.0/src/tablassert/__init__.py +30 -0
- tablassert-8.0.0/src/tablassert/_lazy.py +46 -0
- tablassert-8.0.0/src/tablassert/agent.py +2649 -0
- tablassert-8.0.0/src/tablassert/biolink.py +310 -0
- tablassert-8.0.0/src/tablassert/cli.py +702 -0
- tablassert-8.0.0/src/tablassert/coerce.py +362 -0
- tablassert-8.0.0/src/tablassert/enums.py +69 -0
- tablassert-8.0.0/src/tablassert/errors.py +81 -0
- tablassert-8.0.0/src/tablassert/fullmap.py +597 -0
- tablassert-8.0.0/src/tablassert/ingests.py +90 -0
- tablassert-8.0.0/src/tablassert/lib.py +1199 -0
- tablassert-8.0.0/src/tablassert/log.py +29 -0
- tablassert-8.0.0/src/tablassert/models.py +427 -0
- tablassert-8.0.0/src/tablassert/nlp.py +50 -0
- tablassert-8.0.0/src/tablassert/progress.py +266 -0
- tablassert-8.0.0/src/tablassert/qc.py +211 -0
- tablassert-8.0.0/src/tablassert/rig.py +275 -0
- tablassert-8.0.0/src/tablassert/rs.pyi +19 -0
- tablassert-8.0.0/src/tablassert/utils.py +18 -0
- tablassert-7.5.2/.github/workflows/docker.yml +0 -35
- tablassert-7.5.2/.github/workflows/docs.yml +0 -25
- tablassert-7.5.2/.github/workflows/pipy.yml +0 -22
- tablassert-7.5.2/.gitignore +0 -27
- tablassert-7.5.2/.pre-commit-config.yaml +0 -21
- tablassert-7.5.2/AGENTS.md +0 -57
- tablassert-7.5.2/CHANGELOG.md +0 -307
- tablassert-7.5.2/CITATION.cff +0 -34
- tablassert-7.5.2/CONTRIBUTING.md +0 -263
- tablassert-7.5.2/Dockerfile +0 -8
- tablassert-7.5.2/docs/api/fullmap.md +0 -238
- tablassert-7.5.2/docs/api/lib.md +0 -248
- tablassert-7.5.2/docs/api/qc.md +0 -232
- tablassert-7.5.2/docs/api/utils.md +0 -215
- tablassert-7.5.2/docs/changelog.md +0 -13
- tablassert-7.5.2/docs/cli.md +0 -142
- tablassert-7.5.2/docs/configuration/advanced-example.md +0 -425
- tablassert-7.5.2/docs/configuration/graph.md +0 -186
- tablassert-7.5.2/docs/configuration/table.md +0 -536
- tablassert-7.5.2/docs/datassert.md +0 -106
- tablassert-7.5.2/docs/docker.md +0 -92
- tablassert-7.5.2/docs/examples/tutorial-data.csv +0 -5
- tablassert-7.5.2/docs/examples/tutorial-graph.yaml +0 -9
- tablassert-7.5.2/docs/examples/tutorial-table.yaml +0 -40
- tablassert-7.5.2/docs/examples.md +0 -357
- tablassert-7.5.2/docs/index.md +0 -85
- tablassert-7.5.2/docs/installation.md +0 -230
- tablassert-7.5.2/docs/tutorial.md +0 -192
- tablassert-7.5.2/llms.txt +0 -48
- tablassert-7.5.2/mkdocs.yml +0 -20
- tablassert-7.5.2/src/tablassert/__init__.py +0 -0
- tablassert-7.5.2/src/tablassert/cli.py +0 -165
- tablassert-7.5.2/src/tablassert/downloader.py +0 -243
- tablassert-7.5.2/src/tablassert/enums.py +0 -523
- tablassert-7.5.2/src/tablassert/fullmap.py +0 -237
- tablassert-7.5.2/src/tablassert/ingests.py +0 -50
- tablassert-7.5.2/src/tablassert/lib.py +0 -580
- tablassert-7.5.2/src/tablassert/log.py +0 -24
- tablassert-7.5.2/src/tablassert/models.py +0 -348
- tablassert-7.5.2/src/tablassert/nlp.py +0 -28
- tablassert-7.5.2/src/tablassert/progress.py +0 -133
- tablassert-7.5.2/src/tablassert/qc.py +0 -213
- tablassert-7.5.2/src/tablassert/utils.py +0 -44
- tablassert-7.5.2/tests/__init__.py +0 -0
- tablassert-7.5.2/tests/conftest.py +0 -28
- tablassert-7.5.2/tests/fixtures/invalid_section_missing_source.yaml +0 -15
- tablassert-7.5.2/tests/fixtures/minimal_section.yaml +0 -20
- tablassert-7.5.2/tests/fixtures/minimal_section_with_sections.yaml +0 -41
- tablassert-7.5.2/tests/test_downloader.py +0 -238
- tablassert-7.5.2/tests/test_enums.py +0 -179
- tablassert-7.5.2/tests/test_fullmap.py +0 -59
- tablassert-7.5.2/tests/test_ingests.py +0 -111
- tablassert-7.5.2/tests/test_lib.py +0 -522
- tablassert-7.5.2/tests/test_models.py +0 -282
- tablassert-7.5.2/tests/test_nlp.py +0 -64
- tablassert-7.5.2/tests/test_progress.py +0 -48
- tablassert-7.5.2/tests/test_qc.py +0 -217
- tablassert-7.5.2/tests/test_utils.py +0 -80
- tablassert-7.5.2/uv.lock +0 -2854
- {tablassert-7.5.2 → tablassert-8.0.0}/LICENSE +0 -0
|
@@ -1,58 +1,53 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tablassert
|
|
3
|
-
Version:
|
|
4
|
-
|
|
5
|
-
Project-URL: Homepage, https://github.com/SkyeAv/Tablassert
|
|
6
|
-
Project-URL: Source, https://github.com/SkyeAv/Tablassert
|
|
7
|
-
Project-URL: Documentation, https://skyeav.github.io/Tablassert/
|
|
8
|
-
Author-email: Skye Lane Goetz <sgoetz@isbscience.org>
|
|
9
|
-
License-Expression: Apache-2.0
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Keywords: bioinformatics,data quality control,declarative pipeline,entity resolution,kgx,knowledge graph,ncats translator,ner,tablassert,table mining,yaml configuration
|
|
3
|
+
Version: 8.0.0
|
|
4
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
5
|
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
-
Classifier: Environment :: Console
|
|
14
|
-
Classifier: Framework :: Pydantic
|
|
15
|
-
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: Intended Audience :: Healthcare Industry
|
|
17
6
|
Classifier: Intended Audience :: Science/Research
|
|
18
|
-
Classifier:
|
|
19
|
-
Classifier:
|
|
7
|
+
Classifier: Intended Audience :: Healthcare Industry
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
10
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
12
|
+
Classifier: Topic :: Database
|
|
20
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
16
|
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
-
Classifier:
|
|
25
|
-
Classifier:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist: httpx>=0.28.1
|
|
32
|
-
Requires-Dist: lazy-loader>=0.5
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
|
+
Classifier: Programming Language :: Rust
|
|
19
|
+
Classifier: Framework :: Pydantic
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
22
|
+
Classifier: Environment :: Console
|
|
23
|
+
Requires-Dist: biolink-model>=4.4.3
|
|
33
24
|
Requires-Dist: loguru>=0.7.3
|
|
34
|
-
Requires-Dist: optimum-onnx>=0.1.0
|
|
35
|
-
Requires-Dist: orjson>=3.11.7
|
|
36
|
-
Requires-Dist: playwright<1.59,>=1.58.0
|
|
37
|
-
Requires-Dist: polars-hash>=0.5.6
|
|
38
25
|
Requires-Dist: polars>=1.39.0
|
|
39
|
-
Requires-Dist:
|
|
26
|
+
Requires-Dist: rapidfuzz>=3.14.3
|
|
40
27
|
Requires-Dist: pydantic>=2.12.5
|
|
41
|
-
Requires-Dist: pyexcel>=0.7.4
|
|
42
28
|
Requires-Dist: pyyaml>=6.0.3
|
|
43
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: cyclopts>=1.0.0
|
|
44
30
|
Requires-Dist: rich>=13.0.0
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist:
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: fastexcel>=0.20.2
|
|
32
|
+
Requires-Dist: smolagents>=1.26.0 ; extra == 'agent'
|
|
33
|
+
Requires-Dist: dspy>=3.2.1 ; extra == 'agent'
|
|
34
|
+
Requires-Dist: litellm>=1.93.0 ; extra == 'agent'
|
|
35
|
+
Requires-Dist: scikit-learn>=1.8.0 ; extra == 'qc'
|
|
36
|
+
Requires-Dist: sentence-transformers>=5.3.0 ; extra == 'qc'
|
|
37
|
+
Requires-Dist: polars[rtcompat]>=1.40.1 ; extra == 'rt'
|
|
38
|
+
Provides-Extra: agent
|
|
49
39
|
Provides-Extra: qc
|
|
50
|
-
Requires-Dist: onnxruntime>=1.24.4; extra == 'qc'
|
|
51
|
-
Provides-Extra: qc-cuda
|
|
52
|
-
Requires-Dist: onnxruntime-gpu>=1.24.4; extra == 'qc-cuda'
|
|
53
40
|
Provides-Extra: rt
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
License-File: LICENSE
|
|
42
|
+
Summary: Extract knowledge assertions from tabular data into NCATS Translator-compliant KGX NDJSON — declaratively, with entity resolution and quality control built in.
|
|
43
|
+
Keywords: knowledge graph,bioinformatics,entity resolution,ner,ncats translator,kgx,yaml configuration,table mining,declarative pipeline,data quality control,tablassert
|
|
44
|
+
Author-email: Skye Lane Goetz <sgoetz@isbscience.org>
|
|
45
|
+
License-Expression: Apache-2.0
|
|
46
|
+
Requires-Python: >=3.11
|
|
47
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
48
|
+
Project-URL: Documentation, https://skyeav.github.io/Tablassert/
|
|
49
|
+
Project-URL: Homepage, https://github.com/SkyeAv/Tablassert
|
|
50
|
+
Project-URL: Source, https://github.com/SkyeAv/Tablassert
|
|
56
51
|
|
|
57
52
|
# Tablassert
|
|
58
53
|
|
|
@@ -65,7 +60,7 @@ Extract knowledge assertions from tabular data into NCATS Translator-compliant K
|
|
|
65
60
|
|
|
66
61
|
```bash
|
|
67
62
|
pip install tablassert
|
|
68
|
-
tablassert build config.yaml
|
|
63
|
+
tablassert build-kg config.yaml
|
|
69
64
|
```
|
|
70
65
|
|
|
71
66
|
**[Full Documentation](https://skyeav.github.io/Tablassert/)** — installation guides, tutorials, configuration reference, and API docs.
|
|
@@ -76,30 +71,16 @@ tablassert build config.yaml
|
|
|
76
71
|
pip install tablassert
|
|
77
72
|
```
|
|
78
73
|
|
|
79
|
-
|
|
74
|
+
The base install includes everything needed to build knowledge graphs from CSV/TSV sources. Optional extras are available for CPU compatibility and quality control:
|
|
80
75
|
|
|
81
76
|
```bash
|
|
82
|
-
pip install "tablassert[rt]"
|
|
83
|
-
pip install "tablassert[qc]"
|
|
84
|
-
pip install "tablassert[qc-cuda]" # Enable QC with CUDA ONNX Runtime on GPU 0
|
|
77
|
+
pip install "tablassert[rt]" # Polars build for CPUs without the required instructions
|
|
78
|
+
pip install "tablassert[qc]" # Enable QC (torch + sentence-transformers BioBERT, scikit-learn)
|
|
85
79
|
```
|
|
86
80
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
<details>
|
|
90
|
-
<summary><strong>Docker</strong></summary>
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
docker pull ghcr.io/skyeav/tablassert:latest
|
|
94
|
-
|
|
95
|
-
docker run --rm \
|
|
96
|
-
-v /path/to/config:/data \
|
|
97
|
-
-v /path/to/datassert:/datassert \
|
|
98
|
-
ghcr.io/skyeav/tablassert:latest \
|
|
99
|
-
build /data/graph-config.yaml
|
|
100
|
-
```
|
|
81
|
+
Excel (`.xlsx`) inputs are read through Polars' `calamine` engine and additionally require `python-calamine` (`pip install python-calamine`).
|
|
101
82
|
|
|
102
|
-
|
|
83
|
+
QC is opt-in: pass `--qc` to `build-kg` to run the three-stage audit (exact → fuzzy → BioBERT). See the [CLI Reference](https://skyeav.github.io/Tablassert/cli/) for the full flag reference.
|
|
103
84
|
|
|
104
85
|
## Quick Demo
|
|
105
86
|
|
|
@@ -107,22 +88,22 @@ docker run --rm \
|
|
|
107
88
|
from pathlib import Path
|
|
108
89
|
from tablassert.lib import resolve_many
|
|
109
90
|
|
|
110
|
-
# Resolve gene names to CURIEs against a
|
|
91
|
+
# Resolve gene names to CURIEs against a fullmap database
|
|
111
92
|
results = resolve_many(
|
|
112
93
|
col="gene",
|
|
113
94
|
entities=["TP53", "BRCA1", "EGFR"],
|
|
114
|
-
|
|
95
|
+
fullmap=Path("/path/to/fullmap"),
|
|
115
96
|
taxon="9606",
|
|
116
97
|
)
|
|
117
98
|
|
|
118
99
|
for row in results:
|
|
119
|
-
print(f"{row['
|
|
100
|
+
print(f"{row['original_gene']} → {row['gene']} ({row['gene_name']})")
|
|
120
101
|
# TP53 → HGNC:11998 (TP53)
|
|
121
102
|
# BRCA1 → HGNC:1100 (BRCA1)
|
|
122
103
|
# EGFR → HGNC:3236 (EGFR)
|
|
123
104
|
```
|
|
124
105
|
|
|
125
|
-
Point `resolve_many()` at a
|
|
106
|
+
Point `resolve_many()` at a fullmap database and resolve any iterable of entity strings to CURIEs — no LazyFrame setup or NLP preprocessing required. For full pipeline builds with YAML configuration, use `tablassert build-kg config.yaml`.
|
|
126
107
|
|
|
127
108
|
## Key Features
|
|
128
109
|
|
|
@@ -130,11 +111,17 @@ Point `resolve_many()` at a datassert database and resolve any iterable of entit
|
|
|
130
111
|
- **Entity Resolution** — Maps text to biological entities (genes, diseases, chemicals)
|
|
131
112
|
- **Quality Control** — Optional three-stage validation (exact → fuzzy → BERT embeddings)
|
|
132
113
|
- **KGX Compliance** — NCATS Translator-compatible NDJSON output
|
|
133
|
-
- **Performance** — Lazy evaluation pipelines with Polars and
|
|
114
|
+
- **Performance** — Lazy evaluation pipelines with Polars and an embedded redb-accelerated entity resolution database
|
|
134
115
|
|
|
135
|
-
##
|
|
116
|
+
## Developing
|
|
136
117
|
|
|
137
|
-
|
|
118
|
+
```bash
|
|
119
|
+
uv sync --group dev --extra qc
|
|
120
|
+
uv run maturin develop --manifest-path rust/Cargo.toml
|
|
121
|
+
make check
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
See **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full development loop, quality gates, and pull request guidelines.
|
|
138
125
|
|
|
139
126
|
## License
|
|
140
127
|
|
|
@@ -142,8 +129,9 @@ See **[CONTRIBUTING.md](CONTRIBUTING.md)** for development setup, code style, an
|
|
|
142
129
|
|
|
143
130
|
## Contributors
|
|
144
131
|
|
|
145
|
-
[Skye Lane Goetz](mailto:sgoetz@isbscience.org) — Institute for Systems Biology
|
|
132
|
+
[Skye Lane Goetz](mailto:sgoetz@isbscience.org) — Institute for Systems Biology
|
|
146
133
|
|
|
147
134
|
[Gwênlyn Glusman](mailto:gglusman@isbscience.org) — Institute for Systems Biology
|
|
148
135
|
|
|
149
136
|
Jared C. Roach — Institute for Systems Biology
|
|
137
|
+
|
|
@@ -9,7 +9,7 @@ Extract knowledge assertions from tabular data into NCATS Translator-compliant K
|
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
pip install tablassert
|
|
12
|
-
tablassert build config.yaml
|
|
12
|
+
tablassert build-kg config.yaml
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
**[Full Documentation](https://skyeav.github.io/Tablassert/)** — installation guides, tutorials, configuration reference, and API docs.
|
|
@@ -20,30 +20,16 @@ tablassert build config.yaml
|
|
|
20
20
|
pip install tablassert
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
The base install includes everything needed to build knowledge graphs from CSV/TSV sources. Optional extras are available for CPU compatibility and quality control:
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
pip install "tablassert[rt]"
|
|
27
|
-
pip install "tablassert[qc]"
|
|
28
|
-
pip install "tablassert[qc-cuda]" # Enable QC with CUDA ONNX Runtime on GPU 0
|
|
26
|
+
pip install "tablassert[rt]" # Polars build for CPUs without the required instructions
|
|
27
|
+
pip install "tablassert[qc]" # Enable QC (torch + sentence-transformers BioBERT, scikit-learn)
|
|
29
28
|
```
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
Excel (`.xlsx`) inputs are read through Polars' `calamine` engine and additionally require `python-calamine` (`pip install python-calamine`).
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
<summary><strong>Docker</strong></summary>
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
docker pull ghcr.io/skyeav/tablassert:latest
|
|
38
|
-
|
|
39
|
-
docker run --rm \
|
|
40
|
-
-v /path/to/config:/data \
|
|
41
|
-
-v /path/to/datassert:/datassert \
|
|
42
|
-
ghcr.io/skyeav/tablassert:latest \
|
|
43
|
-
build /data/graph-config.yaml
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
</details>
|
|
32
|
+
QC is opt-in: pass `--qc` to `build-kg` to run the three-stage audit (exact → fuzzy → BioBERT). See the [CLI Reference](https://skyeav.github.io/Tablassert/cli/) for the full flag reference.
|
|
47
33
|
|
|
48
34
|
## Quick Demo
|
|
49
35
|
|
|
@@ -51,22 +37,22 @@ docker run --rm \
|
|
|
51
37
|
from pathlib import Path
|
|
52
38
|
from tablassert.lib import resolve_many
|
|
53
39
|
|
|
54
|
-
# Resolve gene names to CURIEs against a
|
|
40
|
+
# Resolve gene names to CURIEs against a fullmap database
|
|
55
41
|
results = resolve_many(
|
|
56
42
|
col="gene",
|
|
57
43
|
entities=["TP53", "BRCA1", "EGFR"],
|
|
58
|
-
|
|
44
|
+
fullmap=Path("/path/to/fullmap"),
|
|
59
45
|
taxon="9606",
|
|
60
46
|
)
|
|
61
47
|
|
|
62
48
|
for row in results:
|
|
63
|
-
print(f"{row['
|
|
49
|
+
print(f"{row['original_gene']} → {row['gene']} ({row['gene_name']})")
|
|
64
50
|
# TP53 → HGNC:11998 (TP53)
|
|
65
51
|
# BRCA1 → HGNC:1100 (BRCA1)
|
|
66
52
|
# EGFR → HGNC:3236 (EGFR)
|
|
67
53
|
```
|
|
68
54
|
|
|
69
|
-
Point `resolve_many()` at a
|
|
55
|
+
Point `resolve_many()` at a fullmap database and resolve any iterable of entity strings to CURIEs — no LazyFrame setup or NLP preprocessing required. For full pipeline builds with YAML configuration, use `tablassert build-kg config.yaml`.
|
|
70
56
|
|
|
71
57
|
## Key Features
|
|
72
58
|
|
|
@@ -74,11 +60,17 @@ Point `resolve_many()` at a datassert database and resolve any iterable of entit
|
|
|
74
60
|
- **Entity Resolution** — Maps text to biological entities (genes, diseases, chemicals)
|
|
75
61
|
- **Quality Control** — Optional three-stage validation (exact → fuzzy → BERT embeddings)
|
|
76
62
|
- **KGX Compliance** — NCATS Translator-compatible NDJSON output
|
|
77
|
-
- **Performance** — Lazy evaluation pipelines with Polars and
|
|
63
|
+
- **Performance** — Lazy evaluation pipelines with Polars and an embedded redb-accelerated entity resolution database
|
|
64
|
+
|
|
65
|
+
## Developing
|
|
78
66
|
|
|
79
|
-
|
|
67
|
+
```bash
|
|
68
|
+
uv sync --group dev --extra qc
|
|
69
|
+
uv run maturin develop --manifest-path rust/Cargo.toml
|
|
70
|
+
make check
|
|
71
|
+
```
|
|
80
72
|
|
|
81
|
-
See **[CONTRIBUTING.md](CONTRIBUTING.md)** for development
|
|
73
|
+
See **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full development loop, quality gates, and pull request guidelines.
|
|
82
74
|
|
|
83
75
|
## License
|
|
84
76
|
|
|
@@ -86,7 +78,7 @@ See **[CONTRIBUTING.md](CONTRIBUTING.md)** for development setup, code style, an
|
|
|
86
78
|
|
|
87
79
|
## Contributors
|
|
88
80
|
|
|
89
|
-
[Skye Lane Goetz](mailto:sgoetz@isbscience.org) — Institute for Systems Biology
|
|
81
|
+
[Skye Lane Goetz](mailto:sgoetz@isbscience.org) — Institute for Systems Biology
|
|
90
82
|
|
|
91
83
|
[Gwênlyn Glusman](mailto:gglusman@isbscience.org) — Institute for Systems Biology
|
|
92
84
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tablassert"
|
|
3
|
-
version = "
|
|
3
|
+
version = "8.0.0"
|
|
4
4
|
description = "Extract knowledge assertions from tabular data into NCATS Translator-compliant KGX NDJSON — declaratively, with entity resolution and quality control built in."
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Skye Lane Goetz", email = "sgoetz@isbscience.org" }
|
|
@@ -20,6 +20,7 @@ keywords = [
|
|
|
20
20
|
]
|
|
21
21
|
readme = "README.md"
|
|
22
22
|
license = "Apache-2.0"
|
|
23
|
+
license-files = ["LICENSE"]
|
|
23
24
|
classifiers = [
|
|
24
25
|
"License :: OSI Approved :: Apache Software License",
|
|
25
26
|
"Development Status :: 5 - Production/Stable",
|
|
@@ -28,38 +29,30 @@ classifiers = [
|
|
|
28
29
|
"Intended Audience :: Developers",
|
|
29
30
|
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
30
31
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
32
|
+
"Topic :: Scientific/Engineering :: Information Analysis",
|
|
33
|
+
"Topic :: Database",
|
|
31
34
|
"Programming Language :: Python :: 3.11",
|
|
32
35
|
"Programming Language :: Python :: 3.12",
|
|
33
36
|
"Programming Language :: Python :: 3.13",
|
|
34
37
|
"Programming Language :: Python :: 3.14",
|
|
38
|
+
"Programming Language :: Python :: Implementation :: CPython",
|
|
39
|
+
"Programming Language :: Rust",
|
|
35
40
|
"Framework :: Pydantic",
|
|
36
|
-
"Operating System ::
|
|
41
|
+
"Operating System :: POSIX :: Linux",
|
|
42
|
+
"Operating System :: MacOS :: MacOS X",
|
|
37
43
|
"Environment :: Console",
|
|
38
44
|
]
|
|
39
45
|
requires-python = ">=3.11"
|
|
40
46
|
dependencies = [
|
|
41
|
-
"
|
|
42
|
-
"fastexcel>=0.19.0",
|
|
43
|
-
"httpx>=0.28.1",
|
|
44
|
-
"lazy-loader>=0.5",
|
|
47
|
+
"biolink-model>=4.4.3",
|
|
45
48
|
"loguru>=0.7.3",
|
|
46
|
-
"optimum-onnx>=0.1.0",
|
|
47
|
-
"orjson>=3.11.7",
|
|
48
|
-
"playwright>=1.58.0,<1.59",
|
|
49
49
|
"polars>=1.39.0",
|
|
50
|
-
"
|
|
51
|
-
"pyarrow>=23.0.1",
|
|
50
|
+
"rapidfuzz>=3.14.3",
|
|
52
51
|
"pydantic>=2.12.5",
|
|
53
|
-
"pyexcel>=0.7.4",
|
|
54
52
|
"pyyaml>=6.0.3",
|
|
55
|
-
"rapidfuzz>=3.14.3",
|
|
56
|
-
"scikit-learn>=1.8.0",
|
|
57
|
-
"sentence-transformers>=5.3.0",
|
|
58
|
-
"sqlite-utils>=3.39",
|
|
59
53
|
"cyclopts>=1.0.0",
|
|
60
54
|
"rich>=13.0.0",
|
|
61
|
-
"
|
|
62
|
-
"diskcache>=5.6.3",
|
|
55
|
+
"fastexcel>=0.20.2",
|
|
63
56
|
]
|
|
64
57
|
|
|
65
58
|
[project.urls]
|
|
@@ -68,11 +61,15 @@ Source = "https://github.com/SkyeAv/Tablassert"
|
|
|
68
61
|
Documentation = "https://skyeav.github.io/Tablassert/"
|
|
69
62
|
|
|
70
63
|
[build-system]
|
|
71
|
-
requires = ["
|
|
72
|
-
build-backend = "
|
|
64
|
+
requires = ["maturin>=1.10,<2.0"]
|
|
65
|
+
build-backend = "maturin"
|
|
73
66
|
|
|
74
|
-
[tool.
|
|
75
|
-
|
|
67
|
+
[tool.maturin]
|
|
68
|
+
python-source = "src"
|
|
69
|
+
module-name = "tablassert.rs"
|
|
70
|
+
bindings = "pyo3"
|
|
71
|
+
manifest-path = "rust/Cargo.toml"
|
|
72
|
+
features = ["extension-module"]
|
|
76
73
|
|
|
77
74
|
[project.scripts]
|
|
78
75
|
tablassert = "tablassert.cli:APP"
|
|
@@ -82,15 +79,20 @@ rt = [
|
|
|
82
79
|
"polars[rtcompat]>=1.40.1",
|
|
83
80
|
]
|
|
84
81
|
qc = [
|
|
85
|
-
"
|
|
82
|
+
"scikit-learn>=1.8.0",
|
|
83
|
+
"sentence-transformers>=5.3.0",
|
|
86
84
|
]
|
|
87
|
-
|
|
88
|
-
"
|
|
85
|
+
agent = [
|
|
86
|
+
"smolagents>=1.26.0",
|
|
87
|
+
"dspy>=3.2.1",
|
|
88
|
+
"litellm>=1.93.0",
|
|
89
89
|
]
|
|
90
90
|
|
|
91
91
|
[dependency-groups]
|
|
92
92
|
dev = [
|
|
93
93
|
"mkdocs>=1.6.1",
|
|
94
|
+
"mkdocs-material>=9.6.0",
|
|
95
|
+
"maturin>=1.10,<2.0",
|
|
94
96
|
"pre-commit>=4.5.1",
|
|
95
97
|
"pyright>=1.1.411",
|
|
96
98
|
"pytest>=9.0.2",
|
|
@@ -100,14 +102,55 @@ dev = [
|
|
|
100
102
|
|
|
101
103
|
[tool.pytest.ini_options]
|
|
102
104
|
testpaths = ["tests"]
|
|
103
|
-
|
|
105
|
+
addopts = "--cov=tablassert --cov-report=term-missing"
|
|
106
|
+
markers = ["network: requires internet"]
|
|
107
|
+
|
|
108
|
+
[tool.coverage.run]
|
|
109
|
+
source = ["src/tablassert"]
|
|
104
110
|
|
|
105
111
|
[tool.ruff]
|
|
106
|
-
line-length =
|
|
112
|
+
line-length = 150
|
|
107
113
|
indent-width = 4
|
|
108
114
|
target-version = "py311"
|
|
109
115
|
|
|
116
|
+
[tool.ruff.lint]
|
|
117
|
+
select = [
|
|
118
|
+
"E4", # pycodestyle E4xx
|
|
119
|
+
"E7", # pycodestyle E7xx
|
|
120
|
+
"E9", # pycodestyle E9xx
|
|
121
|
+
"F", # pyflakes
|
|
122
|
+
"RUF100", # stale noqa
|
|
123
|
+
"B", # flake8-bugbear
|
|
124
|
+
"SIM", # flake8-simplify
|
|
125
|
+
"C4", # flake8-comprehensions
|
|
126
|
+
"PT", # flake8-pytest-style
|
|
127
|
+
"RUF", # ruff-specific
|
|
128
|
+
"TID", # flake8-tidy-imports
|
|
129
|
+
"I", # isort
|
|
130
|
+
"PIE", # flake8-pie
|
|
131
|
+
"RET", # flake8-return
|
|
132
|
+
"UP", # pyupgrade
|
|
133
|
+
]
|
|
134
|
+
ignore = [
|
|
135
|
+
"UP042", # keep enum/str-conversion behavior as-is
|
|
136
|
+
]
|
|
137
|
+
|
|
138
|
+
[tool.ruff.lint.isort]
|
|
139
|
+
# Align isort with `format.skip-magic-trailing-comma = true` (avoids the ruff incompatibility warning).
|
|
140
|
+
split-on-trailing-comma = false
|
|
141
|
+
|
|
110
142
|
[tool.ruff.format]
|
|
111
143
|
quote-style = "double"
|
|
112
144
|
indent-style = "space"
|
|
113
145
|
skip-magic-trailing-comma = true
|
|
146
|
+
|
|
147
|
+
[tool.pyright]
|
|
148
|
+
include = ["src", "tests"]
|
|
149
|
+
pythonVersion = "3.11"
|
|
150
|
+
strictListInference = true
|
|
151
|
+
strictDictionaryInference = true
|
|
152
|
+
strictSetInference = true
|
|
153
|
+
reportMissingTypeStubs = false
|
|
154
|
+
reportUnusedImport = true
|
|
155
|
+
reportUnusedVariable = true
|
|
156
|
+
reportDuplicateImport = true
|