summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/Manifest2
-rw-r--r--dev-python/aiohttp/aiohttp-3.13.5.ebuild166
-rw-r--r--dev-python/aiohttp/aiohttp-3.14.3-r1.ebuild (renamed from dev-python/aiohttp/aiohttp-3.14.3.ebuild)2
-rw-r--r--dev-python/cattrs/cattrs-26.2.1.ebuild21
-rw-r--r--dev-python/fastapi/Manifest6
-rw-r--r--dev-python/fastapi/fastapi-0.115.12.ebuild41
-rw-r--r--dev-python/fastapi/fastapi-0.140.13.ebuild104
-rw-r--r--dev-python/fastapi/fastapi-0.140.7.ebuild104
-rw-r--r--dev-python/fastapi/fastapi-0.141.1.ebuild106
-rw-r--r--dev-python/fastapi/metadata.xml7
-rw-r--r--dev-python/multidict/multidict-7.0.0.ebuild3
-rw-r--r--dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild2
-rw-r--r--dev-python/yaxmldiff/Manifest1
-rw-r--r--dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild29
-rw-r--r--dev-python/zeroconf/zeroconf-0.151.1.ebuild2
15 files changed, 345 insertions, 251 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index c998cfac5561..217c13b6e6b5 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,4 +1,2 @@
-DIST aiohttp-3.13.5.tar.gz 7858271 BLAKE2B 33b8f7f977a429fcd14401042f0be88c4cf6879e2f991783c28bf26d2eaefb4ebeab64edfa4bd34f239c50574b3d5c5adb64b651716c8b7dc1fa4a41ca211d99 SHA512 42aafde39a7e0d270a43733293be1450ca7d72be9658403218f4c338fba7f942bd362637676146cc77579a0946303a44b012b070a25027d3b87abfb6bc0f9fb9
-DIST aiohttp-3.13.5.tar.gz.provenance 9326 BLAKE2B 0ed4219dc79a8b48cbc69f1a926a75210069f8382d61e217aaae6c8d51871c03c03336c812a9c7ecff0972ab070d6f2954482bced18edfaa71cf06cf8ef019bd SHA512 801915c3639db98f363a14e0e2e9e7b3e6e76d8e7988f43749580e4fa04404fe6b72f50370a07f37a922541d111361106d8fd8c4ffa4be326b130148a407c0e0
DIST aiohttp-3.14.3.tar.gz 7971213 BLAKE2B cdad9e58dd0b88ea1acf393237d7fd62fae8d9f1b0c3142987c9abd9c8821212d81bcac70ad9923026d3444bbfaf33fceb4bf91b77fbc55f1fe2fc5fe6f5f311 SHA512 5130673c6e8e798a20d717a89e142e626e669bf0a0db1750299e69970daacf7602012b837190a9e038b6402fcb711dee388b027dfca82b5f769b421ebaf53be7
DIST aiohttp-3.14.3.tar.gz.provenance 9781 BLAKE2B dcf0d39420f1b17fa7d369d3033305a67457cd771e8d16170643589a09a887a2d42dff150dff3e0a3e5bcf5b94af54b8da8a7f40791d9bb2f4165222bd0cb336 SHA512 7e20f865b2a11e3aec9d4005f5f70cd116884868a10c1a49ab4eb7fe3efd30b0f00f6152087ca39115dd37cf9901f53618bf65cd1d4368963369928c6d924b88
diff --git a/dev-python/aiohttp/aiohttp-3.13.5.ebuild b/dev-python/aiohttp/aiohttp-3.13.5.ebuild
deleted file mode 100644
index 1ee77937d280..000000000000
--- a/dev-python/aiohttp/aiohttp-3.13.5.ebuild
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/aio-libs/aiohttp
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="HTTP client/server for asyncio"
-HOMEPAGE="
- https://github.com/aio-libs/aiohttp/
- https://pypi.org/project/aiohttp/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="+native-extensions test-rust"
-
-DEPEND="
- native-extensions? (
- $(python_gen_cond_dep '
- net-libs/llhttp:=
- ' 'python3*')
- )
-"
-RDEPEND="
- ${DEPEND}
- >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}]
- >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}]
- >=dev-python/aiosignal-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
- >=dev-python/brotlicffi-1.2[${PYTHON_USEDEP}]
- >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
- >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
- >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
- >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/backports-zstd[${PYTHON_USEDEP}]
- ' 3.11 3.12 3.13)
-"
-BDEPEND="
- >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
- dev-python/pkgconfig[${PYTHON_USEDEP}]
- native-extensions? (
- >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
- dev-python/pkgconfig[${PYTHON_USEDEP}]
- )
- test? (
- dev-python/blockbuster[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/isal[${PYTHON_USEDEP}]
- dev-python/re-assert[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/zlib-ng[${PYTHON_USEDEP}]
- www-servers/gunicorn[${PYTHON_USEDEP}]
- test-rust? (
- dev-python/trustme[${PYTHON_USEDEP}]
- )
- )
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( pytest-{mock,xdist} )
-EPYTEST_RERUNS=5
-: ${EPYTEST_TIMEOUT:=180}
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # increase the timeout a little
- sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
- # xfail_strict fails on py3.10
- sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die
- sed -i -e 's:-Werror::' Makefile || die
- # remove vendored llhttp
- rm -r vendor || die
-}
-
-python_configure() {
- # check for .install-cython, so that we do this only once
- if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] &&
- use native-extensions
- then
- # force rehashing first
- emake requirements/.hash/cython.txt.hash
- > .update-pip || die
- > .install-cython || die
- emake cythonize
- fi
-}
-
-python_compile() {
- local -x AIOHTTP_USE_SYSTEM_DEPS=1
- # implicitly disabled for pypy3
- if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
- local -x AIOHTTP_NO_EXTENSIONS=1
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # proxy is not packaged
- tests/test_proxy_functional.py
- # python_on_whales is not packaged
- tests/autobahn/test_autobahn.py
- # benchmarks
- tests/test_benchmarks_client.py
- tests/test_benchmarks_client_request.py
- tests/test_benchmarks_client_ws.py
- tests/test_benchmarks_cookiejar.py
- tests/test_benchmarks_http_websocket.py
- tests/test_benchmarks_http_writer.py
- tests/test_benchmarks_web_fileresponse.py
- tests/test_benchmarks_web_middleware.py
- tests/test_benchmarks_web_response.py
- tests/test_benchmarks_web_urldispatcher.py
- )
-
- local EPYTEST_DESELECT=(
- # Internet
- tests/test_client_session.py::test_client_session_timeout_zero
- tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_nonzero_passed
- tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection
- tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_zero_not_passed
- tests/test_client_functional.py::test_invalid_idna
- # broken by irrelevant deprecation warnings
- tests/test_circular_imports.py::test_no_warnings
- # https://github.com/aio-libs/aiohttp/issues/11400#issuecomment-4168569526
- # https://github.com/python/cpython/issues/145599
- # https://github.com/python/cpython/pull/145600
- tests/test_cookie_helpers.py::test_parse_set_cookie_headers_uses_unquote_with_octal
- )
-
- case ${EPYTHON} in
- python3.14)
- EPYTEST_DESELECT+=(
- # TODO
- tests/test_cookiejar.py::test_pickle_format
- # different exception message
- tests/test_client_functional.py::test_aiohttp_request_coroutine
- )
- ;;
- esac
-
- # upstream unconditionally blocks building C extensions
- # on PyPy3 but the test suite needs an explicit switch
- if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
- local -x AIOHTTP_NO_EXTENSIONS=1
- fi
-
- rm -rf aiohttp || die
- epytest -m "not internal and not dev_mode"
-}
diff --git a/dev-python/aiohttp/aiohttp-3.14.3.ebuild b/dev-python/aiohttp/aiohttp-3.14.3-r1.ebuild
index e54e472fabe2..474077e0ee3a 100644
--- a/dev-python/aiohttp/aiohttp-3.14.3.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.14.3-r1.ebuild
@@ -76,6 +76,8 @@ distutils_enable_tests pytest
src_prepare() {
distutils-r1_src_prepare
+ # unpin dependencies
+ sed -i -e 's:, < [0-9.]*::' pyproject.toml || die
# increase the timeout a little
sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
sed -i -e 's:-Werror::' Makefile || die
diff --git a/dev-python/cattrs/cattrs-26.2.1.ebuild b/dev-python/cattrs/cattrs-26.2.1.ebuild
index e55ebb75734a..ab44a01c52fb 100644
--- a/dev-python/cattrs/cattrs-26.2.1.ebuild
+++ b/dev-python/cattrs/cattrs-26.2.1.ebuild
@@ -20,19 +20,19 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test-rust"
RDEPEND="
>=dev-python/attrs-25.4.0[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4.14.0[${PYTHON_USEDEP}]
"
+# msgspec is broken pretty much on anything but the most common arches
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
>=dev-python/immutables-0.20[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.5[${PYTHON_USEDEP}]
- >=dev-python/msgspec-0.21.1[${PYTHON_USEDEP}]
>=dev-python/pymongo-4.4.0[${PYTHON_USEDEP}]
>=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
>=dev-python/tomlkit-0.11.8[${PYTHON_USEDEP}]
@@ -42,6 +42,9 @@ BDEPEND="
>=dev-python/cbor2-5.4.6[${PYTHON_USEDEP}]
>=dev-python/orjson-3.11.3[${PYTHON_USEDEP}]
)
+ amd64? (
+ >=dev-python/msgspec-0.21.1[${PYTHON_USEDEP}]
+ )
)
"
@@ -68,6 +71,20 @@ python_test() {
tests/test_preconf.py::test_cbor2_unions
)
fi
+ if ! has_version "Dev-python/msgspec[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_preconf.py::test_literal_dicts_msgspec
+ tests/test_preconf.py::test_msgspec_efficient_enum
+ tests/test_preconf.py::test_msgspec_json_converter
+ tests/test_preconf.py::test_msgspec_json_unions
+ tests/test_preconf.py::test_msgspec_json_unstruct_collection_overrides
+ tests/test_preconf.py::test_msgspec_native_enums
+ )
+ EPYTEST_IGNORE+=(
+ tests/preconf/test_msgspec_cpython.py
+ tests/preconf/test_msgspec_314_cpython.py
+ )
+ fi
if ! has_version "dev-python/orjson[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/test_preconf.py::test_orjson
diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest
index 50ef1c359ef3..a75561c031b8 100644
--- a/dev-python/fastapi/Manifest
+++ b/dev-python/fastapi/Manifest
@@ -1,3 +1,3 @@
-DIST fastapi-0.115.12.tar.gz 295236 BLAKE2B 224b74553668721dde3592a50a3d5b02a967a58f55d3beb6bec753755cddfbb803f0661ce6cc41af3ddfc28bb304d053f41aad8ab9d8965048ff80cad6c3207e SHA512 8eb8d998643ca748744b9c00e14cdd62f02e58145e2a64dcf090361d56fa52a12b643b8fc3dc98f41af74c06d46b787acf92ae2be828d99b6d4290c20ced7f6f
-EBUILD fastapi-0.115.12.ebuild 1171 BLAKE2B 97e7dfed057198ea014eead11043306a36f42b0d761de746d92623697c3502a5ec16fc90e28b14ee710f428bd72a179e8aceca33fa2d9dcb1ac1e1f1a3b14a79 SHA512 b7c18375186662b834e3ece2c74d9ec194bc2ebf7979eda19319844fe8b92a489de81adf012c7a5007b416f675313390fed8288d1d1ff527293043fa4f6786db
-MISC metadata.xml 444 BLAKE2B e5a78141db8b041f6a7ac07db80136fddd358063cb1a5c8c769af307d188d6adcf0b56021de906e7ffc025e9b128d9eba580eedbd886076f34cb1d445eec60e3 SHA512 086df95dbf7f0d0354aa0785083d8dfaa46ea3fa030201e1f080818b9b7242119a35930731c05ef58e8f44fb47d7d2f7c2af88e3b3946d43d9ff7ea28d5e6928
+DIST fastapi-0.140.13.tar.gz 424843 BLAKE2B 31fcee62b02b22ec120535a3af0c53c9030451145425d07b55175c7f16c876d8f0f1a184dd2e905433dcfeacaf7b0efd9cb83ddb179cb9fc79a9ea0a2b49c25f SHA512 4fcf8cb0cebab3d266451c1d7ec41f70614d7bee5bb471307e88cf3e3104e030271afb40cd3b978600a2fae7768b78f4079e6f7b2c747fc89f77e77040e8197a
+DIST fastapi-0.140.7.tar.gz 422051 BLAKE2B 6e2bdfb7274cfdbd3f0590f7a7ce61d09c4b885ca30ddd4e029cfff489b2844b90bc61b497371d03513051bfd5b050513bd5a75ca36ef93d2a265c87bff423e9 SHA512 faa57243d870c91b02537ef88b9a454f590140c3b8f06a1e5d8070f4cf23b04f72cee7097898ee3820ac9a594905fbdcca4693373b3d0c99010610742d1861de
+DIST fastapi-0.141.1.tar.gz 425799 BLAKE2B 7012cde65f9749a9a01de5c91a3892550cecd4a7813a70d7ec052efe614c1a64f0d934f07b6b0b06e6cc7c9689f8ab35deddd84b6923aa0cd7f364cce9a122c3 SHA512 6e83e00927ab60332a434cf3fc170a9ec42cd80d0b7254a4f8c83ea8dfcaa9144a39f8df4edd8473588015565f5d7d97dde6a51fbdd4be6bff67c74cabe9c91f
diff --git a/dev-python/fastapi/fastapi-0.115.12.ebuild b/dev-python/fastapi/fastapi-0.115.12.ebuild
deleted file mode 100644
index aede3b9bebcc..000000000000
--- a/dev-python/fastapi/fastapi-0.115.12.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2024 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} )
-
-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"
-
-RESTRICT="test"
-
-RDEPEND="
- >=dev-python/pydantic-1.7.4[${PYTHON_USEDEP}]
- >=dev-python/starlette-0.40.0[${PYTHON_USEDEP}]
- <dev-python/starlette-0.47.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}]
-"
-
-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/fastapi-0.140.13.ebuild b/dev-python/fastapi/fastapi-0.140.13.ebuild
new file mode 100644
index 000000000000..441adedc2e40
--- /dev/null
+++ b/dev-python/fastapi/fastapi-0.140.13.ebuild
@@ -0,0 +1,104 @@
+# 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/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/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 )
+# 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"
+}
diff --git a/dev-python/fastapi/fastapi-0.140.7.ebuild b/dev-python/fastapi/fastapi-0.140.7.ebuild
new file mode 100644
index 000000000000..441adedc2e40
--- /dev/null
+++ b/dev-python/fastapi/fastapi-0.140.7.ebuild
@@ -0,0 +1,104 @@
+# 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/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/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 )
+# 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"
+}
diff --git a/dev-python/fastapi/fastapi-0.141.1.ebuild b/dev-python/fastapi/fastapi-0.141.1.ebuild
new file mode 100644
index 000000000000..d61bc85c461c
--- /dev/null
+++ b/dev-python/fastapi/fastapi-0.141.1.ebuild
@@ -0,0 +1,106 @@
+# 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/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/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}
+# 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"
+}
diff --git a/dev-python/fastapi/metadata.xml b/dev-python/fastapi/metadata.xml
index 65f80adbd1dc..d9e452857951 100644
--- a/dev-python/fastapi/metadata.xml
+++ b/dev-python/fastapi/metadata.xml
@@ -2,11 +2,8 @@
<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>kangie@gentoo.org</email>
+ <name>Matt Jolly</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/fastapi/fastapi/issues</bugs-to>
- </upstream>
<origin>srcux</origin>
</pkgmetadata>
diff --git a/dev-python/multidict/multidict-7.0.0.ebuild b/dev-python/multidict/multidict-7.0.0.ebuild
index de57559badd8..ba269f8161fb 100644
--- a/dev-python/multidict/multidict-7.0.0.ebuild
+++ b/dev-python/multidict/multidict-7.0.0.ebuild
@@ -25,6 +25,9 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390
IUSE="+native-extensions"
BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
test? (
dev-python/objgraph[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
diff --git a/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild b/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild
index de2e1d0231ab..6719e4b055ca 100644
--- a/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild
+++ b/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/yaxmldiff/Manifest b/dev-python/yaxmldiff/Manifest
index b81e969d96a3..eb9f411e4137 100644
--- a/dev-python/yaxmldiff/Manifest
+++ b/dev-python/yaxmldiff/Manifest
@@ -1,3 +1,2 @@
-DIST yaxmldiff-0.2.0.tar.gz 30530 BLAKE2B 011e2ae06d8348c4c45dd6f6f58f61c1ade4a371a5b2f1b6e2cd9970016e96494ac08783551d964731553868c16a8084c96a8143f6338a29ced1eefb8533d060 SHA512 d8a00565d9ec084c9d6ab482317abe65dc44cf80641085fdcbf3464461b7066d56e7153c09198649222c29d9a8a4311d9d7fbf9a1b85ec428e86637601584aa2
DIST yaxmldiff-0.3.0.tar.gz 97588 BLAKE2B dc091edbd0355a0f3d39c56f28a7e621e0b66c3529f17e62235357394cfb1c4b658341d9bbc89811abfa3ae9a29c70f957df70b6ecbe43d170d6f09488721642 SHA512 a598442fb2431c5ffd1c5a006085e58f655b637ccfe9289a039d69899ed86eada1f2b58474136a0066f1e5ff68c939f8fd795609288cbfe000e24838ce7b2ba7
DIST yaxmldiff-0.3.0.tar.gz.provenance 9547 BLAKE2B 4edc1ab21fd927bc1dc546fa882d66b47efa5af22bae136b92cfbd055f7acdc7124016af633bd990781f3991ef2723d3441150343549b7fc94526567b0b0a615 SHA512 a9b905fc14514620c0b028190b1f181fb578abca14053e7ce59abd7ffd12bea5204ae81a9357b0d4dac174a6f81e147d2306b10034379ba14fb1710d7430bb86
diff --git a/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild b/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild
deleted file mode 100644
index 3fd13bad73ac..000000000000
--- a/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Yet Another XML Differ"
-HOMEPAGE="
- https://pypi.org/project/yaxmldiff/
- https://github.com/latk/yaxmldiff.py
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~loong ~x86"
-
-RDEPEND="
- dev-python/lxml[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/hatch-fancy-pypi-readme-24.1.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/zeroconf/zeroconf-0.151.1.ebuild b/dev-python/zeroconf/zeroconf-0.151.1.ebuild
index cc9685016ecc..64aa9f12cc55 100644
--- a/dev-python/zeroconf/zeroconf-0.151.1.ebuild
+++ b/dev-python/zeroconf/zeroconf-0.151.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~x86"
IUSE="+native-extensions"
RDEPEND="