tablassert 7.4.5__tar.gz → 7.4.7__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.4.5 → tablassert-7.4.7}/CHANGELOG.md +10 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/PKG-INFO +1 -1
- tablassert-7.4.7/docs/changelog.md +13 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/pyproject.toml +1 -1
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/models.py +12 -1
- {tablassert-7.4.5 → tablassert-7.4.7}/uv.lock +1 -1
- tablassert-7.4.5/docs/changelog.md +0 -15
- {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/autotag.yml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/docker.yml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/docs.yml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/pipy.yml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/.gitignore +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/.pre-commit-config.yaml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/AGENTS.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/CITATION.cff +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/CONTRIBUTING.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/Dockerfile +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/LICENSE +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/README.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/fullmap.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/lib.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/qc.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/utils.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/cli.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/configuration/advanced-example.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/configuration/graph.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/configuration/table.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/datassert.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/docker.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples/tutorial-data.csv +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples/tutorial-graph.yaml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples/tutorial-table.yaml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/index.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/installation.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/docs/tutorial.md +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/llms.txt +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/mkdocs.yml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/__init__.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/cli.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/downloader.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/enums.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/fullmap.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/ingests.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/lib.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/log.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/nlp.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/progress.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/qc.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/utils.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/__init__.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/conftest.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/fixtures/invalid_section_missing_source.yaml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/fixtures/minimal_section.yaml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/fixtures/minimal_section_with_sections.yaml +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_downloader.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_enums.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_fullmap.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_ingests.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_lib.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_models.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_nlp.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_qc.py +0 -0
- {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_utils.py +0 -0
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 7.4.7 - 2026-05-11
|
|
6
|
+
|
|
7
|
+
### Changes
|
|
8
|
+
- Added `Provenance.is_valid_pmc_id` model validator in `models.py` that enforces `publication` starts with `PMC` followed by digits when `repo` is `PMC` (`Repositories.PUBMED_CENTRAL`). The constraint was previously documented in 7.3.6 but only now enforced at parse time.
|
|
9
|
+
|
|
10
|
+
## 7.4.6 - 2026-05-11
|
|
11
|
+
|
|
12
|
+
### Changes
|
|
13
|
+
- Relaxed `BaseSource.is_real_url` validator in `models.py` to ignore `403 Forbidden` responses from `httpx.head()`. Some upstreams reject anonymous `HEAD` probes with 403 even though the URL itself is well-formed and reachable, so 403 no longer fails config validation.
|
|
14
|
+
|
|
5
15
|
## 7.4.5 - 2026-05-11
|
|
6
16
|
|
|
7
17
|
### Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tablassert
|
|
3
|
-
Version: 7.4.
|
|
3
|
+
Version: 7.4.7
|
|
4
4
|
Summary: Extract knowledge assertions from tabular data into NCATS Translator-compliant KGX NDJSON — declaratively, with entity resolution and quality control built in.
|
|
5
5
|
Project-URL: Homepage, https://github.com/SkyeAv/Tablassert
|
|
6
6
|
Project-URL: Source, https://github.com/SkyeAv/Tablassert
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
The canonical release history lives in the repository root at [`CHANGELOG.md`](https://github.com/SkyeAv/Tablassert/blob/main/CHANGELOG.md).
|
|
4
|
+
|
|
5
|
+
## Current Release Notes
|
|
6
|
+
|
|
7
|
+
## 7.4.7 - 2026-05-11
|
|
8
|
+
|
|
9
|
+
### Changes
|
|
10
|
+
|
|
11
|
+
- Added an `is_valid_pmc_id` model validator on `Provenance` that enforces `publication` starts with `PMC` followed by digits when `repo` is `PMC`. The constraint was previously documented in 7.3.6 but only now enforced at parse time.
|
|
12
|
+
|
|
13
|
+
For older releases and the full project history, open the root `CHANGELOG.md` in the repository.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tablassert"
|
|
3
|
-
version = "7.4.
|
|
3
|
+
version = "7.4.7"
|
|
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" }
|
|
@@ -91,7 +91,7 @@ class BaseSource(TablaBase):
|
|
|
91
91
|
@URL_CACHE.memoize()
|
|
92
92
|
def check_url(s: str, timeout: float = 15.0) -> None:
|
|
93
93
|
r: Any = httpx.head(s, timeout=timeout, follow_redirects=True)
|
|
94
|
-
if 400 <= r.status_code < 500:
|
|
94
|
+
if 400 <= r.status_code < 500 and r.status_code != 403:
|
|
95
95
|
r.raise_for_status()
|
|
96
96
|
|
|
97
97
|
try:
|
|
@@ -290,6 +290,17 @@ class Provenance(TablaBase):
|
|
|
290
290
|
description="Repository-local publication id appended as repo:publication.",
|
|
291
291
|
examples=["12345678", "PMC1234567"],
|
|
292
292
|
)
|
|
293
|
+
|
|
294
|
+
@model_validator(mode="after")
|
|
295
|
+
def is_valid_pmc_id(self: Self) -> Self:
|
|
296
|
+
if eq(self.repo, Repositories.PUBMED_CENTRAL):
|
|
297
|
+
publication: str = self.publication
|
|
298
|
+
if not re.search(r"^PMC\d+", publication):
|
|
299
|
+
msg: str = f"20 | pubmed central publications must start with PMC, got {publication}"
|
|
300
|
+
raise ValueError(msg)
|
|
301
|
+
|
|
302
|
+
return self
|
|
303
|
+
|
|
293
304
|
contributors: list[Contributor] = Field(..., description="Contributor records embedded in output provenance.")
|
|
294
305
|
|
|
295
306
|
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
The canonical release history lives in the repository root at [`CHANGELOG.md`](https://github.com/SkyeAv/Tablassert/blob/main/CHANGELOG.md).
|
|
4
|
-
|
|
5
|
-
## Current Release Notes
|
|
6
|
-
|
|
7
|
-
## 7.4.5 - 2026-05-11
|
|
8
|
-
|
|
9
|
-
### Changes
|
|
10
|
-
|
|
11
|
-
- Cached `url` field validator results in `BaseSource` to a `diskcache.Cache` stored at `.cachassert/`, so repeated config parses skip redundant `httpx.head()` round-trips against unchanged URLs.
|
|
12
|
-
- Increased the `httpx.head()` timeout in the `url` validator from 5.0s to 15.0s to further tolerate slower upstreams.
|
|
13
|
-
- Added `diskcache` as a runtime dependency.
|
|
14
|
-
|
|
15
|
-
For older releases and the full project history, open the root `CHANGELOG.md` in the repository.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|