git: c4c8c99c3134 - main - misc/py-csvw: New port: Library to work with CSVW described tabular data

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 25 Aug 2025 06:18:23 UTC
The branch main has been updated by yuri:

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

commit c4c8c99c31341c55dc6ca96e5da829ad48d18e4a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-08-25 04:32:20 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-08-25 06:18:14 +0000

    misc/py-csvw: New port: Library to work with CSVW described tabular data
---
 misc/Makefile          |  1 +
 misc/py-csvw/Makefile  | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 misc/py-csvw/distinfo  |  5 +++++
 misc/py-csvw/pkg-descr |  4 ++++
 4 files changed, 57 insertions(+)

diff --git a/misc/Makefile b/misc/Makefile
index ab4a30b49bb1..34d7fca833e1 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -432,6 +432,7 @@
     SUBDIR += py-colorzero
     SUBDIR += py-cppman
     SUBDIR += py-crudini
+    SUBDIR += py-csvw
     SUBDIR += py-datasets
     SUBDIR += py-detecta
     SUBDIR += py-diffusers
diff --git a/misc/py-csvw/Makefile b/misc/py-csvw/Makefile
new file mode 100644
index 000000000000..3e4dadce79c3
--- /dev/null
+++ b/misc/py-csvw/Makefile
@@ -0,0 +1,47 @@
+PORTNAME=	csvw
+DISTVERSIONPREFIX=	v
+DISTVERSION=	3.5.1
+CATEGORIES=	misc python
+#MASTER_SITES=	PYPI # tests are broken there
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Library to work with CSVW described tabular data
+WWW=		https://github.com/cldf/csvw
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}attrs>=18.1:devel/py-attrs@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Babel>0:devel/py-babel@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}colorama>0:devel/py-colorama@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}isodate>0:devel/py-isodate@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}language-tags>0:textproc/py-language-tags@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}python-dateutil>0:devel/py-python-dateutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rdflib>0:textproc/py-rdflib@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rfc3986>=2:www/py-rfc3986@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}uritemplate>=3.0.0:net/py-uritemplate@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}frictionless>0:devel/py-frictionless@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-mock>0:devel/py-pytest-mock@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests-mock>0:www/py-requests-mock@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist pytest
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	cldf
+GH_TUPLE=	w3c:csvw:0f3a1fd:csvw/tests/fixtures/csvw
+
+NO_ARCH=	yes
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC=	${WRKSRC}/tests
+
+# tests as of 3.5.1: 782 passed, 16 xfailed in 15.37s
+
+.include <bsd.port.mk>
diff --git a/misc/py-csvw/distinfo b/misc/py-csvw/distinfo
new file mode 100644
index 000000000000..f24d5eee61f9
--- /dev/null
+++ b/misc/py-csvw/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1756093938
+SHA256 (cldf-csvw-v3.5.1_GH0.tar.gz) = a9c214eca93c83735744918975306edf45cff88cba8aca773c0932fe36dbc3d3
+SIZE (cldf-csvw-v3.5.1_GH0.tar.gz) = 78243
+SHA256 (w3c-csvw-0f3a1fd_GH0.tar.gz) = 2045b235aab4601a1759fb331d22a6fcc325b2f448b118dca783c6cf9c065582
+SIZE (w3c-csvw-0f3a1fd_GH0.tar.gz) = 120140396
diff --git a/misc/py-csvw/pkg-descr b/misc/py-csvw/pkg-descr
new file mode 100644
index 000000000000..adf0bc68d9a7
--- /dev/null
+++ b/misc/py-csvw/pkg-descr
@@ -0,0 +1,4 @@
+The csvw package provides:
+* Python API to read and write relational, tabular data according to the CSV
+  on the Web specification and
+* commandline tools for reading and validating CSVW data