git: e35d1fc7a7f8 - main - devel/py-python-box: new port

From: Michael Osipov <michaelo_at_FreeBSD.org>
Date: Sun, 20 Sep 2026 20:48:11 UTC
The branch main has been updated by michaelo:

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

commit e35d1fc7a7f836b2a6cc5ea33ee0d884b714e016
Author:     Pete Diamond <lazeraman@gmail.com>
AuthorDate: 2026-09-20 19:36:02 +0000
Commit:     Michael Osipov <michaelo@FreeBSD.org>
CommitDate: 2026-09-20 20:47:49 +0000

    devel/py-python-box: new port
    
    Box is a Python dictionary subclass that provides dot notation access to
    its keys, while behaving like a standard dict in every other respect.
    It supports conversion helpers for JSON, YAML, TOML and msgpack, along
    with frozen, default and transformation box types.
    
    Co-authored-by: Michael Osipov <michaelo@FreeBSD.org>
    PR:             298696
---
 devel/Makefile                |  1 +
 devel/py-python-box/Makefile  | 35 +++++++++++++++++++++++++++++++++++
 devel/py-python-box/distinfo  |  3 +++
 devel/py-python-box/pkg-descr |  5 +++++
 4 files changed, 44 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 840ff18fc86f..349290a3f122 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -6040,6 +6040,7 @@
     SUBDIR += py-pytest-xprocess
     SUBDIR += py-pytest_httpserver
     SUBDIR += py-python-application
+    SUBDIR += py-python-box
     SUBDIR += py-python-bugzilla
     SUBDIR += py-python-dateutil
     SUBDIR += py-python-dbusmock
diff --git a/devel/py-python-box/Makefile b/devel/py-python-box/Makefile
new file mode 100644
index 000000000000..921b94e844cf
--- /dev/null
+++ b/devel/py-python-box/Makefile
@@ -0,0 +1,35 @@
+PORTNAME=	python-box
+DISTVERSION=	7.4.1
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER=	lazeraman@gmail.com
+COMMENT=	Python dictionaries with advanced dot notation access
+WWW=		https://github.com/cdgriffith/Box
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}msgpack>=1.0.0:devel/py-msgpack@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0.19.1:devel/py-ruamel.yaml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tomli-w>=0:textproc/py-tomli-w@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}toon-format>=0:textproc/py-toon-format@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent cython pep517 pytest
+
+OPTIONS_DEFINE=	MSGPACK TOML YAML
+MSGPACK_DESC=	MessagePack serialization support
+
+MSGPACK_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}msgpack>=1.0.0:devel/py-msgpack@${PY_FLAVOR}
+TOML_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}tomli-w>=0:textproc/py-tomli-w@${PY_FLAVOR}
+YAML_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0.19.1:devel/py-ruamel.yaml@${PY_FLAVOR}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/box/*.so
+
+.include <bsd.port.mk>
diff --git a/devel/py-python-box/distinfo b/devel/py-python-box/distinfo
new file mode 100644
index 000000000000..cc80f3daa6ea
--- /dev/null
+++ b/devel/py-python-box/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1789705709
+SHA256 (python_box-7.4.1.tar.gz) = e412e36c25fca8223560516d53ef6c7993591c3b0ec8bb4ec582bf7defdd79f0
+SIZE (python_box-7.4.1.tar.gz) = 49859
diff --git a/devel/py-python-box/pkg-descr b/devel/py-python-box/pkg-descr
new file mode 100644
index 000000000000..63e78f5534b5
--- /dev/null
+++ b/devel/py-python-box/pkg-descr
@@ -0,0 +1,5 @@
+Box is a Python dictionary subclass that provides dot notation access to
+its keys, while behaving like a standard dict in every other respect.
+
+It supports conversion helpers for JSON, YAML, TOML and msgpack, along
+with frozen, default and transformation box types.