summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-03-29 18:13:07 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-03-29 18:13:07 +0000
commit908cd000e525d1b7d75efa5bf085c86c37c935d3 (patch)
tree3cfd71a58311307e342f5e5e79b749de4401f7dc /dev-python
parentf0538376430e58c9788808dd03c084c5a5cd81bf (diff)
downloadbaldeagleos-repo-908cd000e525d1b7d75efa5bf085c86c37c935d3.tar.gz
baldeagleos-repo-908cd000e525d1b7d75efa5bf085c86c37c935d3.tar.xz
baldeagleos-repo-908cd000e525d1b7d75efa5bf085c86c37c935d3.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto/Manifest1
-rw-r--r--dev-python/boto/boto-2.49.0-r6.ebuild63
-rw-r--r--dev-python/boto/files/boto-2.49.0-mock-spec.patch12
-rw-r--r--dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch35
-rw-r--r--dev-python/boto/files/boto-2.49.0-py3-server-port.patch42
-rw-r--r--dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch59
-rw-r--r--dev-python/boto/files/boto-2.49.0-py310.patch44
-rw-r--r--dev-python/boto/files/boto-2.49.0-py38.patch54
-rw-r--r--dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch104
-rw-r--r--dev-python/boto/files/boto-2.49.0-unbundle-six.patch28
-rw-r--r--dev-python/bsddb3/Manifest2
-rw-r--r--dev-python/bsddb3/bsddb3-6.2.9-r1.ebuild64
-rw-r--r--dev-python/debugpy/Manifest2
-rw-r--r--dev-python/debugpy/debugpy-1.6.6.ebuild43
-rw-r--r--dev-python/debugpy/debugpy-1.8.0.ebuild79
-rw-r--r--dev-python/debugpy/files/debugpy-1.6.6-unbundle-pydevd.patch77
-rw-r--r--dev-python/debugpy/files/debugpy-1.8.0-unbundle-pydevd.patch46
-rw-r--r--dev-python/debugpy/metadata.xml15
-rw-r--r--dev-python/elastic-transport/Manifest1
-rw-r--r--dev-python/elastic-transport/elastic-transport-8.13.0.ebuild70
-rw-r--r--dev-python/elasticsearch/Manifest1
-rw-r--r--dev-python/elasticsearch/elasticsearch-8.13.0.ebuild75
-rw-r--r--dev-python/fb-re2/Manifest1
-rw-r--r--dev-python/fb-re2/fb-re2-1.0.7-r1.ebuild43
-rw-r--r--dev-python/fb-re2/metadata.xml14
-rw-r--r--dev-python/flask-gravatar/Manifest1
-rw-r--r--dev-python/flask-gravatar/flask-gravatar-0.5.0-r2.ebuild40
-rw-r--r--dev-python/flask-paginate/Manifest1
-rw-r--r--dev-python/flask-paginate/flask-paginate-2024.3.28.ebuild34
-rw-r--r--dev-python/injector/Manifest1
-rw-r--r--dev-python/injector/injector-0.21.0.ebuild42
-rw-r--r--dev-python/injector/metadata.xml (renamed from dev-python/pendulum/metadata.xml)6
-rw-r--r--dev-python/irc/Manifest1
-rw-r--r--dev-python/irc/irc-20.4.0.ebuild45
-rw-r--r--dev-python/lxml/Manifest1
-rw-r--r--dev-python/lxml/files/lxml-5.1.1-pypy.patch162
-rw-r--r--dev-python/lxml/lxml-5.1.1.ebuild117
-rw-r--r--dev-python/nose/Manifest1
-rw-r--r--dev-python/nose/nose-1.3.7_p20221026.ebuild58
-rw-r--r--dev-python/opentelemetry-api/Manifest1
-rw-r--r--dev-python/opentelemetry-api/metadata.xml (renamed from dev-python/flask-gravatar/metadata.xml)9
-rw-r--r--dev-python/opentelemetry-api/opentelemetry-api-1.23.0.ebuild71
-rw-r--r--dev-python/opentelemetry-sdk/Manifest1
-rw-r--r--dev-python/opentelemetry-sdk/metadata.xml (renamed from dev-python/boto/metadata.xml)9
-rw-r--r--dev-python/opentelemetry-sdk/opentelemetry-sdk-1.23.0.ebuild79
-rw-r--r--dev-python/opentelemetry-semantic-conventions/Manifest1
-rw-r--r--dev-python/opentelemetry-semantic-conventions/metadata.xml (renamed from dev-python/nose/metadata.xml)9
-rw-r--r--dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.23.0.ebuild69
-rw-r--r--dev-python/pendulum/Manifest39
-rw-r--r--dev-python/pendulum/files/pendulum-3.0.0-system-tzdata.patch50
-rw-r--r--dev-python/pendulum/pendulum-2.1.2-r2.ebuild48
-rw-r--r--dev-python/pendulum/pendulum-3.0.0-r1.ebuild92
-rw-r--r--dev-python/pplpy/pplpy-0.8.10.ebuild5
-rw-r--r--dev-python/python-lsp-server/Manifest1
-rw-r--r--dev-python/python-lsp-server/python-lsp-server-1.11.0.ebuild94
-rw-r--r--dev-python/qtawesome/Manifest1
-rw-r--r--dev-python/qtawesome/qtawesome-1.3.1.ebuild50
-rw-r--r--dev-python/respx/Manifest1
-rw-r--r--dev-python/respx/metadata.xml (renamed from dev-python/bsddb3/metadata.xml)10
-rw-r--r--dev-python/respx/respx-0.21.1.ebuild43
-rw-r--r--dev-python/sip/Manifest1
-rw-r--r--dev-python/sip/sip-6.8.3.ebuild12
-rw-r--r--dev-python/tempest/Manifest1
-rw-r--r--dev-python/tempest/tempest-38.0.0.ebuild74
64 files changed, 1086 insertions, 1170 deletions
diff --git a/dev-python/boto/Manifest b/dev-python/boto/Manifest
deleted file mode 100644
index 880178074c3e..000000000000
--- a/dev-python/boto/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST boto-2.49.0.tar.gz 1478498 BLAKE2B 6a897ea162f5f4bd34a2d488a3e3897f7f2f5b8707dd0922c01b6a0b90ea577223bf3e588b6685bda1f2bc0e92af426711fcba67a70377183465a530065c6c84 SHA512 2175cf30cd25bbc05812e83e5ade7668c3e21b1bb09aa1b43f0f0ac7d6967a646394fb52c9be673ebb65618c5b33a52d6f31f6da702f5cd1d6c9a18169476dd4
diff --git a/dev-python/boto/boto-2.49.0-r6.ebuild b/dev-python/boto/boto-2.49.0-r6.ebuild
deleted file mode 100644
index e1950486cb8f..000000000000
--- a/dev-python/boto/boto-2.49.0-r6.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-DISTUTILS_USE_PEP517=setuptools
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Amazon Web Services API"
-HOMEPAGE="https://github.com/boto/boto https://pypi.org/project/boto/"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ~ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-PATCHES=(
- # taken from https://bugs.debian.org/909545
- "${FILESDIR}"/${P}-try-to-add-SNI-support-v3.patch
- "${FILESDIR}"/${P}-py38.patch
- "${FILESDIR}"/${P}-py3-socket-binary.patch
- "${FILESDIR}"/${P}-py3-httplib-strict.patch
- "${FILESDIR}"/${P}-py3-server-port.patch
- "${FILESDIR}"/${P}-unbundle-six.patch
- "${FILESDIR}"/${P}-py310.patch
- "${FILESDIR}"/${P}-mock-spec.patch
-)
-
-RDEPEND="
- >=dev-python/six-1.12.0[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- ${RDEPEND}
- test? (
- dev-python/httpretty[${PYTHON_USEDEP}]
- dev-python/keyring[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/rsa[${PYTHON_USEDEP}]
- dev-python/selenium[${PYTHON_USEDEP}]
- )"
-
-distutils_enable_tests nose
-
-src_prepare() {
- # remove bundled libs.
- rm -f "${S}"/boto/vendored/six.py || die
- # broken, not worth fixing
- rm tests/unit/cloudfront/test_signed_urls.py || die
- # fix tests
- mkdir -p "${HOME}"/.ssh || die
- touch "${HOME}"/.ssh/known_hosts || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- distutils-r1_python_test tests/unit
-}
diff --git a/dev-python/boto/files/boto-2.49.0-mock-spec.patch b/dev-python/boto/files/boto-2.49.0-mock-spec.patch
deleted file mode 100644
index d8c8db2f1e9f..000000000000
--- a/dev-python/boto/files/boto-2.49.0-mock-spec.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur boto-2.49.0.orig/tests/unit/ec2/test_volume.py boto-2.49.0/tests/unit/ec2/test_volume.py
---- boto-2.49.0.orig/tests/unit/ec2/test_volume.py 2022-11-02 22:22:36.173725700 -0000
-+++ boto-2.49.0/tests/unit/ec2/test_volume.py 2022-11-02 22:24:26.502590025 -0000
-@@ -55,7 +55,7 @@
- @mock.patch("boto.resultset.ResultSet")
- def test_startElement_with_name_tagSet_calls_ResultSet(self, ResultSet, startElement):
- startElement.return_value = None
-- result_set = mock.Mock(ResultSet([("item", Tag)]))
-+ result_set = ResultSet([("item", Tag)])
- volume = Volume()
- volume.tags = result_set
- retval = volume.startElement("tagSet", None, None)
diff --git a/dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch b/dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch
deleted file mode 100644
index 209b01aa74a0..000000000000
--- a/dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-https://github.com/boto/boto/commit/4f4dcb31fe852c05ce19b44eb9d5b5d747e36f7c
-https://github.com/boto/boto/pull/2718
-
-From 4f4dcb31fe852c05ce19b44eb9d5b5d747e36f7c Mon Sep 17 00:00:00 2001
-From: Lee Ball <43632885+catleeball@users.noreply.github.com>
-Date: Mon, 10 Jun 2019 16:02:53 -0700
-Subject: [PATCH] Remove `strict=True` from http_client (#6)
-
-In Python 3.4, the `strict` kwarg was removed[1]. We are removing it
-here too.
-
-Alternatively, we can leave in `strict=True` for 2.x, but I chose to
-remove it entirely to maintain consistent behavior across versions.
-
-[1]: https://docs.python.org/3/library/http.client.html
----
- boto/connection.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/boto/connection.py b/boto/connection.py
-index c731173bb4eb..54e26fb2de16 100644
---- a/boto/connection.py
-+++ b/boto/connection.py
-@@ -807,7 +807,7 @@ class AWSAuthConnection(object):
- sock.sendall(six.ensure_binary("\r\n"))
- else:
- sock.sendall(six.ensure_binary("\r\n"))
-- resp = http_client.HTTPResponse(sock, strict=True, debuglevel=self.debug)
-+ resp = http_client.HTTPResponse(sock, debuglevel=self.debug)
- resp.begin()
-
- if resp.status != 200:
---
-2.28.0
-
diff --git a/dev-python/boto/files/boto-2.49.0-py3-server-port.patch b/dev-python/boto/files/boto-2.49.0-py3-server-port.patch
deleted file mode 100644
index 62e331921980..000000000000
--- a/dev-python/boto/files/boto-2.49.0-py3-server-port.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-https://github.com/boto/boto/commit/b9f6cb0ab717ea76e2780c7fddd1cd36b3bf7d63
-
-From b9f6cb0ab717ea76e2780c7fddd1cd36b3bf7d63 Mon Sep 17 00:00:00 2001
-From: Matt Houglum <houglum@google.com>
-Date: Fri, 21 Jun 2019 15:09:11 -0700
-Subject: [PATCH] Make server_name() behave correctly for PY3
-
-...because Python-2.6-or-newer doesn't just include Python 2.6 and 2.7.
----
- boto/connection.py | 14 +++++---------
- 1 file changed, 5 insertions(+), 9 deletions(-)
-
-diff --git a/boto/connection.py b/boto/connection.py
-index 54e26fb2de16..bbb25d8fb842 100644
---- a/boto/connection.py
-+++ b/boto/connection.py
-@@ -650,17 +650,13 @@ class AWSAuthConnection(object):
- if port == 80:
- signature_host = self.host
- else:
-- # This unfortunate little hack can be attributed to
-- # a difference in the 2.6 version of http_client. In old
-- # versions, it would append ":443" to the hostname sent
-- # in the Host header and so we needed to make sure we
-- # did the same when calculating the V2 signature. In 2.6
-- # (and higher!)
-- # it no longer does that. Hence, this kludge.
-- if ((ON_APP_ENGINE and sys.version[:3] == '2.5') or
-- sys.version[:3] in ('2.6', '2.7')) and port == 443:
-+ ver_int = sys.version_info[0] * 10 + sys.version_info[1]
-+ if port == 443 and ver_int >= 26: # Py >= 2.6
- signature_host = self.host
- else:
-+ # In versions < 2.6, Python's http_client would append ":443"
-+ # to the hostname sent in the Host header and so we needed to
-+ # make sure we did the same when calculating the V2 signature.
- signature_host = '%s:%d' % (self.host, port)
- return signature_host
-
---
-2.28.0
-
diff --git a/dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch b/dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch
deleted file mode 100644
index 1d109a3f4995..000000000000
--- a/dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-https://github.com/boto/boto/commit/d2cb697b32c297858ecc36701a5a4176818ab36d
-https://github.com/boto/boto/pull/2718
-https://github.com/boto/boto/pull/2893
-https://github.com/boto/boto/pull/3699
-
-From d2cb697b32c297858ecc36701a5a4176818ab36d Mon Sep 17 00:00:00 2001
-From: Cat Lee Ball <cball@google.com>
-Date: Mon, 10 Jun 2019 13:31:11 -0700
-Subject: [PATCH] Ensure binary strings sent to socket
-
-When running pre-release tests with proxied connections, it appeared a
-few spots in connection.py would fail under Python 3 since the
-socket.sendall method expects binary strings rather than unicode.
----
- boto/connection.py | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/boto/connection.py b/boto/connection.py
-index a0d89a51f49c..d084d1f881fb 100644
---- a/boto/connection.py
-+++ b/boto/connection.py
-@@ -796,17 +796,17 @@ class AWSAuthConnection(object):
- else:
- sock = socket.create_connection((self.proxy, int(self.proxy_port)))
- boto.log.debug("Proxy connection: CONNECT %s HTTP/1.0\r\n", host)
-- sock.sendall("CONNECT %s HTTP/1.0\r\n" % host)
-- sock.sendall("User-Agent: %s\r\n" % UserAgent)
-+ sock.sendall(six.ensure_binary("CONNECT %s HTTP/1.0\r\n" % host))
-+ sock.sendall(six.ensure_binary("User-Agent: %s\r\n" % UserAgent))
- if self.proxy_user and self.proxy_pass:
- for k, v in self.get_proxy_auth_header().items():
-- sock.sendall("%s: %s\r\n" % (k, v))
-+ sock.sendall(six.ensure_binary("%s: %s\r\n" % (k, v)))
- # See discussion about this config option at
- # https://groups.google.com/forum/?fromgroups#!topic/boto-dev/teenFvOq2Cc
- if config.getbool('Boto', 'send_crlf_after_proxy_auth_headers', False):
-- sock.sendall("\r\n")
-+ sock.sendall(six.ensure_binary("\r\n"))
- else:
-- sock.sendall("\r\n")
-+ sock.sendall(six.ensure_binary("\r\n"))
- resp = http_client.HTTPResponse(sock, strict=True, debuglevel=self.debug)
- resp.begin()
-
-@@ -814,9 +814,10 @@ class AWSAuthConnection(object):
- # Fake a socket error, use a code that make it obvious it hasn't
- # been generated by the socket library
- raise socket.error(-71,
-+ six.ensure_binary(
- "Error talking to HTTP proxy %s:%s: %s (%s)" %
- (self.proxy, self.proxy_port,
-- resp.status, resp.reason))
-+ resp.status, resp.reason)))
-
- # We can safely close the response, it duped the original socket
- resp.close()
---
-2.28.0
-
diff --git a/dev-python/boto/files/boto-2.49.0-py310.patch b/dev-python/boto/files/boto-2.49.0-py310.patch
deleted file mode 100644
index 7b427f1f15e3..000000000000
--- a/dev-python/boto/files/boto-2.49.0-py310.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git a/boto/dynamodb/types.py b/boto/dynamodb/types.py
-index d9aaaa4c..3f8d8601 100644
---- a/boto/dynamodb/types.py
-+++ b/boto/dynamodb/types.py
-@@ -27,7 +27,7 @@ Python types and vice-versa.
- import base64
- from decimal import (Decimal, DecimalException, Context,
- Clamped, Overflow, Inexact, Underflow, Rounded)
--from collections import Mapping
-+from collections.abc import Mapping
- from boto.dynamodb.exceptions import DynamoDBNumberError
- from boto.compat import filter, map, six, long_type
-
-diff --git a/boto/mws/connection.py b/boto/mws/connection.py
-index 687fae74..3a1f5f80 100644
---- a/boto/mws/connection.py
-+++ b/boto/mws/connection.py
-@@ -21,7 +21,7 @@
- import xml.sax
- import hashlib
- import string
--import collections
-+import collections.abc
- from boto.connection import AWSQueryConnection
- from boto.exception import BotoServerError
- import boto.mws.exception
-@@ -109,7 +109,7 @@ def http_body(field):
- def destructure_object(value, into, prefix, members=False):
- if isinstance(value, boto.mws.response.ResponseElement):
- destructure_object(value.__dict__, into, prefix, members=members)
-- elif isinstance(value, collections.Mapping):
-+ elif isinstance(value, collections.abc.Mapping):
- for name in value:
- if name.startswith('_'):
- continue
-@@ -117,7 +117,7 @@ def destructure_object(value, into, prefix, members=False):
- members=members)
- elif isinstance(value, six.string_types):
- into[prefix] = value
-- elif isinstance(value, collections.Iterable):
-+ elif isinstance(value, collections.abc.Iterable):
- for index, element in enumerate(value):
- suffix = (members and '.member.' or '.') + str(index + 1)
- destructure_object(element, into, prefix + suffix,
diff --git a/dev-python/boto/files/boto-2.49.0-py38.patch b/dev-python/boto/files/boto-2.49.0-py38.patch
deleted file mode 100644
index 0052c6e32e86..000000000000
--- a/dev-python/boto/files/boto-2.49.0-py38.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/boto/ecs/item.py b/boto/ecs/item.py
-index 79177a31..292b05af 100644
---- a/boto/ecs/item.py
-+++ b/boto/ecs/item.py
-@@ -21,7 +21,7 @@
-
-
- import xml.sax
--import cgi
-+import html
- from boto.compat import six, StringIO
-
- class ResponseGroup(xml.sax.ContentHandler):
-@@ -67,7 +67,7 @@ class ResponseGroup(xml.sax.ContentHandler):
- return None
-
- def endElement(self, name, value, connection):
-- self._xml.write("%s</%s>" % (cgi.escape(value).replace("&amp;amp;", "&amp;"), name))
-+ self._xml.write("%s</%s>" % (html.escape(value).replace("&amp;amp;", "&amp;"), name))
- if len(self._nodepath) == 0:
- return
- obj = None
-diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py
-index db15b56d..89d1a524 100644
---- a/tests/unit/utils/test_utils.py
-+++ b/tests/unit/utils/test_utils.py
-@@ -85,7 +85,7 @@ class TestPassword(unittest.TestCase):
- def hmac_hashfunc(cls, msg):
- if not isinstance(msg, bytes):
- msg = msg.encode('utf-8')
-- return hmac.new(b'mysecretkey', msg)
-+ return hmac.new(b'mysecretkey', msg, digestmod='MD5')
-
- class HMACPassword(Password):
- hashfunc = hmac_hashfunc
-@@ -95,15 +95,15 @@ class TestPassword(unittest.TestCase):
- password.set('foo')
-
- self.assertEquals(str(password),
-- hmac.new(b'mysecretkey', b'foo').hexdigest())
-+ hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest())
-
- def test_constructor(self):
-- hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg)
-+ hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg, digestmod='MD5')
-
- password = Password(hashfunc=hmac_hashfunc)
- password.set('foo')
- self.assertEquals(password.str,
-- hmac.new(b'mysecretkey', b'foo').hexdigest())
-+ hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest())
-
-
- class TestPythonizeName(unittest.TestCase):
diff --git a/dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch b/dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch
deleted file mode 100644
index 11d346a2199e..000000000000
--- a/dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From f5e7f6c98b46ff622f60a4661ffc9ce07216d109 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
-Date: Sat, 29 Sep 2018 21:47:11 +0200
-Subject: [PATCH] boto: try to add SNI support
-
-Add SNI support. Newer OpenSSL (with TLS1.3) fail to connect if the
-hostname is missing.
-
-Link: https://bugs.debian.org/bug=909545
-Tested-by: Witold Baryluk <witold.baryluk@gmail.com>
-Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
----
- boto/connection.py | 19 ++++++++++---------
- boto/https_connection.py | 22 +++++++++++-----------
- 2 files changed, 21 insertions(+), 20 deletions(-)
-
-diff --git a/boto/connection.py b/boto/connection.py
-index 34b428f101df7..b4867a7657465 100644
---- a/boto/connection.py
-+++ b/boto/connection.py
-@@ -778,8 +778,10 @@
-
- def proxy_ssl(self, host=None, port=None):
- if host and port:
-+ cert_host = host
- host = '%s:%d' % (host, port)
- else:
-+ cert_host = self.host
- host = '%s:%d' % (self.host, self.port)
- # Seems properly to use timeout for connect too
- timeout = self.http_connection_kwargs.get("timeout")
-@@ -824,23 +824,24 @@ DEFAULT_CA_CERTS_FILE = os.path.join(os.path.dirname(os.path.abspath(boto.cacert
- h = http_client.HTTPConnection(host)
-
- if self.https_validate_certificates and HAVE_HTTPS_CONNECTION:
-+ context = ssl.create_default_context()
-+ context.verify_mode = ssl.CERT_REQUIRED
-+ context.check_hostname = True
-+
- msg = "wrapping ssl socket for proxied connection; "
- if self.ca_certificates_file:
- msg += "CA certificate file=%s" % self.ca_certificates_file
-+ context.load_verify_locations(cafile=self.ca_certificates_file)
- else:
- msg += "using system provided SSL certs"
-+ context.load_default_certs()
- boto.log.debug(msg)
- key_file = self.http_connection_kwargs.get('key_file', None)
- cert_file = self.http_connection_kwargs.get('cert_file', None)
-- sslSock = ssl.wrap_socket(sock, keyfile=key_file,
-- certfile=cert_file,
-- cert_reqs=ssl.CERT_REQUIRED,
-- ca_certs=self.ca_certificates_file)
-- cert = sslSock.getpeercert()
-- hostname = self.host.split(':', 0)[0]
-- if not https_connection.ValidateCertificateHostname(cert, hostname):
-- raise https_connection.InvalidCertificateException(
-- hostname, cert, 'hostname mismatch')
-+ if key_file:
-+ context.load_cert_chain(certfile=cert_file, keyfile=key_file)
-+
-+ sslSock = context.wrap_socket(sock, server_hostname=cert_host)
- else:
- # Fallback for old Python without ssl.wrap_socket
- if hasattr(http_client, 'ssl'):
-diff --git a/boto/https_connection.py b/boto/https_connection.py
-index ddc31a152292e..a5076f6f9b261 100644
---- a/boto/https_connection.py
-+++ b/boto/https_connection.py
-@@ -119,20 +119,20 @@ from boto.compat import six, http_client
- sock = socket.create_connection((self.host, self.port), self.timeout)
- else:
- sock = socket.create_connection((self.host, self.port))
-+
-+ context = ssl.create_default_context()
-+ context.verify_mode = ssl.CERT_REQUIRED
-+ context.check_hostname = True
-+ if self.key_file:
-+ context.load_cert_chain(certfile=self.cert_file, keyfile=self.key_file)
-+
- msg = "wrapping ssl socket; "
- if self.ca_certs:
- msg += "CA certificate file=%s" % self.ca_certs
-+ context.load_verify_locations(cafile=self.ca_certs)
- else:
- msg += "using system provided SSL certs"
-+ context.load_default_certs()
- boto.log.debug(msg)
-- self.sock = ssl.wrap_socket(sock, keyfile=self.key_file,
-- certfile=self.cert_file,
-- cert_reqs=ssl.CERT_REQUIRED,
-- ca_certs=self.ca_certs)
-- cert = self.sock.getpeercert()
-- hostname = self.host.split(':', 0)[0]
-- if not ValidateCertificateHostname(cert, hostname):
-- raise InvalidCertificateException(hostname,
-- cert,
-- 'remote hostname "%s" does not match '
-- 'certificate' % hostname)
-+
-+ self.sock = context.wrap_socket(sock, server_hostname=self.host)
---
-2.19.0
-
diff --git a/dev-python/boto/files/boto-2.49.0-unbundle-six.patch b/dev-python/boto/files/boto-2.49.0-unbundle-six.patch
deleted file mode 100644
index 188dae7eb6fd..000000000000
--- a/dev-python/boto/files/boto-2.49.0-unbundle-six.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-use the system copy of six
-
---- a/boto/compat.py
-+++ b/boto/compat.py
-@@ -46,16 +46,16 @@ except (AttributeError, ImportError):
- # This is probably running on App Engine.
- expanduser = (lambda x: x)
-
--from boto.vendored import six
-+import six
-
--from boto.vendored.six import BytesIO, StringIO
--from boto.vendored.six.moves import filter, http_client, map, _thread, \
-+from six import BytesIO, StringIO
-+from six.moves import filter, http_client, map, _thread, \
- urllib, zip
--from boto.vendored.six.moves.queue import Queue
--from boto.vendored.six.moves.urllib.parse import parse_qs, quote, unquote, \
-+from six.moves.queue import Queue
-+from six.moves.urllib.parse import parse_qs, quote, unquote, \
- urlparse, urlsplit
--from boto.vendored.six.moves.urllib.parse import unquote_plus
--from boto.vendored.six.moves.urllib.request import urlopen
-+from six.moves.urllib.parse import unquote_plus
-+from six.moves.urllib.request import urlopen
-
- if six.PY3:
- # StandardError was removed, so use the base exception type instead
diff --git a/dev-python/bsddb3/Manifest b/dev-python/bsddb3/Manifest
deleted file mode 100644
index a291722f5c6b..000000000000
--- a/dev-python/bsddb3/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST bsddb3-6.2.9-fix-py3.10.patch.gz 3153 BLAKE2B dfdd00e90c683557bafe7d5f0d5c9a6f944fb8495bf1baef8857f6e771cef58c8e5feac9b3d345ebf6403ba73ceaa7f9077f221ad6bad9916b756e6605b30d3d SHA512 3c6157110c94b842811301f4e48c0f1690d9c75379abe7a04bf76f7136d25decbf79673ca2940c5dbb97802acc8c7a9312a24a79e7dfcc3971f9dc250353d732
-DIST bsddb3-6.2.9.tar.gz 230475 BLAKE2B 68c7c498d581dd5ca860060a3152f7ae135bbc75d00714764446d071e8ea88d303a73d1aa411db1ff8fc922aa6d486632fe38bef3596550150ed511a97fc9c9c SHA512 9e878ef865cba608fafe4274b660234927b9106323c3e4ddd728682b0f11b3c7edb9a3dd56cdfe8665eba890df4121695c9710b95bb2f43b8a0be3ec4050f61e
diff --git a/dev-python/bsddb3/bsddb3-6.2.9-r1.ebuild b/dev-python/bsddb3/bsddb3-6.2.9-r1.ebuild
deleted file mode 100644
index e8b12d6857e6..000000000000
--- a/dev-python/bsddb3/bsddb3-6.2.9-r1.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_IN_SOURCE_BUILD=1
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit db-use distutils-r1 pypi
-
-DESCRIPTION="Python bindings for Berkeley DB"
-HOMEPAGE="https://www.jcea.es/programacion/pybsddb.htm https://pypi.org/project/bsddb3/"
-SRC_URI+=" https://dev.gentoo.org/~arthurzam/patches/dev-python/${P}-fix-py3.10.patch.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
-
-RDEPEND="
- <sys-libs/db-6.1:=
- || (
- sys-libs/db:5.3
- sys-libs/db:4.8
- )
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${WORKDIR}/${P}-fix-py3.10.patch"
-)
-
-python_prepare_all() {
- # This list should be kept in sync with setup.py.
- if [[ -z ${DB_VER} ]]; then
- for DB_VER in 5.3 4.8; do
- has_version "sys-libs/db:${DB_VER}" && break
- done
- fi
-
- # Force version.
- sed -e "s/db_ver = None/db_ver = (${DB_VER%.*}, ${DB_VER#*.})/" \
- -e "s/dblib = 'db'/dblib = '$(db_libname ${DB_VER})'/" \
- -i setup2.py setup3.py || die
-
- # Adjust test.py to look in build/lib.
- sed -e "s/'lib.%s' % PLAT_SPEC/'lib'/" \
- -i test2.py test3.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_configure_all() {
- # These are needed for both build and install.
- export BERKELEYDB_DIR="${EPREFIX}/usr"
- export BERKELEYDB_INCDIR="$(db_includedir ${DB_VER})"
- export BERKELEYDB_LIBDIR="${EPREFIX}/usr/$(get_libdir)"
- export YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION=1
-}
-
-python_test() {
- PYTHONPATH=Lib3 "${EPYTHON}" test3.py -vv || die "Testing failed with ${EPYTHON}"
-}
diff --git a/dev-python/debugpy/Manifest b/dev-python/debugpy/Manifest
deleted file mode 100644
index c4d06f27e148..000000000000
--- a/dev-python/debugpy/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST debugpy-1.6.6.gh.tar.gz 6942488 BLAKE2B 18c6eee2322239e5cbbacf9431fa7480abcf14a68f290d2228edc8b2ead042e7b09d19ee5bcc60be32e8a6b0b34b925eaa8246991298744f3ca74d4ed2ea3f3e SHA512 1a209bfd702d5f0649ce50b0910023e295953dd39cefdefb0b5af1d6023e629a727610789cd244e656bdf4276cee957fa463506ddaca603ab3ee85cc250dc212
-DIST debugpy-1.8.0.gh.tar.gz 6760323 BLAKE2B 99c4188c0b0383dc4dcbdd86c4d35e6eb973ca32ba56b757adea9668b161f20f17b436e0dc019790b1e85586387fc848712143c5e3d3814e2522850d97a4048e SHA512 f9e47371ca854c12811d1c0984f063b1ad5cac2bea769f91a67f9fa125cfcbeccbecafca9b9d5ea16a4ed8a1c123f34db3ba19efe1567b93a86cbd325239b355
diff --git a/dev-python/debugpy/debugpy-1.6.6.ebuild b/dev-python/debugpy/debugpy-1.6.6.ebuild
deleted file mode 100644
index a3a61942f132..000000000000
--- a/dev-python/debugpy/debugpy-1.6.6.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1
-
-DESCRIPTION="An implementation of the Debug Adapter Protocol for Python"
-HOMEPAGE="https://github.com/microsoft/debugpy/ https://pypi.org/project/debugpy/"
-SRC_URI="
- https://github.com/microsoft/${PN}/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-
-# This is completely broken
-RESTRICT="test"
-
-RDEPEND="dev-python/pydevd[${PYTHON_USEDEP}]"
-BDEPEND="test? ( dev-python/pytest-timeout[${PYTHON_USEDEP}] )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.6.6-unbundle-pydevd.patch"
-)
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # Drop unnecessary and unrecognized option
- # __main__.py: error: unrecognized arguments: -n8
- # Do not timeout
- sed -e '/addopts/d' -e '/timeout/d' -i pytest.ini || die
-
- # Unbundle dev-python/pydevd
- rm -r src/debugpy/_vendored tests/tests/test_vendoring.py || die
-
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/debugpy/debugpy-1.8.0.ebuild b/dev-python/debugpy/debugpy-1.8.0.ebuild
deleted file mode 100644
index 619ba2e59029..000000000000
--- a/dev-python/debugpy/debugpy-1.8.0.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 multiprocessing
-
-DESCRIPTION="An implementation of the Debug Adapter Protocol for Python"
-HOMEPAGE="
- https://github.com/microsoft/debugpy/
- https://pypi.org/project/debugpy/
-"
-SRC_URI="
- https://github.com/microsoft/${PN}/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- dev-python/pydevd[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # Unbundle dev-python/pydevd
- rm -r src/debugpy/_vendored/pydevd || die
- local PATCHES=(
- "${FILESDIR}/${PN}-1.8.0-unbundle-pydevd.patch"
- )
-
- # Drop unnecessary and unrecognized option
- # __main__.py: error: unrecognized arguments: -n8
- # Do not timeout
- sed -e '/addopts/d' -e '/timeout/d' -i pytest.ini || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- tests/debugpy/test_gevent.py::test_gevent
- tests/debugpy/test_run.py::test_custom_python_args
- tests/tests/test_timeline.py::test_occurrences
- # TODO: random regressions
- tests/debugpy/test_flask.py::test_flask_breakpoint_multiproc
- tests/debugpy/test_exception.py::test_raise_exception_options
- tests/debugpy/test_exception.py::test_vsc_exception_options_raise_without_except
- )
- local EPYTEST_IGNORE=(
- tests/tests/test_vendoring.py
- )
-
- case ${EPYTHON} in
- python3.12)
- EPYTEST_DESELECT+=(
- tests/debugpy/test_flask.py
- )
- ;;
- esac
-
- epytest -p timeout -p xdist -n "$(makeopts_jobs)" --dist=worksteal \
- -k "not attach_pid"
-}
diff --git a/dev-python/debugpy/files/debugpy-1.6.6-unbundle-pydevd.patch b/dev-python/debugpy/files/debugpy-1.6.6-unbundle-pydevd.patch
deleted file mode 100644
index d285775c9246..000000000000
--- a/dev-python/debugpy/files/debugpy-1.6.6-unbundle-pydevd.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index 9a79e55..8725d19 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -8,7 +8,6 @@ exclude = '''
- ( __pycache__
- | ^/.tox
- | ^/versioneer.py
--| ^/src/debugpy/_vendored
- | ^/src/debugpy/_version.py
- )
- '''
-diff --git a/setup.py b/setup.py
-index 3abc811..c11924c 100644
---- a/setup.py
-+++ b/setup.py
-@@ -18,12 +18,10 @@ del sys.path[0]
-
- sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "src"))
- import debugpy
--import debugpy._vendored
-
- del sys.path[0]
-
-
--PYDEVD_ROOT = debugpy._vendored.project_root("pydevd")
- DEBUGBY_ROOT = os.path.dirname(os.path.abspath(debugpy.__file__))
-
-
-@@ -146,8 +144,6 @@ if __name__ == "__main__":
- extras["platforms"] = platforms
-
- cmds = versioneer.get_cmdclass()
-- override_build(cmds)
-- override_build_py(cmds)
-
- setuptools.setup(
- name="debugpy",
-@@ -183,14 +179,9 @@ if __name__ == "__main__":
- "debugpy.common",
- "debugpy.launcher",
- "debugpy.server",
-- "debugpy._vendored",
- ],
- package_data={
- "debugpy": ["ThirdPartyNotices.txt"],
-- "debugpy._vendored": [
-- # pydevd extensions must be built before this list can be computed properly,
-- # so it is populated in the overridden build_py.finalize_options().
-- ],
- },
- ext_modules=ExtModules(),
- has_ext_modules=lambda: True,
-diff --git a/src/debugpy/server/__init__.py b/src/debugpy/server/__init__.py
-index 42d5367..e333dcf 100644
---- a/src/debugpy/server/__init__.py
-+++ b/src/debugpy/server/__init__.py
-@@ -1,7 +1,3 @@
- # Copyright (c) Microsoft Corporation. All rights reserved.
- # Licensed under the MIT License. See LICENSE in the project root
- # for license information.
--
--# "force_pydevd" must be imported first to ensure (via side effects)
--# that the debugpy-vendored copy of pydevd gets used.
--import debugpy._vendored.force_pydevd # noqa
-diff --git a/src/debugpy/server/attach_pid_injected.py b/src/debugpy/server/attach_pid_injected.py
-index a8df6e1..a29a969 100644
---- a/src/debugpy/server/attach_pid_injected.py
-+++ b/src/debugpy/server/attach_pid_injected.py
-@@ -31,7 +31,6 @@ def attach(setup):
- pydevd_attach_to_process_path = os.path.join(
- _debugpy_dir,
- "debugpy",
-- "_vendored",
- "pydevd",
- "pydevd_attach_to_process",
- )
diff --git a/dev-python/debugpy/files/debugpy-1.8.0-unbundle-pydevd.patch b/dev-python/debugpy/files/debugpy-1.8.0-unbundle-pydevd.patch
deleted file mode 100644
index 54ccdae4ca01..000000000000
--- a/dev-python/debugpy/files/debugpy-1.8.0-unbundle-pydevd.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 0bb4f00..abfce1c 100644
---- a/setup.py
-+++ b/setup.py
-@@ -18,12 +18,10 @@ del sys.path[0]
-
- sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "src"))
- import debugpy
--import debugpy._vendored
-
- del sys.path[0]
-
-
--PYDEVD_ROOT = debugpy._vendored.project_root("pydevd")
- DEBUGBY_ROOT = os.path.dirname(os.path.abspath(debugpy.__file__))
-
-
-@@ -146,8 +144,6 @@ if __name__ == "__main__":
- extras["platforms"] = platforms
-
- cmds = versioneer.get_cmdclass()
-- override_build(cmds)
-- override_build_py(cmds)
-
- setuptools.setup(
- name="debugpy",
-diff --git a/src/debugpy/_vendored/force_pydevd.py b/src/debugpy/_vendored/force_pydevd.py
-index cfd8927..0cb1bca 100644
---- a/src/debugpy/_vendored/force_pydevd.py
-+++ b/src/debugpy/_vendored/force_pydevd.py
-@@ -8,15 +8,6 @@ import warnings
-
- from . import check_modules, prefix_matcher, preimport, vendored
-
--# Ensure that pydevd is our vendored copy.
--_unvendored, _ = check_modules('pydevd',
-- prefix_matcher('pydev', '_pydev'))
--if _unvendored:
-- _unvendored = sorted(_unvendored.values())
-- msg = 'incompatible copy of pydevd already imported'
-- # raise ImportError(msg)
-- warnings.warn(msg + ':\n {}'.format('\n '.join(_unvendored)))
--
- # If debugpy logging is enabled, enable it for pydevd as well
- if "DEBUGPY_LOG_DIR" in os.environ:
- os.environ[str("PYDEVD_DEBUG")] = str("True")
diff --git a/dev-python/debugpy/metadata.xml b/dev-python/debugpy/metadata.xml
deleted file mode 100644
index 3ff3ac74f088..000000000000
--- a/dev-python/debugpy/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>sci@gentoo.org</email>
- <name>Gentoo Science Project</name>
- </maintainer>
- <upstream>
- <maintainer status="unknown">
- <email>ptvshelp@microsoft.com</email>
- <name>Microsoft Corporation</name>
- </maintainer>
- </upstream>
- <origin>gentoo-staging</origin>
-</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/elastic-transport/Manifest b/dev-python/elastic-transport/Manifest
index 3b24c91d3e7a..c85820e2cbaa 100644
--- a/dev-python/elastic-transport/Manifest
+++ b/dev-python/elastic-transport/Manifest
@@ -1 +1,2 @@
DIST elastic-transport-python-8.12.0.gh.tar.gz 72207 BLAKE2B 7777484c965eb893cd7d2cba1d39c2b33a005e7f6d6b3c12dd1cd0fb4e5c396abf36686421817ba1272e814ffef299453c885a6dcc3efe5cacd753bcd621384e SHA512 45834ccb4793d7aa7c7d1774ef26381b7ff0cf69221cc628efeb63a7ff8b163a68ff7f0ef4fa3a2b5ffd45e9374441d8b61b8a9b900f9055ddd67425cf0d727a
+DIST elastic-transport-python-8.13.0.gh.tar.gz 75950 BLAKE2B 5a62d28ece9570d8fc4fff30cf04f88e7e138276054bb191c883c156995effcb750aef874836e5fb32cecedf79641f8faa08ab2e3c74bf5d0c2ba950f490ffb8 SHA512 65239951d56efa4273b8023cf4caa04f44196d0f9bcad91fe5376139adbd669d76a9c0e673f8eec23aadf107fea315216ecf95064acfa5eeb769ca3b92885fb6
diff --git a/dev-python/elastic-transport/elastic-transport-8.13.0.ebuild b/dev-python/elastic-transport/elastic-transport-8.13.0.ebuild
new file mode 100644
index 000000000000..839320ae23ff
--- /dev/null
+++ b/dev-python/elastic-transport/elastic-transport-8.13.0.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+MY_P=elastic-transport-python-${PV}
+DESCRIPTION="Transport classes and utilities shared among Python Elastic client libraries"
+HOMEPAGE="
+ https://github.com/elastic/elastic-transport-python/
+ https://pypi.org/project/elastic-transport/
+"
+SRC_URI="
+ https://github.com/elastic/elastic-transport-python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.26.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-api[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-sdk[${PYTHON_USEDEP}]
+ dev-python/orjson[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-httpserver[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/respx[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/furo \
+ dev-python/sphinx-autodoc-typehints
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e 's:, *<[0-9.]*::' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # fragile to random warnings
+ tests/node/test_http_aiohttp.py::TestAiohttpHttpNode::test_uses_https_if_verify_certs_is_off
+ tests/node/test_urllib3_chain_certs.py::test_assert_fingerprint_in_cert_chain
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -o addopts=
+}
diff --git a/dev-python/elasticsearch/Manifest b/dev-python/elasticsearch/Manifest
index 4860953e8c3f..20c55df59dbd 100644
--- a/dev-python/elasticsearch/Manifest
+++ b/dev-python/elasticsearch/Manifest
@@ -1 +1,2 @@
DIST elasticsearch-py-8.12.1.gh.tar.gz 909340 BLAKE2B 3c5823ccdfa291406b53cbee9d85d65703eb4bc91cf1e244afd1da355c6ed034c8c5f1eca0fca2a3497f2b49c20545f2dfbea8fd4944fe0a8933a753edbd02a2 SHA512 51206fd4dace033a698dc7c40a568f81d622b6d54c7f930a3bbbd719347dea656f82f04ab517a688d5c0fe835d73d4a041ff1945a2fa530c71a7c7c9621c9b00
+DIST elasticsearch-py-8.13.0.gh.tar.gz 1052777 BLAKE2B 90d6677fe40a635f33e37b4da90c0d8c6d3cde10a815932ee91b5e411162322edc22d13fe231b5d514f350a2b448ce1722e75426b5b5e08b711f3193d2963453 SHA512 fee1ba95d65be424f4ffeb65898bbafd5860358864d9706c82be663139e4543bce54c57bb21188c5ab6cdf5e15323cb1698bfb17715a7be38f844d3781840c97
diff --git a/dev-python/elasticsearch/elasticsearch-8.13.0.ebuild b/dev-python/elasticsearch/elasticsearch-8.13.0.ebuild
new file mode 100644
index 000000000000..218c890390d6
--- /dev/null
+++ b/dev-python/elasticsearch/elasticsearch-8.13.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+MY_P="elasticsearch-py-${PV}"
+DESCRIPTION="Official Elasticsearch client library for Python"
+HOMEPAGE="
+ https://ela.st/es-python
+ https://github.com/elastic/elasticsearch-py/
+ https://pypi.org/project/elasticsearch/
+"
+SRC_URI="
+ https://github.com/elastic/elasticsearch-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ <dev-python/aiohttp-4[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-3[${PYTHON_USEDEP}]
+ <dev-python/elastic-transport-9[${PYTHON_USEDEP}]
+ >=dev-python/elastic-transport-8.13[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/mapbox-vector-tile[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-api[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-sdk[${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"
+ # Running daemon for tests is finicky and upstream CI fails at it
+ # as well.
+ "test_elasticsearch/test_server/"
+ "test_elasticsearch/test_async/test_server/"
+)
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_test() {
+ local -x TEST_WITH_OTEL=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p asyncio
+}
diff --git a/dev-python/fb-re2/Manifest b/dev-python/fb-re2/Manifest
deleted file mode 100644
index c0cdb49aee40..000000000000
--- a/dev-python/fb-re2/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST pyre2-1.0.7.gh.tar.gz 11684 BLAKE2B 748a409aa56dab0e088961bdd0b8659dfe0ed817ed1f6fe1dce15fd03e32b30472776c4e21a4f39e66aa5b3539650a657c36acf8b857332b255a139ef0f890a9 SHA512 c4579bf73af2f0a5ccbb6a28b87ce777ef08199947c1bdf740b426960f41b3530c97a7158fac7768b51c92b8a3797f8e66de61e0c942f239920bd5397d63e2c4
diff --git a/dev-python/fb-re2/fb-re2-1.0.7-r1.ebuild b/dev-python/fb-re2/fb-re2-1.0.7-r1.ebuild
deleted file mode 100644
index 0b7fea4bc87a..000000000000
--- a/dev-python/fb-re2/fb-re2-1.0.7-r1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1
-
-MY_P=pyre2-${PV}
-DESCRIPTION="Python bindings for dev-libs/re2"
-HOMEPAGE="
- https://github.com/facebook/pyre2/
- https://pypi.org/project/fb-re2/
-"
-SRC_URI="
- https://github.com/facebook/pyre2/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="
- dev-libs/re2:=
-"
-RDEPEND="
- ${DEPEND}
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- # py3.12
- # https://github.com/facebook/pyre2/pull/26
- sed -e 's:assertRaisesRegexp:assertRaisesRegex:' \
- -i tests/test_match.py || die
- distutils-r1_src_prepare
-}
diff --git a/dev-python/fb-re2/metadata.xml b/dev-python/fb-re2/metadata.xml
deleted file mode 100644
index 4b844481d3ba..000000000000
--- a/dev-python/fb-re2/metadata.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>chutzpah@gentoo.org</email>
- <name>Patrick McLean</name>
- </maintainer>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
-
- <origin>gentoo-staging</origin>
-</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/flask-gravatar/Manifest b/dev-python/flask-gravatar/Manifest
deleted file mode 100644
index 4e741683fda4..000000000000
--- a/dev-python/flask-gravatar/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST Flask-Gravatar-0.5.0.tar.gz 17299 BLAKE2B 7dc16c609cdfbf690a39fbb3bd2810398030bd5c7a54394468902dd131116509da8de448a55907e4738fc984ef422f3c7970b8453b27971eadb106cbb8648562 SHA512 bb4ff064489a030fd763a46fc045109104535474d115aaabdf5c4d1a82a1e3303ee34f590a3f1203a9d009307fc8c45c37af7c30e76a4fb10bc46dd684d37751
diff --git a/dev-python/flask-gravatar/flask-gravatar-0.5.0-r2.ebuild b/dev-python/flask-gravatar/flask-gravatar-0.5.0-r2.ebuild
deleted file mode 100644
index cbf2a767a8b0..000000000000
--- a/dev-python/flask-gravatar/flask-gravatar-0.5.0-r2.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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_{8,9,10,11,12} )
-PYPI_NO_NORMALIZE=1
-PYPI_PN="Flask-Gravatar"
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Small extension for Flask to make usage of Gravatar service easy"
-HOMEPAGE="
- https://github.com/zzzsochi/Flask-Gravatar/
- https://pypi.org/project/Flask-Gravatar/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
-
-RDEPEND="
- <dev-python/flask-3[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/pytest-runner/d' setup.py || die
- sed -e 's:--pep8::' \
- -e 's:--cov=flask_gravatar --cov-report=term-missing::' \
- -i pytest.ini || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- cd tests || die
- epytest
-}
diff --git a/dev-python/flask-paginate/Manifest b/dev-python/flask-paginate/Manifest
index f384b23b80fb..9314730ab2c8 100644
--- a/dev-python/flask-paginate/Manifest
+++ b/dev-python/flask-paginate/Manifest
@@ -1 +1,2 @@
DIST flask-paginate-2023.10.24.gh.tar.gz 121423 BLAKE2B 100cad03bb015fd5aba26faeaa1d9a62489b85cc0bf36176507af206bb01bdadae3c53802b53483d1482250ab4f0004c9800c61c8c210966b59b1339894d43d5 SHA512 9673698e394f9e11d56dec1a8a57310a963cd15f2fa4784d92e5a8af5d9fbe8e4b59bbd7e34e4e50a38c3ddc936222c19497ddcc233564c4a6aa61c83cd78efa
+DIST flask-paginate-2024.3.28.gh.tar.gz 121638 BLAKE2B 55fe7570a84e5cce0c2e071bf2c5ef2ad8271f69aef7f8ec6bf1bfcbc4608e0498570907c22e01aaf961a6b75e698261b1931521b886c7e2e891a3539c6c91a0 SHA512 31cb4aacdbfbb50c0aced5aeb46c5bbaf25ee2e323ab321f8b1cd8d258b8cef1aa07e30e3b2bd1673662de0aced1f7d5c914ce2b9dbb54072a71ca7a8019d99f
diff --git a/dev-python/flask-paginate/flask-paginate-2024.3.28.ebuild b/dev-python/flask-paginate/flask-paginate-2024.3.28.ebuild
new file mode 100644
index 000000000000..c6922f41e473
--- /dev/null
+++ b/dev-python/flask-paginate/flask-paginate-2024.3.28.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pagination support for flask"
+HOMEPAGE="
+ https://flask-paginate.readthedocs.io/
+ https://github.com/lixxu/flask-paginate/
+ https://pypi.org/project/flask-paginate/
+"
+SRC_URI="
+ https://github.com/lixxu/flask-paginate/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/flask[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest tests/tests.py
+}
diff --git a/dev-python/injector/Manifest b/dev-python/injector/Manifest
new file mode 100644
index 000000000000..f1745d1ae1ee
--- /dev/null
+++ b/dev-python/injector/Manifest
@@ -0,0 +1 @@
+DIST 0.21.0.tar.gz 46600 BLAKE2B 0ccb732b3acb29fea981268ec3764bad7fae3d79a87880c302b59ca02e9f490ba6e974ebab8b336afa6356e66e2c37c810bbe5910381b6b010e3cbcd9323e507 SHA512 086eb61abc512574646cddef0a14d81fe45ad12f2f73658c6c2a31f45e0e793c7a32c0ce5bed768263bfd075f943349734e600e23cab67ab72a20e7a86899f6f
diff --git a/dev-python/injector/injector-0.21.0.ebuild b/dev-python/injector/injector-0.21.0.ebuild
new file mode 100644
index 000000000000..d85233fce526
--- /dev/null
+++ b/dev-python/injector/injector-0.21.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python dependency injection framework, inspired by Guice"
+HOMEPAGE="https://github.com/python-injector/injector"
+SRC_URI="https://github.com/python-injector/${PN}/archive/refs/tags/${PV}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ test? (
+ dev-python/pytest
+ dev-python/hypothesis
+ )
+"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )
+"
+
+
+python_compile_all() {
+ use doc && emake -C docs
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pendulum/metadata.xml b/dev-python/injector/metadata.xml
index e0ede33ab617..3a567a5f9d2e 100644
--- a/dev-python/pendulum/metadata.xml
+++ b/dev-python/injector/metadata.xml
@@ -2,9 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>jsmolic@gentoo.org</email>
- <name>Jakov Smolić</name>
+ <email>gonegrier.duarte@gmail.com</email>
+ <name>Gonçalo Negrier Duarte</name>
</maintainer>
- <origin>gentoo-staging</origin>
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/irc/Manifest b/dev-python/irc/Manifest
index 6a476a43188a..831c9481bae6 100644
--- a/dev-python/irc/Manifest
+++ b/dev-python/irc/Manifest
@@ -1 +1,2 @@
DIST irc-20.3.1.tar.gz 91115 BLAKE2B f2d89ee1a31edd163d3921f01e47ff865198a6cccf0efefe0a6a8ade2038dad91864f89756a4aaef578b85d57415cf6bda9f307250ead939d66e9fa0525d94bd SHA512 b8ecc313907c006d2dbf493e216a78d73e49e63a5c48f5672a4b33f0432a66e6c411b7807094f582a6be2d421bd020b2c7304cfbdcccfaeda046df4c370e1ba3
+DIST irc-20.4.0.tar.gz 91215 BLAKE2B 39244605b7ad47d4fd9c22b4040f14ad46ec79c339e1ffd8451fad04a3d2b7c4945d8474f4c9c9cf3c620cfc3b0298123ba21844849d5070cc85993f46997025 SHA512 ff75593cf9606c724232517c8340beb115ceda254acb5989c043bd0653f215b928b663570c98c27b845cc7431ea142514c85968e3e3b9bda0406ce799a2b1d2e
diff --git a/dev-python/irc/irc-20.4.0.ebuild b/dev-python/irc/irc-20.4.0.ebuild
new file mode 100644
index 000000000000..978d75a9e67f
--- /dev/null
+++ b/dev-python/irc/irc-20.4.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="IRC client framework written in Python"
+HOMEPAGE="
+ https://github.com/jaraco/irc/
+ https://pypi.org/project/irc/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="examples"
+
+RDEPEND="
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-1.20[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-itertools-1.8[${PYTHON_USEDEP}]
+ dev-python/jaraco-logging[${PYTHON_USEDEP}]
+ dev-python/jaraco-stream[${PYTHON_USEDEP}]
+ dev-python/jaraco-text[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/tempora-1.6[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-3.4.1[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/scripts"
+ dodoc -r scripts
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lxml/Manifest b/dev-python/lxml/Manifest
index 74f4f83fc993..4c919837a9fc 100644
--- a/dev-python/lxml/Manifest
+++ b/dev-python/lxml/Manifest
@@ -1,3 +1,4 @@
DIST lxml-4.9.3-patches-2.tar.xz 24288 BLAKE2B 47b7c486a1c1616c875111bd53b14d4211a1eee3f412985f4022e71b85b087abd71d36919fb025257f17de404329284898ddc639f85e8b15ade21778fa218d98 SHA512 713172b4c907db6479a0a803a842824825b212a9b645c1ca356f793658bd6c63113ea248278e7c46b512e22e3130696e9fc5127fea82a67372d920733fc160b0
DIST lxml-4.9.4.gh.tar.gz 960009 BLAKE2B 7d31095dcf1f73c1026e7378e6adb19a053edc116b119ae415c3324134d3700822bf4611dc3cbf7c216d396e1404b143c8ebfdfb7e5a71b9ef6ec187898cc699 SHA512 528ef4ae057a7ee54d3193a042a6db500ada883d1d506829b6824d91ec979feb69ec79239420112eae0e08a437b2e5da8efc35feb5d04d119bfae2679e918d29
DIST lxml-5.1.0.gh.tar.gz 962111 BLAKE2B 31c82eb198911d82fd9f7882bf94547b2367f3b3d1183eb8e8f97297b96faa69230d27b3367160b1f732a5d0878296b2d11787c3b220416c81a920e62ebec4f2 SHA512 1fadfeac1fb8b1e4fb1f7f2acb056865eb2567300a6c728eaede380d846ac75a6e33ebebcbbc6d60f54102152afd5dddf970058c4e27af396e9fa58e83c407a7
+DIST lxml-5.1.1.gh.tar.gz 963649 BLAKE2B 0cb7b4e39539ee962cd590b2b2dc644a111a094da9cbccc2ee0c29b9a758d8aca967f989693c76532252909dc44a96a3815273f04f28be2dbeb57d4daae2e6fd SHA512 bb479ca7dcce944a9a3597f67da1b12fb9f3a05592fb8342fe01bc569a86df95c32c7bf1bc0b9cfc0ddffb85adf12612fb2d8622a460357c1aaa56e033476375
diff --git a/dev-python/lxml/files/lxml-5.1.1-pypy.patch b/dev-python/lxml/files/lxml-5.1.1-pypy.patch
new file mode 100644
index 000000000000..2f6a75781fb8
--- /dev/null
+++ b/dev-python/lxml/files/lxml-5.1.1-pypy.patch
@@ -0,0 +1,162 @@
+diff --git a/src/lxml/tests/test_http_io.py b/src/lxml/tests/test_http_io.py
+index 8385e393..0b259299 100644
+--- a/src/lxml/tests/test_http_io.py
++++ b/src/lxml/tests/test_http_io.py
+@@ -10,3 +10,3 @@ import gzip
+
+-from .common_imports import etree, HelperTestCase, BytesIO, _bytes
++from .common_imports import etree, HelperTestCase, BytesIO, _bytes, IS_PYPY
+ from .dummy_http_server import webserver, HTTPRequestCollector
+@@ -14,2 +14,3 @@ from .dummy_http_server import webserver, HTTPRequestCollector
+
++@unittest.skipIf(IS_PYPY, "broken on pypy")
+ class HttpIOTestCase(HelperTestCase):
+diff --git a/src/lxml/tests/test_nsclasses.py b/src/lxml/tests/test_nsclasses.py
+index 750dc1ed..adbec11c 100644
+--- a/src/lxml/tests/test_nsclasses.py
++++ b/src/lxml/tests/test_nsclasses.py
+@@ -8,3 +8,3 @@ import unittest
+
+-from .common_imports import etree, HelperTestCase, _bytes, make_doctest
++from .common_imports import etree, HelperTestCase, _bytes, make_doctest, IS_PYPY
+
+@@ -45,2 +45,3 @@ class ETreeNamespaceClassesTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_ns_classes(self):
+diff --git a/src/lxml/tests/test_objectify.py b/src/lxml/tests/test_objectify.py
+index 1c8ff47c..326c5316 100644
+--- a/src/lxml/tests/test_objectify.py
++++ b/src/lxml/tests/test_objectify.py
+@@ -10,3 +10,4 @@ import unittest
+ from .common_imports import (
+- etree, HelperTestCase, fileInTestDir, doctest, make_doctest, _bytes, _str, BytesIO
++ etree, HelperTestCase, fileInTestDir, doctest, make_doctest, _bytes, _str, BytesIO,
++ IS_PYPY
+ )
+@@ -383,2 +384,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_setattr(self):
+@@ -818,2 +820,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_build_tree(self):
+@@ -847,2 +850,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_bool(self):
+@@ -884,2 +888,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str(self):
+@@ -891,2 +896,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_intliteral(self):
+@@ -898,2 +904,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_floatliteral(self):
+@@ -905,2 +912,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_mul(self):
+@@ -917,2 +925,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_add(self):
+@@ -992,2 +1001,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr(self):
+@@ -999,2 +1009,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_intliteral(self):
+@@ -1006,2 +1017,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_floatliteral(self):
+@@ -1013,2 +1025,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_mul(self):
+@@ -1025,2 +1038,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_add(self):
+@@ -1050,2 +1064,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_int(self):
+@@ -1066,2 +1081,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_float(self):
+@@ -1082,2 +1098,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_float_precision(self):
+@@ -1101,2 +1118,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_float_precision_consistency(self):
+@@ -1187,2 +1205,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_unregistered(self):
+@@ -1349,2 +1368,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_cmp(self):
+@@ -1376,2 +1396,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_int_cmp(self):
+@@ -1398,2 +1419,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_bool_cmp(self):
+@@ -2067,2 +2089,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_registered_type_stringify(self):
+@@ -2537,2 +2560,3 @@ class ObjectifyTestCase(HelperTestCase):
+ # type-looked-up as ObjectifiedElement (no annotations)
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_int(self):
+@@ -2542,2 +2566,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_float(self):
+@@ -2547,2 +2572,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_str(self):
+@@ -2552,2 +2578,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_unicode(self):
+@@ -2557,2 +2584,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_bool(self):
+@@ -2562,2 +2590,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_none(self):
+@@ -2567,2 +2596,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_value_concatenation(self):
+@@ -2577,2 +2607,3 @@ class ObjectifyTestCase(HelperTestCase):
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_nested(self):
+@@ -2745,3 +2776,4 @@ def test_suite():
+ suite.addTests(doctest.DocTestSuite(objectify))
+- suite.addTests([make_doctest('../../../doc/objectify.txt')])
++ if not IS_PYPY:
++ suite.addTests([make_doctest('../../../doc/objectify.txt')])
+ return suite
diff --git a/dev-python/lxml/lxml-5.1.1.ebuild b/dev-python/lxml/lxml-5.1.1.ebuild
new file mode 100644
index 000000000000..cb3445ce62a3
--- /dev/null
+++ b/dev-python/lxml/lxml-5.1.1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 optfeature toolchain-funcs
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="
+ https://lxml.de/
+ https://pypi.org/project/lxml/
+ https://github.com/lxml/lxml/
+"
+SRC_URI="
+ https://github.com/lxml/lxml/archive/${P}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S=${WORKDIR}/lxml-${P}
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc examples +threads test"
+RESTRICT="!test? ( test )"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+DEPEND="
+ >=dev-libs/libxml2-2.10.3
+ >=dev-libs/libxslt-1.1.38
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ virtual/pkgconfig
+ >=dev-python/cython-3.0.9[${PYTHON_USEDEP}]
+ doc? (
+ $(python_gen_any_dep '
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ ')
+ )
+ test? (
+ dev-python/cssselect[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.1.1-pypy.patch"
+)
+
+python_check_deps() {
+ use doc || return 0
+ python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
+}
+
+python_prepare_all() {
+ # avoid replacing PYTHONPATH in tests.
+ sed -i -e '/sys\.path/d' test.py || die
+
+ # don't use some random SDK on Darwin
+ sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \
+ setupinfo.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local DISTUTILS_ARGS=(
+ # by default it adds -w to CFLAGS
+ --warnings
+ )
+ tc-export PKG_CONFIG
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake html
+}
+
+python_test() {
+ local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ cp -al "${BUILD_DIR}"/{install,test} || die
+ cp -al src/lxml/tests "${dir}/" || die
+ cp -al src/lxml/html/tests "${dir}/html/" || die
+ ln -rs "${S}"/doc "${dir}"/../../ || die
+
+ "${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( README.rst *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ if use examples; then
+ dodoc -r samples
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4
+ optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect
+}
diff --git a/dev-python/nose/Manifest b/dev-python/nose/Manifest
deleted file mode 100644
index f3e9898480d9..000000000000
--- a/dev-python/nose/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST nose-1.3.7_p20221026.gh.tar.gz 325421 BLAKE2B 3762e1703a6a9c90d1569d21efa9ba100f52a8b3660022694133a763d995e19a6eef2398f5013b4827e4c334a2d5e3cd14a9704a50cd822c2d554a0ed6008f2c SHA512 3cb97b58525bee0cf88328ba865dc039bf3b76c56b4b42dd9dcf68f7b7585a91fb7e9b0c419668eccc0e242b2bcbb77eb197a0954ee9ad50051ef3af1a81dac3
diff --git a/dev-python/nose/nose-1.3.7_p20221026.ebuild b/dev-python/nose/nose-1.3.7_p20221026.ebuild
deleted file mode 100644
index f1c771a73bc9..000000000000
--- a/dev-python/nose/nose-1.3.7_p20221026.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# 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_{8,9,10,11,12} pypy3 )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1
-
-EGIT_COMMIT="8def1b4dcf2ef6b4a34bffdfacea0018a78b06b6"
-DESCRIPTION="Unittest extension with automatic test suite discovery and easy test authoring"
-HOMEPAGE="
- https://pypi.org/project/nose/
- https://nose.readthedocs.io/en/latest/
- https://github.com/nose-devs/nose
-"
-SRC_URI="
- https://github.com/arthurzam/nose/archive/${EGIT_COMMIT}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="examples test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- test? (
- $(python_gen_cond_dep '
- !hppa? ( dev-python/coverage[${PYTHON_USEDEP}] )
- ' python3_{8..10} pypy3)
- $(python_gen_cond_dep '
- dev-python/twisted[${PYTHON_USEDEP}]
- ' python3_{8..10})
- )
-"
-
-src_prepare() {
- # failing to find configuration file
- sed -e 's/test_cover_options_config_file/_&/' \
- -i unit_tests/test_cover_plugin.py || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- "${EPYTHON}" -m nose -v -a "!network" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-src_install() {
- distutils-r1_src_install
- use examples && dodoc -r examples
-}
diff --git a/dev-python/opentelemetry-api/Manifest b/dev-python/opentelemetry-api/Manifest
new file mode 100644
index 000000000000..82f3ae2ef0af
--- /dev/null
+++ b/dev-python/opentelemetry-api/Manifest
@@ -0,0 +1 @@
+DIST opentelemetry-python-1.23.0.gh.tar.gz 523456 BLAKE2B 94047e0d806ce17f0116fd6343daeecbf738c41e3e1cc1cbf8af9a0b1c44b29cecbc597011a7ffe15ffc656f2744750d9117d63bdaa77c7971248f58f9580c8e SHA512 8a2cb94d774db15eb6bb7fd97d5b761d35066779072c0ce0cf51b6d1083d115120b932598c0da2efb20060e8a4c65415a74f508011ccca7242e2d79705f0c246
diff --git a/dev-python/flask-gravatar/metadata.xml b/dev-python/opentelemetry-api/metadata.xml
index 85178d62aeca..0760d409bdf3 100644
--- a/dev-python/flask-gravatar/metadata.xml
+++ b/dev-python/opentelemetry-api/metadata.xml
@@ -3,11 +3,14 @@
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
- <name>Python</name>
</maintainer>
<maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
+ <email>parona@protonmail.com</email>
+ <name>Alfred Wingate</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<origin>gentoo-staging</origin>
diff --git a/dev-python/opentelemetry-api/opentelemetry-api-1.23.0.ebuild b/dev-python/opentelemetry-api/opentelemetry-api-1.23.0.ebuild
new file mode 100644
index 000000000000..485ea421a541
--- /dev/null
+++ b/dev-python/opentelemetry-api/opentelemetry-api-1.23.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="opentelemetry-python-${PV}"
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenTelemetry Python API"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-api/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/deprecated-1.2.6[${PYTHON_USEDEP}]
+ dev-python/importlib-metadata[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/asgiref[${PYTHON_USEDEP}]
+ dev-python/attrs[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/iniconfig[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/py-cpuinfo[${PYTHON_USEDEP}]
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/tomli[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/wrapt[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ default
+
+ # Unnecessary restriction
+ # https://github.com/open-telemetry/opentelemetry-python/pull/3576
+ sed -i -e '/importlib-metadata/s:, < 7.0::' pyproject.toml || die
+}
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in opentelemetry-semantic-conventions opentelemetry-sdk tests/opentelemetry-test-utils ; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest
+}
diff --git a/dev-python/opentelemetry-sdk/Manifest b/dev-python/opentelemetry-sdk/Manifest
new file mode 100644
index 000000000000..82f3ae2ef0af
--- /dev/null
+++ b/dev-python/opentelemetry-sdk/Manifest
@@ -0,0 +1 @@
+DIST opentelemetry-python-1.23.0.gh.tar.gz 523456 BLAKE2B 94047e0d806ce17f0116fd6343daeecbf738c41e3e1cc1cbf8af9a0b1c44b29cecbc597011a7ffe15ffc656f2744750d9117d63bdaa77c7971248f58f9580c8e SHA512 8a2cb94d774db15eb6bb7fd97d5b761d35066779072c0ce0cf51b6d1083d115120b932598c0da2efb20060e8a4c65415a74f508011ccca7242e2d79705f0c246
diff --git a/dev-python/boto/metadata.xml b/dev-python/opentelemetry-sdk/metadata.xml
index ea8988e8af6a..0760d409bdf3 100644
--- a/dev-python/boto/metadata.xml
+++ b/dev-python/opentelemetry-sdk/metadata.xml
@@ -3,7 +3,14 @@
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
- <name>Python</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>parona@protonmail.com</email>
+ <name>Alfred Wingate</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<origin>gentoo-staging</origin>
diff --git a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.23.0.ebuild b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.23.0.ebuild
new file mode 100644
index 000000000000..e7960d2bbf8a
--- /dev/null
+++ b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.23.0.ebuild
@@ -0,0 +1,79 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="opentelemetry-python-${PV}"
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenTelemetry Python SDK"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-sdk/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ ~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
+ ~dev-python/opentelemetry-semantic-conventions-${PV}[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/asgiref[${PYTHON_USEDEP}]
+ dev-python/attrs[${PYTHON_USEDEP}]
+ dev-python/deprecated[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/importlib-metadata[${PYTHON_USEDEP}]
+ dev-python/iniconfig[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/py-cpuinfo[${PYTHON_USEDEP}]
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/tomli[${PYTHON_USEDEP}]
+ dev-python/wrapt[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ default
+
+ # Use the same version with all opentelemetry components
+ # # https://github.com/gentoo/gentoo/pull/35962#issuecomment-2025466313
+ sed -i -e "s/\"\(opentelemetry-semantic-conventions == \).*\"/\"\1 ${PV}\"/" pyproject.toml || die
+}
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in tests/opentelemetry-test-utils; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ local -x EPYTEST_IGNORE=(
+ tests/performance/benchmarks/
+ )
+
+ epytest
+}
diff --git a/dev-python/opentelemetry-semantic-conventions/Manifest b/dev-python/opentelemetry-semantic-conventions/Manifest
new file mode 100644
index 000000000000..82f3ae2ef0af
--- /dev/null
+++ b/dev-python/opentelemetry-semantic-conventions/Manifest
@@ -0,0 +1 @@
+DIST opentelemetry-python-1.23.0.gh.tar.gz 523456 BLAKE2B 94047e0d806ce17f0116fd6343daeecbf738c41e3e1cc1cbf8af9a0b1c44b29cecbc597011a7ffe15ffc656f2744750d9117d63bdaa77c7971248f58f9580c8e SHA512 8a2cb94d774db15eb6bb7fd97d5b761d35066779072c0ce0cf51b6d1083d115120b932598c0da2efb20060e8a4c65415a74f508011ccca7242e2d79705f0c246
diff --git a/dev-python/nose/metadata.xml b/dev-python/opentelemetry-semantic-conventions/metadata.xml
index ea8988e8af6a..0760d409bdf3 100644
--- a/dev-python/nose/metadata.xml
+++ b/dev-python/opentelemetry-semantic-conventions/metadata.xml
@@ -3,7 +3,14 @@
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
- <name>Python</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>parona@protonmail.com</email>
+ <name>Alfred Wingate</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<origin>gentoo-staging</origin>
diff --git a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.23.0.ebuild b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.23.0.ebuild
new file mode 100644
index 000000000000..8efd5e979744
--- /dev/null
+++ b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.23.0.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="opentelemetry-python-${PV}"
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="OpenTelemetry Semantic Conventions"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-sdk/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ test? (
+ dev-python/asgiref[${PYTHON_USEDEP}]
+ dev-python/attrs[${PYTHON_USEDEP}]
+ dev-python/deprecated[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/importlib-metadata[${PYTHON_USEDEP}]
+ dev-python/iniconfig[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/py-cpuinfo[${PYTHON_USEDEP}]
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/tomli[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/wrapt[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ default
+
+ # Use the same version with all opentelemetry components
+ # https://github.com/gentoo/gentoo/pull/35962#issuecomment-2025466313
+ sed -i -e "s/\(__version__ =\) .*/\1 \"${PV}\"/" src/opentelemetry/semconv/version.py || die
+}
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in opentelemetry-api opentelemetry-sdk tests/opentelemetry-test-utils ; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest
+}
diff --git a/dev-python/pendulum/Manifest b/dev-python/pendulum/Manifest
deleted file mode 100644
index fe9a359637c6..000000000000
--- a/dev-python/pendulum/Manifest
+++ /dev/null
@@ -1,39 +0,0 @@
-DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
-DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
-DIST cc-1.0.79.crate 62624 BLAKE2B b3cbed3bd6fcac1c6ea258ec96cd107f859947a35dc89c3dc8f314741b0f668e61518f896ec32ce10c9a7eb20dd350bc177a71810d53ebea59fda062ed9d27db SHA512 cbf0a25f3a23fc540e9d638fabc23f761f1c240ebb4814e761e90437d71fc559cd155768ab9e78fc192220d8a605c66c3af342ed736b719181656170b98d7bf5
-DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
-DIST indoc-1.0.9.crate 13475 BLAKE2B a9696788574e56dd125c3371169fd59d6947d188f76e2669b21c0304692efd6709cd048920f7822e92c6a5620fb178e0e85c7776118cef8ccee0f58398e14abf SHA512 db8aef4a7bb606452dc8ed45aa29a255c7a135357a0bd586fb4429c5f56a1aa2ca9400d6fac39956aeb486a15d25cf5d1b9524967867f2c651d9d563e3e85be8
-DIST libc-0.2.139.crate 638983 BLAKE2B e92b296cf8c916e10e859722ed75f4790401662ff7aa2fe8ed84ef9b94a00538768be33c272f0881e42da887c8c43e1fd44d061343386216492a76fe5d308598 SHA512 ff5fae517c49c382dee9b1d7479b65b0a818780453e5c00c416847d02f42186e2fcf19a8a8dc5e9cc2611300690c6ad324f9c0f0e8172e913a1b781fb7c0b5b4
-DIST libmimalloc-sys-0.1.35.crate 184695 BLAKE2B 13d7793a67c6e2bf2377af59818c2e109e7b9f6d6415089970626b614bb33e96fd30bc962f820d5bb2beeefae6e155a30b7584e7027e3187f088c190eb8115f7 SHA512 7f9ef551d23d7e22073cf9d8593103a4ca17cf82b65b2bc1404dbfc2cec46c4f305ad9dfda9ca1c61e7ff3a617196c6798f505d62c90552dd25b4ba0c05e5847
-DIST lock_api-0.4.9.crate 25685 BLAKE2B 8adf5c3cccebdf6aff6ec977f230cd2a208b0b188ef57deacbbc6019431f0ede1a760b2384ba3cb49c96b8a589dc56c0f46a6359b3e62277e7ae1a1c3f586fa3 SHA512 9215381d9bb6b80d217c73a900db43df043b3e939b5bd7a292a02e9ab911cf0eacd8f883d35bdf72b3a0e78df8f1bc3e843ca4c775294c7a7a03091dc1a74990
-DIST memoffset-0.9.0.crate 9033 BLAKE2B 19090c1af8b8cf54a2cf7593748aff4d3dc685ec7080aa476139c1721ef71555495e1bc513b1efaddc7e7702f83e0e1c2a8f71ff40009d266539484c9297e0ed SHA512 2f04f9b6fed31e94388c18162ad275897a835df7b9ac827f4df0f4b0ecf71064ef247f7ad11dbc27d7a6d448984a0f29d1c000e3c8d5fa6e121fa9571770ec55
-DIST mimalloc-0.1.39.crate 3727 BLAKE2B f61007119805ec636fef03acb096c97ad65d1fdd548eb2c2b7d1fffb8bf4f2a1cdc0b27d05965adbe917390474f93499341084179ce82698bba87d8a58e52fbb SHA512 6fc9116ed74bca69ca4c4944c37ba235105c631960779a1becaafd2cdefb83566c8403e9636f73922bd7a628a168713d1e7651600c4dbf132b16cc9080ee23f3
-DIST once_cell-1.17.1.crate 32856 BLAKE2B 8bde2aaaf9ef45d1f6b8458686179f1fe9295ee8faea269e9b49779583ce26ab9dafe988c3584e841a9e5d05e28430ca967ef3b25e755f48f0120d9c99cdb7bc SHA512 1302d51801e38bfee23e74c0046f1ecb1d3c27309b5fe11c2b6c99553b357db502ce1718695602f9d8b10429e8ff03f91c016d5d604957083728293824c05904
-DIST parking_lot-0.12.1.crate 40967 BLAKE2B 940a112a066e3cbd15e2f6df89bfff37e4ece2194118618a96fa14871813c91798f93181ab0f768d3e1f3d60805508f216724013afb7e3da95678d0d951a42d4 SHA512 07327d3b737a913508dffb66023766348ce7f9d555c224a099cabb05baefd16a28e15fec638e3a148a5169dbd980c4541b0f8820ae9d06dfe0704482838fbd5c
-DIST parking_lot_core-0.9.7.crate 32412 BLAKE2B fec3ed2cf28e6d5090aae6a7c0ad583acf3ce6e54e881b78a9cb6721ca1e7040d46c044d405852728e74baff6ff1feaee7a89a64c69d20531f29942dfaafcc72 SHA512 1f232f1a87ba9377621244ba49378663f3113da7192a399fdb70be971ff5e5ca0d0601e1210a3fd8ab75ef464dc8505e719f81902e3448cce5e7848ef4bdbef0
-DIST pendulum-2.1.2.gh.tar.gz 159885 BLAKE2B c95cd131fc95a0d19ef11f180cc42126cb8a6ea3aaf4b3bbedbc5ce4c1b37a6624f2a1be92f1a6fd6b1f14f5d20fa5f32e8230f896ab7a216f02f00e85b98738 SHA512 c367320ade0d10b7eb9c880286176161b925d7df052f7de85ddd169594bbe778776ea74df451f00186df98be3e32b7399c68ca4b40123e2c456206410e3a1ab2
-DIST pendulum-3.0.0.gh.tar.gz 179981 BLAKE2B 5cbf0e2e504964e75c45ad41fcdab5a2ef0be91d9f4a8898305d15a5dc124abc3dc0986c7559d45091325bf4819f5e854ce87f92d534b24d1ac8c0852097df09 SHA512 f4cab40bec00029ccda44f15c71cf07a4518b6d86570b2f3425db2e3bb96151b22aa5065b1e21cc4b2b0cfef216f6af1ae6a16eb4efdb811dbdb18a7eab6c24a
-DIST proc-macro2-1.0.51.crate 41804 BLAKE2B 579e5a157da81cd8350a6407603e5f8102bb9b6618ea8e81ced1692a6a6f4b57bec35aeb965b643f2542f65a3b9965fbbcf7e0ade35cf159270583d34665a628 SHA512 10ad77a5d05437c1b2c40a8f82389d081e64993171aa6259e8dca98d9afb04f5fb870f2037ad626a280d59c1a89fd4482bead701d744d6fb7c893bd9e78dfc1f
-DIST pyo3-0.19.1.crate 418297 BLAKE2B 19ad6aa4fba175961b7fe97ae0bc45050f930859972b1b25cf0139bb3436c050ba76b63894f0df26174f141a52ac6abf10fd84c03c056af5a0665e723ae24195 SHA512 b27500cf49f1c6f217d21344d24ac96c07b82c157dd36fa4550b94059da5715ba7d0e085ec07dd5f8a8ac9de4d7e9239c1cceac4337294eb0dc9f6102049d5ff
-DIST pyo3-build-config-0.19.1.crate 29205 BLAKE2B f88cbf9763fd68f7b30d109ae608efc29e0d4bf6672ee5f31b77342b5f37baa4f981916124af6897ccea3d93990ff889815fc3abbe9ce3fdbd860b6d5698b7da SHA512 311fef01ac2c3ce12485849cb99eba038a36260206308c5af4621fc5393f942e03aae4f6a5fe24ef3005eb781d2161453667ad552d6a371ddd96460b05a2e710
-DIST pyo3-ffi-0.19.1.crate 64837 BLAKE2B deb3065ce99b4bd3b5dee182f7cc20dbbb1792e792e78425f30a71ad3e45aa8552f99f02debd640e16db44cbcad58f67b04ca6e08cb964e788d41dca64500a0c SHA512 6293d75c71ebe80c320f0a240716a2e0c62f66aecc58320f2f40a81f85390c7d9174b4888ead89818b73fdc8d3d21df12adc6625087f0c9ebb82767d4a7c5adc
-DIST pyo3-macros-0.19.1.crate 7173 BLAKE2B b8d53ed51e2454abb77528c9e08315f288718dca08888bc24752f156942c27ffff75c88504bddcf05cc89d16b3fd2cd86280b0b94bd09947a2ffa4c800dfde68 SHA512 2c12cff4a8af948f9ecaadb83d1ed5199758f9e9c626c5930a1b74c65027a8b74dcf989ee470798aeff7c1165650d5d3dd75cb1f813859b7b8e241cd2bb8f2eb
-DIST pyo3-macros-backend-0.19.1.crate 49916 BLAKE2B 930774ee7ec936bbefc4ea81e2496cd15438dc82954ec7b85c0bc42b290b41c60869f8b31e109ba16a373d3ebf1e0058c0c7ef7d4911ae40feb99fb61d66a745 SHA512 7c7949588a15ef57b12f11e903c1110228bb653212761c97ff50399aa39be97108b471a2cdf47afb307f6c86bfb24b3e9ab32fd08e0550ee27e8808f2acd5145
-DIST python3-dll-a-0.2.9.crate 66092 BLAKE2B 2c4baa31df7f55da8f1c6073525b4498bae7207ee38ef0eba4dbe58088609937a7d7b851c603ae62e5eb5361881e67a05d8c112d0a76aba5d99b13cdccd59d59 SHA512 1914d3ce67284f13551a4efefaeb9c11138fcca3d5082746282f64b7a36f732c6834766d981f27d862a61410eed09b3d281e0cab8cc1a46d424d04823ffaee35
-DIST quote-1.0.23.crate 28058 BLAKE2B 81c483fa26b36b5c4dbe85b386a74f5bfeaa854a99c0d678374507613da916a60e3f5b14d4a4d295e1c9ef0413fa1f16447df8f19a9db8cb0485b7a5c327fdc1 SHA512 3bce6846dda94d285de15771549099e60df39c8395c498b372c90a240f77df31d6d9048127913ec1c7ed8f3a189470ade1db2bede406bb00fa715ea641ec87c2
-DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27
-DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d
-DIST smallvec-1.10.0.crate 31564 BLAKE2B e3e46a0781d3a7892a739b001592d462d0704f010363984c439e3fe4f75aecb9720648aa1e9bcc56bb3be848dd40cee578212439f78f07a807c9441c3c3e0147 SHA512 a09110184582dcc01d7a0d3fa8f74c17bf726935126d3654667b8e9c4bc43ad16ccfd8fa94feae7d9b31913aa7ee030fe5936e4b44a36302b6ce5fe37372a7ae
-DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
-DIST target-lexicon-0.12.6.crate 24357 BLAKE2B 5d9aef958155bdc1b546b9940083cf81ba4c638525e2d46340e50c4274764b39ac19a12214f3ff64a6830524a2ecea9d555db3f07d5d7dbccd7dd809255c4499 SHA512 63ccc047d10ebff55c3b9be400e2deafcaba7beb28ee67bae6d5df58e7c08362b2c4e0004f6daa582928850701969015ad43714c7ad46df665474667ff4db58f
-DIST unicode-ident-1.0.6.crate 42158 BLAKE2B 6e4ef61fcac69b4ccbf743a2c2f857a6ea9fcbac9b9890f5b7208cc0732c6892aa5889b3030e87c8c29ce4ce24ddb7adec6bcf47b7aefe9cb5d19f920f12cfbd SHA512 ee1dc78fe535f46bdaf3e19dd8dfc859bf3133d9271026cadf626a07ba586c39caca4e45d905156a6276cf852f9cebef196b2229c3ba4b5e2b26c956fd6cff86
-DIST unindent-0.1.11.crate 7700 BLAKE2B d4d1dde410c4194acb51f74f374cf11fa872e49fad8f5f24b596d72476403e5e312fedf7b0bcb1027384d53c8de565368d63c30eaf70a6e6cd958b82e5288ca3 SHA512 f800d6c37fe72477908c91457a738a73d2b8085bb5ae303d6d954405d6ccd98833b5da16a12c3ad1ab75d32a68dedc706dfaacc0fcbb95571dd829cdc03a356a
-DIST windows-sys-0.45.0.crate 2568659 BLAKE2B 6f2d634d121a9bf41e2887e277a73f33aee69b04c7fcfc6ff973d21902787997f1e186f530e9226cddc003ffc3f85a179c069c8a8688de459f617df92d33f94f SHA512 f239346c0141b95aa76e0771e2f4e38b9a592f3cd92c6001de353637cd65cd73b94cbf9917a4eaa9b0c0b2e6e2af920b9cf6b3fccb52770df5160254cffc1c47
-DIST windows-targets-0.42.1.crate 5524 BLAKE2B 755cb6184733417763bb650fb0bd84bc757503aacbf0d91b811d42e9e8efda05434bbe5518006a88937a82a2a607605a9b609df4f34eb58674d09564667d95f3 SHA512 940c85f6214aa4da17787d3bbfe8d6107a9a7fe4f2e2fcf2b1634facf4619620ac2a7a835ebdd0f57970c992c459ba0a780e64e89945005b240c92563c42711a
-DIST windows_aarch64_gnullvm-0.42.1.crate 362795 BLAKE2B 722b45789bcd1d973803b327d44072fbf9c904d448e29ae9e56d2f9d1a3e9b64e06883e4bf5ebf141f1e924235858fd1472e07a744cc5b16a0a3a4fc8ec8f6d4 SHA512 51eb9fa7ea441a9fef590c12576a8bbef74932d40fafde8f9e3a28f2734ce5aee6dd5fa478fb3847443241c8c392bb4abbc6014c71260bf924431779f7184f73
-DIST windows_aarch64_msvc-0.42.1.crate 664655 BLAKE2B f4a060b802016a6d77a8ea6ac44c35dfec384acef9c45f932e2b6aca9d3ac48ae031f99e5b58f270d6020b8796e9dd06f7e8ffa7cc5610ea3f69181c2be7adc8 SHA512 f6412bae4b041201ef94e5a159ce90fd6b09816350204d4f573c1afdfb0a6d62d7887fbc2e416b40ec1d4478db521be492edf4703d87482d6d0006a51b827538
-DIST windows_i686_gnu-0.42.1.crate 733428 BLAKE2B c1ca24973aca06b255d9317735cca7a13f7f69293da52dad41df43a5cdf48aac3d40d8b6765cf564905fb71cb548308d757f01167efe7a61da7bd2e2a7080f0a SHA512 61c3271b07df1d4585c875d27cf1686c8f595dcbb79626e8d15ff47228f7b7a4556d3d994566ccceee0d6795a4c76767f85f4579282fc9eed731e04c7e193a57
-DIST windows_i686_msvc-0.42.1.crate 722583 BLAKE2B e03978daa0ac95d7bd9f594b28360dab647a1fe525f0ae4b44e6842d93c5674d9f202e8bbca99a0d30ecf7d138af0c48eec8e69e08bf285db51e32bcf83a2c54 SHA512 8afa4f92cb7bd96d4fdbefbd8e7bcaa37dee52224d5d8b950c5a537d3bb805bf9781097b8bd44d96e8b62b1290e3a3020557502fa3b357a53df6fea36b318932
-DIST windows_x86_64_gnu-0.42.1.crate 697614 BLAKE2B 3cef0a3da3ce142bbdf932dbb54eb6473070c5722c9ec791dc4077efe2d774d51f8b3d06b3321f8f21cc49764f44d54b3432ee7a0d9376925b422b197f5d557e SHA512 f4c16b587fe407dee1f39df029c52302a0fbd5f519816a8d974fe9c2f928043b14037c701c0f3c9cf2e5c765e82430fd4b71615fe63a66a88159f7b15506f892
-DIST windows_x86_64_gnullvm-0.42.1.crate 362788 BLAKE2B fff81e63b86ad04ce22ad3e05ec4cc02c0b791384c93bafb50832f6db9cb7fd9301ad3845339a08dd8cadac1d59f3e8dc9d5f56d7a987989dbfc16b9131af67b SHA512 8cc988b5995a4726bb7518b7fccff528274ad9b2b0160fe247eb240f9ced10db95afe7bff91bfc5a08ebd8237b6821e4a4abad1ff9da45022f1ce7e7586bcf05
-DIST windows_x86_64_msvc-0.42.1.crate 664606 BLAKE2B 6c460cfa392aad0d11add200d652a42ee1a60052570527c4e85405f765255375729d4e26287f5246dcad65fa89ccadea23c5135171b311e6da5027e33149c547 SHA512 a651b1a34f101125f929c1d1f5e933691c7a5c19d0bb0c501fb6812236d2771805428e3bd5e05be7d72715595f5fc9e7978dd7934e5d92e9b78a41c2ece695b2
diff --git a/dev-python/pendulum/files/pendulum-3.0.0-system-tzdata.patch b/dev-python/pendulum/files/pendulum-3.0.0-system-tzdata.patch
deleted file mode 100644
index c99bbb3ca9ea..000000000000
--- a/dev-python/pendulum/files/pendulum-3.0.0-system-tzdata.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0143f10dfcc94f5cba1a83912e055026a0282c19 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Fri, 2 Feb 2024 17:48:55 +0100
-Subject: [PATCH] Fix `pendulum.tz.timezones()` to use system tzdata
-
-Fix the `pendulum.tz.available_timezones()` to use
-`available_timezones()` function instead of iterating over the files
-in `tzdata` package. This is more in line with PEP 615, as the system
-timezone functions will operate on system-provided tzdata when
-available, and use the `tzdata` package only if it's not available.
-Therefore, the previous code would yield a potentially different list
-of timezones than the system actually provides.
-
-Furthermore, Gentoo provides a dummy `tzdata` package that does not
-provide any data, since Python always uses system tzdata. This change
-is necessary to make pendulum work again on Gentoo.
-
-Fixes #769
----
- src/pendulum/tz/__init__.py | 10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/src/pendulum/tz/__init__.py b/src/pendulum/tz/__init__.py
-index 36c2c692..8dc64705 100644
---- a/src/pendulum/tz/__init__.py
-+++ b/src/pendulum/tz/__init__.py
-@@ -9,7 +9,7 @@
- from pendulum.tz.timezone import UTC
- from pendulum.tz.timezone import FixedTimezone
- from pendulum.tz.timezone import Timezone
--from pendulum.utils._compat import resources
-+from pendulum.utils._zoneinfo import available_timezones
-
-
- PRE_TRANSITION = "pre"
-@@ -22,13 +22,7 @@
-
-
- def timezones() -> tuple[str, ...]:
-- global _timezones
--
-- if _timezones is None:
-- with cast(Path, resources.files("tzdata").joinpath("zones")).open() as f:
-- _timezones = tuple(tz.strip() for tz in f.readlines())
--
-- return _timezones
-+ return available_timezones()
-
-
- def fixed_timezone(offset: int) -> FixedTimezone:
diff --git a/dev-python/pendulum/pendulum-2.1.2-r2.ebuild b/dev-python/pendulum/pendulum-2.1.2-r2.ebuild
deleted file mode 100644
index a186611ffcad..000000000000
--- a/dev-python/pendulum/pendulum-2.1.2-r2.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=poetry
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="Drop-in replacement for the standard datetime class"
-HOMEPAGE="
- https://pendulum.eustace.io/
- https://github.com/sdispater/pendulum/
- https://pypi.org/project/pendulum/
-"
-SRC_URI="
- https://github.com/sdispater/pendulum/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-DEPEND="
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/pytzdata[${PYTHON_USEDEP}]
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- test? (
- dev-python/Babel[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_DESELECT=(
- # sigh
- tests/datetime/test_behavior.py::test_proper_dst
- tests/tz/test_timezone.py::test_dst
-)
-
-distutils_enable_tests pytest
diff --git a/dev-python/pendulum/pendulum-3.0.0-r1.ebuild b/dev-python/pendulum/pendulum-3.0.0-r1.ebuild
deleted file mode 100644
index e5cbe1c62fee..000000000000
--- a/dev-python/pendulum/pendulum-3.0.0-r1.ebuild
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-CRATES="
- autocfg@1.1.0
- bitflags@1.3.2
- cc@1.0.79
- cfg-if@1.0.0
- indoc@1.0.9
- libc@0.2.139
- libmimalloc-sys@0.1.35
- lock_api@0.4.9
- memoffset@0.9.0
- mimalloc@0.1.39
- once_cell@1.17.1
- parking_lot@0.12.1
- parking_lot_core@0.9.7
- proc-macro2@1.0.51
- pyo3-build-config@0.19.1
- pyo3-ffi@0.19.1
- pyo3-macros-backend@0.19.1
- pyo3-macros@0.19.1
- pyo3@0.19.1
- python3-dll-a@0.2.9
- quote@1.0.23
- redox_syscall@0.2.16
- scopeguard@1.1.0
- smallvec@1.10.0
- syn@1.0.109
- target-lexicon@0.12.6
- unicode-ident@1.0.6
- unindent@0.1.11
- windows-sys@0.45.0
- windows-targets@0.42.1
- windows_aarch64_gnullvm@0.42.1
- windows_aarch64_msvc@0.42.1
- windows_i686_gnu@0.42.1
- windows_i686_msvc@0.42.1
- windows_x86_64_gnu@0.42.1
- windows_x86_64_gnullvm@0.42.1
- windows_x86_64_msvc@0.42.1
-"
-
-inherit cargo distutils-r1
-
-DESCRIPTION="Drop-in replacement for the standard datetime class"
-HOMEPAGE="
- https://pendulum.eustace.io/
- https://github.com/sdispater/pendulum/
- https://pypi.org/project/pendulum/
-"
-SRC_URI="
- https://github.com/sdispater/pendulum/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016
-"
-SLOT="0"
-
-RDEPEND="
- >=dev-python/python-dateutil-2.6[${PYTHON_USEDEP}]
- >=dev-python/tzdata-2020.1[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/time-machine-2.6.0[${PYTHON_USEDEP}]
- ' 'python*')
-"
-BDEPEND="
- test? (
- dev-python/Babel[${PYTHON_USEDEP}]
- >=dev-python/pytz-2022.1[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- # https://github.com/sdispater/pendulum/pull/801
- "${FILESDIR}/${P}-system-tzdata.patch"
-)
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/pendulum/_pendulum.*.so"
diff --git a/dev-python/pplpy/pplpy-0.8.10.ebuild b/dev-python/pplpy/pplpy-0.8.10.ebuild
index ae075099d56c..21d3c234db07 100644
--- a/dev-python/pplpy/pplpy-0.8.10.ebuild
+++ b/dev-python/pplpy/pplpy-0.8.10.ebuild
@@ -35,6 +35,11 @@ BDEPEND="
doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
"
+python_compile() {
+ # https://bugs.gentoo.org/927770
+ distutils-r1_python_compile -j1
+}
+
python_compile_all() {
rm -r ppl || die
use doc && build_sphinx docs/source
diff --git a/dev-python/python-lsp-server/Manifest b/dev-python/python-lsp-server/Manifest
index 074dfdd8de91..e3f88173cdcc 100644
--- a/dev-python/python-lsp-server/Manifest
+++ b/dev-python/python-lsp-server/Manifest
@@ -1,2 +1,3 @@
DIST python-lsp-server-1.10.0.tar.gz 112917 BLAKE2B 2429e136ea2732d3bdfc2c77424a864364a7eb98bd447273d514fa53238b1ec276d46a51e558be8d959f100cd4dcfadf3a3eac996aa49b6b011babea84e8e3a8 SHA512 342452a5e3b1ae448a993f64501b2162b286f009026f1b5d306621c4befd0188699fc682206d50d06a93d8780862c8476186f8d0e4bb20592ddbbade1276445c
DIST python-lsp-server-1.10.1.tar.gz 113136 BLAKE2B d1e39e3354d5ab67bb465265c6c3514f25ba4857fa3379e502d3c40b456f6d228c63ad759af1832b4d089fb93a03c7f3d6797cea4079b63cdc58e3591e9d783a SHA512 4c8e6a72ef6004248a5cb4a1e4c251b9d487cd4ce39d6c7268ce611c8537d6a5912eeb49d2eb1a25c230934b17e9a624504591c25f0291e07971eeccb70b09ba
+DIST python-lsp-server-1.11.0.tar.gz 113347 BLAKE2B d8417fb63447c5130d88dd6583ef0dc0c724076b22006a59da914a10440e67a4fc2362fd677a45b257fcca804c965920d54ff47568ad607e49f05d13d6d3e1ee SHA512 bd96850b822dc3c2e97d5ee38f25c9f7731dc68b31fedcc2d3e0ff373bc3ad8a989f1a4b85527477bbbc875e853d5513d8583bc3cdc22a3c0545716e68382093
diff --git a/dev-python/python-lsp-server/python-lsp-server-1.11.0.ebuild b/dev-python/python-lsp-server/python-lsp-server-1.11.0.ebuild
new file mode 100644
index 000000000000..67b76ea993c4
--- /dev/null
+++ b/dev-python/python-lsp-server/python-lsp-server-1.11.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Python Language Server for the Language Server Protocol"
+HOMEPAGE="
+ https://github.com/python-lsp/python-lsp-server/
+ https://pypi.org/project/python-lsp-server/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="all-plugins"
+
+RDEPEND="
+ dev-python/docstring-to-markdown[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.17.2[${PYTHON_USEDEP}]
+ >=dev-python/python-lsp-jsonrpc-1.1.0[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ all-plugins? (
+ >=dev-python/autopep8-2.0.4[${PYTHON_USEDEP}]
+ >=dev-python/flake8-7[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/pycodestyle-2.11.0[${PYTHON_USEDEP}]
+ >=dev-python/pyflakes-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pylint-3.1[${PYTHON_USEDEP}]
+ >=dev-python/whatthepatch-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/yapf-0.33.0[${PYTHON_USEDEP}]
+ >=dev-python/rope-1.11.0[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/autopep8-1.6.0[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ >=dev-python/flake8-5.0.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.7.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pycodestyle-2.9.0[${PYTHON_USEDEP}]
+ >=dev-python/pyflakes-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/pylint-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/whatthepatch-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/yapf-0.33.0[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/QtPy[gui,testlib,${PYTHON_USEDEP}]
+ >=dev-python/rope-1.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+# Note: xdist breaks some tests
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # remove pytest-cov dep
+ sed -i -e '/addopts =/d' pyproject.toml || die
+ # unpin all the deps
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by presence of pathlib2
+ 'test/plugins/test_autoimport.py'
+ )
+ local EPYTEST_IGNORE=(
+ # pydocstyle is archived upstream and broken with py3.12
+ test/plugins/test_pydocstyle_lint.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "Automatically format Python code to conform to the PEP 8 style guide" dev-python/autopep8
+ optfeature "A wrapper around PyFlakes, pep8 & mccabe" dev-python/flake8
+ optfeature "flake8 plugin: McCabe complexity checker" dev-python/mccabe
+ optfeature "Python style guide checker (fka pep8)" dev-python/pycodestyle
+ optfeature "Python docstring style checker" dev-python/pydocstyle
+ optfeature "Passive checker for Python programs" dev-python/pyflakes
+ optfeature "Python code static checker" dev-python/pylint
+ optfeature "Python refactoring library" dev-python/rope
+ optfeature "A formatter for Python files" dev-python/yapf
+}
diff --git a/dev-python/qtawesome/Manifest b/dev-python/qtawesome/Manifest
index 9b397de7e16b..7454788d7211 100644
--- a/dev-python/qtawesome/Manifest
+++ b/dev-python/qtawesome/Manifest
@@ -1 +1,2 @@
DIST QtAwesome-1.3.0.tar.gz 2375398 BLAKE2B ed4f33b7f1fe7c54b4794247032a65638f4b1527ac460274486c673d767332c5aab64bc27924738914147e674e17c23e0e23e728fa32af8925fce7f58b417d17 SHA512 536918a63a22555b52abd66302f020f91df8ee75e8e806b258780944e143275245a73a4f215e2626eaf1d844552426fc1b45eff4e5de05a268b8b9179492cd7e
+DIST QtAwesome-1.3.1.tar.gz 2372190 BLAKE2B d7a0a0d5ac1ff8e60e14ce407a2220ef9bc5463304274df7d04a00178b3021dd4f5e35c028a4038f53adf04c85eabd8e33b10c59d57804733265ee17d5875563 SHA512 6b50a4fce231331ec05497905f4fb1e7d91d5bbc9dfd963f3b2dd649d3d28f20436d1c3aed574457ff4afaf277d0e53b371ead7e0ddfb208ab8a4b5ddd4bc2f1
diff --git a/dev-python/qtawesome/qtawesome-1.3.1.ebuild b/dev-python/qtawesome/qtawesome-1.3.1.ebuild
new file mode 100644
index 000000000000..ad4d275e13d9
--- /dev/null
+++ b/dev-python/qtawesome/qtawesome-1.3.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Enables iconic fonts such as Font Awesome in PyQt"
+HOMEPAGE="
+ https://github.com/spyder-ide/qtawesome/
+ https://pypi.org/project/QtAwesome/
+"
+SRC_URI="$(pypi_sdist_url --no-normalize QtAwesome)"
+S="${WORKDIR}/QtAwesome-${PV}"
+
+LICENSE="MIT"
+# bundled fonts
+# -------------
+# Font Awesome, Elusive Icons: OFL-1.1
+# Phosphor: MIT
+# Material Design Icons, Remix Icon: Apache-2.0
+# Codicons: CC-BY-4.0
+LICENSE+=" Apache-2.0 CC-BY-4.0 MIT OFL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ media-fonts/fontawesome
+ dev-python/QtPy[gui,${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-qt[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs/source \
+ dev-python/sphinx-rtd-theme
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ nonfatal epytest || die -n "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/respx/Manifest b/dev-python/respx/Manifest
new file mode 100644
index 000000000000..899bbf1b2a9f
--- /dev/null
+++ b/dev-python/respx/Manifest
@@ -0,0 +1 @@
+DIST respx-0.21.1.gh.tar.gz 432341 BLAKE2B b375e8bc9370e13855197487e1e8139cf3fede0f03d7ad034ef2c78bce5ad95d3cb8cc7440c2566d188a98a52d0068c13288c7d4ec802e04d2f269a64e1ce326 SHA512 156f34f4635012230b68812f24978136f37f96dc0cf0ea9e80ed2d6a3e0639eb7591ed34933f75d5cda32993852aa034b22389af0fed341ab4ad1002482f2e9c
diff --git a/dev-python/bsddb3/metadata.xml b/dev-python/respx/metadata.xml
index 853174b8f2ab..0760d409bdf3 100644
--- a/dev-python/bsddb3/metadata.xml
+++ b/dev-python/respx/metadata.xml
@@ -3,8 +3,16 @@
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
- <name>Python</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>parona@protonmail.com</email>
+ <name>Alfred Wingate</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<origin>gentoo-staging</origin>
+ <stabilize-allarches/>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/respx/respx-0.21.1.ebuild b/dev-python/respx/respx-0.21.1.ebuild
new file mode 100644
index 000000000000..f187ce1cfa07
--- /dev/null
+++ b/dev-python/respx/respx-0.21.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Mock HTTPX with awesome request patterns and response side effects"
+HOMEPAGE="
+ https://lundberg.github.io/respx/
+ https://pypi.org/project/respx/
+ https://github.com/lundberg/respx/
+"
+# no tests in pypi sdist
+SRC_URI="
+ https://github.com/lundberg/respx/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/httpx[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/httpcore[${PYTHON_USEDEP}]
+ dev-python/starlette[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -p 'no:*' -o addopts=
+}
diff --git a/dev-python/sip/Manifest b/dev-python/sip/Manifest
index e3cd2d269ac7..7ee71215d482 100644
--- a/dev-python/sip/Manifest
+++ b/dev-python/sip/Manifest
@@ -1 +1,2 @@
+DIST sip-6.8.3.gh.tar.gz 585528 BLAKE2B 2a58edba0f7ca9da02399df9fe71f152ef8446c38886ca2a21c00ef3ac65e0a82493a6047120d6f786e5b26f974c9cac24a329f1a52d9c47f9669afe2f0789b4 SHA512 6ff5fa59a55d71a3303553d2c53879fc9ccc01b9db34da149a7b81e252613327c7390c5a2edeaec03381dbc36ed38aa4ce44d69560c277ecc3875a57e7d75a60
DIST sip-6.8.3.tar.gz 987656 BLAKE2B 57cc4010aae64eec7e0f338d9653463c7381b639aa8efca978a3f3296550a37b3a09b52933a2c2cd354a65155841952d7ca045b0b774945a382c29a8d597951e SHA512 8a0ff1c16ead4c2b1c53963a015fb3d149362f649eeec2523e6b243945493f28f5ecf29aabbf5cee5f7909ded40d64a1f469d2d0c1b3c33244e6213ab23ec733
diff --git a/dev-python/sip/sip-6.8.3.ebuild b/dev-python/sip/sip-6.8.3.ebuild
index b5022c695bfc..c6612950618c 100644
--- a/dev-python/sip/sip-6.8.3.ebuild
+++ b/dev-python/sip/sip-6.8.3.ebuild
@@ -5,13 +5,16 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
inherit distutils-r1 pypi
DESCRIPTION="Python bindings generator for C/C++ libraries"
-HOMEPAGE="
- https://github.com/Python-SIP/sip/
- https://pypi.org/project/sip/
+HOMEPAGE="https://github.com/Python-SIP/sip/"
+# gh does not include a way to generate some files, so combine with pypi
+SRC_URI+="
+ test? (
+ https://github.com/Python-SIP/sip/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ )
"
LICENSE="|| ( GPL-2 GPL-3 SIP )"
@@ -25,3 +28,4 @@ RDEPEND="
"
distutils_enable_sphinx doc --no-autodoc
+distutils_enable_tests pytest
diff --git a/dev-python/tempest/Manifest b/dev-python/tempest/Manifest
index ce5ad50a5bd9..dbcabce075d7 100644
--- a/dev-python/tempest/Manifest
+++ b/dev-python/tempest/Manifest
@@ -1 +1,2 @@
DIST tempest-37.0.0.tar.gz 1146330 BLAKE2B 51acf1e0e8ce3a95d54e7b916100c32cee34f9546166fd43883f9bd5c4d4aad7d846b17c4c805392b64b9a0a02fea903c59b799f14d7e459d337eeb11c62cb6a SHA512 1de0e26c86a59c0e3f3dc494d4fdb4d3ca5ab215c1d52b34b4618e9c939ecd59b29c09bccb31bed7911517edce4cae4f9acbd2d1e28be75b0305850230528c67
+DIST tempest-38.0.0.tar.gz 1148398 BLAKE2B 2905b24ebad4b5e5c83575f0d51de7eae23567dc508367a1c7a40eccbde33990152f7eebe6b7af7b9a1379b72178684b2dbf1e6d87b848b85c06ace98c8f4116 SHA512 d3a57b73e58b4898abc57e004da4a7d7e544612c498d03d4b8b2e88b36f5a160c2e74e6fea0ebd022f86dc6eb963125c45df8b932e7e012210a36e9318b548cd
diff --git a/dev-python/tempest/tempest-38.0.0.ebuild b/dev-python/tempest/tempest-38.0.0.ebuild
new file mode 100644
index 000000000000..ee7a3645bd36
--- /dev/null
+++ b/dev-python/tempest/tempest-38.0.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="OpenStack Integration Testing"
+HOMEPAGE="
+ https://pypi.org/project/tempest/
+ https://docs.openstack.org/tempest/latest/
+ https://launchpad.net/tempest/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >dev-python/cliff-2.9.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/paramiko-2.7.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-4.7.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
+ >=dev-python/subunit-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.21.1[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/fasteners-0.16.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ dev-python/stestr[${PYTHON_USEDEP}]
+ )
+"
+
+src_prepare() {
+ # Small subset of tests, which fail as result of not using specific
+ # testing environment.
+ rm -r tempest/tests/lib/services/volume/v3/ || die
+
+ # remove dep on hacking
+ rm tempest/tests/test_hacking.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ mv "${BUILD_DIR}"/install/{usr/,}etc || die
+}
+
+python_test() {
+ local -x OS_LOG_CAPTURE=1 OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1
+ local -x OS_TEST_TIMEOUT=300
+ stestr --test-path ./tempest/tests run --concurrency="$(makeopts_jobs)" ||
+ die "Tests failed for ${EPYTHON}"
+}