git: 7a47c1050b7c - main - math/py-modin: Add py-modin 0.32.0

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Sun, 15 Sep 2024 20:15:37 UTC
The branch main has been updated by sunpoet:

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

commit 7a47c1050b7cbe7aa80ec8a41a72b7a3b15e95a1
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2024-09-15 19:08:13 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2024-09-15 20:09:34 +0000

    math/py-modin: Add py-modin 0.32.0
    
    Modin is a drop-in replacement for pandas. While pandas is single-threaded,
    Modin lets you instantly speed up your workflows by scaling pandas so it uses
    all of your cores. Modin works especially well on larger datasets, where pandas
    becomes painfully slow or runs out of memory. Also, Modin comes with the
    additional APIs to improve user experience.
---
 math/Makefile                      |  1 +
 math/py-modin/Makefile             | 28 ++++++++++++++++++++++++++++
 math/py-modin/distinfo             |  3 +++
 math/py-modin/files/patch-setup.py | 11 +++++++++++
 math/py-modin/pkg-descr            |  5 +++++
 5 files changed, 48 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index f5ba2137fd31..244170099b5b 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -998,6 +998,7 @@
     SUBDIR += py-ml-dtypes
     SUBDIR += py-mnnpy
     SUBDIR += py-moarchiving
+    SUBDIR += py-modin
     SUBDIR += py-mpmath
     SUBDIR += py-munkres
     SUBDIR += py-narwhals
diff --git a/math/py-modin/Makefile b/math/py-modin/Makefile
new file mode 100644
index 000000000000..e5db69c117c1
--- /dev/null
+++ b/math/py-modin/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	modin
+PORTVERSION=	0.32.0
+CATEGORIES=	math python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Make your pandas code run faster
+WWW=		https://modin.readthedocs.io/en/stable/ \
+		https://github.com/modin-project/modin
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}fsspec>=2022.11.0:devel/py-fsspec@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}numpy>=1.22.4,1:math/py-numpy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}packaging>=21.0:devel/py-packaging@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pandas>=2,1<2.3,1:math/py-pandas@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}psutil>=5.8.0:sysutils/py-psutil@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/math/py-modin/distinfo b/math/py-modin/distinfo
new file mode 100644
index 000000000000..86acdcab8f3f
--- /dev/null
+++ b/math/py-modin/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1726080919
+SHA256 (modin-0.32.0.tar.gz) = 9f68557add5e92617d006eb98bfd93d298e7d4d9932a0cd48a5e38ee4f30a134
+SIZE (modin-0.32.0.tar.gz) = 842563
diff --git a/math/py-modin/files/patch-setup.py b/math/py-modin/files/patch-setup.py
new file mode 100644
index 000000000000..967cfe5cacfb
--- /dev/null
+++ b/math/py-modin/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig	2024-09-11 12:58:49 UTC
++++ setup.py
+@@ -52,7 +52,7 @@ setup(
+     long_description=long_description,
+     long_description_content_type="text/markdown",
+     install_requires=[
+-        "pandas>=2.2,<2.3",
++        "pandas>=2,<2.3",
+         "packaging>=21.0",
+         "numpy>=1.22.4",
+         "fsspec>=2022.11.0",
diff --git a/math/py-modin/pkg-descr b/math/py-modin/pkg-descr
new file mode 100644
index 000000000000..c027fec94db0
--- /dev/null
+++ b/math/py-modin/pkg-descr
@@ -0,0 +1,5 @@
+Modin is a drop-in replacement for pandas. While pandas is single-threaded,
+Modin lets you instantly speed up your workflows by scaling pandas so it uses
+all of your cores. Modin works especially well on larger datasets, where pandas
+becomes painfully slow or runs out of memory. Also, Modin comes with the
+additional APIs to improve user experience.