summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-python/recipes-devtools
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-python/recipes-devtools')
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb33
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.2.0.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.7.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.2.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.1.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.11.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.10.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.3.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_1.0.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch39
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.35.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.0.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.16.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.118.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb25
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb41
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.62.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.60.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.60.1.bb)7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb22
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.26.0.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb17
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.21.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch324
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.8.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.12.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch40
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch206
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch495
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb28
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch44
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb)5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.185.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.4.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.5.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.5.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb29
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.2.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.40.4.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb34
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.13.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240205.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb30
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.15.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb27
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.0.2.bb)2
113 files changed, 1292 insertions, 543 deletions
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb
new file mode 100644
index 0000000000..a045dfa8bc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pure-python wrapper for libusb-1.0"
+HOMEPAGE = "http://github.com/vpelletier/python-libusb1"
+AUTHOR = "Vincent Pelletier <plr.vincent@gmail.com>"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
+"
+
+SRC_URI = "https://github.com/vpelletier/${BPN}/releases/download/${PV}/libusb1-${PV}.tar.gz"
+SRC_URI[md5sum] = "7b4f094786d1dfc8d011c7649d8ccb97"
+SRC_URI[sha256sum] = "4ee9b0a55f8bd0b3ea7017ae919a6c1f439af742c4a4b04543c5fd7af89b828c"
+
+S = "${WORKDIR}/libusb1-${PV}"
+
+RDEPENDS:${PN} = "libusb1"
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb
new file mode 100644
index 0000000000..e6b980266e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Convert WSGI app to ASGI app or ASGI app to WSGI app."
+HOMEPAGE = "https://github.com/abersheeran/a2wsgi"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e10d05d29ec6d8be8bfc503683f1bc9a"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI[sha256sum] = "50e81ac55aa609fa2c666e42bacc25c424c8884ce6072f1a7e902114b7ee5d63"
+
+DEPENDS += " \
+ python3-pdm-native \
+ python3-pdm-backend-native \
+"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-httpx \
+ python3-pytest \
+ python3-pytest-asyncio \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
index 2cdd352e59..10a3085ef2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
@@ -13,7 +13,9 @@ RDEPENDS:${PN} = "\
python3-aiohappyeyeballs \
python3-aiosignal \
python3-async-timeout \
+ python3-attrs \
python3-frozenlist \
+ python3-misc \
python3-multidict \
python3-yarl \
python3-aiodns \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
index 0bf907de78..2c7a9f8cab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c0a769411d2af7894099e8ff75058c9f"
inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"
+SRC_URI[sha256sum] = "f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"
DEPENDS += " \
python3-setuptools-scm-native \
@@ -20,4 +20,8 @@ DEPENDS += " \
RDEPENDS:${PN} += "\
python3-idna \
python3-sniffio \
+ python3-core \
+ python3-numbers \
+ python3-io \
+ python3-asyncio \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
index 5bffa22918..94f2e37a89 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
@@ -7,7 +7,7 @@ inherit pypi setuptools3
PYPI_PACKAGE = "APIFlask"
-SRC_URI[sha256sum] = "e7616d902d446eb9e1c67d1d8a34691b437f9da4fe7a3b4d49c91ba88c85ee2a"
+SRC_URI[sha256sum] = "88db5a539cc155e35d9636d99b434d00ca6c0b23e7c87c8321ec9dc980535366"
RDEPENDS:${PN} += "\
python3-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
index 90560fabe7..8d8c8a4e2e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/kislyuk/argcomplete"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
-SRC_URI[sha256sum] = "f3e49e8ea59b4026ee29548e24488af46e30c9de57d48638e24f54a1ea1000a2"
+SRC_URI[sha256sum] = "bf7900329262e481be5a15f56f19736b376df6f82ed27576fa893652c5de6c23"
PYPI_PACKAGE = "argcomplete"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
index b7fa9f0360..3b90eda5bb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
SRC_URI += "file://run-ptest \
"
-SRC_URI[sha256sum] = "9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"
+SRC_URI[sha256sum] = "c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"
export BUILD_SYS
export HOST_SYS
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
index 54e43e3754..bc3315f751 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
@@ -10,7 +10,6 @@ SRC_URI = "git://github.com/berkerpeksag/astor.git;branch=master;protocol=https
SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "astor"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
index b02b15113b..3c68f1e583 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
-SRC_URI[sha256sum] = "4148645659b08b70d72460ed1921158027a9e53ae8b7234149b1400eddacbb93"
+SRC_URI[sha256sum] = "ac248253bfa4bd924a0de213707e7ebeeb3138abeb48d798784ead1e56d419d4"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
index 2de7fc7ae6..8b0968857f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
@@ -2,7 +2,7 @@ SUMMARY = "Security oriented static analyser for python code."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
-SRC_URI[sha256sum] = "527906bec6088cb499aae31bc962864b4e77569e9d529ee51df3a93b4b8ab28a"
+SRC_URI[sha256sum] = "36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"
DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
index 22060ef049..3ef75d4703 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
@@ -6,7 +6,7 @@ Python 3 Standard Library @lru_cache function decorator."
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec55353c80c662e4255f8889a0ca558"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=539275e657c6b7af026bb908356f7541"
inherit pypi python_setuptools_build_meta ptest
@@ -28,6 +28,6 @@ do_install_ptest() {
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
-SRC_URI[sha256sum] = "086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"
+SRC_URI[sha256sum] = "ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
index b8565d17e8..3003e84acf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
@@ -8,7 +8,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SRCNAME = "cassandra-driver"
-SRC_URI[sha256sum] = "0a34f9534356e5fd33af8cdda109d5e945b6335cb50399b267c46368c4e93c98"
+SRC_URI[sha256sum] = "38e9c2a2f2a9664bb03f1f852d5fccaeff2163942b5db35dffcf8bf32a51cfe5"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
index e2493e4e1f..c0987a9a15 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
@@ -4,7 +4,7 @@ DEPENDS +="python3-setuptools-scm-native"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-SRC_URI[sha256sum] = "752130e38644319f3dae7f91fabb08f58bc454ca671b72875e6228d423890efd"
+SRC_URI[sha256sum] = "b7513c2dea8868991fad7ef8899890ebcf8b199b9b4461c3c11d7ad3aef4820d"
inherit pypi python_setuptools_build_meta ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
index 7f418b063f..ad80574a95 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
@@ -5,8 +5,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b8ee59850b882cbf623188489ea748e2"
PYPI_PACKAGE = "croniter"
-SRC_URI[sha256sum] = "d199b2ec3ea5e82988d1f72022433c5f9302b3b3ea9e6bfd6a1518f6ea5e700a"
+SRC_URI[sha256sum] = "28763ad39c404e159140874f08010cfd8a18f4c2a7cea1ce73e9506a4380cfc1"
inherit pypi setuptools3
-RDEPENDS:${PN} += " python3-dateutil python3-natsort"
+RDEPENDS:${PN} += " \
+ python3-dateutil \
+ python3-natsort \
+ python3-pytz \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
index bcb68d7714..ac76ccc96a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
SRC_URI[sha256sum] = "78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709"
PYPI_PACKAGE = "python-dateutil"
-PIP_INSTALL_PACKAGE = "python_dateutil"
inherit pypi python_setuptools_build_meta
PACKAGES =+ "${PN}-zoneinfo"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
index b1ba953922..59da4545aa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
@@ -12,8 +12,6 @@ S = "${WORKDIR}/git"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "DBussy"
-
RDEPENDS:${PN} += "\
python3-asyncio \
python3-core \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
index c78c8aab5e..0642b7e7c3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
@@ -1,7 +1,7 @@
require python-django.inc
inherit setuptools3
-SRC_URI[sha256sum] = "b1260ed381b10a11753c73444408e19869f3241fc45c985cd55a30177c789d13"
+SRC_URI[sha256sum] = "6e6ff3db2d8dd0c986b4eec8554c8e4f919b5c1ff62a5b4390c17aff2ed6e5c4"
RDEPENDS:${PN} += "\
python3-sqlparse \
@@ -10,5 +10,5 @@ RDEPENDS:${PN} += "\
# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
# default. To build the 4.x branch,
-# PREFERRED_VERSION_python3-django = "4.0.2" can be added to local.conf
+# PREFERRED_VERSION_python3-django = "4.2.11" can be added to local.conf
DEFAULT_PREFERENCE = "-1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.3.bb
index 3f61dabe07..14c41a626f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.3.bb
@@ -1,7 +1,7 @@
require python-django.inc
inherit setuptools3
-SRC_URI[sha256sum] = "b5bb1d11b2518a5f91372a282f24662f58f66749666b0a286ab057029f728080"
+SRC_URI[sha256sum] = "5fb37580dcf4a262f9258c1f4373819aacca906431f505e4688e37f3a99195df"
RDEPENDS:${PN} += "\
python3-sqlparse \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
index c39f37f7e6..9515aa2296 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
-SRC_URI[sha256sum] = "579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8"
+SRC_URI[sha256sum] = "f88fad74183dfc7144b2756d0d2ac716ea5b4c7c9840995ac3bfd8ec034333c1"
PYPI_PACKAGE = "djangorestframework"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
index c014371834..13e31afe79 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.dnspython.org/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
-SRC_URI[sha256sum] = "233f871ff384d84c33b2eaf4358ffe7f8927eae3b257ad8467f9bdba7e7ac6bc"
+SRC_URI[sha256sum] = "e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"
inherit pypi python_hatchling ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
index d1022891b9..12dd51e799 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
@@ -3,14 +3,12 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=66ffc5e30f76cbb5358fe54b645e5a1d"
-DEPENDS += "python3-pip python3-pbr"
-
PYPI_PACKAGE = "ecdsa"
SRC_URI[sha256sum] = "190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"
inherit pypi setuptools3 python3native
-RDEPENDS:${PN} += "python3-six python3-gmpy2 python3-pbr"
+RDEPENDS:${PN} += "python3-six python3-gmpy2"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
index 3e7f70f04f..e095cb8a32 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/sissaschool/elementpath"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
-SRC_URI[sha256sum] = "8d25db9150f5a6aa978c9f58e607fcd5ab6e6e3017140563439a9884ab1eb304"
+SRC_URI[sha256sum] = "dfc4b8ca3d87966dcb0df40b5b6d04a98f053683271930fad9e7fa000924dfb2"
PYPI_PACKAGE = "elementpath"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
index 50b1340cb3..a56296188c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=731f4de9c79bfeba6d8d55f83d0d2423"
-SRC_URI[sha256sum] = "89c4454d794d9ed92ad5cb2794698c5cee6b7b3ca6009187d0e282adc7f9b6dc"
+SRC_URI[sha256sum] = "e9425110c6120c585c9f0db2e8a33d76c4b886b148a65e68fc0035d3917a3b9c"
PYPI_PACKAGE = "eth_abi"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
index 7ee20b9b2b..4bdc0c8873 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7bdfe69b1ffbde073ca6e96f5c53f7"
-SRC_URI[sha256sum] = "d61dbda892ee1220f28fb3663c08f6383c305db9f1f5624dc585c9cd05115027"
+SRC_URI[sha256sum] = "d5b408a8cd20ed496e8e66d0559560d29bc21cee482f893936a1f05d0dddc4a0"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
deleted file mode 100644
index 6584e60e1d..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From bc86d603e632ce61de4ae7a5d4bcef080cbdb160 Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <brgl@bgdev.pl>
-Date: Wed, 11 May 2022 13:45:06 +0200
-Subject: [PATCH] setup: don't use setuptools-markdown
-
-This project is deprecated and irrelevant for the functionality of
-eth-utils. We don't support it in meta-python so just drop it from
-the dependencies.
-
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
-Upstream-Status: Pending
-
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 5717d5b..cb62132 100644
---- a/setup.py
-+++ b/setup.py
-@@ -37,7 +37,6 @@ setup(
- # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
- version='1.1.2',
- description="""Common utility functions for ethereum codebases.""",
-- long_description_markdown_filename='README.md',
- author='Piper Merriam',
- author_email='pipermerriam@gmail.com',
- url='https://github.com/ethereum/eth_utils',
-@@ -48,7 +47,6 @@ setup(
- "toolz>0.8.2,<1;implementation_name=='pypy'",
- "cytoolz>=0.8.2,<1.0.0;implementation_name=='cpython'",
- ],
-- setup_requires=['setuptools-markdown'],
- extras_require=extras_require,
- py_modules=['eth_utils'],
- license="MIT",
---
-2.34.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.35.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
index eb7f76b096..f70099ab94 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.35.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
-SRC_URI[sha256sum] = "3b2eede94d64538cb894eec50302a881e056ed7e057f0e24fb45b28a19d6b2e8"
+SRC_URI[sha256sum] = "d227fe76a63d9e6a6cef53beb8ad0b2dc40a5e7737c801f4b474cfae1db07bc5"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
index ab0b114e43..f1477d1dcd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://py-filelock.readthedocs.io/"
LICENSE = "Unlicense"
LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
-SRC_URI[sha256sum] = "521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"
+SRC_URI[sha256sum] = "a79895a25bbefdf55d1a2a0a80968f7dbb28edcd6d4234a0afb3f37ecde4b546"
BBCLASSEXTEND = "native nativesdk"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
index 573b202910..8408ebd7b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
@@ -7,7 +7,7 @@ inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "flask_marshmallow"
-SRC_URI[sha256sum] = "d0f79eb9743f0c530a3d9e848503e1f2228e6b35a819c91e913af02e68421805"
+SRC_URI[sha256sum] = "00ee96399ed664963afff3b5d6ee518640b0f91dbc2aace2b5abcf32f40ef23a"
RDEPENDS:${PN} += "\
python3-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
index 87553c17e3..bfd854ac05 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alemb
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
-SRC_URI[sha256sum] = "d3f437a8b5f3849d1bb1b60e1b818efc564c66e3fefe90b62e5db08db295e1b1"
+SRC_URI[sha256sum] = "dff7dd25113c210b069af280ea713b883f3840c1e3455274745d7355778c8622"
PYPI_PACKAGE = "Flask-Migrate"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
index 1a81a38b0f..8a61a2de05 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
@@ -5,12 +5,11 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c5a58ca91c1758a53f896ba89d8aaac2"
SRC_URI = "git://github.com/gcovr/gcovr.git;branch=main;protocol=https"
-SRCREV = "fc190bcb85a25f5738315434a11f8e993edce515"
+SRCREV = "c4b74b0859611283be646d590c7915e787911b6f"
S = "${WORKDIR}/git"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "gcovr"
RDEPENDS:${PN} += "python3-jinja2 python3-lxml python3-setuptools python3-pygments python3-multiprocessing"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
index bdf4fc5386..ceba10b65b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
@@ -13,7 +13,6 @@ SRC_URI = "git://github.com/geomet/geomet.git;protocol=https;branch=master"
SRCREV = "6ac73c312b52aca328db2e61d90c5e363b62639f"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "geomet"
RDEPENDS:${PN} += "\
python3-click \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.16.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
index ecb15ba3c5..b4cbafa85d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.16.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "032d37b45d1d6bdaf68fb11ff621e2593263a239fa9246e2e94325f9c47876d2"
+SRC_URI[sha256sum] = "62d97417bfc674d6cef251e5c4d639a9655e00c45528c4364fbfebb478ce72a9"
RDEPENDS:${PN} += "\
python3-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.118.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
index 6a27006b79..99b07d3e86 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.118.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[sha256sum] = "ebf4927a3f5184096647be8f705d090e7f06d48ad82b0fa431a2fe80c2cbe182"
+SRC_URI[sha256sum] = "f6d3258420f7c76b0f5266b5e402e6f804e30351b018a10083f4a46c3ec33773"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest
new file mode 100644
index 0000000000..f1c8729f0e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+pytest --automake
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
index 5c071ac413..70e843a094 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
@@ -6,9 +6,26 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI[sha256sum] = "292d2d3783349f2b0734a0a0207b1e1e322ac193c2c09d8f7c613fb7cc501ea8"
-inherit pypi setuptools3
+inherit pypi setuptools3 ptest
-RDEPENDS:${PN} = " \
- python3-google-auth \
- python3-requests-oauthlib \
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-click \
+ python3-mock \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-google-auth \
+ python3-requests-oauthlib \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest
new file mode 100644
index 0000000000..f1c8729f0e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+pytest --automake
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
deleted file mode 100644
index 4524cca48c..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "Google Authentication Library"
-HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "34fc3046c257cedcf1622fc4b31fc2be7923d9b4d44973d481125ecc50d83885"
-
-RDEPENDS:${PN} += "\
- python3-asyncio \
- python3-datetime \
- python3-io \
- python3-json \
- python3-logging \
- python3-netclient \
- python3-numbers \
-"
-
-RDEPENDS:${PN} += "\
- python3-aiohttp \
- python3-cachetools \
- python3-pyasn1-modules \
- python3-rsa \
- python3-six \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb
new file mode 100644
index 0000000000..e8d438df02
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Google Authentication Library"
+HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "672dff332d073227550ffc7457868ac4218d6c500b155fe6cc17d2b13602c360"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-cryptography \
+ python3-flask \
+ python3-freezegun \
+ python3-grpcio \
+ python3-mock \
+ python3-oauth2client \
+ python3-pyopenssl \
+ python3-pytest \
+ python3-pytest-localserver \
+ python3-pyu2f \
+ python3-requests \
+ python3-responses \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "\
+ python3-cachetools \
+ python3-json \
+ python3-pyasn1-modules \
+ python3-rsa \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.62.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
index 5df1210dab..aee2337267 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.62.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7ca
inherit pypi setuptools3
-SRC_URI[sha256sum] = "83f0ece9f94e5672cced82f592d2a5edf527a96ed1794f0bab36d5735c996277"
+SRC_URI[sha256sum] = "17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e"
RDEPENDS:${PN} += "\
python3-grpcio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
index d381699a89..0fd81b0ee6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "Graphviz protocol implementation"
HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=951dd0868a9606c867ffda0ea3ea6da2"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=bcdc1cf20245c598f9a563b550605785"
-SRC_URI[sha256sum] = "8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"
+SRC_URI[sha256sum] = "09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.60.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
index 07f5fe4c2a..ffa2f843c7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.60.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
@@ -12,7 +12,7 @@ DEPENDS += "python3-grpcio"
SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \
file://0001-protobuf-Disable-musttail-attribute-on-mips.patch \
"
-SRC_URI[sha256sum] = "da08224ab8675c6d464b988bd8ca02cccd2bf0275bceefe8f6219bfd4a4f5e85"
+SRC_URI[sha256sum] = "a4991e5ee8a97ab791296d3bf7e8700b1445635cc1828cc98df945ca1802d7f2"
RDEPENDS:${PN} = "python3-grpcio"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
index a5e767029e..34ef7874e8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
@@ -1,4 +1,4 @@
-From 6ede7d01b18a4d9eeaccd25f5c1ab9985cb65307 Mon Sep 17 00:00:00 2001
+From 671618df3e48619f0c7a5a3acd8982374a5e43db Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 12 Feb 2023 21:25:04 -0800
Subject: [PATCH] zlib: Include unistd.h for open/close C APIs
@@ -6,16 +6,15 @@ Subject: [PATCH] zlib: Include unistd.h for open/close C APIs
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
third_party/zlib/gzguts.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/third_party/zlib/gzguts.h b/third_party/zlib/gzguts.h
-index 57faf37..3c700c2 100644
+index f937504..341a68d 100644
--- a/third_party/zlib/gzguts.h
+++ b/third_party/zlib/gzguts.h
-@@ -19,6 +19,7 @@
+@@ -18,6 +18,7 @@
#endif
#include <stdio.h>
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
index 4bb60b6e2c..f39a9616d9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
@@ -1,4 +1,4 @@
-From 9cec6297effa9fab6f0c71e342046daceecd7d4d Mon Sep 17 00:00:00 2001
+From 102dcce6610e6606fffd3a4986f84eb52177f8c8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 13 Mar 2021 10:26:25 -0800
Subject: [PATCH] An all-in-one patch that fixes several issues:
@@ -13,7 +13,6 @@ Sourced from void linux
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Xu Huan <xuhuan.fnst@fujitsu.com>
-
---
.../abseil-cpp/absl/base/internal/unscaledcycleclock.cc | 4 ++--
.../absl/base/internal/unscaledcycleclock_config.h | 3 ++-
@@ -22,7 +21,7 @@ Signed-off-by: Xu Huan <xuhuan.fnst@fujitsu.com>
4 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
-index b1c396c..d62bfd6 100644
+index 05e0e7b..f11fecb 100644
--- a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
+++ b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
@@ -20,7 +20,7 @@
@@ -58,10 +57,10 @@ index 24b324a..5e232c1 100644
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
diff --git a/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc b/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
-index 5786322..72c7c46 100644
+index 3dd6ba1..9f0601c 100644
--- a/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
+++ b/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
-@@ -33,6 +33,10 @@
+@@ -36,6 +36,10 @@
#include <csignal>
#include <cstdio>
@@ -72,7 +71,7 @@ index 5786322..72c7c46 100644
#include "absl/base/attributes.h"
#include "absl/base/internal/raw_logging.h"
#include "absl/base/macros.h"
-@@ -174,8 +178,10 @@ void* GetProgramCounter(void* const vuc) {
+@@ -177,8 +181,10 @@ void* GetProgramCounter(void* const vuc) {
return reinterpret_cast<void*>(context->uc_mcontext.pc);
#elif defined(__powerpc64__)
return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.60.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
index b00f8681c5..8405ebed02 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.60.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
@@ -10,12 +10,9 @@ SRC_URI += "file://0001-Include-missing-cstdint-header.patch \
file://abseil-ppc-fixes.patch \
file://0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch \
"
-SRC_URI[sha256sum] = "dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962"
+SRC_URI[sha256sum] = "6c455e008fa86d9e9a9d85bb76da4277c0d7d9668a3bfa70dbe86e9f3c759947"
-RDEPENDS:${PN} = "python3-protobuf \
- python3-setuptools \
- python3-six \
-"
+RDEPENDS:${PN} = "python3-protobuf"
inherit setuptools3
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb
new file mode 100644
index 0000000000..4192697df2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A collection of framework independent HTTP protocol utils."
+HOMEPAGE = "https://github.com/MagicStack/httptools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0a2d82955bf3facdf04cb882655e840e"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.26.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
index 50bff7f851..e4d3cbeee8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.26.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c624803bdf6fc1c4ce39f5ae11d7bd05"
inherit pypi python_hatchling
-SRC_URI[sha256sum] = "451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"
+SRC_URI[sha256sum] = "a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"
DEPENDS += "\
python3-hatch-fancy-pypi-readme-native \
@@ -22,6 +22,10 @@ RDEPENDS:${PN} += "\
python3-httpcore \
python3-idna \
python3-sniffio \
+ python3-json \
+ python3-core \
+ python3-netclient \
+ python3-compression \
"
PACKAGES += "\
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb
new file mode 100644
index 0000000000..ec3a4b90f1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call."
+HOMEPAGE = "https://github.com/gruns/icecream"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eca5ce1610d64ed40920efdce85ff8d1"
+
+SRC_URI[sha256sum] = "0aa4a7c3374ec36153a1d08f81e3080e83d8ac1eefd97d2f4fe9544e8f9b49de"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asttokens \
+ python3-colorama \
+ python3-executing \
+ python3-numbers \
+ python3-pygments \
+ python3-pprint \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
index 657f610bdd..582599bca8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
@@ -16,9 +16,6 @@ SRCREV = "9be6a51d1660991562eefaaddefa757ca0e0e00f"
S = "${WORKDIR}/git"
inherit setuptools3 ptest
-PIP_INSTALL_PACKAGE = "inotify"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
RDEPENDS:${PN} += " \
python3-ctypes \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb
new file mode 100644
index 0000000000..3f2e6232d6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pythonic task execution"
+HOMEPAGE = "https://www.pyinvoke.org/"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a8815068973f31b78c328dc067e297ab"
+
+SRC_URI[sha256sum] = "ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-fcntl \
+ python3-json \
+ python3-logging \
+ python3-pprint \
+ python3-terminal \
+ python3-unittest \
+ python3-unixadmin \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.21.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
index 7f5dde768f..b8595fe9ca 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.21.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f"
PYPI_PACKAGE = "ipython"
-SRC_URI[sha256sum] = "48fbc236fbe0e138b88773fa0437751f14c3645fb483f1d4c5dee58b37e5ce73"
+SRC_URI[sha256sum] = "2dcaad9049f9056f1fef63514f176c7d41f930daa78d05b82a176202818f2c14"
RDEPENDS:${PN} = "\
python3-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
index 22a798529f..f1dd368ea0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/slashmili/python-jalali"
LICENSE = "Python-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c80be45b33471b4a23cf53d06a8172be"
-SRC_URI[sha256sum] = "1dd0ee210160c7bd30002803c443e6260ac602ea65b065652a1d567d3bfdca7a"
+SRC_URI[sha256sum] = "2cc603d913c0d8e328928454d3d295261cb037e9950227f67c9629ab4710fdf9"
PYPI_PACKAGE = "jdatetime"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
index 6c2af0d4ea..ba1819979b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
@@ -7,11 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=366e2fd3c9714f162d3663b6f97cfe41"
SRC_URI = "git://github.com/keras-team/keras-applications.git;branch=master;protocol=https"
SRCREV ?= "3b180cb10eda683dda7913ecee2e6487288d292d"
-
inherit setuptools3
-PIP_INSTALL_PACKAGE = "Keras_Applications"
-
S = "${WORKDIR}/git"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
index 9e791c6e78..991aa0f7d8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
@@ -5,7 +5,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6d3bc49400e35d5a2279d14c40dcfb09"
inherit setuptools3 pkgconfig features_check
-PIP_INSTALL_PACKAGE = "Kivy"
# Kivy's setup files only look for GLES libraries for Android, iOS, RPi,
# and mali-based OS's. We need to patch the setup file to tell Kivy setup
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
index 673d32c2d4..8cd60d3a0f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
@@ -17,7 +17,6 @@ RDEPENDS:${PN} = " \
"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "lrparsing"
S = "${WORKDIR}/lrparsing-${PV}"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
index 5a0a79a541..bf1d8dd290 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
@@ -10,8 +10,6 @@ SRC_URI[sha256sum] = "4e65e9e0d80fc9e609574b9983cf32579f305c718afb30d7233ab81857
inherit python_flit_core pypi ptest
-PIP_INSTALL_PACKAGE = "marshmallow"
-
SRC_URI += " \
file://run-ptest \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
index 2af7b57921..aacc32a6d6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
@@ -11,5 +11,3 @@ SRC_URI = "git://github.com/atdt/monotonic.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "monotonic"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch
deleted file mode 100644
index c3cee46439..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From 44eaa60cc6c86951ce36811e80c3411d1b1e4c39 Mon Sep 17 00:00:00 2001
-From: Charles Duffy <charles@dyfis.net>
-Date: Fri, 19 Jan 2024 17:47:59 -0600
-Subject: [PATCH] Extend aio-libs/multidict#909 to 3.12 as well to address aio-libs/multidict#926
-
-Upstream-Status: Submitted [https://github.com/aio-libs/multidict/pull/929]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- multidict/_multidict.c | 68 +++++++++++++++++++++---------------------
- 1 file changed, 34 insertions(+), 34 deletions(-)
-
-diff --git a/multidict/_multidict.c b/multidict/_multidict.c
-index 228d4df..6086495 100644
---- a/multidict/_multidict.c
-+++ b/multidict/_multidict.c
-@@ -9,7 +9,7 @@
- #include "_multilib/iter.h"
- #include "_multilib/views.h"
-
--#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 13
-+#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 12
- #ifndef _PyArg_UnpackKeywords
- #define FASTCALL_OLD
- #endif
-@@ -444,7 +444,7 @@ fail:
- static inline PyObject *
- multidict_getall(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -458,7 +458,7 @@ multidict_getall(
- *key = NULL,
- *_default = NULL;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *getall_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getall",
-@@ -509,7 +509,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_getone(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -522,7 +522,7 @@ multidict_getone(
- PyObject *key = NULL,
- *_default = NULL;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *getone_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getone",
-@@ -563,7 +563,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_get(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -577,7 +577,7 @@ multidict_get(
- *_default = Py_None,
- *ret;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *getone_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getone",
-@@ -833,7 +833,7 @@ multidict_tp_init(MultiDictObject *self, PyObject *args, PyObject *kwds)
- static inline PyObject *
- multidict_add(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -846,7 +846,7 @@ multidict_add(
- PyObject *key = NULL,
- *val = NULL;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *kwlist[] = {"key", "value", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO:add",
- kwlist, &key, &val))
-@@ -913,7 +913,7 @@ multidict_clear(MultiDictObject *self)
- static inline PyObject *
- multidict_setdefault(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -926,7 +926,7 @@ multidict_setdefault(
- PyObject *key = NULL,
- *_default = NULL;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *setdefault_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:setdefault",
-@@ -967,7 +967,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_popone(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -981,7 +981,7 @@ multidict_popone(
- *_default = NULL,
- *ret_val = NULL;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *popone_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popone",
-@@ -1046,7 +1046,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_pop(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -1060,7 +1060,7 @@ multidict_pop(
- *_default = NULL,
- *ret_val = NULL;
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *pop_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popone",
-@@ -1113,7 +1113,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_popall(
- MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -1128,7 +1128,7 @@ multidict_popall(
- *ret_val = NULL;
-
-
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- static char *popall_keywords[] = {"key", "default", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popall",
-@@ -1270,7 +1270,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "getall",
- (PyCFunction)multidict_getall,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1281,7 +1281,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "getone",
- (PyCFunction)multidict_getone,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1292,7 +1292,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "get",
- (PyCFunction)multidict_get,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1321,7 +1321,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "add",
- (PyCFunction)multidict_add,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1350,7 +1350,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "setdefault",
- (PyCFunction)multidict_setdefault,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1361,7 +1361,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "popone",
- (PyCFunction)multidict_popone,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1372,7 +1372,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "pop",
- (PyCFunction)multidict_pop,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1383,7 +1383,7 @@ static PyMethodDef multidict_methods[] = {
- {
- "popall",
- (PyCFunction)multidict_popall,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1559,7 +1559,7 @@ multidict_proxy_tp_init(MultiDictProxyObject *self, PyObject *args,
- static inline PyObject *
- multidict_proxy_getall(
- MultiDictProxyObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -1572,7 +1572,7 @@ multidict_proxy_getall(
- return multidict_getall(
- self->md,
- args,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- kwds
- #else
- nargs,
-@@ -1584,7 +1584,7 @@ multidict_proxy_getall(
- static inline PyObject *
- multidict_proxy_getone(
- MultiDictProxyObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -1596,7 +1596,7 @@ multidict_proxy_getone(
- {
- return multidict_getone(
- self->md, args,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- kwds
- #else
- nargs, kwnames
-@@ -1607,7 +1607,7 @@ multidict_proxy_getone(
- static inline PyObject *
- multidict_proxy_get(
- MultiDictProxyObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- PyObject *args,
- PyObject *kwds
- #else
-@@ -1620,7 +1620,7 @@ multidict_proxy_get(
- return multidict_get(
- self->md,
- args,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- kwds
- #else
- nargs,
-@@ -1734,7 +1734,7 @@ static PyMethodDef multidict_proxy_methods[] = {
- {
- "getall",
- (PyCFunction)multidict_proxy_getall,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1745,7 +1745,7 @@ static PyMethodDef multidict_proxy_methods[] = {
- {
- "getone",
- (PyCFunction)multidict_proxy_getone,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
-@@ -1756,7 +1756,7 @@ static PyMethodDef multidict_proxy_methods[] = {
- {
- "get",
- (PyCFunction)multidict_proxy_get,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
- METH_VARARGS
- #else
- METH_FASTCALL
---
-2.43.0
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
index 19b94dee02..b12e180d02 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
@@ -8,12 +8,11 @@ inherit pypi setuptools3 ptest
PV .= "+git"
-SRCREV = "82b559cdd0b41548f3dadc5561a9aaaa7f93ae14"
+SRCREV = "a9b281b2ef4ab25d95d6b268aa88c428e75c3696"
PYPI_SRC_URI = "git://github.com/aio-libs/multidict;branch=master;protocol=https"
S = "${WORKDIR}/git"
SRC_URI += " \
- file://0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch \
file://run-ptest \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
index 2e6c7cc076..e51264f8a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8d62fd8f8648cb018e52857347e340b9"
inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"
+SRC_URI[sha256sum] = "3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
index 9055772b57..e4cf77a134 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
@@ -5,9 +5,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e5f264c6988aec56808a3a11e77b913 \
"
SRCNAME = "paho-mqtt"
-inherit pypi setuptools3
+inherit pypi python_hatchling python_setuptools_build_meta
-SRC_URI[sha256sum] = "2a8291c81623aec00372b5a85558a372c747cbca8e9934dfe218638b8eefc26f"
+SRC_URI[sha256sum] = "13b205f29251e4f2c66a6c923c31fc4fd780561e03b2d775cff8e4f2915cf947"
+
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/73/b7/a4df0f93bbdae237e16ba402752151eceee576cbe80c235a2475fbf81eea/paho_mqtt-${PV}.tar.gz"
+
+S = "${WORKDIR}/paho_mqtt-${PV}"
DEPENDS += "python3-pytest-runner-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.12.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
index 0862eab6a2..387f14b0ea 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.12.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2"
-SRC_URI[sha256sum] = "53cdab727c1469fdc196efd8d7ff8404a3ca91ee43c0a5714736f2020d0a5ddf"
+SRC_URI[sha256sum] = "e282bf1caf0a083fc0fb5e89ad6f79d7c579ff52c7bb58ee8587ea3d5bb9e14a"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
index f3e0711087..50dae7b407 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
@@ -7,9 +7,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=38066667888b01d8118ff9cc23da1873"
inherit setuptools3 pypi ptest
SRC_URI[sha256sum] = "82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"
-PIP_INSTALL_PACKAGE = "pefile"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
index 91b02ea017..e795bd4916 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
@@ -14,9 +14,6 @@ SRCREV ?= "da59ad000d1405eaecd557175e29083a87d19f7c"
inherit setuptools3 ptest
-PIP_INSTALL_PACKAGE = "Pillow"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
DEPENDS += " \
zlib \
jpeg \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
index a45ef45f32..a4732993f8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
@@ -15,7 +15,6 @@ SRC_URI = "git://github.com/seveas/python-prctl;protocol=https;branch=main \
file://0001-support-cross-complication.patch \
"
inherit setuptools3 python3native
-PIP_INSTALL_PACKAGE = "python_prctl"
DEPENDS += "libcap"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
index ccd6025be1..34f3639e53 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/etingof/pyasn1-modules"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=190f79253908c986e6cacf380c3a5f6d"
-SRC_URI[sha256sum] = "5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"
+SRC_URI[sha256sum] = "831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6"
PYPI_PACKAGE = "pyasn1_modules"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
index 37cb78a308..91575d2712 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
@@ -7,6 +7,8 @@ Subject: [PATCH] Do not strip binaries.
Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+Upstream-Status: Pending
---
tools/pybind11NewTools.cmake | 7 -------
tools/pybind11Tools.cmake | 6 ------
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
index b26478451a..2086091d63 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
@@ -17,9 +17,7 @@ require ${BPN}-crates.inc
inherit pypi cargo-update-recipe-crates python_maturin
-S = "${WORKDIR}/pydantic_core-${PV}"
-
-PYPI_ARCHIVE_NAME = "pydantic_core-${PV}.${PYPI_PACKAGE_EXT}"
+PYPI_PACKAGE = "pydantic_core"
RDEPENDS:${PN} += "python3-typing-extensions"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
index 246f67cb8f..ddc24d08c6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=09280955509d1c4ca14bae02f21d49a6"
inherit pypi python_hatchling
-SRC_URI[sha256sum] = "e07805c4c7f5c6826e33a1d4c9d47950d7eaf34868e2690f8594d2e30241f11f"
+SRC_URI[sha256sum] = "b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"
DEPENDS += "python3-hatch-fancy-pypi-readme-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
new file mode 100644
index 0000000000..1bd17986e6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
@@ -0,0 +1,40 @@
+From 5fe65a35e0e7106347639f0258206fadb451c439 Mon Sep 17 00:00:00 2001
+From: Hiroaki KAWAI <hiroaki.kawai@gmail.com>
+Date: Wed, 1 Feb 2017 18:00:33 +0900
+Subject: [PATCH 1/3] make direction attribute conforming to introspect.dtd
+
+direction attribute defaults to "in" as
+in the DTD(*1), direction attribute is defined as following:
+
+```
+<!ATTRLIST arg direction (in|out) "in">
+```
+
+*1) http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ pydbus/proxy_method.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 8798edd..3e6e6ee 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -33,8 +33,8 @@ class ProxyMethod(object):
+ self.__name__ = method.attrib["name"]
+ self.__qualname__ = self._iface_name + "." + self.__name__
+
+- self._inargs = [(arg.attrib.get("name", ""), arg.attrib["type"]) for arg in method if arg.tag == "arg" and arg.attrib["direction"] == "in"]
+- self._outargs = [arg.attrib["type"] for arg in method if arg.tag == "arg" and arg.attrib["direction"] == "out"]
++ self._inargs = [(arg.attrib.get("name", ""), arg.attrib["type"]) for arg in method if arg.tag == "arg" and arg.attrib.get("direction", "in") == "in"]
++ self._outargs = [arg.attrib["type"] for arg in method if arg.tag == "arg" and arg.attrib.get("direction", "in") == "out"]
+ self._sinargs = "(" + "".join(x[1] for x in self._inargs) + ")"
+ self._soutargs = "(" + "".join(self._outargs) + ")"
+
+--
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
new file mode 100644
index 0000000000..b3c57edade
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
@@ -0,0 +1,206 @@
+From 31d6dd7893a5e1bb9eb14bfcee861a5b62f64960 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Thu, 27 Jul 2017 18:41:29 +0200
+Subject: [PATCH 2/3] Support asynchronous calls (#58)
+
+Added support for asynchronous calls of methods. A method is called
+synchronously unless its callback parameter is specified. A callback
+is a function f(*args, returned=None, error=None), where args is
+callback_args specified in the method call, returned is a return
+value of the method and error is an exception raised by the method.
+
+Example of an asynchronous call:
+
+def func(x, y, returned=None, error=None):
+ pass
+
+proxy.Method(a, b, callback=func, callback_args=(x, y))
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ doc/tutorial.rst | 11 ++++++++-
+ pydbus/proxy_method.py | 44 ++++++++++++++++++++++++++++++-----
+ tests/publish_async.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/run.sh | 1 +
+ 4 files changed, 112 insertions(+), 7 deletions(-)
+ create mode 100644 tests/publish_async.py
+
+diff --git a/doc/tutorial.rst b/doc/tutorial.rst
+index 7474de3..b8479cf 100644
+--- a/doc/tutorial.rst
++++ b/doc/tutorial.rst
+@@ -84,7 +84,8 @@ All objects have methods, properties and signals.
+ Setting up an event loop
+ ========================
+
+-To handle signals emitted by exported objects, or to export your own objects, you need to setup an event loop.
++To handle signals emitted by exported objects, to asynchronously call methods
++or to export your own objects, you need to setup an event loop.
+
+ The only main loop supported by ``pydbus`` is GLib.MainLoop.
+
+@@ -156,6 +157,14 @@ To call a method::
+
+ dev.Disconnect()
+
++To asynchronously call a method::
++
++ def print_result(returned=None, error=None):
++ print(returned, error)
++
++ dev.GetAppliedConnection(0, callback=print_result)
++ loop.run()
++
+ To read a property::
+
+ print(dev.Autoconnect)
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 3e6e6ee..442fe07 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -65,15 +65,34 @@ class ProxyMethod(object):
+
+ # Python 2 sux
+ for kwarg in kwargs:
+- if kwarg not in ("timeout",):
++ if kwarg not in ("timeout", "callback", "callback_args"):
+ raise TypeError(self.__qualname__ + " got an unexpected keyword argument '{}'".format(kwarg))
+ timeout = kwargs.get("timeout", None)
++ callback = kwargs.get("callback", None)
++ callback_args = kwargs.get("callback_args", tuple())
++
++ call_args = (
++ instance._bus_name,
++ instance._path,
++ self._iface_name,
++ self.__name__,
++ GLib.Variant(self._sinargs, args),
++ GLib.VariantType.new(self._soutargs),
++ 0,
++ timeout_to_glib(timeout),
++ None
++ )
++
++ if callback:
++ call_args += (self._finish_async_call, (callback, callback_args))
++ instance._bus.con.call(*call_args)
++ return None
++ else:
++ ret = instance._bus.con.call_sync(*call_args)
++ return self._unpack_return(ret)
+
+- ret = instance._bus.con.call_sync(
+- instance._bus_name, instance._path,
+- self._iface_name, self.__name__, GLib.Variant(self._sinargs, args), GLib.VariantType.new(self._soutargs),
+- 0, timeout_to_glib(timeout), None).unpack()
+-
++ def _unpack_return(self, values):
++ ret = values.unpack()
+ if len(self._outargs) == 0:
+ return None
+ elif len(self._outargs) == 1:
+@@ -81,6 +100,19 @@ class ProxyMethod(object):
+ else:
+ return ret
+
++ def _finish_async_call(self, source, result, user_data):
++ error = None
++ return_args = None
++
++ try:
++ ret = source.call_finish(result)
++ return_args = self._unpack_return(ret)
++ except Exception as err:
++ error = err
++
++ callback, callback_args = user_data
++ callback(*callback_args, returned=return_args, error=error)
++
+ def __get__(self, instance, owner):
+ if instance is None:
+ return self
+diff --git a/tests/publish_async.py b/tests/publish_async.py
+new file mode 100644
+index 0000000..3f79b62
+--- /dev/null
++++ b/tests/publish_async.py
+@@ -0,0 +1,63 @@
++from pydbus import SessionBus
++from gi.repository import GLib
++from threading import Thread
++import sys
++
++done = 0
++loop = GLib.MainLoop()
++
++class TestObject(object):
++ '''
++<node>
++ <interface name='net.lew21.pydbus.tests.publish_async'>
++ <method name='HelloWorld'>
++ <arg type='i' name='x' direction='in'/>
++ <arg type='s' name='response' direction='out'/>
++ </method>
++ </interface>
++</node>
++ '''
++ def __init__(self, id):
++ self.id = id
++
++ def HelloWorld(self, x):
++ res = self.id + ": " + str(x)
++ print(res)
++ return res
++
++bus = SessionBus()
++
++with bus.publish("net.lew21.pydbus.tests.publish_async", TestObject("Obj")):
++ remote = bus.get("net.lew21.pydbus.tests.publish_async")
++
++ def callback(x, returned=None, error=None):
++ print("asyn: " + returned)
++ assert (returned is not None)
++ assert(error is None)
++ assert(x == int(returned.split()[1]))
++
++ global done
++ done += 1
++ if done == 3:
++ loop.quit()
++
++ def t1_func():
++ remote.HelloWorld(1, callback=callback, callback_args=(1,))
++ remote.HelloWorld(2, callback=callback, callback_args=(2,))
++ print("sync: " + remote.HelloWorld(3))
++ remote.HelloWorld(4, callback=callback, callback_args=(4,))
++
++ t1 = Thread(None, t1_func)
++ t1.daemon = True
++
++ def handle_timeout():
++ print("ERROR: Timeout.")
++ sys.exit(1)
++
++ GLib.timeout_add_seconds(2, handle_timeout)
++
++ t1.start()
++
++ loop.run()
++
++ t1.join()
+diff --git a/tests/run.sh b/tests/run.sh
+index 8d93644..271c58a 100755
+--- a/tests/run.sh
++++ b/tests/run.sh
+@@ -15,4 +15,5 @@ then
+ "$PYTHON" $TESTS_DIR/publish.py
+ "$PYTHON" $TESTS_DIR/publish_properties.py
+ "$PYTHON" $TESTS_DIR/publish_multiface.py
++ "$PYTHON" $TESTS_DIR/publish_async.py
+ fi
+--
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
new file mode 100644
index 0000000000..a1b8a6c38c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
@@ -0,0 +1,495 @@
+From 773858e1afd21cdf3ceef2cd35509f0b4882bf16 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Tue, 1 Aug 2017 16:54:24 +0200
+Subject: [PATCH 3/3] Support transformation between D-Bus errors and
+ exceptions.
+
+Exceptions can be registered with decorators, raised in a remote
+method and recreated after return from the remote call.
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ doc/tutorial.rst | 47 ++++++++++++++++++
+ pydbus/error.py | 97 ++++++++++++++++++++++++++++++++++++
+ pydbus/proxy_method.py | 18 +++++--
+ pydbus/registration.py | 16 ++++--
+ tests/error.py | 67 +++++++++++++++++++++++++
+ tests/publish_error.py | 132 +++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/run.sh | 2 +
+ 7 files changed, 371 insertions(+), 8 deletions(-)
+ create mode 100644 pydbus/error.py
+ create mode 100644 tests/error.py
+ create mode 100644 tests/publish_error.py
+
+diff --git a/doc/tutorial.rst b/doc/tutorial.rst
+index b8479cf..7fe55e1 100644
+--- a/doc/tutorial.rst
++++ b/doc/tutorial.rst
+@@ -341,6 +341,53 @@ See ``help(bus.request_name)`` and ``help(bus.register_object)`` for details.
+
+ .. --------------------------------------------------------------------
+
++Error handling
++==============
++
++You can map D-Bus errors to your exception classes for better error handling.
++To handle D-Bus errors, use the ``@map_error`` decorator::
++
++ from pydbus.error import map_error
++
++ @map_error("org.freedesktop.DBus.Error.InvalidArgs")
++ class InvalidArgsException(Exception):
++ pass
++
++ try:
++ ...
++ catch InvalidArgsException as e:
++ print(e)
++
++To register new D-Bus errors, use the ``@register_error`` decorator::
++
++ from pydbus.error import register_error
++
++ @map_error("net.lew21.pydbus.TutorialExample.MyError", MY_DOMAIN, MY_EXCEPTION_CODE)
++ class MyException(Exception):
++ pass
++
++Then you can raise ``MyException`` from the D-Bus method of the remote object::
++
++ def Method():
++ raise MyException("Message")
++
++And catch the same exception on the client side::
++
++ try:
++ proxy.Method()
++ catch MyException as e:
++ print(e)
++
++To handle all unknown D-Bus errors, use the ``@map_by_default`` decorator to specify the default exception::
++
++ from pydbus.error import map_by_default
++
++ @map_by_default
++ class DefaultException(Exception):
++ pass
++
++.. --------------------------------------------------------------------
++
+ Data types
+ ==========
+
+diff --git a/pydbus/error.py b/pydbus/error.py
+new file mode 100644
+index 0000000..aaa3510
+--- /dev/null
++++ b/pydbus/error.py
+@@ -0,0 +1,97 @@
++from gi.repository import GLib, Gio
++
++
++def register_error(name, domain, code):
++ """Register and map decorated exception class to a DBus error."""
++ def decorated(cls):
++ error_registration.register_error(cls, name, domain, code)
++ return cls
++
++ return decorated
++
++
++def map_error(error_name):
++ """Map decorated exception class to a DBus error."""
++ def decorated(cls):
++ error_registration.map_error(cls, error_name)
++ return cls
++
++ return decorated
++
++
++def map_by_default(cls):
++ """Map decorated exception class to all unknown DBus errors."""
++ error_registration.map_by_default(cls)
++ return cls
++
++
++class ErrorRegistration(object):
++ """Class for mapping exceptions to DBus errors."""
++
++ _default = None
++ _map = dict()
++ _reversed_map = dict()
++
++ def map_by_default(self, exception_cls):
++ """Set the exception class as a default."""
++ self._default = exception_cls
++
++ def map_error(self, exception_cls, name):
++ """Map the exception class to a DBus name."""
++ self._map[name] = exception_cls
++ self._reversed_map[exception_cls] = name
++
++ def register_error(self, exception_cls, name, domain, code):
++ """Map and register the exception class to a DBus name."""
++ self.map_error(exception_cls, name)
++ return Gio.DBusError.register_error(domain, code, name)
++
++ def is_registered_exception(self, obj):
++ """Is the exception registered?"""
++ return obj.__class__ in self._reversed_map
++
++ def get_dbus_name(self, obj):
++ """Get the DBus name of the exception."""
++ return self._reversed_map.get(obj.__class__)
++
++ def get_exception_class(self, name):
++ """Get the exception class mapped to the DBus name."""
++ return self._map.get(name, self._default)
++
++ def transform_message(self, name, message):
++ """Transform the message of the exception."""
++ prefix = "{}:{}: ".format("GDBus.Error", name)
++
++ if message.startswith(prefix):
++ return message[len(prefix):]
++
++ return message
++
++ def transform_exception(self, e):
++ """Transform the remote error to the exception."""
++ if not isinstance(e, GLib.Error):
++ return e
++
++ if not Gio.DBusError.is_remote_error(e):
++ return e
++
++ # Get DBus name of the error.
++ name = Gio.DBusError.get_remote_error(e)
++ # Get the exception class.
++ exception_cls = self.get_exception_class(name)
++
++ # Return the original exception.
++ if not exception_cls:
++ return e
++
++ # Return new exception.
++ message = self.transform_message(name, e.message)
++ exception = exception_cls(message)
++ exception.dbus_name = name
++ exception.dbus_domain = e.domain
++ exception.dbus_code = e.code
++ return exception
++
++
++# Default error registration.
++error_registration = ErrorRegistration()
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 442fe07..a73f9eb 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -2,6 +2,7 @@ from gi.repository import GLib
+ from .generic import bound_method
+ from .identifier import filter_identifier
+ from .timeout import timeout_to_glib
++from .error import error_registration
+
+ try:
+ from inspect import Signature, Parameter
+@@ -87,9 +88,20 @@ class ProxyMethod(object):
+ call_args += (self._finish_async_call, (callback, callback_args))
+ instance._bus.con.call(*call_args)
+ return None
++
+ else:
+- ret = instance._bus.con.call_sync(*call_args)
+- return self._unpack_return(ret)
++ result = None
++ error = None
++
++ try:
++ result = instance._bus.con.call_sync(*call_args)
++ except Exception as e:
++ error = error_registration.transform_exception(e)
++
++ if error:
++ raise error
++
++ return self._unpack_return(result)
+
+ def _unpack_return(self, values):
+ ret = values.unpack()
+@@ -108,7 +120,7 @@ class ProxyMethod(object):
+ ret = source.call_finish(result)
+ return_args = self._unpack_return(ret)
+ except Exception as err:
+- error = err
++ error = error_registration.transform_exception(err)
+
+ callback, callback_args = user_data
+ callback(*callback_args, returned=return_args, error=error)
+diff --git a/pydbus/registration.py b/pydbus/registration.py
+index f531539..1d2cbcb 100644
+--- a/pydbus/registration.py
++++ b/pydbus/registration.py
+@@ -5,6 +5,7 @@ from . import generic
+ from .exitable import ExitableWithAliases
+ from functools import partial
+ from .method_call_context import MethodCallContext
++from .error import error_registration
+ import logging
+
+ try:
+@@ -91,11 +92,16 @@ class ObjectWrapper(ExitableWithAliases("unwrap")):
+ logger = logging.getLogger(__name__)
+ logger.exception("Exception while handling %s.%s()", interface_name, method_name)
+
+- #TODO Think of a better way to translate Python exception types to DBus error types.
+- e_type = type(e).__name__
+- if not "." in e_type:
+- e_type = "unknown." + e_type
+- invocation.return_dbus_error(e_type, str(e))
++ if error_registration.is_registered_exception(e):
++ name = error_registration.get_dbus_name(e)
++ invocation.return_dbus_error(name, str(e))
++ else:
++ logger.info("name is not registered")
++ e_type = type(e).__name__
++ if not "." in e_type:
++ e_type = "unknown." + e_type
++
++ invocation.return_dbus_error(e_type, str(e))
+
+ def Get(self, interface_name, property_name):
+ type = self.readable_properties[interface_name + "." + property_name]
+diff --git a/tests/error.py b/tests/error.py
+new file mode 100644
+index 0000000..3ec507d
+--- /dev/null
++++ b/tests/error.py
+@@ -0,0 +1,67 @@
++from pydbus.error import ErrorRegistration
++
++
++class ExceptionA(Exception):
++ pass
++
++
++class ExceptionB(Exception):
++ pass
++
++
++class ExceptionC(Exception):
++ pass
++
++
++class ExceptionD(Exception):
++ pass
++
++
++class ExceptionE(Exception):
++ pass
++
++
++def test_error_mapping():
++ r = ErrorRegistration()
++ r.map_error(ExceptionA, "net.lew21.pydbus.tests.ErrorA")
++ r.map_error(ExceptionB, "net.lew21.pydbus.tests.ErrorB")
++ r.map_error(ExceptionC, "net.lew21.pydbus.tests.ErrorC")
++
++ assert r.is_registered_exception(ExceptionA("Test"))
++ assert r.is_registered_exception(ExceptionB("Test"))
++ assert r.is_registered_exception(ExceptionC("Test"))
++ assert not r.is_registered_exception(ExceptionD("Test"))
++ assert not r.is_registered_exception(ExceptionE("Test"))
++
++ assert r.get_dbus_name(ExceptionA("Test")) == "net.lew21.pydbus.tests.ErrorA"
++ assert r.get_dbus_name(ExceptionB("Test")) == "net.lew21.pydbus.tests.ErrorB"
++ assert r.get_dbus_name(ExceptionC("Test")) == "net.lew21.pydbus.tests.ErrorC"
++
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorA") == ExceptionA
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorB") == ExceptionB
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorC") == ExceptionC
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorD") is None
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorE") is None
++
++ r.map_by_default(ExceptionD)
++ assert not r.is_registered_exception(ExceptionD("Test"))
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorD") == ExceptionD
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorE") == ExceptionD
++
++
++def test_transform_message():
++ r = ErrorRegistration()
++ n1 = "net.lew21.pydbus.tests.ErrorA"
++ m1 = "GDBus.Error:net.lew21.pydbus.tests.ErrorA: Message1"
++
++ n2 = "net.lew21.pydbus.tests.ErrorB"
++ m2 = "GDBus.Error:net.lew21.pydbus.tests.ErrorB: Message2"
++
++ assert r.transform_message(n1, m1) == "Message1"
++ assert r.transform_message(n2, m2) == "Message2"
++ assert r.transform_message(n1, m2) == m2
++ assert r.transform_message(n2, m1) == m1
++
++
++test_error_mapping()
++test_transform_message()
+diff --git a/tests/publish_error.py b/tests/publish_error.py
+new file mode 100644
+index 0000000..aa8a18a
+--- /dev/null
++++ b/tests/publish_error.py
+@@ -0,0 +1,132 @@
++import sys
++from threading import Thread
++from gi.repository import GLib, Gio
++from pydbus import SessionBus
++from pydbus.error import register_error, map_error, map_by_default, error_registration
++
++import logging
++logger = logging.getLogger('pydbus.registration')
++logger.disabled = True
++
++loop = GLib.MainLoop()
++DOMAIN = Gio.DBusError.quark() # TODO: Register new domain.
++
++
++@register_error("net.lew21.pydbus.tests.ErrorA", DOMAIN, 1000)
++class ExceptionA(Exception):
++ pass
++
++
++@register_error("net.lew21.pydbus.tests.ErrorB", DOMAIN, 2000)
++class ExceptionB(Exception):
++ pass
++
++
++@map_error("org.freedesktop.DBus.Error.InvalidArgs")
++class ExceptionC(Exception):
++ pass
++
++
++@map_by_default
++class ExceptionD(Exception):
++ pass
++
++
++class ExceptionE(Exception):
++ pass
++
++
++class TestObject(object):
++ '''
++<node>
++ <interface name='net.lew21.pydbus.tests.TestInterface'>
++ <method name='RaiseA'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ <method name='RaiseB'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ <method name='RaiseD'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ <method name='RaiseE'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ </interface>
++</node>
++ '''
++
++ def RaiseA(self, msg):
++ raise ExceptionA(msg)
++
++ def RaiseB(self, msg):
++ raise ExceptionB(msg)
++
++ def RaiseD(self, msg):
++ raise ExceptionD(msg)
++
++ def RaiseE(self, msg):
++ raise ExceptionE(msg)
++
++bus = SessionBus()
++
++with bus.publish("net.lew21.pydbus.tests.Test", TestObject()):
++ remote = bus.get("net.lew21.pydbus.tests.Test")
++
++ def t_func():
++ # Test new registered errors.
++ try:
++ remote.RaiseA("Test A")
++ except ExceptionA as e:
++ assert str(e) == "Test A"
++
++ try:
++ remote.RaiseB("Test B")
++ except ExceptionB as e:
++ assert str(e) == "Test B"
++
++ # Test mapped errors.
++ try:
++ remote.Get("net.lew21.pydbus.tests.TestInterface", "Foo")
++ except ExceptionC as e:
++ assert str(e) == "No such property 'Foo'"
++
++ # Test default errors.
++ try:
++ remote.RaiseD("Test D")
++ except ExceptionD as e:
++ assert str(e) == "Test D"
++
++ try:
++ remote.RaiseE("Test E")
++ except ExceptionD as e:
++ assert str(e) == "Test E"
++
++ # Test with no default errors.
++ error_registration.map_by_default(None)
++
++ try:
++ remote.RaiseD("Test D")
++ except Exception as e:
++ assert not isinstance(e, ExceptionD)
++
++ try:
++ remote.RaiseE("Test E")
++ except Exception as e:
++ assert not isinstance(e, ExceptionD)
++ assert not isinstance(e, ExceptionE)
++
++ loop.quit()
++
++ t = Thread(None, t_func)
++ t.daemon = True
++
++ def handle_timeout():
++ print("ERROR: Timeout.")
++ sys.exit(1)
++
++ GLib.timeout_add_seconds(4, handle_timeout)
++
++ t.start()
++ loop.run()
++ t.join()
+diff --git a/tests/run.sh b/tests/run.sh
+index 271c58a..a08baf8 100755
+--- a/tests/run.sh
++++ b/tests/run.sh
+@@ -10,10 +10,11 @@ PYTHON=${1:-python}
+
+ "$PYTHON" $TESTS_DIR/context.py
+ "$PYTHON" $TESTS_DIR/identifier.py
++"$PYTHON" $TESTS_DIR/error.py
+ if [ "$2" != "dontpublish" ]
+ then
+ "$PYTHON" $TESTS_DIR/publish.py
+ "$PYTHON" $TESTS_DIR/publish_properties.py
+ "$PYTHON" $TESTS_DIR/publish_multiface.py
+ "$PYTHON" $TESTS_DIR/publish_async.py
+ fi
+--
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
new file mode 100644
index 0000000000..782ceed3bb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+for case in `find tests -type f -name '*.sh'`; do
+ bash $case python3 >$case.output 2>&1
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ cat $case.output
+ echo "FAIL: ${case}"
+ elif grep -i 'SKIP' $case.output; then
+ echo "SKIP: ${case}"
+ else
+ echo "PASS: ${case}"
+ fi
+ rm -f $case.output
+done \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
new file mode 100644
index 0000000000..7399ae1a01
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Pythonic DBus library"
+HOMEPAGE = "https://pypi.python.org/pypi/pydbus/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7"
+
+SRCREV = "f2e6355a88351e7d644ccb2b4d67b19305507312"
+SRC_URI = " \
+ git://github.com/LEW21/pydbus.git;protocol=https;branch=master \
+ file://0001-make-direction-attribute-conforming-to-introspect.dt.patch \
+ file://0002-Support-asynchronous-calls-58.patch \
+ file://0003-Support-transformation-between-D-Bus-errors-and-exce.patch \
+ file://run-ptest \
+"
+
+inherit ptest setuptools3
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} = "python3-pygobject \
+ python3-io \
+ python3-logging"
+
+RDEPENDS:${PN}-ptests = "bash"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch
new file mode 100644
index 0000000000..8edecbf1bd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch
@@ -0,0 +1,44 @@
+From f3a213cf4922c122e554277ea2031c0c54cd3fe5 Mon Sep 17 00:00:00 2001
+From: Dan McGregor <dan.mcgregor@vecima.com>
+Date: Wed, 13 Mar 2024 14:08:25 -0600
+Subject: [PATCH] Adjust test expectations for ptest
+
+Because of the way we install ptests, some first party imports
+became third party. Reflect that in the test case.
+
+Upstream-Status: Inappropriate (embedded specific)
+Signed-off-by: Dan McGregor <dan.mcgregor@vecima.com>
+---
+ tests/functional/w/wrong_import_order.txt | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/tests/functional/w/wrong_import_order.txt b/tests/functional/w/wrong_import_order.txt
+index 068d2140d..9594ff9e0 100644
+--- a/tests/functional/w/wrong_import_order.txt
++++ b/tests/functional/w/wrong_import_order.txt
+@@ -3,14 +3,14 @@ wrong-import-order:14:0:14:10::"standard import ""sys"" should be placed before
+ wrong-import-order:15:0:15:15::"standard import ""datetime"" should be placed before third party imports ""six"", ""astroid.are_exclusive""":UNDEFINED
+ wrong-import-order:18:0:18:22::"third party import ""totally_missing"" should be placed before local import ""package.Class""":UNDEFINED
+ wrong-import-order:20:0:20:14::"third party import ""astroid"" should be placed before local imports ""package.Class"", "".package""":UNDEFINED
+-wrong-import-order:22:0:22:22::"first party import ""pylint.checkers"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:23:0:23:25::"first party import ""pylint.config"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:24:0:24:17::"first party import ""pylint.sys"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:25:0:25:28::"first party import ""pylint.pyreverse"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:30:0:30:40::"third party import ""six.moves.urllib.parse.quote"" should be placed before first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:31:0:31:23::"first party import ""pylint.constants"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:32:0:32:19::"standard import ""re"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"", ""totally_missing"", ""astroid"", ""six.moves.urllib.parse.quote"", first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"", ""pylint.constants"", and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:32:0:32:19::"third party import ""requests"" should be placed before first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"", ""pylint.constants"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:33:0:33:24::"first party import ""pylint.exceptions"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:34:0:34:21::"first party import ""pylint.message"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:35:0:35:11::"standard import ""time"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""astroid"", ""six.moves.urllib.parse.quote"", ""requests"", first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"" (...) ""pylint.constants"", ""pylint.exceptions"", ""pylint.message"", and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:22:0:22:22::"third party import ""pylint.checkers"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:23:0:23:25::"third party import ""pylint.config"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:24:0:24:17::"third party import ""pylint.sys"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:25:0:25:28::"third party import ""pylint.pyreverse"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:30:0:30:40::"third party import ""six.moves.urllib.parse.quote"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:31:0:31:23::"third party import ""pylint.constants"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:32:0:32:19::"standard import ""re"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""pylint.pyreverse"", ""six.moves.urllib.parse.quote"", ""pylint.constants"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:32:0:32:19::"third party import ""requests"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:33:0:33:24::"third party import ""pylint.exceptions"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:34:0:34:21::"third party import ""pylint.message"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:35:0:35:11::"standard import ""time"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""requests"", ""pylint.exceptions"", ""pylint.message"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
index eb4b9e897f..12f4f908af 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
@@ -3,10 +3,11 @@ HOMEPAGE= "http://www.pylint.org/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
-SRC_URI += "git://github.com/pylint-dev/pylint;branch=maintenance/3.0.x;protocol=https \
+SRC_URI += "git://github.com/pylint-dev/pylint;branch=maintenance/3.1.x;protocol=https \
+ file://0001-Adjust-test-expectations-for-ptest.patch \
file://run-ptest \
"
-SRCREV = "1a5ffc1f447b77071ffe18a9c6836c09147ee2ed"
+SRCREV = "053c2c3a25f97f043e10cdd41d2609e495a68f57"
inherit python_setuptools_build_meta ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
index 97985a8a1d..5be6e6319b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
@@ -9,8 +9,6 @@ S = "${WORKDIR}/git"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "PyMetno"
-
RDEPENDS:${PN} = "\
python3-aiohttp (>=3.6.1) \
python3-async-timeout (>=3.0.1) \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.185.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
index ce4671de93..59a00be154 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.185.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
@@ -3,12 +3,10 @@ HOMEPAGE = "https://github.com/MISP/PyMISP"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
-SRC_URI[sha256sum] = "3ccdc6ee48d26d82c77ba3f5d8fd41a79eaaef0ad5619f37a65b060e92f6da4c"
+SRC_URI[sha256sum] = "c2313d059a9f4d1221243fcda64fb8ae11603c1745e92d57c4071aad04336696"
inherit python_poetry_core pypi
-PIP_INSTALL_PACKAGE = "pymisp"
-
RDEPENDS:${PN} += " \
python3-dateutil \
python3-json \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
index 4f53d01f37..8e181640b6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/riptideio/pymodbus/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=eba8057aa82c058d2042b4b0a0e9cc63"
-SRC_URI[sha256sum] = "6eee2c7eedb794317784c967096fa1fe42200357e9b5a349d838ee9159624fe2"
+SRC_URI[sha256sum] = "c4d556a0954d00a9e1c8f1d0de03f41c4800336e6d785e820f2917eeb4ee7736"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
index 84c61ec8b0..6b37e1864a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
@@ -13,7 +13,7 @@ Features: \
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8"
-SRC_URI[sha256sum] = "64d8fadce6a74f478f29832c1eaa2a04856655ebff17292d5237fc8317c3a3c5"
+SRC_URI[sha256sum] = "9752fe749c21e460a564bb3f52fc319b892c62ee61c5138b4a9bbf94ad2755e6"
DEPENDS += "python3-six-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
index 7a96635144..2807c054d9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
@@ -24,8 +24,6 @@ S = "${WORKDIR}/git"
inherit python_setuptools3_rust cargo-update-recipe-crates
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
# crossbeam-* -> std::sync::atomic AtomicI64, AtomicU64
# not supported on mips/powerpc with 32-bit pointers
# https://doc.rust-lang.org/std/sync/atomic/#portability
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
index 2eda16f933..492020477e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python,
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77"
-SRC_URI[sha256sum] = "3a048872a9c4ba14c3e90cc1aa20cbc2def7d01c7c8db3777ec281ba9c057675"
+SRC_URI[sha256sum] = "ffe523a89c1c222598c76856e76852b787504ddb72dd5d9b6617ffa8aa2cde5f"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
index 0be97e5c4f..e3e4affb9d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = " \
file://LICENSE;md5=cbc4e25353c748c817db2daffe605e43 \
"
-SRC_URI[sha256sum] = "3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"
+SRC_URI[sha256sum] = "5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
index dcf662a2c8..f5e6dbfcd2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
@@ -12,7 +12,7 @@ HOMEPAGE = "https://github.com/dev-petrov/pytest-lazy-fixtures"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4475e66fcfabe27395e6764c8f69c876"
-SRC_URI[sha256sum] = "066b253a94c249e6d9cdfad465e2503d2219139fb468d8f687243dfde39ab9cb"
+SRC_URI[sha256sum] = "87ef7424dc0229ff9cb72d482f49b7806535c3500641f612c13ddf243c9adacb"
inherit pypi python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb
new file mode 100644
index 0000000000..669817829d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "pytest plugin to test server connections locally."
+HOMEPAGE = "https://github.com/pytest-dev/pytest-localserver"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b8da7a541d738b054dcbf70c31530432"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI[sha256sum] = "66569c34fef31a5750b16effd1cd1288a7a90b59155d005e7f916accd3dee4f1"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-requests \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-werkzeug \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
index a7daa05e6c..b56c26aada 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d8048cd156eda3df2e7f111b0ae9ceff"
PYPI_PACKAGE = "pytest-timeout"
-SRC_URI[sha256sum] = "3b0b95dabf3cb50bac9ef5ca912fa0cfc286526af17afc806824df20c2f72c90"
+SRC_URI[sha256sum] = "12397729125c6ecbdaca01035b9e5239d4db97352320af155b3f5de1ba5165d9"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
index 81bffac3ab..c094a8d6f0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
@@ -4,11 +4,11 @@ HOMEPAGE = "https://github.com/animalize/pyzstd"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8458383225d7107f3383ee5c521628d2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aedb5a2679cd1552fb61c181ef974b9e"
PYPI_PACKAGE = "pyzstd"
-SRC_URI[sha256sum] = "cbfdde6c5768ffa5d2f14127bbc1d7c3c2d03c0ceaeb0736946197e06275ccc7"
+SRC_URI[sha256sum] = "83603a97fdbcf2139f475c940789f09e32703f931f29f4a8ddf3551e6700108b"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
index 8c2f891c1e..71cafb513d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
@@ -1,7 +1,7 @@
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863"
-SRC_URI[sha256sum] = "75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"
+SRC_URI[sha256sum] = "b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb
new file mode 100644
index 0000000000..f4b59c7506
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A utility library for mocking out the requests Python library."
+HOMEPAGE = "https://github.com/getsentry/responses"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0e601511a8517f4daf688a8eb95be7a2"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "01ae6a02b4f34e39bffceb0fc6786b67a25eae919c6368d05eabc8d9576c2a66"
+
+RDEPENDS:${PN} += " \
+ python3-mock \
+ python3-pyyaml \
+ python3-requests \
+ python3-urllib3 \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
index d535e43261..3678d46cf6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
@@ -1,4 +1,4 @@
-From d8db473ce9346cd6254c90e13ac45b3bbde494c4 Mon Sep 17 00:00:00 2001
+From 47ede0950740e8919c28774840e77f223d5f3124 Mon Sep 17 00:00:00 2001
From: Derek Straka <derek@asterius.io>
Date: Sun, 11 Mar 2018 19:55:38 -0400
Subject: [PATCH] py-scrypt: remove the hard coded include paths
@@ -11,16 +11,14 @@ Signed-off-by: Derek Straka <derek@asterius.io>
1 file changed, 1 deletion(-)
diff --git a/setup.py b/setup.py
-index e36adc4..2ebfbf1 100644
+index 419a982..3f1fe52 100644
--- a/setup.py
+++ b/setup.py
-@@ -24,7 +24,6 @@ if sys.platform.startswith('linux'):
- ('HAVE_SYS_SYSINFO_H', '1'),
- ('_FILE_OFFSET_BITS', '64')]
+@@ -26,7 +26,6 @@ if sys.platform.startswith('linux'):
+ ('_FILE_OFFSET_BITS', '64'),
+ ]
libraries = ['crypto', 'rt']
- includes = ['/usr/local/include', '/usr/include']
CFLAGS.append('-O2')
- elif sys.platform.startswith('win32'):
- define_macros = [('inline', '__inline')]
---
-2.7.4
+ elif sys.platform.startswith('win32') and os.environ.get('MSYSTEM'):
+ msys2_env = os.getenv('MSYSTEM')
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
index ce0d4de9c4..94c83e4952 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
@@ -5,7 +5,7 @@ HOMEPAGE="https://github.com/holgern/py-scrypt"
SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
-SRC_URI[sha256sum] = "0d226c1c6744fb2e308b391410669b1df5cfe82637ffcb5ed489bf82b2d2eb78"
+SRC_URI[sha256sum] = "98ffde45e4a95461d73ded54ba7a26857679920d4f8ff320f6f7ade6e29531bd"
inherit pypi ptest setuptools3 dos2unix
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.40.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
index f3f2a5d201..1b371ef01a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.40.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
@@ -15,7 +15,7 @@ RDEPENDS:${PN} += "\
python3-datetime \
"
-SRC_URI[sha256sum] = "657abae98b0050a0316f0873d7149f951574ae6212f71d2e3a1c4c88f62d6456"
+SRC_URI[sha256sum] = "f7125a9235795811962d52ff796dc032cd1d0dd98b59beaced8380371cd9c13c"
PYPI_PACKAGE = "sentry-sdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
index 7373b02f53..b6680568b4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
@@ -34,4 +34,3 @@ RDEPENDS:${PN} += "\
CLEANBROKEN = "1"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "slip"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
index 91feec98f8..4251a81d6c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
@@ -9,7 +9,7 @@ inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "python-socketio"
-SRC_URI[sha256sum] = "bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2"
+SRC_URI[sha256sum] = "ae6a1de5c5209ca859dc574dccc8931c4be17ee003e74ce3b8d1306162bb4a37"
PACKAGECONFIG ?= "asyncio_client client"
PACKAGECONFIG[asyncio_client] = ",,,python3-aiohttp python3-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb
new file mode 100644
index 0000000000..8a8a48467d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Tomli-W is a Python library for writing TOML. It is a write-only counterpart to Tomli, which is a read-only TOML parser."
+HOMEPAGE = "https://github.com/hukkin/tomli-w"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5"
+
+SRCREV = "19099125f32e7c491603e393263754262b356956"
+PYPI_SRC_URI = "git://github.com/hukkin/tomli-w.git;protocol=https;branch=master"
+
+inherit pypi python_flit_core ptest
+
+S = "${WORKDIR}/git"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-tomli \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -d ${D}${PTEST_PATH}/benchmark
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ cp -rf ${S}/benchmark/* ${D}${PTEST_PATH}/benchmark/
+}
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-numbers \
+ python3-stringold \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
index dd352e4848..f451de3218 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "http://tox.readthedocs.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
-SRC_URI[sha256sum] = "dd789a554c16c4b532924ba393c92fc8991323c4b3d466712bfecc8c9b9f24f7"
+SRC_URI[sha256sum] = "0defb44f6dafd911b61788325741cc6b2e12ea71f987ac025ad4d649f1f1a104"
BBCLASSEXTEND = "native nativesdk"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
deleted file mode 100644
index e650906aa9..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Traitlets Python config system"
-HOMEPAGE = "http://ipython.org"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
-
-SRC_URI[sha256sum] = "8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"
-
-inherit pypi python_hatchling
-
-RDEPENDS:${PN} = "\
- python3-ipython-genutils \
- python3-decorator \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb
new file mode 100644
index 0000000000..af5a2f3fbf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Traitlets Python config system"
+HOMEPAGE = "https://github.com/ipython/traitlets"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
+
+SRC_URI[sha256sum] = "8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"
+
+inherit pypi python_hatchling ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-argcomplete \
+ bash \
+ python3-mypy \
+ python3-pytest \
+ python3-pytest-mock \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
index 1e9f6685db..e0e84df28a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://pypi.org/project/typeguard/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
-SRC_URI[sha256sum] = "ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"
+SRC_URI[sha256sum] = "c556a1b95948230510070ca53fa0341fb0964611bd05d598d87fb52115d65fee"
inherit pypi python_setuptools_build_meta ptest
@@ -12,8 +12,10 @@ SRC_URI += " \
"
RDEPENDS:${PN} += " \
+ python3-core \
python3-compression \
python3-unittest \
+ python3-typing-extensions \
"
RDEPENDS:${PN}-ptest += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240205.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
index 736024d45d..c6f15696e9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240205.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
@@ -5,6 +5,6 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1
inherit pypi setuptools3
-SRC_URI[sha256sum] = "51df36a361aa597bf483dcc5b58f2ab7aa87452a36d2da97c90994d6a81ef743"
+SRC_URI[sha256sum] = "5636f5714bb930c64bb34c4d47a59dc92f9d610b778b5364a31daa5584944848"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
index 2075d96b4d..4b786066f7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
@@ -3,6 +3,6 @@ HOMEPAGE = "https://github.com/python/typeshed"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1608a4a9c7b578e"
-SRC_URI[sha256sum] = "1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f"
+SRC_URI[sha256sum] = "5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb
deleted file mode 100644
index 1da7ee4a04..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Python Data Validation for Humans"
-HOMEPAGE = "https://python-validators.github.io/validators"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf28bd09a60e145c3171c531b9e677d"
-SRC_URI[sha256sum] = "77b2689b172eeeb600d9605ab86194641670cdb73b60afd577142a9397873370"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb
new file mode 100644
index 0000000000..78261dd67f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Python Data Validation for Humans"
+HOMEPAGE = "https://python-validators.github.io/validators"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b3fb4b9e6db86c69a33d5e3ee013ab59"
+SRC_URI[sha256sum] = "cd23defb36de42d14e7559cf0757f761bb46b10d9de2998e6ef805f769d859e3"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-datetime \
+ python3-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.15.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
index 4eea0f0523..01738f22c5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.15.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=373fede350846fdffd23648fba504635"
-SRC_URI[sha256sum] = "f9e7eefc1b3c3d194868a4ef9583b625c18ea3f31a48ebe143183db74898f381"
+SRC_URI[sha256sum] = "b10c93476c106acc44b8428e47c61c385b7d0885e82cdc24049d27f521833552"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb
new file mode 100644
index 0000000000..09f5565a94
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "WebSockets state-machine based protocol implementation"
+HOMEPAGE = "https://github.com/python-hyper/wsproto/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=69fabf732409f4ac61875827b258caaf"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/test/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-h11 \
+ python3-netclient \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
index 8a9af14d3e..aedf483bef 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
@@ -17,8 +17,6 @@ SRCREV = "b8d573e11ec149da695d695c81a156232b89a949"
S = "${WORKDIR}/git"
inherit ptest setuptools3
-PIP_INSTALL_PACKAGE = "xlrd"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
RDEPENDS:${PN} += " \
python3-compression \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
index 18338df930..482155856a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/burnash/gspread"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9488e21983675fa56dc05af558b83e2f"
-SRC_URI[sha256sum] = "0982beeb07fa3ec4482a3aaa96ca13a1e6b427a0aca4058beab4cdc33c0cbb64"
+SRC_URI[sha256sum] = "576b72b628b251d2ee41e02b982d3c714d511d2a5aa3a88e587ed9efc4d6e752"
RDEPENDS:${PN} = " \
python3-google-auth \