git: 4a325d1430e5 - main - devel/py-forbiddenfruit: Add py-forbiddenfruit 0.1.4

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Wed, 09 Apr 2025 14:00:33 UTC
The branch main has been updated by sunpoet:

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

commit 4a325d1430e56dae2b1c5d9b0dc9a3a6f7f3d20b
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-04-09 13:53:26 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-04-09 13:53:26 +0000

    devel/py-forbiddenfruit: Add py-forbiddenfruit 0.1.4
    
    Forbidden Fruit allows Python code to extend built-in types.
    
    If that's a good idea or not, you tell me. The first need this project attended
    was allowing a Python assertion library to implement a similar API to RSpec
    Expectations and should.js. But people got creative and used it to among other
    things spy on things or to integrate profiling.
---
 devel/Makefile                    |  1 +
 devel/py-forbiddenfruit/Makefile  | 25 +++++++++++++++++++++++++
 devel/py-forbiddenfruit/distinfo  |  3 +++
 devel/py-forbiddenfruit/pkg-descr |  6 ++++++
 4 files changed, 35 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index e63f5d3d97d4..2f67b4b170f2 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4908,6 +4908,7 @@
     SUBDIR += py-flufl.lock
     SUBDIR += py-flynt
     SUBDIR += py-foolscap
+    SUBDIR += py-forbiddenfruit
     SUBDIR += py-freebsd
     SUBDIR += py-freebsd-sysctl
     SUBDIR += py-freenas.utils
diff --git a/devel/py-forbiddenfruit/Makefile b/devel/py-forbiddenfruit/Makefile
new file mode 100644
index 000000000000..615bb29c5ec2
--- /dev/null
+++ b/devel/py-forbiddenfruit/Makefile
@@ -0,0 +1,25 @@
+PORTNAME=	forbiddenfruit
+PORTVERSION=	0.1.4
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Patch python built-in objects
+WWW=		https://clarete.li/forbiddenfruit/ \
+		https://github.com/clarete/forbiddenfruit
+
+LICENSE=	GPLv3+ MIT
+LICENSE_COMB=	dual
+LICENSE_FILE_GPLv3+ =	${WRKSRC}/COPYING
+LICENSE_FILE_MIT=	${WRKSRC}/COPYING.mit
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-forbiddenfruit/distinfo b/devel/py-forbiddenfruit/distinfo
new file mode 100644
index 000000000000..8f42b8323a7c
--- /dev/null
+++ b/devel/py-forbiddenfruit/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1742405434
+SHA256 (forbiddenfruit-0.1.4.tar.gz) = e3f7e66561a29ae129aac139a85d610dbf3dd896128187ed5454b6421f624253
+SIZE (forbiddenfruit-0.1.4.tar.gz) = 43756
diff --git a/devel/py-forbiddenfruit/pkg-descr b/devel/py-forbiddenfruit/pkg-descr
new file mode 100644
index 000000000000..44828ef8a3af
--- /dev/null
+++ b/devel/py-forbiddenfruit/pkg-descr
@@ -0,0 +1,6 @@
+Forbidden Fruit allows Python code to extend built-in types.
+
+If that's a good idea or not, you tell me. The first need this project attended
+was allowing a Python assertion library to implement a similar API to RSpec
+Expectations and should.js. But people got creative and used it to among other
+things spy on things or to integrate profiling.