mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-08 06:32:59 -04:00
99 lines
2.7 KiB
Bash
99 lines
2.7 KiB
Bash
# Copyright 2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
DISTUTILS_USE_PEP517=uv-build
|
|
PYTHON_COMPAT=( python3_{12..14} )
|
|
|
|
inherit distutils-r1 optfeature
|
|
|
|
DESCRIPTION="Async Key-Value Store - A pluggable interface for KV Stores"
|
|
HOMEPAGE="
|
|
https://github.com/strawgate/py-key-value
|
|
https://pypi.org/project/py-key-value-aio/
|
|
"
|
|
MY_PN="py-key-value"
|
|
SRC_URI="
|
|
https://github.com/strawgate/${MY_PN}/archive/refs/tags/${PV}.tar.gz
|
|
-> ${P}.gh.tar.gz"
|
|
S="${WORKDIR}/${MY_PN}-${PV}"
|
|
|
|
LICENSE="Apache-2.0"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm64"
|
|
|
|
RDEPEND="
|
|
>=dev-python/beartype-0.20.0[${PYTHON_USEDEP}]
|
|
>=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}]
|
|
"
|
|
BDEPEND="
|
|
test? (
|
|
>=dev-python/aiofile-3.5.0[${PYTHON_USEDEP}]
|
|
>=dev-python/anyio-4.4.0[${PYTHON_USEDEP}]
|
|
>=dev-python/cachetools-5.0.0[${PYTHON_USEDEP}]
|
|
>=dev-python/cryptography-45.0.0[${PYTHON_USEDEP}]
|
|
>=dev-python/dirty-equals-0.10.0[${PYTHON_USEDEP}]
|
|
>=dev-python/diskcache-5.0.0[${PYTHON_USEDEP}]
|
|
>=dev-python/pathvalidate-3.3.1[${PYTHON_USEDEP}]
|
|
>=dev-python/pydantic-2.11.9[${PYTHON_USEDEP}]
|
|
)
|
|
"
|
|
|
|
EPYTEST_PLUGINS=(
|
|
inline-snapshot
|
|
pytest-{asyncio,mock,timeout}
|
|
)
|
|
EPYTEST_XDIST=1
|
|
distutils_enable_tests pytest
|
|
|
|
EPYTEST_IGNORE=(
|
|
# We can't test most stores due to missing dependencies and/or Docker use
|
|
tests/stores/aerospike/
|
|
tests/stores/azure_tables/
|
|
tests/stores/duckdb/
|
|
tests/stores/dynamodb/
|
|
tests/stores/elasticsearch/
|
|
tests/stores/firestore/
|
|
tests/stores/keyring/
|
|
tests/stores/memcached/
|
|
tests/stores/mongodb/
|
|
tests/stores/opensearch/
|
|
tests/stores/postgresql
|
|
tests/stores/redis/
|
|
tests/stores/rocksdb/
|
|
tests/stores/s3/
|
|
tests/stores/valkey/
|
|
tests/stores/vault/
|
|
)
|
|
|
|
src_prepare() {
|
|
distutils-r1_src_prepare
|
|
|
|
# Disable Docker-dependent tests
|
|
sed -e '/def should_run_docker_tests() -> bool:/a \ return False' \
|
|
-e '/def should_skip_docker_tests() -> bool:/a \ return True' \
|
|
-i "tests/conftest.py" || die
|
|
}
|
|
|
|
python_test() {
|
|
epytest -o asyncio_mode=auto --dist=loadfile
|
|
}
|
|
|
|
pkg_postinst() {
|
|
optfeature "disk- and file-backed cache" "dev-python/diskcache >=dev-python/pathvalidate-3.3.1"
|
|
optfeature "encryption wrappers" dev-python/cryptography
|
|
|
|
optfeature_header "Install optional key-value store backends:"
|
|
optfeature "Elasticsearch" "dev-python/elasticsearch dev-python/aiohttp"
|
|
optfeature "File-tree" "dev-python/aiofile dev-python/anyio"
|
|
optfeature "system keyring" "dev-python/keyring dev-python/dbus-python"
|
|
optfeature "memory" dev-python/cachetools
|
|
optfeature "MongoDB" dev-python/pymongo
|
|
optfeature "OpenSearch" dev-python/opensearch-py
|
|
optfeature "PostgreSQL" dev-python/asyncpg
|
|
optfeature "Pydantic" ">=dev-python/pydantic-2.11.9"
|
|
optfeature "Redis" dev-python/redis
|
|
optfeature "HashiCorp Vault" dev-python/hvac
|
|
}
|