git: b520fe445860 - main - math/py-narwhals: Add py-narwhals 1.4.2

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Thu, 05 Sep 2024 06:19:35 UTC
The branch main has been updated by sunpoet:

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

commit b520fe44586012d234134d46101608318182fb0a
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2024-09-05 05:14:11 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2024-09-05 06:11:20 +0000

    math/py-narwhals: Add py-narwhals 1.4.2
    
    Narwhals is an extremely lightweight and extensible compatibility layer between
    dataframe libraries!
    - Full API support: cuDF, Modin, pandas, Polars, PyArrow
    - Interchange-level support: Ibis, Vaex, anything else which implements the
      DataFrame Interchange Protocol
    
    Seamlessly support all, without depending on any!
    - Just use a subset of the Polars API, no need to learn anything new
    - Zero dependencies, Narwhals only uses what the user passes in so your library
      can stay lightweight
    - Separate lazy and eager APIs, use expressions
    - Support pandas' complicated type system and index, without either getting in
      the way
    - 100% branch coverage, tested against pandas and Polars nightly builds
    - Negligible overhead, see overhead
    - Let your IDE help you thanks to full static typing, see typing
    - Perfect backwards compatibility policy, see stable api for how to opt-in
---
 math/Makefile              |  1 +
 math/py-narwhals/Makefile  | 22 ++++++++++++++++++++++
 math/py-narwhals/distinfo  |  3 +++
 math/py-narwhals/pkg-descr | 17 +++++++++++++++++
 4 files changed, 43 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index cbe5c15fbbf4..f5ba2137fd31 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1000,6 +1000,7 @@
     SUBDIR += py-moarchiving
     SUBDIR += py-mpmath
     SUBDIR += py-munkres
+    SUBDIR += py-narwhals
     SUBDIR += py-ndindex
     SUBDIR += py-networkx
     SUBDIR += py-nevergrad
diff --git a/math/py-narwhals/Makefile b/math/py-narwhals/Makefile
new file mode 100644
index 000000000000..48b761cb6962
--- /dev/null
+++ b/math/py-narwhals/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	narwhals
+PORTVERSION=	1.4.2
+CATEGORIES=	math python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Extremely lightweight compatibility layer between dataframe libraries
+WWW=		https://narwhals-dev.github.io/narwhals/ \
+		https://github.com/narwhals-dev/narwhals
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/math/py-narwhals/distinfo b/math/py-narwhals/distinfo
new file mode 100644
index 000000000000..5265f5780c3c
--- /dev/null
+++ b/math/py-narwhals/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1724084486
+SHA256 (narwhals-1.4.2.tar.gz) = b33348b1d187208227f404f1808713f434e401951b780a34719e4eade1fa5df5
+SIZE (narwhals-1.4.2.tar.gz) = 126634
diff --git a/math/py-narwhals/pkg-descr b/math/py-narwhals/pkg-descr
new file mode 100644
index 000000000000..d2adaa9362e7
--- /dev/null
+++ b/math/py-narwhals/pkg-descr
@@ -0,0 +1,17 @@
+Narwhals is an extremely lightweight and extensible compatibility layer between
+dataframe libraries!
+- Full API support: cuDF, Modin, pandas, Polars, PyArrow
+- Interchange-level support: Ibis, Vaex, anything else which implements the
+  DataFrame Interchange Protocol
+
+Seamlessly support all, without depending on any!
+- Just use a subset of the Polars API, no need to learn anything new
+- Zero dependencies, Narwhals only uses what the user passes in so your library
+  can stay lightweight
+- Separate lazy and eager APIs, use expressions
+- Support pandas' complicated type system and index, without either getting in
+  the way
+- 100% branch coverage, tested against pandas and Polars nightly builds
+- Negligible overhead, see overhead
+- Let your IDE help you thanks to full static typing, see typing
+- Perfect backwards compatibility policy, see stable api for how to opt-in