git: 18552d28f55f - main - math/py-spox: Add py-spox 0.16.0

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Thu, 15 Jan 2026 11:57:30 UTC
The branch main has been updated by sunpoet:

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

commit 18552d28f55f61160641ee2459bb7208ff08e16a
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2026-01-15 11:35:02 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2026-01-15 11:53:04 +0000

    math/py-spox: Add py-spox 0.16.0
    
    Spox makes it easy to construct ONNX models through clean and idiomatic Python
    code.
    
    A common application of ONNX is converting models from various frameworks. This
    requires replicating their runtime behaviour with ONNX operators. In the past
    this has been a major challenge. Based on our experience, we designed Spox from
    the ground up to make the process of writing converters (and ONNX models in
    general) as easy as possible.
    
    Spox's features include:
    - Eager operator validation and type inference
    - Errors with Python tracebacks to offending operators
    - First-class support for subgraphs (control flow)
    - A lean and predictable API
---
 math/Makefile          |  1 +
 math/py-spox/Makefile  | 27 +++++++++++++++++++++++++++
 math/py-spox/distinfo  |  3 +++
 math/py-spox/pkg-descr | 14 ++++++++++++++
 4 files changed, 45 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index 24bf914827f0..945105c3a0a8 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1132,6 +1132,7 @@
     SUBDIR += py-splot
     SUBDIR += py-spopt
     SUBDIR += py-spot
+    SUBDIR += py-spox
     SUBDIR += py-spreg
     SUBDIR += py-squarify
     SUBDIR += py-ssm
diff --git a/math/py-spox/Makefile b/math/py-spox/Makefile
new file mode 100644
index 000000000000..18ccc1a44a68
--- /dev/null
+++ b/math/py-spox/Makefile
@@ -0,0 +1,27 @@
+PORTNAME=	spox
+PORTVERSION=	0.16.0
+CATEGORIES=	math python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Framework for constructing ONNX computational graphs
+WWW=		https://spox.readthedocs.io/en/latest/ \
+		https://github.com/Quantco/spox
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8:devel/py-setuptools-scm@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}onnx>=1.13:misc/py-onnx@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/math/py-spox/distinfo b/math/py-spox/distinfo
new file mode 100644
index 000000000000..05759b39136a
--- /dev/null
+++ b/math/py-spox/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1767157571
+SHA256 (spox-0.16.0.tar.gz) = db75a2a0aa9e4c18985371de115b6639a0788d5b305592474bebd698f6dd21f3
+SIZE (spox-0.16.0.tar.gz) = 508014
diff --git a/math/py-spox/pkg-descr b/math/py-spox/pkg-descr
new file mode 100644
index 000000000000..ecfef632b8d5
--- /dev/null
+++ b/math/py-spox/pkg-descr
@@ -0,0 +1,14 @@
+Spox makes it easy to construct ONNX models through clean and idiomatic Python
+code.
+
+A common application of ONNX is converting models from various frameworks. This
+requires replicating their runtime behaviour with ONNX operators. In the past
+this has been a major challenge. Based on our experience, we designed Spox from
+the ground up to make the process of writing converters (and ONNX models in
+general) as easy as possible.
+
+Spox's features include:
+- Eager operator validation and type inference
+- Errors with Python tracebacks to offending operators
+- First-class support for subgraphs (control flow)
+- A lean and predictable API