git: d6e9f0283d7d - main - textproc/py-docling-core: update 2.101.1 → 2.105.0

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 02 Nov 2026 16:41:43 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d6e9f0283d7dea875ce02ed1ba741fd8957fb276

commit d6e9f0283d7dea875ce02ed1ba741fd8957fb276
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-11-01 18:46:34 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-11-02 16:41:34 +0000

    textproc/py-docling-core: update 2.101.1 → 2.105.0
---
 textproc/py-docling-core/Makefile                  | 11 ++--
 textproc/py-docling-core/distinfo                  |  6 +-
 .../py-docling-core/files/patch-pyproject.toml     |  4 +-
 .../files/patch-tests_doclang__validation.py       | 73 +---------------------
 4 files changed, 13 insertions(+), 81 deletions(-)

diff --git a/textproc/py-docling-core/Makefile b/textproc/py-docling-core/Makefile
index 7b866accd1cc..4c4aefcf21d3 100644
--- a/textproc/py-docling-core/Makefile
+++ b/textproc/py-docling-core/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	docling-core
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.101.1
+DISTVERSION=	2.105.0
 CATEGORIES=	textproc python
 #MASTER_SITES=	PYPI # no tests
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -15,7 +15,7 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}defusedxml>=0.7.1:devel/py-defusedxml@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}doclang>=0.7:textproc/py-doclang@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}doclang>=0.8:textproc/py-doclang@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}jsonref>=1.1.0:devel/py-jsonref@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}jsonschema>=4.16.0:devel/py-jsonschema@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}latex2mathml>=3.77.0:textproc/py-latex2mathml@${PY_FLAVOR} \
@@ -33,10 +33,9 @@ TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gitpython>=0:devel/py-gitpython@${PY_FLAVOR
 
 # optional dependencies are used during normal use of this library
 DCLQ_DEPENDS=	\
-		${PYTHON_PKGNAMEPREFIX}click>=8.0.0:devel/py-click@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}doclang>=0.7:textproc/py-doclang@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}doclang>=0.8:textproc/py-doclang@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}lxml>=6.0.2:devel/py-lxml@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}typer>=0.15.1:devel/py-typer@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}typer>=0.26.0:devel/py-typer@${PY_FLAVOR}
 CHUNKING_DEPENDS=	\
 		${PYTHON_PKGNAMEPREFIX}semchunk>=2.2.0:textproc/py-semchunk@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}transformers>=4.42.0:misc/py-transformers@${PY_FLAVOR} \
@@ -76,6 +75,6 @@ TEST_ARGS=	--disable-plugin-autoload --ignore=packages/dclq \
 
 NO_ARCH=	yes
 
-# tests as of 2.101.1: 553 passed, 30 skipped, 1 xfailed, 54 warnings in 17.09s
+# tests as of 2.105.0: 797 passed, 10 skipped, 1 xfailed, 1 warning in 36.82s
 
 .include <bsd.port.mk>
diff --git a/textproc/py-docling-core/distinfo b/textproc/py-docling-core/distinfo
index 1c5ce318f328..f26594aaac38 100644
--- a/textproc/py-docling-core/distinfo
+++ b/textproc/py-docling-core/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1791629779
-SHA256 (docling-project-docling-core-v2.101.1_GH0.tar.gz) = e14d82791bfd7f51cde950929b96934d1a5e68032275c304ef5beb76ca59033a
-SIZE (docling-project-docling-core-v2.101.1_GH0.tar.gz) = 86216156
+TIMESTAMP = 1793412208
+SHA256 (docling-project-docling-core-v2.105.0_GH0.tar.gz) = a9cc6b081d0bb73dc8bcb8644ced61d83582a8a42ef9403d92dea176da8e0e9e
+SIZE (docling-project-docling-core-v2.105.0_GH0.tar.gz) = 86283963
diff --git a/textproc/py-docling-core/files/patch-pyproject.toml b/textproc/py-docling-core/files/patch-pyproject.toml
index 284b11a553a2..22bd03addf15 100644
--- a/textproc/py-docling-core/files/patch-pyproject.toml
+++ b/textproc/py-docling-core/files/patch-pyproject.toml
@@ -1,9 +1,9 @@
 -- Fix license declaration format for PEP 621 compatibility and remove license-files path not present in distfile.
---- pyproject.toml.orig	2026-09-04 15:16:51 UTC
+--- pyproject.toml.orig	2026-10-27 16:21:15 UTC
 +++ pyproject.toml
 @@ -2,8 +2,7 @@ description = "A python library to define and validate
  name = "docling-core"
- version = "2.95.0"  # DO NOT EDIT, updated automatically
+ version = "2.105.0"  # DO NOT EDIT, updated automatically
  description = "A python library to define and validate data types in Docling."
 -license = "MIT"
 -license-files = ["LICENSE"]
diff --git a/textproc/py-docling-core/files/patch-tests_doclang__validation.py b/textproc/py-docling-core/files/patch-tests_doclang__validation.py
index b30ab853d398..6dfa43aaa736 100644
--- a/textproc/py-docling-core/files/patch-tests_doclang__validation.py
+++ b/textproc/py-docling-core/files/patch-tests_doclang__validation.py
@@ -1,49 +1,10 @@
 -- Make DocLang XML validation a no-op/skip when the optional saxonche schematron
 -- backend is not available. This backend is not packaged for FreeBSD yet.
---- tests/doclang_validation.py.orig	2026-10-01 04:16:39 UTC
+--- tests/doclang_validation.py.orig	2026-10-31 02:04:43 UTC
 +++ tests/doclang_validation.py
-@@ -16,15 +16,25 @@ except ImportError:
-     doclang_validate = None  # type: ignore[assignment,misc]
-     ValidationError = Exception  # type: ignore[misc,assignment]
- 
-+try:
-+    import saxonche
-+except ImportError:
-+    saxonche = None  # type: ignore[assignment,misc]
- 
-+try:
-+    from doclang.schematron import SchematronBackendNotFound
-+except ImportError:
-+    SchematronBackendNotFound = None  # type: ignore[assignment,misc]
-+
-+
- def doclang_validator_available() -> bool:
--    """Return True when the reference ``doclang`` package is importable."""
--    return doclang_validate is not None
-+    """Return True when doclang and its schematron backend are available."""
-+    return doclang_validate is not None and saxonche is not None
- 
- 
- doclang_validator = pytest.mark.skipif(
-     not doclang_validator_available(),
--    reason="reference doclang package not installed (uv sync --extra doclang-validation)",
-+    reason="doclang/schematron-saxon backend not installed (uv sync --extra doclang-validation)",
+@@ -76,6 +76,14 @@ xfail_invalid_dclg_xml = pytest.mark.xfail(
  )
  
- xfail_invalid_dclg_xml = pytest.mark.xfail(
-@@ -52,18 +62,31 @@ def assert_valid_dclg_xml(
-         path = tmp.name
-     try:
-         doclang_validate(path, allow_empty_namespace=allow_empty_namespace)
-+    except Exception as exc:
-+        if SchematronBackendNotFound is not None and isinstance(
-+            exc, SchematronBackendNotFound
-+        ):
-+            return
-+        raise
-     finally:
-         os.unlink(path)
- 
  
 +def _skip_if_backend_missing() -> None:
 +    """Skip the current test when the doclang schematron backend is unavailable."""
@@ -53,34 +14,6 @@
 +        pytest.skip("doclang/schematron-saxon backend not installed")
 +
 +
- def validate_dclg_xml(
+ def assert_valid_dclg_xml(
      xml_text: str,
      *,
-     allow_empty_namespace: bool = True,
- ) -> None:
-     """Validate DocLang XML text; raises on failure when validator is available."""
--    if doclang_validate is None:
--        pytest.skip("reference doclang package not installed")
-+    _skip_if_backend_missing()
- 
-     with tempfile.NamedTemporaryFile(
-         mode="w",
-@@ -86,8 +109,7 @@ def validate_dclg_file(
-     allow_empty_namespace: bool = True,
- ) -> None:
-     """Validate a DocLang XML file path."""
--    if doclang_validate is None:
--        pytest.skip("reference doclang package not installed")
-+    _skip_if_backend_missing()
-     doclang_validate(Path(path), allow_empty_namespace=allow_empty_namespace)
- 
- 
-@@ -97,7 +119,6 @@ def assert_invalid_dclg_xml(
-     allow_empty_namespace: bool = True,
- ) -> None:
-     """Assert DocLang XML is rejected by the reference validator (known bad output)."""
--    if doclang_validate is None:
--        pytest.skip("reference doclang package not installed")
-+    _skip_if_backend_missing()
-     with pytest.raises(ValidationError):
-         validate_dclg_xml(xml_text, allow_empty_namespace=allow_empty_namespace)