git: 580ec823f119 - main - textproc/py-conllu: New port: CoNLL-U format parser for Python

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 16 Nov 2025 04:20:01 UTC
The branch main has been updated by yuri:

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

commit 580ec823f11942e4b2101a141cca0b663eef62fc
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-11-15 19:38:05 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-11-16 04:19:53 +0000

    textproc/py-conllu: New port: CoNLL-U format parser for Python
---
 textproc/Makefile            |  1 +
 textproc/py-conllu/Makefile  | 34 ++++++++++++++++++++++++++++++++++
 textproc/py-conllu/distinfo  |  3 +++
 textproc/py-conllu/pkg-descr | 11 +++++++++++
 4 files changed, 49 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index 936434ffbc55..18350508bdd3 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -1353,6 +1353,7 @@
     SUBDIR += py-cloud_sptheme
     SUBDIR += py-cmarkgfm
     SUBDIR += py-collective.checkdocs
+    SUBDIR += py-conllu
     SUBDIR += py-creole
     SUBDIR += py-cssselect2
     SUBDIR += py-csvkit
diff --git a/textproc/py-conllu/Makefile b/textproc/py-conllu/Makefile
new file mode 100644
index 000000000000..e093e001db96
--- /dev/null
+++ b/textproc/py-conllu/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	conllu
+DISTVERSION=	6.0.0
+CATEGORIES=	textproc python # machine-learning
+#MASTER_SITES=	PYPI # incomplete tests
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	CoNLL-U format parser for Python
+WWW=		https://github.com/EmilStenstrom/conllu/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist pytest
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	EmilStenstrom
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC=	${WRKSRC}/tests
+
+NO_ARCH=	yes
+
+# tests as of 6.0.0 are incomplete
+# Results (0.65s):
+#      138 passed
+#        1 failed
+#          - tests/test_readme.py:30 test_readme
+
+.include <bsd.port.mk>
diff --git a/textproc/py-conllu/distinfo b/textproc/py-conllu/distinfo
new file mode 100644
index 000000000000..67d02f3de4d9
--- /dev/null
+++ b/textproc/py-conllu/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1763235299
+SHA256 (EmilStenstrom-conllu-6.0.0_GH0.tar.gz) = ced6404c17b4d6b217c431fe73bcf700ef01615707338969c428810bf4891a3a
+SIZE (EmilStenstrom-conllu-6.0.0_GH0.tar.gz) = 29621
diff --git a/textproc/py-conllu/pkg-descr b/textproc/py-conllu/pkg-descr
new file mode 100644
index 000000000000..69b4d6a8ef1e
--- /dev/null
+++ b/textproc/py-conllu/pkg-descr
@@ -0,0 +1,11 @@
+CoNLL-U format parser for Python.
+
+The conllu library is a lightweight, dependency-free parser for the
+CoNLL-U format. It provides a simple API to parse CoNLL-U formatted
+strings into Python data structures.
+
+CoNLL is a family of plain text file formats to annotate natural language.
+
+CoNLL-U is a plain text file format used by the Universal Dependencies project
+to annotate natural language, with each sentence's words or tokens represented
+by a line of 10 tab-separated fields.