mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-09 15:13:31 -04:00
dev-python/fastapi: add 0.115.12, new package
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
This commit is contained in:
1
dev-python/fastapi/Manifest
Normal file
1
dev-python/fastapi/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST fastapi-0.115.12.tar.gz 295236 BLAKE2B 224b74553668721dde3592a50a3d5b02a967a58f55d3beb6bec753755cddfbb803f0661ce6cc41af3ddfc28bb304d053f41aad8ab9d8965048ff80cad6c3207e SHA512 8eb8d998643ca748744b9c00e14cdd62f02e58145e2a64dcf090361d56fa52a12b643b8fc3dc98f41af74c06d46b787acf92ae2be828d99b6d4290c20ced7f6f
|
||||
96
dev-python/fastapi/fastapi-0.115.12.ebuild
Normal file
96
dev-python/fastapi/fastapi-0.115.12.ebuild
Normal file
@@ -0,0 +1,96 @@
|
||||
# Copyright 2024-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=pdm-backend
|
||||
PYTHON_COMPAT=( python3_{12..13} )
|
||||
|
||||
inherit distutils-r1 optfeature pypi
|
||||
|
||||
DESCRIPTION="FastAPI framework, high performance, easy to learn, ready for production"
|
||||
HOMEPAGE="
|
||||
https://fastapi.tiangolo.com/
|
||||
https://pypi.org/project/fastapi/
|
||||
https://github.com/fastapi/fastapi
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
RDEPEND="
|
||||
<dev-python/pydantic-3.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/pydantic-1.7.4[${PYTHON_USEDEP}]
|
||||
<dev-python/starlette-0.47.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/starlette-0.40.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/aiosqlite[${PYTHON_USEDEP}]
|
||||
>=dev-python/anyio-3.2.1[${PYTHON_USEDEP}]
|
||||
dev-python/dirty-equals[${PYTHON_USEDEP}]
|
||||
dev-python/email-validator[${PYTHON_USEDEP}]
|
||||
>=dev-python/flask-1.1.2[${PYTHON_USEDEP}]
|
||||
dev-python/inline-snapshot[${PYTHON_USEDEP}]
|
||||
>=dev-python/jinja2-3.1.5[${PYTHON_USEDEP}]
|
||||
dev-python/orjson[${PYTHON_USEDEP}]
|
||||
<dev-python/passlib-2.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/passlib-1.7.2[${PYTHON_USEDEP}]
|
||||
dev-python/pydantic-settings[${PYTHON_USEDEP}]
|
||||
dev-python/pyjwt[${PYTHON_USEDEP}]
|
||||
>=dev-python/python-multipart-0.0.18[${PYTHON_USEDEP}]
|
||||
<dev-python/pyyaml-7.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
|
||||
dev-python/sqlmodel[${PYTHON_USEDEP}]
|
||||
dev-python/trio[${PYTHON_USEDEP}]
|
||||
dev-python/ujson[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
# brottli and zstd due to starlette based tests expecting it
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/fastaapi-0.115.6-httpx-0.28-test-fix.patch
|
||||
)
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
EPYTEST_DESELECT=(
|
||||
# Depends on coverage
|
||||
"tests/test_fastapi_cli.py::test_fastapi_cli"
|
||||
# Test result affected by unrelated packages such as brottli and zstd
|
||||
# https://github.com/fastapi/fastapi/blob/7c6f2f8fde68f488163376c9e92a59d46c491298/tests/test_tutorial/test_header_param_models/test_tutorial001.py#L77
|
||||
"tests/test_tutorial/test_header_param_models/test_tutorial001.py::test_header_param_model_invalid"
|
||||
# https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6afa196ca0cb1604875847b1b84fa64896a06f6e
|
||||
"tests/test_multipart_installation.py::test_incorrect_multipart_installed_form"
|
||||
"tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_upload"
|
||||
"tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_bytes"
|
||||
"tests/test_multipart_installation.py::test_incorrect_multipart_installed_multi_form"
|
||||
"tests/test_multipart_installation.py::test_incorrect_multipart_installed_form_file"
|
||||
"tests/test_multipart_installation.py::test_no_multipart_installed"
|
||||
"tests/test_multipart_installation.py::test_no_multipart_installed_file"
|
||||
"tests/test_multipart_installation.py::test_no_multipart_installed_file_bytes"
|
||||
"tests/test_multipart_installation.py::test_no_multipart_installed_multi_form"
|
||||
"tests/test_multipart_installation.py::test_no_multipart_installed_form_file"
|
||||
"tests/test_multipart_installation.py::test_old_multipart_installed"
|
||||
)
|
||||
|
||||
python_prepare_all() {
|
||||
# Dont install fastapi executable as fastapi-cli is supposed to handle it
|
||||
sed -i -e '/\[project.scripts\]/,/^$/d' pyproject.toml || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
optfeature "commandline interface" dev-python/fastapi-cli
|
||||
optfeature "test client" dev-python/httpx
|
||||
optfeature "templates" dev-python/jinja2
|
||||
optfeature "forms and file uploads" dev-python/python-multipart
|
||||
optfeature "validate emails" dev-python/email-validator
|
||||
optfeature "uvicorn with uvloop" dev-python/uvicorn
|
||||
optfeature_header "Alternative JSON responses"
|
||||
optfeature "ORJSONResponse" dev-python/orjson
|
||||
optfeature "UJSONResponse" dev-python/ujson
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
--- a/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py
|
||||
+++ b/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py
|
||||
@@ -14,6 +14,22 @@ def test_endpoint_works():
|
||||
def test_exception_handler_body_access():
|
||||
response = client.post("/", json={"numbers": [1, 2, 3]})
|
||||
assert response.json() == IsDict(
|
||||
+ {
|
||||
+ 'detail': {
|
||||
+ 'body': '{"numbers":[1,2,3]}',
|
||||
+ 'errors': [
|
||||
+ {
|
||||
+ 'input': {'numbers': [1, 2, 3]},
|
||||
+ 'loc': ['body'],
|
||||
+ 'msg': 'Input should be a valid list',
|
||||
+ 'type': 'list_type'
|
||||
+ }
|
||||
+ ]
|
||||
+ }
|
||||
+ }
|
||||
+ ) | IsDict(
|
||||
+ # Pre httpx-0.28.0 json output
|
||||
+ # https://github.com/encode/httpx/pull/3367
|
||||
{
|
||||
"detail": {
|
||||
"errors": [
|
||||
|
||||
13
dev-python/fastapi/metadata.xml
Normal file
13
dev-python/fastapi/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>negril.nx+gentoo@gmail.com</email>
|
||||
<name>Paul Zander</name>
|
||||
</maintainer>
|
||||
<stabilize-allarches/>
|
||||
<upstream>
|
||||
<remote-id type="github">fastapi/fastapi</remote-id>
|
||||
<remote-id type="pypi">fastapi</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user