mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-09 15:13:31 -04:00
dev-python/backoff: new package, add 2.2.1
Upstream is dead. I'll maintain here until dev-util/mock migrates to another library. https://github.com/litl/backoff/issues/211 Signed-off-by: Takuya Wakazono <pastalian46@gmail.com>
This commit is contained in:
1
dev-python/backoff/Manifest
Normal file
1
dev-python/backoff/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST backoff-2.2.1.gh.tar.gz 20194 BLAKE2B a137ad67574b20535d5c29fad5781d0f7baaeeead23a5c8ccc3f1c48a952bf4436e75753e329861fb20bdc6fbe2b5e6d75b30d0fdca9908edfa540a593b3b353 SHA512 ed98c50d544d4ac3214b03005e5d183b0aeefd568c89769b59115ecc67ba7f7ea29a58e6ebf8488026a95ff2a1155e798782b04bebc9315c6a3682540bb38dff
|
||||
39
dev-python/backoff/backoff-2.2.1.ebuild
Normal file
39
dev-python/backoff/backoff-2.2.1.ebuild
Normal file
@@ -0,0 +1,39 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=poetry
|
||||
PYTHON_COMPAT=( python3_{11..14} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Function decoration for backoff and retry"
|
||||
HOMEPAGE="
|
||||
https://github.com/litl/backoff/
|
||||
https://pypi.org/project/backoff/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/litl/backoff/archive/v${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DOCS=( README.rst )
|
||||
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/responses[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-pytest-asyncio-compat.patch"
|
||||
)
|
||||
|
||||
EPYTEST_PLUGINS=( pytest-asyncio )
|
||||
distutils_enable_tests pytest
|
||||
@@ -0,0 +1,85 @@
|
||||
https://github.com/litl/backoff/pull/224
|
||||
Adapt test cases to pytest-asyncio 1.0 compatibility
|
||||
|
||||
- Remove deprecated event_loop fixture
|
||||
https://pytest-asyncio.readthedocs.io/en/stable/reference/changelog.html#removed
|
||||
- Drop *_without_event_loop tests
|
||||
These incompatible tests (*1) are no longer needed since the
|
||||
underlying code has already been removed (introduced in a460156,
|
||||
removed in 5d714ccd).
|
||||
|
||||
*1: asyncio.get_event_loop() now raises a RuntimeError in Python 3.14
|
||||
when no loop exists.
|
||||
https://docs.python.org/3.14/whatsnew/3.14.html#id7
|
||||
--- a/tests/test_backoff_async.py
|
||||
+++ b/tests/test_backoff_async.py
|
||||
@@ -665,7 +665,7 @@ async def exceptor():
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
-async def test_on_exception_coro_cancelling(event_loop):
|
||||
+async def test_on_exception_coro_cancelling():
|
||||
sleep_started_event = asyncio.Event()
|
||||
|
||||
@backoff.on_predicate(backoff.expo)
|
||||
@@ -679,59 +679,10 @@ async def coro():
|
||||
|
||||
return False
|
||||
|
||||
- task = event_loop.create_task(coro())
|
||||
+ task = asyncio.create_task(coro())
|
||||
|
||||
await sleep_started_event.wait()
|
||||
|
||||
task.cancel()
|
||||
|
||||
assert (await task)
|
||||
-
|
||||
-
|
||||
-def test_on_predicate_on_regular_function_without_event_loop(monkeypatch):
|
||||
- monkeypatch.setattr('time.sleep', lambda x: None)
|
||||
-
|
||||
- # Set default event loop to None.
|
||||
- loop = asyncio.get_event_loop()
|
||||
- asyncio.set_event_loop(None)
|
||||
-
|
||||
- try:
|
||||
- @backoff.on_predicate(backoff.expo)
|
||||
- def return_true(log, n):
|
||||
- val = (len(log) == n - 1)
|
||||
- log.append(val)
|
||||
- return val
|
||||
-
|
||||
- log = []
|
||||
- ret = return_true(log, 3)
|
||||
- assert ret is True
|
||||
- assert 3 == len(log)
|
||||
-
|
||||
- finally:
|
||||
- # Restore event loop.
|
||||
- asyncio.set_event_loop(loop)
|
||||
-
|
||||
-
|
||||
-def test_on_exception_on_regular_function_without_event_loop(monkeypatch):
|
||||
- monkeypatch.setattr('time.sleep', lambda x: None)
|
||||
-
|
||||
- # Set default event loop to None.
|
||||
- loop = asyncio.get_event_loop()
|
||||
- asyncio.set_event_loop(None)
|
||||
-
|
||||
- try:
|
||||
- @backoff.on_exception(backoff.expo, KeyError)
|
||||
- def keyerror_then_true(log, n):
|
||||
- if len(log) == n:
|
||||
- return True
|
||||
- e = KeyError()
|
||||
- log.append(e)
|
||||
- raise e
|
||||
-
|
||||
- log = []
|
||||
- assert keyerror_then_true(log, 3) is True
|
||||
- assert 3 == len(log)
|
||||
-
|
||||
- finally:
|
||||
- # Restore event loop.
|
||||
- asyncio.set_event_loop(loop)
|
||||
13
dev-python/backoff/metadata.xml
Normal file
13
dev-python/backoff/metadata.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>pastalian46@gmail.com</email>
|
||||
<name>Takuya Wakazono</name>
|
||||
</maintainer>
|
||||
<stabilize-allarches/>
|
||||
<upstream>
|
||||
<remote-id type="github">litl/backoff</remote-id>
|
||||
<remote-id type="pypi">backoff</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user