From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1527744-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id AC61F15810F
	for <garchives@archives.gentoo.org>; Sun, 11 Jun 2023 08:49:57 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id E8E4EE08D4;
	Sun, 11 Jun 2023 08:49:56 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id CA62BE08D4
	for <gentoo-commits@lists.gentoo.org>; Sun, 11 Jun 2023 08:49:56 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id CE22B34118E
	for <gentoo-commits@lists.gentoo.org>; Sun, 11 Jun 2023 08:49:55 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 697ADA85
	for <gentoo-commits@lists.gentoo.org>; Sun, 11 Jun 2023 08:49:54 +0000 (UTC)
From: "Joonas Niilola" <juippis@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Joonas Niilola" <juippis@gentoo.org>
Message-ID: <1686473376.e563433725a9cf66fb325bbf6a2bf7327fb3d6b6.juippis@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/elasticsearch-py/
X-VCS-Repository: repo/gentoo
X-VCS-Files: dev-python/elasticsearch-py/Manifest dev-python/elasticsearch-py/elasticsearch-py-8.8.0.ebuild
X-VCS-Directories: dev-python/elasticsearch-py/
X-VCS-Committer: juippis
X-VCS-Committer-Name: Joonas Niilola
X-VCS-Revision: e563433725a9cf66fb325bbf6a2bf7327fb3d6b6
X-VCS-Branch: master
Date: Sun, 11 Jun 2023 08:49:54 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: bb2c40f6-d836-4480-a6f7-8cf5fa33f723
X-Archives-Hash: a6f854241d1b01a83cc843af789f15e8

commit:     e563433725a9cf66fb325bbf6a2bf7327fb3d6b6
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Tue Jun  6 11:37:55 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sun Jun 11 08:49:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5634337

dev-python/elasticsearch-py: add 8.8.0

Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/31331
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 dev-python/elasticsearch-py/Manifest               |   2 +
 .../elasticsearch-py/elasticsearch-py-8.8.0.ebuild | 144 +++++++++++++++++++++
 2 files changed, 146 insertions(+)

diff --git a/dev-python/elasticsearch-py/Manifest b/dev-python/elasticsearch-py/Manifest
index 4451a623c8e3..b38e271ef529 100644
--- a/dev-python/elasticsearch-py/Manifest
+++ b/dev-python/elasticsearch-py/Manifest
@@ -1,4 +1,6 @@
 DIST elasticsearch-8.6.2-linux-x86_64.tar.gz 581745209 BLAKE2B c5d76e8fd2b7b28d50a0b81950c5d824f5000d3239efef9c3312e153829f09d98ba1394dceff2f147c29e2cd24be2ea4aaf0e0dc830e51989b87c8c7b48e3b3c SHA512 4c5ea98af53861d6c7f06f855f3bd4f4f52136d8149347e43f633a23ba56d3237f6ff7346bf849090f4e52b28fc21c98df8d9b0f0f845a330834367705cd366a
 DIST elasticsearch-8.7.0-linux-x86_64.tar.gz 596104472 BLAKE2B bf2d6d6f810abd6e586681882f7eb01728167c6fd56ff927b08388bc3f4f5d342f0d903db1306880d70efc27c1ed7c53ba25d9517c55f4fa228744fdb7e3695b SHA512 7ac6ee5e2e2ccee1ebb20a1c94992b90e879b8b37273d59ae1496b1e8ae5499ae1b6ddce8cea7dda3b63e7e45352735b2bd3328ad0fdd6d6aadb020de21eb894
+DIST elasticsearch-8.8.0-linux-x86_64.tar.gz 596757716 BLAKE2B 78867b59fddd8efdc63cbe914d968a500d5c1351bd97abb7fb868ca5af8945d7b8d4e2116f3b7daafa4ec1c675deec15dfad25cd4545efd694a6663d2590bccb SHA512 4af771a03371605ce82964300c78dd54d5f8ca3b1237c6480818f595a56deaceace842fdade433636ef53a0e55142477e82e9c1157e7e33ca3f46d86beca44e8
 DIST elasticsearch-py-8.6.2.gh.tar.gz 517674 BLAKE2B c498f1e1efaea4c24f595f7e496f576372d6075da107b2f84a7d4a42c02de4e00d1459df6f965384f5880b4d8f910c4a7a49a773cb38361618ca7a74e5c4ec5a SHA512 53c03c9c8da4eb303e8f9cd5752bbef5a360d1e1a6fea4e98a8d576299f2ae4175c1da09429049cedf53a78bf86a4647fe4f4f9c7735a5a29977ada7db49e5fb
 DIST elasticsearch-py-8.7.0.gh.tar.gz 523141 BLAKE2B bbc6c59e921c5e8db3b7815a3086abe42690733d6719dcf3e167a521b1e7b38e68bf29ff2b1e0e48839be36c11feb9cb5bd9da507c35f508063ccfe9f3c24c59 SHA512 8f28d51cde600069692c8bef810e7949165a5f7a3ec440513a5f69e5c392ecb928dbd0317a9424d1845f523230a421e7d53db41a03b1bd3cc232c4b04ee0c894
+DIST elasticsearch-py-8.8.0.gh.tar.gz 526860 BLAKE2B 81d747c6ff3a552bcb279bc6ae4ede6a20c9516610f375dc11183eb38b759b4a8b4a9d0af9747300f483f3df403d918d938e50ae8bec91d09b67b7e81b11a114 SHA512 8bbbbfdcb658b648f2b3c7bd41c0d83cc66385eb8e5a118714c146c7ee8fb247f606098cc3ddacb679e009495dc8dbc0e3159fb0cae38ee49399e27c868940f1

diff --git a/dev-python/elasticsearch-py/elasticsearch-py-8.8.0.ebuild b/dev-python/elasticsearch-py/elasticsearch-py-8.8.0.ebuild
new file mode 100644
index 000000000000..e0dffb4bed03
--- /dev/null
+++ b/dev-python/elasticsearch-py/elasticsearch-py-8.8.0.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
+inherit distutils-r1
+
+DESCRIPTION="Official Elasticsearch client library for Python"
+HOMEPAGE="
+	https://ela.st/es-python
+	https://github.com/elastic/elasticsearch-py
+	https://pypi.org/project/elasticsearch/
+"
+# Use bundled jdk for the test elasticsearch as there is no convenient way to ensure system jdk17 is used
+SRC_URI="
+	https://github.com/elastic/elasticsearch-py/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
+	test? (
+		amd64? (
+			elibc_glibc? (
+				https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${PV}-linux-x86_64.tar.gz
+			)
+		)
+	)
+"
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~x86"
+
+RESTRICT="
+	!amd64? ( test )
+	!elibc_glibc? ( test )
+	!test? ( test )
+"
+
+RDEPEND="
+	>=dev-python/aiohttp-3[${PYTHON_USEDEP}] <dev-python/aiohttp-4[${PYTHON_USEDEP}]
+	>=dev-python/elastic-transport-8[${PYTHON_USEDEP}] <dev-python/elastic-transport-9[${PYTHON_USEDEP}]
+	>=dev-python/requests-2.4[${PYTHON_USEDEP}] <dev-python/requests-3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+	test? (
+		${RDEPEND}
+		dev-python/mapbox-vector-tile[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pandas[${PYTHON_USEDEP}]
+		dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+		dev-python/python-dateutil[${PYTHON_USEDEP}]
+		>=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+		dev-python/unasync[${PYTHON_USEDEP}]
+	)
+"
+
+EPYTEST_IGNORE=(
+	# REST api tests are a black hole for effort. It downloads the tests so its an ever moving target
+	# It also requires effort to blacklist tests for apis which are license restricted.
+	"test_elasticsearch/test_server/test_rest_api_spec.py"
+	# Counting deprecation warnings from python is bound to fail even if all are fixed in this package
+	# Not worth it
+	"test_elasticsearch/test_client/test_deprecated_options.py"
+)
+
+distutils_enable_sphinx docs/sphinx dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+src_prepare() {
+	# Replace added pytest options with setting asyncio_mode to auto.
+	# Test suite hasnt set asyncio parameters so its needed here.
+	sed -i '/[tool:pytest]/,/^$/ { s/addopts.*/asyncio_mode = auto/ }' setup.cfg || die
+
+	default
+}
+
+src_test() {
+	local es_port="25124"
+
+	export ES_DIR="${WORKDIR}/elasticsearch-${PV}"
+	export ES_INSTANCE="gentoo-es-py-test"
+	export ELASTIC_PASSWORD="changeme"
+	export ELASTICSEARCH_URL="https://elastic:${ELASTIC_PASSWORD}@localhost:${es_port}"
+
+	# Default behavior sets these depending on available memory.
+	# On my system its not reliable and leads to an instant OOM :D
+	# So lets add a reasonable limit
+	export ES_JAVA_OPTS="-Xmx4g"
+
+	cat > "${ES_DIR}/config/elasticsearch.yml" <<-EOF || die
+		# Run elasticsearch on custom port
+		http.port: ${es_port}
+		cluster.routing.allocation.disk.threshold_enabled: false
+		bootstrap.memory_lock: true
+		node.attr.testattr: test
+		repositories.url.allowed_urls: http://snapshot.test*
+		action.destructive_requires_name: false
+		ingest.geoip.downloader.enabled: false
+
+		xpack.license.self_generated.type: basic
+		xpack.security.enabled: true
+		xpack.security.http.ssl.enabled: false
+	EOF
+
+	# Set password in keystore
+	printf "y\n${ELASTIC_PASSWORD}\n" | ${ES_DIR}/bin/elasticsearch-keystore add "bootstrap.password" || die
+
+	local es_instance="gentoo-py-test"
+	local es_log="${ES_DIR}/logs/${es_instance}.log"
+	local es_temp="${T}/es_temp"
+	local pid="${ES_DIR}/elasticsearch.pid"
+
+	mkdir ${es_temp} || die
+
+	ebegin "Starting Elasticsearch for ${EPYTHON}"
+
+	# start local instance of elasticsearch
+	"${ES_DIR}"/bin/elasticsearch -d -p "${pid}" \
+			-Ecluster.name="${es_instance}" -Epath.repo="${es_temp}" || die
+
+	local i es_started=0
+	for i in {1..20}; do
+		grep -q "started" ${es_log} 2> /dev/null
+		if [[ $? -eq 0 ]]; then
+			einfo "Elasticsearch started"
+			es_started=1
+			eend 0
+			break
+		elif grep -q 'BindException\[Address already in use\]' "${es_log}" 2>/dev/null; then
+			eend 1
+			eerror "Elasticsearch already running"
+			die "Cannot start Elasticsearch for tests"
+		else
+			einfo "Waiting for Elasticsearch"
+			sleep 2
+			continue
+		fi
+	done
+
+	[[ ${es_started} -eq 0 ]] && die "Elasticsearch failed to start"
+
+	distutils-r1_src_test
+
+	pkill -F ${pid} || die
+}