git: d3903fc482a1 - main - misc/py-apache-beam: New port: Apache Beam SDK for Python

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

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

commit d3903fc482a1c207e4089ca98d3b3c1070524c1a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-10-09 22:22:46 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-10-09 22:38:02 +0000

    misc/py-apache-beam: New port: Apache Beam SDK for Python
---
 misc/Makefile                 |  1 +
 misc/py-apache-beam/Makefile  | 55 +++++++++++++++++++++++++++++++++++++++++++
 misc/py-apache-beam/distinfo  |  3 +++
 misc/py-apache-beam/pkg-descr | 17 +++++++++++++
 4 files changed, 76 insertions(+)

diff --git a/misc/Makefile b/misc/Makefile
index 4654406d5d30..727d806a6a1e 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -375,6 +375,7 @@
     SUBDIR += py-SimpleSoapy
     SUBDIR += py-SoapySDR
     SUBDIR += py-alive-progress
+    SUBDIR += py-apache-beam
     SUBDIR += py-boost-histogram
     SUBDIR += py-cinder
     SUBDIR += py-colorbrewer
diff --git a/misc/py-apache-beam/Makefile b/misc/py-apache-beam/Makefile
new file mode 100644
index 000000000000..ced61edb4664
--- /dev/null
+++ b/misc/py-apache-beam/Makefile
@@ -0,0 +1,55 @@
+PORTNAME=	apache-beam
+DISTVERSION=	2.41.0
+CATEGORIES=	misc
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Apache Beam SDK for Python
+WWW=		https://beam.apache.org/
+
+LICENSE=	APACHE20
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}cloudpickle>=2.1.0:devel/py-cloudpickle@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}crcmod>=1.7:devel/py-crcmod@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dateutil>=2.8.0:devel/py-dateutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dill>=0.3.1.1:devel/py-dill@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}fastavro>0:textproc/py-fastavro@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}grpcio>=1.33.1>0:devel/py-grpcio@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hdfs>=2.1.0:www/py-hdfs@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}httplib2>=0.8:www/py-httplib2@${PY_FLAVOR} \
+		${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}orjson<4.0:devel/py-orjson@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}proto-plus>=1.7.1:devel/py-proto-plus@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}protobuf>=3.12.2:devel/py-protobuf@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pydot>=1.2.0:graphics/py-pydot@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pymongo>=3.8.0:databases/py-pymongo@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytz>=2018.3:devel/py-pytz@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests>=2.24.0:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.7.0:devel/py-typing-extensions@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}cryptography>=36.0.0:security/py-cryptography@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}freezegun>=0.3.12:devel/py-freezegun@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}joblib>=0.3.12:devel/py-joblib@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}mock>=1.0.1:devel/py-mock@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}parameterized>=0.7.1:devel/py-parameterized@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.5:databases/py-psycopg2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}PyHamcrest>=1.9:textproc/py-pyhamcrest@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-timeout>=1.3.3:devel/py-pytest-timeout@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-xdist>=1.29.0:devel/py-pytest-xdist@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests-mock>=1.7:www/py-requests-mock@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tenacity>=5.0.2:devel/py-tenacity@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}scikit-learn>=0.20.0:science/py-scikit-learn@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=1.3:databases/py-sqlalchemy14@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}yaml>=3.12:devel/py-yaml@${PY_FLAVOR}
+		# testcontainers[mysql]>=3.0.3 is also required
+
+USES=		python:3.6+ zip
+USE_PYTHON=	distutils cython concurrent autoplist pytest # 5 tests fail, depending on pyarrow, MySqlContainer, threadpoolctl
+
+post-install:
+	# strip binaries
+	@${FIND} ${STAGEDIR}${PREFIX} -name "*${PYTHON_EXT_SUFFIX}.so" | ${XARGS} ${STRIP_CMD}
+
+.include <bsd.port.mk>
diff --git a/misc/py-apache-beam/distinfo b/misc/py-apache-beam/distinfo
new file mode 100644
index 000000000000..933a53385135
--- /dev/null
+++ b/misc/py-apache-beam/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1665344114
+SHA256 (apache-beam-2.41.0.zip) = c1a0456a5b48c3481bf20dc904e4d812515144336873b322f17ba188e2fabd92
+SIZE (apache-beam-2.41.0.zip) = 2860736
diff --git a/misc/py-apache-beam/pkg-descr b/misc/py-apache-beam/pkg-descr
new file mode 100644
index 000000000000..c419e98626ec
--- /dev/null
+++ b/misc/py-apache-beam/pkg-descr
@@ -0,0 +1,17 @@
+Apache Beam is a unified programming model for Batch and Streaming data
+processing.
+
+Beam provides a general approach to expressing embarrassingly parallel data
+processing pipelines and supports three categories of users, each of which have
+relatively disparate backgrounds and needs.
+
+* End Users: Writing pipelines with an existing SDK, running it on an existing
+  runner. These users want to focus on writing their application logic and have
+  everything else just work.
+* SDK Writers: Developing a Beam SDK targeted at a specific user community
+  (Java, Python, Scala, Go, R, graphical, etc). These users are language geeks
+  and would prefer to be shielded from all the details of various runners and
+  their implementations.
+* Runner Writers: Have an execution environment for distributed processing and
+  would like to support programs written against the Beam Model. Would prefer to
+  be shielded from details of multiple SDKs.