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.
Files changed (64) hide show
  1. {tablassert-7.4.5 → tablassert-7.4.7}/CHANGELOG.md +10 -0
  2. {tablassert-7.4.5 → tablassert-7.4.7}/PKG-INFO +1 -1
  3. tablassert-7.4.7/docs/changelog.md +13 -0
  4. {tablassert-7.4.5 → tablassert-7.4.7}/pyproject.toml +1 -1
  5. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/models.py +12 -1
  6. {tablassert-7.4.5 → tablassert-7.4.7}/uv.lock +1 -1
  7. tablassert-7.4.5/docs/changelog.md +0 -15
  8. {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/autotag.yml +0 -0
  9. {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/docker.yml +0 -0
  10. {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/docs.yml +0 -0
  11. {tablassert-7.4.5 → tablassert-7.4.7}/.github/workflows/pipy.yml +0 -0
  12. {tablassert-7.4.5 → tablassert-7.4.7}/.gitignore +0 -0
  13. {tablassert-7.4.5 → tablassert-7.4.7}/.pre-commit-config.yaml +0 -0
  14. {tablassert-7.4.5 → tablassert-7.4.7}/AGENTS.md +0 -0
  15. {tablassert-7.4.5 → tablassert-7.4.7}/CITATION.cff +0 -0
  16. {tablassert-7.4.5 → tablassert-7.4.7}/CONTRIBUTING.md +0 -0
  17. {tablassert-7.4.5 → tablassert-7.4.7}/Dockerfile +0 -0
  18. {tablassert-7.4.5 → tablassert-7.4.7}/LICENSE +0 -0
  19. {tablassert-7.4.5 → tablassert-7.4.7}/README.md +0 -0
  20. {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/fullmap.md +0 -0
  21. {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/lib.md +0 -0
  22. {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/qc.md +0 -0
  23. {tablassert-7.4.5 → tablassert-7.4.7}/docs/api/utils.md +0 -0
  24. {tablassert-7.4.5 → tablassert-7.4.7}/docs/cli.md +0 -0
  25. {tablassert-7.4.5 → tablassert-7.4.7}/docs/configuration/advanced-example.md +0 -0
  26. {tablassert-7.4.5 → tablassert-7.4.7}/docs/configuration/graph.md +0 -0
  27. {tablassert-7.4.5 → tablassert-7.4.7}/docs/configuration/table.md +0 -0
  28. {tablassert-7.4.5 → tablassert-7.4.7}/docs/datassert.md +0 -0
  29. {tablassert-7.4.5 → tablassert-7.4.7}/docs/docker.md +0 -0
  30. {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples/tutorial-data.csv +0 -0
  31. {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples/tutorial-graph.yaml +0 -0
  32. {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples/tutorial-table.yaml +0 -0
  33. {tablassert-7.4.5 → tablassert-7.4.7}/docs/examples.md +0 -0
  34. {tablassert-7.4.5 → tablassert-7.4.7}/docs/index.md +0 -0
  35. {tablassert-7.4.5 → tablassert-7.4.7}/docs/installation.md +0 -0
  36. {tablassert-7.4.5 → tablassert-7.4.7}/docs/tutorial.md +0 -0
  37. {tablassert-7.4.5 → tablassert-7.4.7}/llms.txt +0 -0
  38. {tablassert-7.4.5 → tablassert-7.4.7}/mkdocs.yml +0 -0
  39. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/__init__.py +0 -0
  40. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/cli.py +0 -0
  41. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/downloader.py +0 -0
  42. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/enums.py +0 -0
  43. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/fullmap.py +0 -0
  44. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/ingests.py +0 -0
  45. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/lib.py +0 -0
  46. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/log.py +0 -0
  47. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/nlp.py +0 -0
  48. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/progress.py +0 -0
  49. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/qc.py +0 -0
  50. {tablassert-7.4.5 → tablassert-7.4.7}/src/tablassert/utils.py +0 -0
  51. {tablassert-7.4.5 → tablassert-7.4.7}/tests/__init__.py +0 -0
  52. {tablassert-7.4.5 → tablassert-7.4.7}/tests/conftest.py +0 -0
  53. {tablassert-7.4.5 → tablassert-7.4.7}/tests/fixtures/invalid_section_missing_source.yaml +0 -0
  54. {tablassert-7.4.5 → tablassert-7.4.7}/tests/fixtures/minimal_section.yaml +0 -0
  55. {tablassert-7.4.5 → tablassert-7.4.7}/tests/fixtures/minimal_section_with_sections.yaml +0 -0
  56. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_downloader.py +0 -0
  57. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_enums.py +0 -0
  58. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_fullmap.py +0 -0
  59. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_ingests.py +0 -0
  60. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_lib.py +0 -0
  61. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_models.py +0 -0
  62. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_nlp.py +0 -0
  63. {tablassert-7.4.5 → tablassert-7.4.7}/tests/test_qc.py +0 -0
  64. {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.5
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.5"
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
 
@@ -2360,7 +2360,7 @@ wheels = [
2360
2360
 
2361
2361
  [[package]]
2362
2362
  name = "tablassert"
2363
- version = "7.4.5"
2363
+ version = "7.4.7"
2364
2364
  source = { editable = "." }
2365
2365
  dependencies = [
2366
2366
  { name = "cyclopts" },
@@ -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