diff options
Diffstat (limited to 'dev-python/fastapi')
| -rw-r--r-- | dev-python/fastapi/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/fastapi/fastapi-0.150.0.ebuild | 128 |
2 files changed, 129 insertions, 0 deletions
diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest index 05b1f5419925..7e9ad727fe4f 100644 --- a/dev-python/fastapi/Manifest +++ b/dev-python/fastapi/Manifest @@ -1,2 +1,3 @@ DIST fastapi-0.143.3.tar.gz 469834 BLAKE2B 6384f8b551b38c1fc83779ef2a4a318e0cb4b01067e852e876b809d8dc8c2bf59dcbb109780337df3dd83b70ff61b30676fceb95745478439f580de2ad544c16 SHA512 f70e98e10e6d5d5b1db0fd6795179dff1bf7f737a0fee452732a49a22dca092efded647d27cf8fdb61b5eeba29311230fcca9d974ac258dc131d05080a134e7e DIST fastapi-0.146.0.tar.gz 471622 BLAKE2B dc332799da2b2c3da0c0374bd4dba73d5189357664dbb4bdc34a0facb229fb13507835e8a04d829ef80eae1c1ea8e8657f73ba2d15c222d4a1119d5e2abd4e1e SHA512 bf7c8a7e137ac5541bc36e7cd0c0042ca02da6d8b7bd6bd5b7fea11578d69854bbfde980981a81735b5dc889611a3a21364be4c5388add324d1552550a2736cc +DIST fastapi-0.150.0.tar.gz 483799 BLAKE2B e3c7522a21be4a890abc9344a090e3d005791d318ea2a6616bb4dd39bace457c630cfd8d9c96df6166f98fe74e221e2d5912a904cc39a068428ab26a09bc0ca2 SHA512 926b2e6261725efb705ebb3a2048b36a9c18efc55598208c3de1541ce5de130d0c418cdb63d5be98ea20d1e7ec4959903308655f4154f40567ee00755bd1ce32 diff --git a/dev-python/fastapi/fastapi-0.150.0.ebuild b/dev-python/fastapi/fastapi-0.150.0.ebuild new file mode 100644 index 000000000000..6c8cef00f625 --- /dev/null +++ b/dev-python/fastapi/fastapi-0.150.0.ebuild @@ -0,0 +1,128 @@ +# 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_{13..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/opentelemetry-api-1.44.0[${PYTHON_USEDEP}] + >=dev-python/pydantic-2.9.0[${PYTHON_USEDEP}] + >=dev-python/starlette-0.46.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/pydantic-settings[${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 ) +# workaround broken toml config +: ${EPYTEST_TIMEOUT:=30} +# the test suite is flaky as hell +EPYTEST_RERUNS=5 +# 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 + # opentelemetry-* + tests/test_telemetry/test_background.py::test_background_task_integrations + tests/test_telemetry/test_data.py::test_request_objects_are_not_exported + tests/test_telemetry/test_environment_integrations.py + tests/test_telemetry/test_integrations.py::test_current_contrib + tests/test_telemetry/test_integrations.py::test_current_logfire + tests/test_telemetry/test_integrations.py::test_current_sentry + tests/test_telemetry/test_integrations.py::test_inactive_sentry_does_not_disable_native + tests/test_telemetry/test_integrations.py::test_logfire_global_provider_without_fastapi_instrumentor + tests/test_telemetry/test_native_integrations.py + tests/test_telemetry/test_runtime.py::test_concurrent_provider_owner_wins + tests/test_telemetry/test_runtime.py::test_environment_export_initializes_after_fork + tests/test_telemetry/test_runtime.py::test_failed_registration_closes_new_exporter + tests/test_telemetry/test_runtime.py::test_real_otlp_exception_export_without_traces_or_metrics + tests/test_telemetry/test_runtime.py::test_real_otlp_export_and_repeated_lifespans + tests/test_telemetry/test_runtime.py::test_registration_provider_prefers_public_metric_reader + tests/test_telemetry/test_runtime.py::test_unsupported_provider_warns_without_preventing_startup + # TODO + 'tests/test_tutorial/test_testing_dependencies/test_tutorial001.py::test_override_in_items_run[tutorial001_py310]' + 'tests/test_tutorial/test_testing_dependencies/test_tutorial001.py::test_override_in_items_run[tutorial001_en_py310]' + ) + 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" +} |
