git: d1f0b3a88a0f - main - devel/py-objsize: New port: Calculate the total size of the object subtree in bytes (deep size)

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 20 Nov 2022 06:22:43 UTC
The branch main has been updated by yuri:

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

commit d1f0b3a88a0f3c9c770a88db196c0833172f0b7f
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-11-20 04:40:48 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-11-20 06:22:39 +0000

    devel/py-objsize: New port: Calculate the total size of the object subtree in bytes (deep size)
---
 devel/Makefile             |  1 +
 devel/py-objsize/Makefile  | 19 +++++++++++++++++++
 devel/py-objsize/distinfo  |  3 +++
 devel/py-objsize/pkg-descr |  7 +++++++
 4 files changed, 30 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 6a11e471dc56..b048e7bbdb81 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4872,6 +4872,7 @@
     SUBDIR += py-num2words
     SUBDIR += py-numba
     SUBDIR += py-objgraph
+    SUBDIR += py-objsize
     SUBDIR += py-oci
     SUBDIR += py-odfpy
     SUBDIR += py-offtrac
diff --git a/devel/py-objsize/Makefile b/devel/py-objsize/Makefile
new file mode 100644
index 000000000000..aa2c44c54bb3
--- /dev/null
+++ b/devel/py-objsize/Makefile
@@ -0,0 +1,19 @@
+PORTNAME=	objsize
+DISTVERSION=	0.6.1
+CATEGORIES=	devel
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Calculate the total size of the object subtree in bytes (deep size)
+WWW=		https://github.com/liran-funaro/objsize
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		python
+USE_PYTHON=	distutils autoplist
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-objsize/distinfo b/devel/py-objsize/distinfo
new file mode 100644
index 000000000000..0cda7534ae61
--- /dev/null
+++ b/devel/py-objsize/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1668908152
+SHA256 (objsize-0.6.1.tar.gz) = 56482d468acdc445c7da05a56e5b05ad38e5c0a27a761b5d8c538df494e19d2a
+SIZE (objsize-0.6.1.tar.gz) = 8225
diff --git a/devel/py-objsize/pkg-descr b/devel/py-objsize/pkg-descr
new file mode 100644
index 000000000000..31c26c76ac4c
--- /dev/null
+++ b/devel/py-objsize/pkg-descr
@@ -0,0 +1,7 @@
+Traversal over Python's objects subtree and calculate the total size of the
+subtree in bytes (deep size).
+
+This module traverses all child objects using Python's internal GC
+implementation. It attempts to ignore shared objects (i.e., None, types,
+modules, classes, functions, lambdas), as they are common among all objects.
+It is implemented without recursive calls for high performance.