git: d6bed51bbd24 - main - devel/py-cyclopts: New port: Intuitive, easy CLIs based on type hints

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 30 Aug 2025 22:22:19 UTC
The branch main has been updated by yuri:

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

commit d6bed51bbd2430b61b9ba9c868e2b35c5207ed26
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-08-30 22:22:00 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-08-30 22:22:17 +0000

    devel/py-cyclopts: New port: Intuitive, easy CLIs based on type hints
---
 devel/Makefile              |  1 +
 devel/py-cyclopts/Makefile  | 29 +++++++++++++++++++++++++++++
 devel/py-cyclopts/distinfo  |  3 +++
 devel/py-cyclopts/pkg-descr |  2 ++
 4 files changed, 35 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 5662471fa45e..c58e0cb516ba 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4748,6 +4748,7 @@
     SUBDIR += py-cwcwidth
     SUBDIR += py-cxx
     SUBDIR += py-cycler
+    SUBDIR += py-cyclopts
     SUBDIR += py-cykhash
     SUBDIR += py-cymbal
     SUBDIR += py-cymem
diff --git a/devel/py-cyclopts/Makefile b/devel/py-cyclopts/Makefile
new file mode 100644
index 000000000000..a410b7d123ec
--- /dev/null
+++ b/devel/py-cyclopts/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	cyclopts
+DISTVERSION=	3.23.1
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI # no tests
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Intuitive, easy CLIs based on type hints
+WWW=		https://github.com/BrianPugh/cyclopts
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}poetry-dynamic-versioning>=1.0.1:devel/py-poetry-dynamic-versioning@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}attrs>=23.1.0:devel/py-attrs@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}docstring_parser>=0.15:textproc/py-docstring_parser@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}importlib-metadata>=4.4:devel/py-importlib-metadata@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.1:devel/py-pyyaml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rich-rst>=1.3.1:textproc/py-rich-rst@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rich>=13.6.0:textproc/py-rich@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tomli>=2.0:textproc/py-tomli@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}trio>=0.10.0:net/py-trio@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.8.0:devel/py-typing-extensions@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist pytest
+
+.include <bsd.port.mk>
diff --git a/devel/py-cyclopts/distinfo b/devel/py-cyclopts/distinfo
new file mode 100644
index 000000000000..d6be6ed1e41b
--- /dev/null
+++ b/devel/py-cyclopts/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756592363
+SHA256 (cyclopts-3.23.1.tar.gz) = ca6a5e9b326caf156d79f3932e2f88b95629e59fd371c0b3a89732b7619edacb
+SIZE (cyclopts-3.23.1.tar.gz) = 75161
diff --git a/devel/py-cyclopts/pkg-descr b/devel/py-cyclopts/pkg-descr
new file mode 100644
index 000000000000..37ee0c77aea3
--- /dev/null
+++ b/devel/py-cyclopts/pkg-descr
@@ -0,0 +1,2 @@
+Cyclopts is a modern, easy-to-use command-line interface (CLI) framework that
+aims to provide an intuitive & efficient developer experience.