diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-05-09 11:57:53 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-05-09 11:57:53 +0000 |
| commit | 3dc27067f5e12af168623c205d85522b92d1e8d9 (patch) | |
| tree | 739295adc00c662e15d11512826a467c834e6366 /dev-python/fastapi | |
| parent | 2a056f8dc807f0f3f71656f72053560b984c03e3 (diff) | |
| download | baldeagleos-repo-3dc27067f5e12af168623c205d85522b92d1e8d9.tar.gz baldeagleos-repo-3dc27067f5e12af168623c205d85522b92d1e8d9.tar.xz baldeagleos-repo-3dc27067f5e12af168623c205d85522b92d1e8d9.zip | |
Adding metadata
Diffstat (limited to 'dev-python/fastapi')
| -rw-r--r-- | dev-python/fastapi/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/fastapi/fastapi-0.115.12.ebuild | 96 | ||||
| -rw-r--r-- | dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch | 26 | ||||
| -rw-r--r-- | dev-python/fastapi/metadata.xml | 11 |
4 files changed, 134 insertions, 0 deletions
diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest new file mode 100644 index 000000000000..5ea7c4b7b0e8 --- /dev/null +++ b/dev-python/fastapi/Manifest @@ -0,0 +1 @@ +DIST fastapi-0.115.12.tar.gz 295236 BLAKE2B 224b74553668721dde3592a50a3d5b02a967a58f55d3beb6bec753755cddfbb803f0661ce6cc41af3ddfc28bb304d053f41aad8ab9d8965048ff80cad6c3207e SHA512 8eb8d998643ca748744b9c00e14cdd62f02e58145e2a64dcf090361d56fa52a12b643b8fc3dc98f41af74c06d46b787acf92ae2be828d99b6d4290c20ced7f6f diff --git a/dev-python/fastapi/fastapi-0.115.12.ebuild b/dev-python/fastapi/fastapi-0.115.12.ebuild new file mode 100644 index 000000000000..fe85c6f57fc3 --- /dev/null +++ b/dev-python/fastapi/fastapi-0.115.12.ebuild @@ -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_{9,10,11,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 +} diff --git a/dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch b/dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch new file mode 100644 index 000000000000..1ce4fe1d97d9 --- /dev/null +++ b/dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch @@ -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": [ + diff --git a/dev-python/fastapi/metadata.xml b/dev-python/fastapi/metadata.xml new file mode 100644 index 000000000000..0dec5a678a5f --- /dev/null +++ b/dev-python/fastapi/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + + <origin>gentoo-guru-overlay</origin> + <stabilize-allarches/> +</pkgmetadata>
\ No newline at end of file |
