diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest index d4d3c362227ff..cc9ec85f51e46 100644 --- a/dev-python/fastapi/Manifest +++ b/dev-python/fastapi/Manifest @@ -1,3 +1,4 @@ DIST fastapi-0.136.3.tar.gz 396410 BLAKE2B eb55e632fea8e59a5f133b0b4c18dd158a8427bbcb8ecfd1656e019fb3c117598b18286afab6e1c27492ca3d8e0b5eb286d027428707890097ca5ea5d4e7a354 SHA512 a97358391f0c86f370949296c3c79e31086fc8faa8b721d216ac47fdce0b6052ab7fce0b4448e89c3faeb8b500dface43b86a4084c599e7d19fcc6dfca7a54d3 DIST fastapi-0.138.1.tar.gz 419646 BLAKE2B eae3b5d682f60fdd0ff49d0d6356c9019e7c5d97710d3f9f9b5f4fc95375dcd7c0c8bfd839949fa6e4a6d8aa71d5fafd5670097e60af6cfd403e4949368e6871 SHA512 7e3efd2a87c4020c74bb20784c56edf44948eaa5550af529c2c0e11849e8821f2e575d0bac7ae4e3a021773452e6ebacfec7b05a2edb87b5351432bf552628ad DIST fastapi-0.138.2.tar.gz 420423 BLAKE2B 70f210c641c4c96a666494a70b6940ae467a23d663f77e1c5a96bc0a448e9400bceaf626daeb2d3c99312d64e2114d2d6408154071eaf75d84ed9538e52670c0 SHA512 a7e4a151fb180a2464b1b861ed013204047940f0bbd1ec274d75e096e2f455336de0593b59118f0b7a0c2e93c267899169c973d9fd9328d96b94d5eaf5e6fa09 +DIST fastapi-0.139.0.tar.gz 423016 BLAKE2B 6494df7a9588a52a367f1fa5eef806aef0da218aabbf129dc7cacc81a71a8301e8c2b9cbcb161aa7dccdea86742e21bd644df51a2013db0c1ca04d32b46d030c SHA512 6c55932edd526242ebdcb075635be4e50f91bbe4d4b61a7109e7a751cb665ebbb5fa9f36741106a2bb8a679845c25e3efd9400f4b2f700245f9de5e714301fa9 diff --git a/dev-python/fastapi/fastapi-0.139.0.ebuild b/dev-python/fastapi/fastapi-0.139.0.ebuild new file mode 100644 index 0000000000000..67a5264e3db9c --- /dev/null +++ b/dev-python/fastapi/fastapi-0.139.0.ebuild @@ -0,0 +1,103 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYTHON_COMPAT=( python3_14 ) +#may be not stricly required +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="High performance framework, easy to learn, fast to code, ready for production" +HOMEPAGE=" + https://fastapi.tiangolo.com/ + https://github.com/fastapi/fastapi/ + https://pypi.org/project/fastapi/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/annotated-doc-0.0.4[${PYTHON_USEDEP}] + >=dev-python/starlette-0.46.0[${PYTHON_USEDEP}] + >=dev-python/pydantic-2.9.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}] + >=dev-python/typing-inspection-0.4.2[${PYTHON_USEDEP}] +" + +#FIXME: add missing deps +BDEPEND=" + test? ( + dev-python/a2wsgi[${PYTHON_USEDEP}] + dev-python/dirty-equals[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + dev-python/httpx[${PYTHON_USEDEP}] + dev-python/httpx2[${PYTHON_USEDEP}] + dev-python/python-multipart[${PYTHON_USEDEP}] + dev-python/sqlalchemy[${PYTHON_USEDEP}] + dev-python/typer[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( anyio inline-snapshot pytest-timeout ) +# 3k tests+, so use xdist to speed them up +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +# There are some JSON response tests that will exercise orjson or ujson if they are available. +# These are properly skipped if the optional dependencies are not installed at the cost of a little spam. +python_test() { + local EPYTEST_IGNORE=( + # python/strawberry-graphql (in guru, test dep only) + tests/test_tutorial/test_graphql/test_tutorial001.py + # dev-python/sqlmodel (in guru, test dep only) + tests/test_tutorial/test_sql_databases/test_tutorial001.py + tests/test_tutorial/test_sql_databases/test_tutorial002.py + # dev-python/fastapi-cli (missing, test and optfeature) + tests/test_fastapi_cli.py + # dev-python/pwdlib (in guru, test dep only) + tests/test_tutorial/test_security/test_tutorial004.py + tests/test_tutorial/test_security/test_tutorial005.py + # Wants dev-python/multipart _just_ to complain that it's not the right multipart lib. + tests/test_multipart_installation.py + # scripts/tests use CliRunner.isolated_filesystem() removed in recent typer + scripts/tests + ) + local EPYTEST_DESELECT=( + # Requires investigation - missing ./image.png test file (?) + tests/test_tutorial/test_additional_responses/test_tutorial004.py::test_path_operation_img + + # Broken by brotli being available, also fragile to random ordering + tests/test_tutorial/test_header_param_models/test_tutorial001.py::test_header_param_model_invalid + tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_invalid + tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_no_underscore + ) + epytest +} + +pkg_postinst() { + # not part of any upstream extra + optfeature "alternative JSON library" "dev-python/ujson" # orjson, too but it's deprecated + + # pyproject.toml:project.optional-dependencies.standard + # Following optfeatures should be exposed, but missing deps + # optfeature "fastAPI CLI" "dev-python/fastapi-cli" - missing - depends on this package! + # optfeature "compressed file support" "dev-python/fastar" - missing + # optfeature "pydantic extra types support" "dev-python/pydantic-extra-types" - in guru + optfeature_header "standard extras" + optfeature "ASGI server support" "dev-python/uvicorn" + optfeature "email validation support" "dev-python/email-validator" + optfeature "TestClient for testing FastAPI applications" "dev-python/httpx" + optfeature "templating support" "dev-python/jinja2" + optfeature "multipart form data support" "dev-python/python-multipart" + optfeature "settings management support" "dev-python/pydantic-settings" + + # pyproject.toml:project.optional-dependencies.all - includes all the above plus: + optfeature_header "all extras" + optfeature "session middleware support" "dev-python/itsdangerous" + optfeature "YAML support" "dev-python/pyyaml" +}