mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-04-07 03:10:15 -04:00
dev-python/litestar: new package, add 2.21.1
Signed-off-by: Alfred Wingate <parona@protonmail.com> Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
This commit is contained in:
1
dev-python/litestar/Manifest
Normal file
1
dev-python/litestar/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST litestar-2.21.1.gh.tar.gz 2954454 BLAKE2B e25249995e390027266bf94eac23feb73a6b4730d71f8e4384e22ddb80ecb4d7df9710b27e54a5eb3bdb5b6aeb44aef7d390a9db849280f11419c283a0c77d2a SHA512 214989cf82d49feb57a1bfcc6ac57604088b544e6ccb10492269f207490ce019e73432982644707028baaee3067ee905106f93607f33776b13b4b2ef4575a566
|
||||
98
dev-python/litestar/files/litestar-2.19.0-no-valkey.patch
Normal file
98
dev-python/litestar/files/litestar-2.19.0-no-valkey.patch
Normal file
@@ -0,0 +1,98 @@
|
||||
diff --git a/tests/conftest.py b/tests/conftest.py
|
||||
index 846899814..9f0df8bc1 100644
|
||||
--- a/tests/conftest.py
|
||||
+++ b/tests/conftest.py
|
||||
@@ -18,8 +18,6 @@ from pytest_lazy_fixtures import lf
|
||||
from redis.asyncio import Redis as AsyncRedis
|
||||
from redis.client import Redis
|
||||
from time_machine import Coordinates, travel
|
||||
-from valkey.asyncio import Valkey as AsyncValkey
|
||||
-from valkey.client import Valkey
|
||||
|
||||
from litestar.logging import LoggingConfig
|
||||
from litestar.middleware.session import SessionMiddleware
|
||||
@@ -31,7 +29,6 @@ from litestar.stores.base import Store
|
||||
from litestar.stores.file import FileStore
|
||||
from litestar.stores.memory import MemoryStore
|
||||
from litestar.stores.redis import RedisStore
|
||||
-from litestar.stores.valkey import ValkeyStore
|
||||
from litestar.testing import RequestFactory
|
||||
from tests.helpers import not_none
|
||||
|
||||
@@ -85,11 +82,6 @@ def redis_store(redis_client: AsyncRedis) -> RedisStore:
|
||||
return RedisStore(redis=redis_client)
|
||||
|
||||
|
||||
-@pytest.fixture()
|
||||
-def valkey_store(valkey_client: AsyncValkey) -> ValkeyStore:
|
||||
- return ValkeyStore(valkey=valkey_client)
|
||||
-
|
||||
-
|
||||
@pytest.fixture()
|
||||
def memory_store() -> MemoryStore:
|
||||
return MemoryStore()
|
||||
@@ -115,7 +107,6 @@ def file_store_create_directories_flag_false(tmp_path: Path) -> FileStore:
|
||||
@pytest.fixture(
|
||||
params=[
|
||||
pytest.param("redis_store", marks=pytest.mark.xdist_group("redis")),
|
||||
- pytest.param("valkey_store", marks=pytest.mark.xdist_group("valkey")),
|
||||
"memory_store",
|
||||
"file_store",
|
||||
]
|
||||
@@ -341,20 +332,6 @@ async def redis_client(docker_ip: str, redis_service: None) -> AsyncGenerator[As
|
||||
pass
|
||||
|
||||
|
||||
-@pytest.fixture()
|
||||
-async def valkey_client(docker_ip: str, valkey_service: None) -> AsyncGenerator[AsyncValkey, None]:
|
||||
- # this is to get around some weirdness with pytest-asyncio and valkey interaction
|
||||
- # on 3.8 and 3.9
|
||||
-
|
||||
- Valkey(host=docker_ip, port=6381).flushall()
|
||||
- client: AsyncValkey = AsyncValkey(host=docker_ip, port=6381)
|
||||
- yield client
|
||||
- try:
|
||||
- await client.aclose()
|
||||
- except RuntimeError:
|
||||
- pass
|
||||
-
|
||||
-
|
||||
@pytest.fixture(autouse=True)
|
||||
def _patch_openapi_config(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
monkeypatch.setattr("litestar.app.DEFAULT_OPENAPI_CONFIG", OpenAPIConfig(title="Litestar API", version="1.0.0"))
|
||||
diff --git a/tests/docker_service_fixtures.py b/tests/docker_service_fixtures.py
|
||||
index 84e78d48e..6efca3697 100644
|
||||
--- a/tests/docker_service_fixtures.py
|
||||
+++ b/tests/docker_service_fixtures.py
|
||||
@@ -13,8 +13,6 @@ import asyncpg
|
||||
import pytest
|
||||
from redis.asyncio import Redis as AsyncRedis
|
||||
from redis.exceptions import ConnectionError as RedisConnectionError
|
||||
-from valkey.asyncio import Valkey as AsyncValkey
|
||||
-from valkey.exceptions import ConnectionError as ValkeyConnectionError
|
||||
|
||||
from litestar.utils import ensure_async_callable
|
||||
|
||||
@@ -129,21 +127,6 @@ async def redis_service(docker_services: DockerServiceRegistry) -> None:
|
||||
await docker_services.start("redis", check=redis_responsive)
|
||||
|
||||
|
||||
-async def valkey_responsive(host: str) -> bool:
|
||||
- client: AsyncValkey = AsyncValkey(host=host, port=6381)
|
||||
- try:
|
||||
- return await client.ping()
|
||||
- except (ConnectionError, ValkeyConnectionError):
|
||||
- return False
|
||||
- finally:
|
||||
- await client.aclose()
|
||||
-
|
||||
-
|
||||
-@pytest.fixture()
|
||||
-async def valkey_service(docker_services: DockerServiceRegistry) -> None:
|
||||
- await docker_services.start("valkey", check=valkey_responsive)
|
||||
-
|
||||
-
|
||||
async def postgres_responsive(host: str) -> bool:
|
||||
try:
|
||||
conn = await asyncpg.connect(
|
||||
|
||||
151
dev-python/litestar/litestar-2.21.1.ebuild
Normal file
151
dev-python/litestar/litestar-2.21.1.ebuild
Normal file
@@ -0,0 +1,151 @@
|
||||
# Copyright 2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=hatchling
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
inherit distutils-r1 #pypi
|
||||
|
||||
DESCRIPTION="Light, flexible and extensible ASGI framework"
|
||||
HOMEPAGE="
|
||||
https://github.com/litestar-org/litestar/
|
||||
https://pypi.org/project/litestar/
|
||||
"
|
||||
# no tests in sdist
|
||||
SRC_URI="
|
||||
https://github.com/litestar-org/litestar/archive/refs/tags/v${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/anyio-3[${PYTHON_USEDEP}]
|
||||
dev-python/click[${PYTHON_USEDEP}]
|
||||
>=dev-python/httpx-0.22[${PYTHON_USEDEP}]
|
||||
>=dev-python/litestar-htmx-0.4.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/msgspec-0.18.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/multidict-6.0.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/multipart-1.2.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/polyfactory-2.6.3[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
>=dev-python/rich-13.0.0[${PYTHON_USEDEP}]
|
||||
dev-python/rich-click[${PYTHON_USEDEP}]
|
||||
>=dev-python/sniffio-1.3.1[${PYTHON_USEDEP}]
|
||||
dev-python/typing-extensions[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
app-arch/brotli[python,${PYTHON_USEDEP}]
|
||||
dev-python/aiosqlite[${PYTHON_USEDEP}]
|
||||
>=dev-python/asyncpg-0.29.0[${PYTHON_USEDEP}]
|
||||
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
|
||||
dev-python/fsspec[${PYTHON_USEDEP}]
|
||||
dev-python/greenlet[${PYTHON_USEDEP}]
|
||||
dev-python/httpx-sse[${PYTHON_USEDEP}]
|
||||
dev-python/httpx[${PYTHON_USEDEP}]
|
||||
dev-python/hypercorn[${PYTHON_USEDEP}]
|
||||
dev-python/hypothesis[${PYTHON_USEDEP}]
|
||||
dev-python/prometheus-client[${PYTHON_USEDEP}]
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
dev-python/psycopg:0[${PYTHON_USEDEP}]
|
||||
dev-python/pydantic-extra-types[${PYTHON_USEDEP}]
|
||||
dev-python/redis[${PYTHON_USEDEP}]
|
||||
dev-python/starlette[${PYTHON_USEDEP}]
|
||||
dev-python/structlog[${PYTHON_USEDEP}]
|
||||
<dev-python/time-machine-3[${PYTHON_USEDEP}]
|
||||
dev-python/trio[${PYTHON_USEDEP}]
|
||||
dev-python/uvicorn[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
EPYTEST_IGNORE=(
|
||||
# Requires docker
|
||||
"tests/unit/test_channels/test_plugin.py"
|
||||
"tests/unit/test_testing/test_test_client.py"
|
||||
"tests/unit/test_channels/test_backends.py"
|
||||
|
||||
# Unpackaged advanced alchemy
|
||||
"tests/examples/test_dto/test_example_apps.py"
|
||||
"tests/unit/test_dto/test_factory/test_integration.py"
|
||||
"tests/e2e/test_advanced_alchemy.py"
|
||||
"tests/examples/test_contrib/test_sqlalchemy/plugins/test_example_apps.py"
|
||||
"tests/examples/test_contrib/test_sqlalchemy/plugins/test_tutorial_example_apps.py"
|
||||
"tests/examples/test_contrib/test_sqlalchemy/test_sqlalchemy_examples.py"
|
||||
"tests/unit/test_app.py"
|
||||
"tests/unit/test_contrib/test_sqlalchemy.py"
|
||||
"tests/unit/test_plugins/test_base.py"
|
||||
"tests/unit/test_plugins/test_sqlalchemy.py"
|
||||
"tests/unit/test_repository/test_generic_mock_repository.py"
|
||||
"tests/examples/test_plugins/test_sqlalchemy_init_plugin.py"
|
||||
|
||||
# Unpackaged minijinja
|
||||
"tests/examples/test_templating/test_engine_instance.py"
|
||||
"tests/examples/test_templating/test_returning_templates.py"
|
||||
"tests/examples/test_templating/test_template_functions.py"
|
||||
"tests/unit/test_contrib/test_minijinja.py"
|
||||
"tests/unit/test_plugins/test_flash.py"
|
||||
"tests/unit/test_template/test_built_in.py"
|
||||
"tests/unit/test_template/test_builtin_functions.py"
|
||||
"tests/unit/test_template/test_context.py"
|
||||
"tests/unit/test_template/test_csrf_token.py"
|
||||
"tests/unit/test_template/test_template.py"
|
||||
|
||||
# Unpackaged beanie
|
||||
"tests/unit/test_plugins/test_pydantic/test_beanie_integration.py"
|
||||
|
||||
# Unpackaged valkey
|
||||
"tests/unit/test_stores.py"
|
||||
|
||||
# Avoid the dependency
|
||||
"tests/unit/test_contrib/test_opentelemetry.py"
|
||||
"tests/unit/test_plugins/test_prometheus.py"
|
||||
)
|
||||
EPYTEST_DESELECT=(
|
||||
# Requires docker
|
||||
"tests/e2e/test_response_caching.py::test_with_stores[redis_store]"
|
||||
"tests/e2e/test_routing/test_path_resolution.py::test_server_root_path_handling_empty_path[hypercorn]"
|
||||
|
||||
# Unpackaged daphne
|
||||
"tests/e2e/test_routing/test_path_resolution.py::test_no_path_traversal_from_static_directory[daphne]"
|
||||
"tests/e2e/test_routing/test_path_resolution.py::test_server_root_path_handling_empty_path[daphne]"
|
||||
"tests/e2e/test_routing/test_path_resolution.py::test_server_root_path_handling[daphne]"
|
||||
"tests/e2e/test_routing/test_path_mounting.py::test_path_mounting_live_server[daphne]"
|
||||
|
||||
# Deprecation test
|
||||
"tests/unit/test_deprecations.py::test_contrib_minijnja_deprecation"
|
||||
"tests/unit/test_deprecations.py::test_minijinja_from_state_deprecation"
|
||||
|
||||
# Unpackaged advanced alchemy
|
||||
"tests/examples/test_data_transfer_objects/test_factory/test_type_checking.py::test_should_raise_error_on_route_registration"
|
||||
"tests/unit/test_contrib/test_repository.py::test_advanced_alchemy_imports"
|
||||
|
||||
# Fragile to configuration differences
|
||||
"tests/e2e/test_logging/test_structlog_to_file.py::test_structlog_to_file"
|
||||
"tests/unit/test_connection/test_request.py::test_request_headers"
|
||||
"tests/unit/test_connection/test_websocket.py::test_websocket_headers"
|
||||
|
||||
# Fragile to background load
|
||||
#"tests/unit/test_handlers/test_http_handlers/test_kwarg_handling.py::test_route_handler_kwarg_handling"
|
||||
|
||||
# TypeError: Issuer (iss) must be a string.
|
||||
"tests/unit/test_security/test_jwt/test_auth.py::test_jwt_auth_validation_error_returns_not_authorized"
|
||||
)
|
||||
|
||||
EPYTEST_RERUNS=5 # upstream does it, and yes flaky is real
|
||||
EPYTEST_XDIST=1
|
||||
EPYTEST_PLUGINS=( pytest-asyncio pytest-mock pytest-lazy-fixtures )
|
||||
distutils_enable_tests pytest
|
||||
|
||||
PATCHES=(
|
||||
# valkey not packaged
|
||||
"${FILESDIR}"/litestar-2.19.0-no-valkey.patch
|
||||
)
|
||||
|
||||
python_test() {
|
||||
epytest -o addopts= tests
|
||||
}
|
||||
14
dev-python/litestar/metadata.xml
Normal file
14
dev-python/litestar/metadata.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>negril.nx+gentoo@gmail.com</email>
|
||||
<name>Paul Zander</name>
|
||||
</maintainer>
|
||||
<stabilize-allarches/>
|
||||
<upstream>
|
||||
<doc>https://docs.litestar.dev/latest/</doc>
|
||||
<remote-id type="github">litestar-org/litestar</remote-id>
|
||||
<remote-id type="pypi">litestar</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user