git: 30202bcaac85 - main - misc/py-tritonclient: New port: Python client library and utilities for Triton Inference Server

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 29 Jun 2026 16:21:19 UTC
The branch main has been updated by yuri:

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

commit 30202bcaac85d616085bf14fd907b51caf3de5ec
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-06-29 14:47:51 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-06-29 16:21:15 +0000

    misc/py-tritonclient: New port: Python client library and utilities for Triton Inference Server
---
 misc/Makefile                  |  1 +
 misc/py-tritonclient/Makefile  | 49 ++++++++++++++++++++++++++++++++++++++++++
 misc/py-tritonclient/distinfo  |  3 +++
 misc/py-tritonclient/pkg-descr |  2 ++
 4 files changed, 55 insertions(+)

diff --git a/misc/Makefile b/misc/Makefile
index cddc019c2605..e6db4a468d6b 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -656,6 +656,7 @@
     SUBDIR += py-torchvision
     SUBDIR += py-tqdm
     SUBDIR += py-transformers
+    SUBDIR += py-tritonclient
     SUBDIR += py-tvm
     SUBDIR += py-uhi
     SUBDIR += py-uuid-utils
diff --git a/misc/py-tritonclient/Makefile b/misc/py-tritonclient/Makefile
new file mode 100644
index 000000000000..0afe1d9fe39c
--- /dev/null
+++ b/misc/py-tritonclient/Makefile
@@ -0,0 +1,49 @@
+PORTNAME=	tritonclient
+DISTVERSION=	2.70.0
+CATEGORIES=	misc python
+MASTER_SITES=	${MASTER_SITE_PYPI}
+MASTER_SITE_SUBDIR=	a2/2f/079ce9218627c66b2a704ff37c25c72504cabbd3e2dad65b2235dae636d1
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PORTNAME}-${DISTVERSION}-py3-none-any
+EXTRACT_SUFX=	.whl # this package doesn't distribute source tarballs, only wheels, and the upstream repo is not tagged with releases
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Python client library and utilities for Triton Inference Server
+WWW=		https://github.com/triton-inference-server/client
+
+LICENSE=	BSD3CLAUSE
+
+EXTRACT_DEPENDS=	${UNZIP_CMD}:archivers/unzip
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiohttp>=3.8.1:www/py-aiohttp@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}geventhttpclient>=2.3.3:devel/py-geventhttpclient@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}greenlet>0:devel/py-greenlet@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}ml-dtypes>0:math/py-ml-dtypes@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}numpy>=1.19.1:math/py-numpy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}python-rapidjson>=0.9.1:devel/py-python-rapidjson@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}urllib3>=2.0.7:net/py-urllib3@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist flavors
+
+NO_ARCH=	yes
+
+EXTRACT_CMD=		${UNZIP_CMD}
+EXTRACT_BEFORE_ARGS=	-qo
+EXTRACT_AFTER_ARGS=	-d ${WRKDIR}
+WRKSRC=			${WRKDIR}
+
+PEP517_BUILD_DEPEND=	# wheel-only, no build from source
+PEP517_INSTALL_CMD=	${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}
+
+do-build:
+	@${DO_NADA}
+
+post-stage:
+	@${RM} ${STAGEDIR}${PREFIX}/LICENSE.txt
+
+POST_PLIST=	fix-plist
+
+fix-plist:
+	@${REINPLACE_CMD} -e '/site-\.\.LICENSE\.txt/d' ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/misc/py-tritonclient/distinfo b/misc/py-tritonclient/distinfo
new file mode 100644
index 000000000000..1098be36c28b
--- /dev/null
+++ b/misc/py-tritonclient/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1782631063
+SHA256 (tritonclient-2.70.0-py3-none-any.whl) = 7ef72e5bc11649c9415057b0933ffb9d16675f0013f1f54759457fb625355de2
+SIZE (tritonclient-2.70.0-py3-none-any.whl) = 111782
diff --git a/misc/py-tritonclient/pkg-descr b/misc/py-tritonclient/pkg-descr
new file mode 100644
index 000000000000..be460ee76aa6
--- /dev/null
+++ b/misc/py-tritonclient/pkg-descr
@@ -0,0 +1,2 @@
+tritonclient provides a Python client library and utilities for communicating
+with NVIDIA Triton Inference Server over HTTP and gRPC.