tablassert 18.0.0__tar.gz → 19.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-18.0.0 → tablassert-19.0.0}/PKG-INFO +11 -10
- {tablassert-18.0.0 → tablassert-19.0.0}/README.md +7 -7
- {tablassert-18.0.0 → tablassert-19.0.0}/pyproject.toml +7 -4
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/Cargo.lock +11 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/Cargo.toml +5 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/src/fullmap.rs +392 -45
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/src/lib.rs +15 -2
- tablassert-19.0.0/rust/src/nlp.rs +331 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/tests/build_golden.rs +136 -19
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/tests/common/mod.rs +39 -3
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/tests/extract_prebuilt.rs +149 -9
- tablassert-19.0.0/rust/tests/fixtures/nlp_golden.tsv +10 -0
- tablassert-19.0.0/rust/tests/nlp_golden.rs +32 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/agent.py +536 -36
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/biolink.py +72 -6
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/cli.py +660 -72
- tablassert-19.0.0/src/tablassert/cli_entry.py +13 -0
- tablassert-19.0.0/src/tablassert/data/experimental_taxa.yaml +512 -0
- tablassert-19.0.0/src/tablassert/distill.py +343 -0
- tablassert-19.0.0/src/tablassert/distill_reward.py +1417 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/errors.py +163 -1
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/extras.py +11 -8
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/fullmap.py +42 -10
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/graph_target.py +1 -2
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/lib.py +81 -2
- tablassert-19.0.0/src/tablassert/log.py +70 -0
- tablassert-19.0.0/src/tablassert/net.py +693 -0
- tablassert-19.0.0/src/tablassert/nlp.py +97 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/progress.py +0 -21
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/rs.pyi +11 -2
- tablassert-19.0.0/src/tablassert/runcache.py +802 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/study.py +38 -3
- tablassert-18.0.0/src/tablassert/distill.py +0 -108
- tablassert-18.0.0/src/tablassert/log.py +0 -126
- tablassert-18.0.0/src/tablassert/nlp.py +0 -50
- {tablassert-18.0.0 → tablassert-19.0.0}/LICENSE +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/examples/count_tables.rs +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/src/json.rs +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/src/ndjson.rs +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/rust/src/uuid.rs +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/__init__.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/_lazy.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/coerce.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/enums.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/ingests.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/models.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/qc.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/rig.py +0 -0
- {tablassert-18.0.0 → tablassert-19.0.0}/src/tablassert/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tablassert
|
|
3
|
-
Version:
|
|
3
|
+
Version: 19.0.0
|
|
4
4
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
5
5
|
Classifier: Development Status :: 5 - Production/Stable
|
|
6
6
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -27,12 +27,12 @@ Requires-Dist: polars>=1.39.0
|
|
|
27
27
|
Requires-Dist: rapidfuzz>=3.14.3
|
|
28
28
|
Requires-Dist: pydantic>=2.12.5
|
|
29
29
|
Requires-Dist: pyyaml>=6.0.3
|
|
30
|
-
Requires-Dist: cyclopts>=1.0.0
|
|
31
|
-
Requires-Dist: rich>=13.0.0
|
|
32
30
|
Requires-Dist: fastexcel>=0.20.2
|
|
33
31
|
Requires-Dist: smolagents>=1.26.0 ; extra == 'agent'
|
|
34
32
|
Requires-Dist: litellm>=1.93.0 ; extra == 'agent'
|
|
35
33
|
Requires-Dist: aria2==0.0.1b0 ; extra == 'aria2'
|
|
34
|
+
Requires-Dist: cyclopts>=1.0.0 ; extra == 'cli'
|
|
35
|
+
Requires-Dist: rich>=13.0.0 ; extra == 'cli'
|
|
36
36
|
Requires-Dist: datasets>=3.0.0 ; extra == 'distill'
|
|
37
37
|
Requires-Dist: loguru>=0.7.3 ; extra == 'log'
|
|
38
38
|
Requires-Dist: dspy>=3.2.1 ; extra == 'optimize'
|
|
@@ -41,6 +41,7 @@ Requires-Dist: sentence-transformers>=5.3.0 ; extra == 'qc'
|
|
|
41
41
|
Requires-Dist: polars[rtcompat]>=1.40.1 ; extra == 'rt'
|
|
42
42
|
Provides-Extra: agent
|
|
43
43
|
Provides-Extra: aria2
|
|
44
|
+
Provides-Extra: cli
|
|
44
45
|
Provides-Extra: distill
|
|
45
46
|
Provides-Extra: log
|
|
46
47
|
Provides-Extra: optimize
|
|
@@ -60,7 +61,6 @@ Project-URL: Source, https://github.com/SkyeAv/Tablassert
|
|
|
60
61
|
# Tablassert
|
|
61
62
|
|
|
62
63
|
[](https://pypi.org/project/tablassert/)
|
|
63
|
-
[](https://pypi.org/project/tablassert/)
|
|
64
64
|
[](https://pypi.org/project/tablassert/)
|
|
65
65
|
[](https://github.com/SkyeAv/Tablassert/actions/workflows/ci.yml)
|
|
66
66
|
[](https://github.com/SkyeAv/Tablassert/blob/main/LICENSE)
|
|
@@ -170,23 +170,24 @@ See the [Tutorial](https://skyeav.github.io/Tablassert/tutorial/) for the full w
|
|
|
170
170
|
pip install tablassert
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
Or with uv: `uv tool install tablassert`. The base install
|
|
174
|
-
|
|
173
|
+
Or with uv: `uv tool install "tablassert[cli]"`. The base install provides the Python API;
|
|
174
|
+
install `[cli]` to use the `tablassert` command and optional extras for additional runtime and pipeline capabilities:
|
|
175
175
|
|
|
176
176
|
| Extra | Adds | Install |
|
|
177
177
|
| ----- | ---- | ------- |
|
|
178
|
+
| `cli` | `tablassert` command and rich terminal progress | `pip install "tablassert[cli]"` |
|
|
178
179
|
| `rt` | CPU-compatible Polars runtime | `pip install "tablassert[rt]"` |
|
|
179
|
-
| `aria2` | bundled aria2c downloader
|
|
180
|
+
| `aria2` | bundled aria2c downloader, used automatically by `build-fullmap` when installed (Linux/Windows wheels only) | `pip install "tablassert[aria2]"` |
|
|
180
181
|
| `qc` | four-stage QC audit (exact → fuzzy → abbreviation → SapBERT embeddings) | `pip install "tablassert[qc]"` |
|
|
181
182
|
| `agent` | autonomous agent (smolagents, litellm, article/table context) | `pip install "tablassert[agent]"` |
|
|
182
183
|
| `optimize` | GEPA prompt optimization for `agent --optimize` (dspy) | `pip install "tablassert[optimize]"` |
|
|
183
184
|
| `distill` | distillation dataset export (`tablassert distill-export`, HF `datasets`) | `pip install "tablassert[distill]"` |
|
|
184
185
|
| `log` | loguru-backed file/progress logging (rotation, enqueue) | `pip install "tablassert[log]"` |
|
|
185
186
|
|
|
186
|
-
QC is opt-in at build time (`build-kg --qc`). Reaching a feature whose extra is not installed never
|
|
187
|
+
The `tablassert` command requires `[cli]`; without it, the console launcher reports the exact install command. QC is opt-in at build time (`build-kg --qc`). Reaching a feature whose extra is not installed never
|
|
187
188
|
produces a bare `ModuleNotFoundError`: the failure names the missing package and the exact install
|
|
188
189
|
command, and for `build-kg --qc` and `tablassert agent` it arrives before the run starts rather than
|
|
189
|
-
partway through. Logging is the exception: without the `log` extra
|
|
190
|
+
partway through. Logging is the exception: without the `log` extra Tablassert produces no logs
|
|
190
191
|
instead of failing. See the
|
|
191
192
|
[Installation guide](https://skyeav.github.io/Tablassert/installation/) for the full matrix and the
|
|
192
193
|
[CLI Reference](https://skyeav.github.io/Tablassert/cli/) for every flag.
|
|
@@ -226,7 +227,7 @@ no LazyFrame setup or NLP preprocessing required. See the
|
|
|
226
227
|
## Developing
|
|
227
228
|
|
|
228
229
|
```bash
|
|
229
|
-
uv sync --group dev --extra qc --extra log
|
|
230
|
+
uv sync --group dev --extra cli --extra qc --extra log
|
|
230
231
|
uv run maturin develop --manifest-path rust/Cargo.toml
|
|
231
232
|
make check
|
|
232
233
|
```
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# Tablassert
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/tablassert/)
|
|
4
|
-
[](https://pypi.org/project/tablassert/)
|
|
5
4
|
[](https://pypi.org/project/tablassert/)
|
|
6
5
|
[](https://github.com/SkyeAv/Tablassert/actions/workflows/ci.yml)
|
|
7
6
|
[](https://github.com/SkyeAv/Tablassert/blob/main/LICENSE)
|
|
@@ -111,23 +110,24 @@ See the [Tutorial](https://skyeav.github.io/Tablassert/tutorial/) for the full w
|
|
|
111
110
|
pip install tablassert
|
|
112
111
|
```
|
|
113
112
|
|
|
114
|
-
Or with uv: `uv tool install tablassert`. The base install
|
|
115
|
-
|
|
113
|
+
Or with uv: `uv tool install "tablassert[cli]"`. The base install provides the Python API;
|
|
114
|
+
install `[cli]` to use the `tablassert` command and optional extras for additional runtime and pipeline capabilities:
|
|
116
115
|
|
|
117
116
|
| Extra | Adds | Install |
|
|
118
117
|
| ----- | ---- | ------- |
|
|
118
|
+
| `cli` | `tablassert` command and rich terminal progress | `pip install "tablassert[cli]"` |
|
|
119
119
|
| `rt` | CPU-compatible Polars runtime | `pip install "tablassert[rt]"` |
|
|
120
|
-
| `aria2` | bundled aria2c downloader
|
|
120
|
+
| `aria2` | bundled aria2c downloader, used automatically by `build-fullmap` when installed (Linux/Windows wheels only) | `pip install "tablassert[aria2]"` |
|
|
121
121
|
| `qc` | four-stage QC audit (exact → fuzzy → abbreviation → SapBERT embeddings) | `pip install "tablassert[qc]"` |
|
|
122
122
|
| `agent` | autonomous agent (smolagents, litellm, article/table context) | `pip install "tablassert[agent]"` |
|
|
123
123
|
| `optimize` | GEPA prompt optimization for `agent --optimize` (dspy) | `pip install "tablassert[optimize]"` |
|
|
124
124
|
| `distill` | distillation dataset export (`tablassert distill-export`, HF `datasets`) | `pip install "tablassert[distill]"` |
|
|
125
125
|
| `log` | loguru-backed file/progress logging (rotation, enqueue) | `pip install "tablassert[log]"` |
|
|
126
126
|
|
|
127
|
-
QC is opt-in at build time (`build-kg --qc`). Reaching a feature whose extra is not installed never
|
|
127
|
+
The `tablassert` command requires `[cli]`; without it, the console launcher reports the exact install command. QC is opt-in at build time (`build-kg --qc`). Reaching a feature whose extra is not installed never
|
|
128
128
|
produces a bare `ModuleNotFoundError`: the failure names the missing package and the exact install
|
|
129
129
|
command, and for `build-kg --qc` and `tablassert agent` it arrives before the run starts rather than
|
|
130
|
-
partway through. Logging is the exception: without the `log` extra
|
|
130
|
+
partway through. Logging is the exception: without the `log` extra Tablassert produces no logs
|
|
131
131
|
instead of failing. See the
|
|
132
132
|
[Installation guide](https://skyeav.github.io/Tablassert/installation/) for the full matrix and the
|
|
133
133
|
[CLI Reference](https://skyeav.github.io/Tablassert/cli/) for every flag.
|
|
@@ -167,7 +167,7 @@ no LazyFrame setup or NLP preprocessing required. See the
|
|
|
167
167
|
## Developing
|
|
168
168
|
|
|
169
169
|
```bash
|
|
170
|
-
uv sync --group dev --extra qc --extra log
|
|
170
|
+
uv sync --group dev --extra cli --extra qc --extra log
|
|
171
171
|
uv run maturin develop --manifest-path rust/Cargo.toml
|
|
172
172
|
make check
|
|
173
173
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tablassert"
|
|
3
|
-
version = "
|
|
3
|
+
version = "19.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" }
|
|
@@ -52,8 +52,6 @@ dependencies = [
|
|
|
52
52
|
"rapidfuzz>=3.14.3",
|
|
53
53
|
"pydantic>=2.12.5",
|
|
54
54
|
"pyyaml>=6.0.3",
|
|
55
|
-
"cyclopts>=1.0.0",
|
|
56
|
-
"rich>=13.0.0",
|
|
57
55
|
"fastexcel>=0.20.2",
|
|
58
56
|
]
|
|
59
57
|
|
|
@@ -72,11 +70,16 @@ module-name = "tablassert.rs"
|
|
|
72
70
|
bindings = "pyo3"
|
|
73
71
|
manifest-path = "rust/Cargo.toml"
|
|
74
72
|
features = ["extension-module"]
|
|
73
|
+
include = ["src/tablassert/data/experimental_taxa.yaml"]
|
|
75
74
|
|
|
76
75
|
[project.scripts]
|
|
77
|
-
tablassert = "tablassert.
|
|
76
|
+
tablassert = "tablassert.cli_entry:main"
|
|
78
77
|
|
|
79
78
|
[project.optional-dependencies]
|
|
79
|
+
cli = [
|
|
80
|
+
"cyclopts>=1.0.0",
|
|
81
|
+
"rich>=13.0.0",
|
|
82
|
+
]
|
|
80
83
|
rt = [
|
|
81
84
|
"polars[rtcompat]>=1.40.1",
|
|
82
85
|
]
|
|
@@ -456,6 +456,16 @@ dependencies = [
|
|
|
456
456
|
"libc",
|
|
457
457
|
]
|
|
458
458
|
|
|
459
|
+
[[package]]
|
|
460
|
+
name = "rust-stemmers"
|
|
461
|
+
version = "1.2.0"
|
|
462
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
463
|
+
checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"
|
|
464
|
+
dependencies = [
|
|
465
|
+
"serde",
|
|
466
|
+
"serde_derive",
|
|
467
|
+
]
|
|
468
|
+
|
|
459
469
|
[[package]]
|
|
460
470
|
name = "rustc-hash"
|
|
461
471
|
version = "1.1.0"
|
|
@@ -566,6 +576,7 @@ dependencies = [
|
|
|
566
576
|
"rayon",
|
|
567
577
|
"redb",
|
|
568
578
|
"rlimit",
|
|
579
|
+
"rust-stemmers",
|
|
569
580
|
"rustc-hash",
|
|
570
581
|
"serde",
|
|
571
582
|
"serde_json",
|
|
@@ -35,6 +35,11 @@ rayon = "1"
|
|
|
35
35
|
redb = { git = "https://github.com/cberner/redb.git", rev = "a35e7cc86f191d08a444d5973469b34673d586fc", features = ["experimental_cursor"] }
|
|
36
36
|
rlimit = "0.10"
|
|
37
37
|
rustc-hash = "1"
|
|
38
|
+
# English (Porter2) stemmer for `nlp::normalize_l1` term normalization: pure
|
|
39
|
+
# Rust (no dictionaries, no C deps) and fast enough for the per-token hot path;
|
|
40
|
+
# it requires already-lowercased input, which the pipeline guarantees by
|
|
41
|
+
# lowercasing the whole term before splitting/stemming.
|
|
42
|
+
rust-stemmers = "1"
|
|
38
43
|
serde = { version = "1", features = ["derive"] }
|
|
39
44
|
serde_json = { version = "1", features = ["preserve_order"] }
|
|
40
45
|
tar = "0.4"
|