git: 523f14cbc395 - main - devel/py-mando: New port: Create Python CLI apps with little to no effort at all

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 03 Oct 2025 09:56:09 UTC
The branch main has been updated by yuri:

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

commit 523f14cbc3952b39185870880456ce1abfc3d4a1
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-10-03 09:44:11 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-10-03 09:56:07 +0000

    devel/py-mando: New port: Create Python CLI apps with little to no effort at all
---
 devel/Makefile           |  1 +
 devel/py-mando/Makefile  | 28 ++++++++++++++++++++++++++++
 devel/py-mando/distinfo  |  3 +++
 devel/py-mando/pkg-descr | 15 +++++++++++++++
 4 files changed, 47 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 3594aabda146..925331a0fae0 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5248,6 +5248,7 @@
     SUBDIR += py-magnet2torrent
     SUBDIR += py-mailcap-fix
     SUBDIR += py-makefun
+    SUBDIR += py-mando
     SUBDIR += py-manuel
     SUBDIR += py-marisa-trie
     SUBDIR += py-marrow.mailer
diff --git a/devel/py-mando/Makefile b/devel/py-mando/Makefile
new file mode 100644
index 000000000000..69bab921b3ea
--- /dev/null
+++ b/devel/py-mando/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	mando
+DISTVERSION=	0.8.2
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Create Python CLI apps with little to no effort at all
+WWW=		https://mando.readthedocs.org/ \
+		https://github.com/rubik/mando
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		python
+USE_PYTHON=	distutils autoplist pytest
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+NO_ARCH=	yes
+
+do-test:
+	@cd ${TEST_WRKSRC} && \
+		${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest mando/tests/ -v
+
+# tests as of 0.8.2: 83 passed in 2.23s
+
+.include <bsd.port.mk>
diff --git a/devel/py-mando/distinfo b/devel/py-mando/distinfo
new file mode 100644
index 000000000000..5d6e89ec3917
--- /dev/null
+++ b/devel/py-mando/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1759484079
+SHA256 (mando-0.8.2.tar.gz) = 539659d9a2fdc6c9a188211c58f381e0dafe9597085174c5472eb1ed0224b6b5
+SIZE (mando-0.8.2.tar.gz) = 37732
diff --git a/devel/py-mando/pkg-descr b/devel/py-mando/pkg-descr
new file mode 100644
index 000000000000..dd167d7af971
--- /dev/null
+++ b/devel/py-mando/pkg-descr
@@ -0,0 +1,15 @@
+mando is a wrapper around argparse, and allows you to write complete CLI
+applications in seconds while maintaining all the flexibility.
+
+While argparse is great for simple command line applications with only
+one, default command, when you have to add multiple commands and manage them
+things get really messy and long. But don't worry, mando comes to help!
+
+Features:
+* Create complete CLI applications with decorators
+* Supports multiple commands and subcommands
+* Automatic help generation from docstrings
+* Type annotations support for Python 3
+* Sphinx, Google, and NumPy docstring styles
+* Shell autocompletion via argcomplete package
+* Custom format classes support