From 705982a51d24e74df1786f60cc99d1106de626df Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Fri, 12 Jan 2024 09:51:57 -0600 Subject: subtree updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit meta-openembedded: 7d8115d550..098dc606f9: Alex Kiernan (2): c-ares: Filter out "Live" tests ptest-packagelists-meta-oe.inc Add c-ares to PTESTS_SLOW_META_OE Alexander Kanavin (25): fontforge: add a readline PACKAGECONFIG volume-key: disable python bindings audit: disable python bindings as incompatible with python 3.12 cmpi-bindings: update 1.0.1 -> 1.0.4 libpwquality: backport a python 3.12 compatibility patch mycroft: do not depend on python3-xmlrunner python3-xmlrunner: remove the recipe system-config-printer: rely on setuptools to obtain distutils copy python3-gmpy2: fix python 3.12 issues python3-custom-inherit: fix python 3.12 builds python3-jsonrpcserver: remove python3-oslash: remove nmap: disable ndiff wireshark: update 4.0.10 -> 4.2.0 openipmi: update 2.0.32 -> 2.0.34 libsigrokdecode: add python 3.12 support cockpit: add setuptools dependency to bring in distutils copy mongodb: skip until python 3.12 fixes are available. mercurial: ensure setuptools is present as distutils is no longer (mercurial tries both) rwmem: fix python modules packaging upm: get disutils copy via setuptools python3-kmod: remove the recipe hplip: provide setuptools for the distutils copy audit: reenable python bindings and bring in distutils via setuptools (needed with python 3.12) python3-h5py: backport a cython 3.x compatibility patch Christophe Vu-Brugier (1): nvme-cli: upgrade 2.6 -> 2.7.1 Enrico Scholz (1): krb5: use PACKAGE_BEFORE_PN Fabio Estevam (2): i2cdev_git: Remove AUTHOR field picocom: Update to 2023-04 Ilya A. Kriveshko (1): srecord: fix install prefix Jordan Crouse (2): collectd: Remove rrdtool from DEPENDS keepalived: Move the sample configuration files to a separate package Jose Quaresma (1): layer.conf: Add libdevmapper-native PREFERRED_RPROVIDER Khem Raj (8): mraa: Update to latest tip of trunk libcppkafka: Update to tip of trunk python3-pydantic-core: Rename the cpython module on musl libtinyxml2: Package needed resources to run ptests python3-pylint: Ignore failing ptests libconfig-general-perl: Enable on musl targets tgt: Fix build with musl kernel-selftest: remove Wno-alloc-size-larger-than from scripts/Makefile.extrawarn Leon Anavi (5): ssd1306_git.bb: Add ssd1306_linux ssd1306: Update and remove patch python3-webargs: Upgrade 8.3.0 -> 8.4.0 python3-wtforms: Upgrade 3.1.1 -> 3.1.2 python3-kivy: Upgrade 2.2.1 -> 2.3.0 Markus Volk (9): luajit: upgrade 2.1beta -> 2.1 gnome-terminal: fix search_provider build libplist: make sure rm doesn't fail on nonexistent file imagemagick: upgrade 7.1.1-8 -> 7.1.1.26 mutter: update 45.1 -> 45.3 gnome-shell: update 45.1 -> 45.3 gnome-control-center: update 45.1 -> 45.2 gnome-software: update 45.1 -> 45.3 gnome-shell-extensions: update 45.1 -> 45.2 Martin Jansa (1): libpwquality: respect PYTHONSITEDIR Michael Haener (1): mdio-tools: upgrade 1.3.0 -> 1.3.1 Mingli Yu (2): usleep: Make the version consistent ipmitool: Make the version consistent Peter Marko (1): protobuf-c: upgrade 1.4.1 -> 1.5.0 Richard Leitner (1): python3-pytest-cov: add missing python3-coverage dependency Robert Yang (1): v4l-utils: Add PACKAGECONFIG for v4l2-tracer to fix determinstic build Wang Mingyu (52): cglm: upgrade 0.9.1 -> 0.9.2 ctags: upgrade 6.0.20231224.0 -> 6.1.20231231.0 exiftool: upgrade 12.71 -> 12.72 feh: upgrade 3.10.1 -> 3.10.2 libssh: upgrade 0.10.5 -> 0.10.6 squid: upgrade 6.5 -> 6.6 imapfilter: upgrade 2.8.1 -> 2.8.2 redis-plus-plus: upgrade 1.3.10 -> 1.3.11 python3-netaddr: upgrade 0.9.0 -> 0.10.0 plocate: upgrade 1.1.19 -> 1.1.20 python3-cantools: upgrade 39.4.1 -> 39.4.2 python3-coverage: upgrade 7.3.4 -> 7.4.0 python3-flask: upgrade 2.3.3 -> 3.0.0 python3-gspread: upgrade 5.12.3 -> 5.12.4 python3-pydot: upgrade 1.4.2 -> 2.0.0 qpdf: upgrade 11.6.4 -> 11.7.0 thingsboard-gateway: upgrade 3.4.3.1 -> 3.4.4 python3-pydantic-core: upgrade 2.14.5 -> 2.14.6 libtinyxml2: upgrade 9.0.0 -> 10.0.0 adw-gtk3: upgrade 5.1 -> 5.2 dialog: upgrade 1.3-20231002 -> 1.3-20240101 ghex: upgrade 45.0 -> 45.1 jwt-cpp: upgrade 0.6.0 -> 0.7.0 libcloudproviders: upgrade 0.3.4 -> 0.3.5 libgedit-gtksourceview: upgrade 299.0.4 -> 299.0.5 libjcat: upgrade 0.1.14 -> 0.2.0 libraw: upgrade 0.21.1 -> 0.21.2 libsass: upgrade 3.6.5 -> 3.6.6 chrony: upgrade 4.4 -> 4.5 tgt: upgrade 1.0.83 -> 1.0.90 lapack: upgrade 3.10.1 -> 3.12.0 libio-pty-perl: upgrade 1.17 -> 1.20 webkitgtk3: upgrade 2.42.3 -> 2.42.4 xmlsec1: upgrade 1.3.2 -> 1.3.3 python3-argh: upgrade 0.30.5 -> 0.31.0 python3-cvxopt: upgrade 1.2.7 -> 1.3.2 python3-sqlalchemy: upgrade 2.0.24 -> 2.0.25 python3-aiohttp-jinja2: upgrade 1.5.1 -> 1.6 python3-bitarray: upgrade 2.9.1 -> 2.9.2 python3-google-api-python-client: upgrade 2.111.0 -> 2.112.0 python3-google-auth: upgrade 2.25.2 -> 2.26.1 python3-lz4: upgrade 4.3.2 -> 4.3.3 python3-pdm: upgrade 2.11.1 -> 2.11.2 python3-pyflakes: upgrade 3.1.0 -> 3.2.0 python3-pymisp: upgrade 2.4.182 -> 2.4.183 python3-pytest-asyncio: upgrade 0.23.2 -> 0.23.3 python3-traitlets: upgrade 5.14.0 -> 5.14.1 traceroute: upgrade 2.1.3 -> 2.1.5 wolfssl: upgrade 5.6.4 -> 5.6.6 xerces-c: upgrade 3.2.4 -> 3.2.5 zenity: upgrade 4.0.0 -> 4.0.1 daq: Fix install conflict when enable multilib. Yi Zhao (6): vsomeip: upgrade 3.3.8 -> 3.4.10 libtdb: upgrade 1.4.8 -> 1.4.9 libtalloc: upgrade 2.4.0 -> 2.4.1 libtevent: upgrade 0.14.1 -> 0.16.0 libldb: upgrade 2.7.2 -> 2.8.0 samba: upgrade 4.18.9 -> 4.19.3 alperak (10): libnvme: upgrade 1.6 -> 1.7.1 libpaper: upgrade 2.1.0 -> 2.1.2 onig: upgrade 6.9.8 -> 6.9.9 clinfo: upgrade 3.0.21.02.21 -> 3.0.23.01.25 opensc: upgrade 0.23.0 -> 0.24.0 pcsc-lite: upgrade 2.0.0 -> 2.0.1 pcsc-tools: upgrade 1.6.2 -> 1.7.1 wavpack: upgrade 5.1.0 -> 5.6.0 nginx: fix CVE-2023-44487 grpc: upgrade 1.59.2 -> 1.60.0 meta-arm: 4d22f982bc..5712422011: Emekcan Aras (1): arm-bsp/linux-yocto: corstone1000: bump to v6.6% Jon Mason (8): arm-bsp/trusted-firmware-m: update libmetal and open-amp to a release arm-bsp/trusted-firmware-m: update libmetal and open-amp to 2023.04.0 arm: modify patches to have email headers and correct date fields arm-bsp/optee-os: remove unused 3.18 files arm/optee-os: use sysroot in CFLAGS arm/optee-os: remove unneeded clang patches arm/scp-firmware: update git repository to new location arm-bsp/u-boot: rebase patches for v2024.01 Ross Burton (1): arm-bsp/linux-yocto: add linux-yocto 6.5 temporarily meta-raspberrypi: 4c033eb074..b859bc3eca: Leon Anavi (1): bcm2835: update 1.71 -> 1.73 poky: 4675bbb757..61182659c2: Adrian Freihofer (1): ref-manual: document cmake-qemu class Alassane Yattara (7): bitbake: toaster/tests: Bug-fix on TestProjectConfigTab::test_image_recipe_show_rows bitbake: toaster/tests: Bug-fix element click intercepted bitbake: toaster/tests: Delay driver first action on create new project page bitbake: toaster/tests: Setup delay after driver action self.get(url) bitbake: toaster/tests: bug-fix "#hint-error-project-name" should be visible bitbake: toaster/tests: Bug-fix "element not interactable" in TestLayerDetailsPage::test_edit_layerdetails bitbake: toaster/tests: Bug-fix ToasterTable show_rows testcases Alexander Kanavin (16): speexdsp: enable native variant devtool/standard: correctly escape \ bitbake: fetch/checkstatus(): do not print the URI twice in FetchError exception bitbake: fetch/wget/checkstatus(): include the URL in debugging output about status check failure bitbake: bitbake/runqueue: rework 'bitbake -S printdiff' logic selftest/sstatetests: fix up printdiff test to match rework of printdiff logic selftest/sstatetest: re-enable gcc printdiff test python3-pyyaml: make compatible with cython 3.x python3-cython: update 0.29.36 -> 3.0.7 taglib: fix upstream version check libpcre2: fix upstream version check icon-naming-utils: take tarball from debian selftest/sstatetests: include fetcher diagnostics into CDN test failure message selftest/SStatePrintdiff: ensure all base signatures are present in sstate in test_image_minimal_vs_base_do_configure shadow: update 4.13 -> 4.14.2 shadow: link executables statically for -native variant Chen Qi (5): gawk: upgrade from 5.2.2 to 5.3.0 systemd-bootchart: upgrade from 234 to 235 dbus-wait: bump srcrev sudo: upgrade from 1.9.15p2 to 1.9.15p5 util-linux/util-linux-libuuid: ugprade from 2.39.2 to 2.39.3 Corentin Guillevic (1): systemd: add udev-bash-completion package Enguerrand de Ribaucourt (1): manuals: document VSCode extension Fabio Estevam (5): libusb1: Do not match on -rc versions usbutils: Update to version 017 u-boot: Upgrade to 2024.01 kmscube: Change header file to kmscube: Add package version Ilya A. Kriveshko (1): dev-manual: update license manifest path Jamin Lin (1): devtool: modify: fix exception Joshua Watt (1): syslinux: Allow mtools to be optional Jörg Sommer (1): documentation: Add UBOOT_BINARY, extend UBOOT_CONFIG Khem Raj (6): connman: Fix build with musl rpm: Fix build with musl gawk: Add coreutils to rdeps for ptests package tcl: Fix prepending to run-ptest script coreutils: Ignore line-bytes.sh and no-allocate tests on musl opkg-utils: Backport fix to drop --numeric-owner parameter Lee Chee Yang (1): migration-guide: add release notes for 4.3.2 Mark Asselstine (2): bitbake: server/process: catch and expand multiprocessing connection exceptions bitbake: ui/knotty: properly handle exceptions when calling runCommand() Maxin B. John (1): ref-manual: classes: remove insserv bbclass Michael Opdenacker (2): contributor-guide: use "apt" instead of "aptitude" ref-manual: update tested and supported distros Mikko Rapeli (1): oeqa systemd.py: settle() using "running" or "degraded" state Ming Liu (1): qemu.bbclass: fix a python TypeError Mingli Yu (2): openssh: Add PACKAGECONFIG option to customize sshd mode gptfdisk: Make the version consistent Richard Purdie (2): bitbake: ast: Fix EXPORT_FUNCTIONS bug bitbake: runqueue: Fix runall all bug Robert Yang (2): bitbake: bitbake: event: Inject empty lines to make code match lineno in filename bitbake: bitbake: tests/event: Add test_lineno_in_eventhandler Rodrigo M. Duarte (1): linux-firmware: Fix the linux-firmware-bcm4373 FILES variable Ross Burton (12): glib-2.0: no need to depend on target gtk-doc autotools: append to EXTRA_AUTORECONF autotools: don't exclude gtkdocize gtk-doc: fix DEPENDS gtk-doc: remove obsolete logic gtk-doc: don't use docdir set in environment in gtkdocize gtk-doc: don't manually call gtkdocize kmod: fix configure with autopoint calling gtkdocize util-linux: enable gtk-doc meson: use pkg-config in the cross files cairo: upgrade to 1.18.0 xmlcatalog: limit to native recipes only Simone Weiß (2): dev-manual: start.rst: update use of Download page glibc: Set status for CVE-2023-5156 & CVE-2023-0687 Tim Orling (2): python3-bcrypt: upgrade 4.1.1 -> 4.1.2 python3-attrs: enable ptest Wang Mingyu (13): ffmpeg: upgrade 6.1 -> 6.1.1 meson: upgrade 1.3.0 -> 1.3.1 ccache: upgrade 4.8.3 -> 4.9 mesa: upgrade 23.3.1 -> 23.3.2 subversion: upgrade 1.14.2 -> 1.14.3 python3-dbusmock: upgrade 0.30.1 -> 0.30.2 python3-hatch-fancy-pypi-readme: upgrade 23.1.0 -> 24.1.0 python3-hypothesis: upgrade 6.92.1 -> 6.92.2 python3-pycryptodome: upgrade 3.19.0 -> 3.19.1 python3-pycryptodomex: upgrade 3.19.0 -> 3.19.1 python3-pytest: upgrade 7.4.3 -> 7.4.4 python3-attrs: upgrade 22.1.0 -> 23.2.0 python3-lxml: upgrade 4.9.4 -> 45.0.0 William Lyu (1): elfutils: Update license information Yang Xu (1): rootfs.py: check depmodwrapper execution result Yi Zhao (2): libcap-ng: upgrade 0.8.3 -> 0.8.4 libcap-ng-python: upgrade 0.8.3 -> 0.8.4 david d zuhn (1): rng-tools: remove obsolete build time dependency on sysfsutils Change-Id: I43eda44bb889eedb45fae65caf2e5ed8d2c9de39 Signed-off-by: Patrick Williams --- ...versioneer.py-do-not-use-SafeConfigParser.patch | 29 + .../python/python3-aiohttp-jinja2_1.5.1.bb | 13 - .../python/python3-aiohttp-jinja2_1.6.bb | 13 + .../recipes-devtools/python/python3-argh_0.30.5.bb | 27 - .../recipes-devtools/python/python3-argh_0.31.0.bb | 27 + .../python/python3-bitarray_2.9.1.bb | 11 - .../python/python3-bitarray_2.9.2.bb | 11 + .../python/python3-cantools_39.4.1.bb | 24 - .../python/python3-cantools_39.4.2.bb | 24 + .../python/python3-coverage_7.3.4.bb | 20 - .../python/python3-coverage_7.4.0.bb | 20 + .../python/python3-custom-inherit_2.4.1.bb | 1 + .../python/python3-cvxopt_1.2.7.bb | 21 - .../python/python3-cvxopt_1.3.2.bb | 21 + .../recipes-devtools/python/python3-flask_2.3.3.bb | 25 - .../recipes-devtools/python/python3-flask_3.0.0.bb | 25 + .../0001-src-fix-python-3.12-builds.patch | 263 +++++++ .../recipes-devtools/python/python3-gmpy2_2.1.5.bb | 1 + .../python3-google-api-python-client_2.111.0.bb | 20 - .../python3-google-api-python-client_2.112.0.bb | 20 + .../python/python3-google-auth_2.25.2.bb | 26 - .../python/python3-google-auth_2.26.1.bb | 26 + .../0001-Fix-Cython-3-compatibility.patch | 796 +++++++++++++++++++++ .../recipes-devtools/python/python3-h5py_3.10.0.bb | 3 +- .../python/python3-jsonrpcserver_5.0.9.bb | 23 - .../recipes-devtools/python/python3-kivy_2.2.1.bb | 73 -- .../recipes-devtools/python/python3-kivy_2.3.0.bb | 73 ++ .../recipes-devtools/python/python3-kmod_0.9.1.bb | 15 - .../recipes-devtools/python/python3-lz4_4.3.2.bb | 34 - .../recipes-devtools/python/python3-lz4_4.3.3.bb | 34 + .../python/python3-netaddr_0.10.0.bb | 13 + .../python/python3-netaddr_0.9.0.bb | 13 - .../python/python3-oslash_0.6.3.bb | 22 - .../recipes-devtools/python/python3-pdm_2.11.1.bb | 15 - .../recipes-devtools/python/python3-pdm_2.11.2.bb | 15 + .../python/python3-pydantic-core_2.14.5.bb | 40 -- .../python/python3-pydantic-core_2.14.6.bb | 51 ++ .../python/python3-pyflakes_3.1.0.bb | 10 - .../python/python3-pyflakes_3.2.0.bb | 10 + .../python/python3-pylint/run-ptest | 2 +- .../python/python3-pylint_3.0.3.bb | 3 + .../python/python3-pymisp_2.4.182.bb | 24 - .../python/python3-pymisp_2.4.183.bb | 24 + .../python/python3-pytest-asyncio_0.23.2.bb | 16 - .../python/python3-pytest-asyncio_0.23.3.bb | 16 + .../python/python3-pytest-cov_4.1.0.bb | 1 + .../python/python3-sqlalchemy_2.0.24.bb | 25 - .../python/python3-sqlalchemy_2.0.25.bb | 25 + .../python/python3-traitlets_5.14.0.bb | 13 - .../python/python3-traitlets_5.14.1.bb | 13 + .../python/python3-webargs_8.3.0.bb | 13 - .../python/python3-webargs_8.4.0.bb | 17 + .../python/python3-wtforms_3.1.1.bb | 24 - .../python/python3-wtforms_3.1.2.bb | 24 + .../python/python3-xmlrunner_1.7.7.bb | 11 - .../python3-gspread/python3-gspread_5.12.3.bb | 12 - .../python3-gspread/python3-gspread_5.12.4.bb | 12 + 57 files changed, 1611 insertions(+), 572 deletions(-) create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb (limited to 'meta-openembedded/meta-python/recipes-devtools') diff --git a/meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch b/meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch new file mode 100644 index 0000000000..34caaca982 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch @@ -0,0 +1,29 @@ +From 0920bd21ceab75bc4b655c571a37835526dd2468 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 27 Dec 2023 15:12:19 +0100 +Subject: [PATCH] versioneer.py: do not use SafeConfigParser + +This has been deprecated for a long time, and finally removed in python 3.12 + +Upstream-Status: Submitted [https://github.com/rsokl/custom_inherit/pull/49] +Signed-off-by: Alexander Kanavin +--- + versioneer.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/versioneer.py b/versioneer.py +index 64fea1c..3aa5da3 100644 +--- a/versioneer.py ++++ b/versioneer.py +@@ -339,9 +339,9 @@ def get_config_from_root(root): + # configparser.NoOptionError (if it lacks "VCS="). See the docstring at + # the top of versioneer.py for instructions on writing your setup.cfg . + setup_cfg = os.path.join(root, "setup.cfg") +- parser = configparser.SafeConfigParser() ++ parser = configparser.ConfigParser() + with open(setup_cfg, "r") as f: +- parser.readfp(f) ++ parser.read_file(f) + VCS = parser.get("versioneer", "VCS") # mandatory + + def get(parser, name): diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb deleted file mode 100644 index 4c4ed3ffd9..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "jinja2 template renderer for aiohttp.web (http server for asyncio)" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=29dca541e03964615590ca7b50392d97" - -SRC_URI[sha256sum] = "8d149b2a57d91f794b33a394ea5bc66b567f38c74a5a6a9477afc2450f105c01" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += " \ - ${PYTHON_PN}-jinja2 \ - ${PYTHON_PN}-aiohttp \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb new file mode 100644 index 0000000000..694f577b06 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb @@ -0,0 +1,13 @@ +SUMMARY = "jinja2 template renderer for aiohttp.web (http server for asyncio)" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=29dca541e03964615590ca7b50392d97" + +SRC_URI[sha256sum] = "a3a7ff5264e5bca52e8ae547bbfd0761b72495230d438d05b6c0915be619b0e2" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-jinja2 \ + ${PYTHON_PN}-aiohttp \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb deleted file mode 100644 index 78e6149649..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "An unobtrusive argparse wrapper with natural syntax" -DESCRIPTION = "Building a command-line interface? Found yourself uttering \ -'argh!' while struggling with the API of argparse? Don't like the complexity \ -but need the power? \ -\ -Everything should be made as simple as possible, but no simpler. \ -\ -—Albert Einstein (probably) \ -\ -Argh is a smart wrapper for argparse. Argparse is a very powerful \ -tool; Argh just makes it easy to use." - -LICENSE = "LGPL-3.0-or-later" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ - file://README.rst;beginline=261;endline=275;md5=39ec83a704aed9f33618c5d04e478a08 \ - " - -SRC_URI[sha256sum] = "b37dfd617a09d19a4a7bcaed0e060b288bc7ac8dfdc0facf886a49a25ff33728" - -inherit pypi python_flit_core - -RDEPENDS:${PN} += " \ - python3-argcomplete \ - python3-logging \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb new file mode 100644 index 0000000000..24a579fb93 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "An unobtrusive argparse wrapper with natural syntax" +DESCRIPTION = "Building a command-line interface? Found yourself uttering \ +'argh!' while struggling with the API of argparse? Don't like the complexity \ +but need the power? \ +\ +Everything should be made as simple as possible, but no simpler. \ +\ +—Albert Einstein (probably) \ +\ +Argh is a smart wrapper for argparse. Argparse is a very powerful \ +tool; Argh just makes it easy to use." + +LICENSE = "LGPL-3.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ + file://README.rst;beginline=261;endline=275;md5=ba124578a6853962d5038eabef535d12 \ + " + +SRC_URI[sha256sum] = "b93093544309ddbfe6c73dc9bfd60dbc4acecef39f3f464774b3084a1ec5d7b0" + +inherit pypi python_flit_core + +RDEPENDS:${PN} += " \ + python3-argcomplete \ + python3-logging \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb deleted file mode 100644 index 0d7107a0f2..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "efficient arrays of booleans -- C extension" -DESCRIPTION = "A high-level Python efficient arrays of booleans -- C extension" -HOMEPAGE = "https://github.com/ilanschnell/bitarray" -LICENSE = "PSF-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d" - -SRC_URI[sha256sum] = "912efbeed6d8b155c8e8c37464f79d75b1de58936c0f29ffb599ce95af5563f2" - -inherit setuptools3 pypi - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb new file mode 100644 index 0000000000..7d7be0b1aa --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "efficient arrays of booleans -- C extension" +DESCRIPTION = "A high-level Python efficient arrays of booleans -- C extension" +HOMEPAGE = "https://github.com/ilanschnell/bitarray" +LICENSE = "PSF-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d" + +SRC_URI[sha256sum] = "a8f286a51a32323715d77755ed959f94bef13972e9a2fe71b609e40e6d27957e" + +inherit setuptools3 pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb deleted file mode 100644 index e26405dd7f..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "CAN BUS tools in Python 3." -HOMEPAGE = "https://github.com/eerimoq/cantools" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd" - -SRC_URI[sha256sum] = "98c4d007a6d9803c6433c743c0240e73de930530f8255e1e21d2e20e8991a30b" - -PYPI_PACKAGE = "cantools" - -inherit pypi python_poetry_core - -DEPENDS += "python3-setuptools-scm-native" - -RDEPENDS:${PN} += "\ - ${PYTHON_PN}-can \ - ${PYTHON_PN}-bitstruct \ - ${PYTHON_PN}-core \ - ${PYTHON_PN}-textparser \ - ${PYTHON_PN}-typing-extensions \ - ${PYTHON_PN}-diskcache \ - ${PYTHON_PN}-asyncio \ -" - -CLEANBROKEN = "1" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb new file mode 100644 index 0000000000..ad2025e644 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "CAN BUS tools in Python 3." +HOMEPAGE = "https://github.com/eerimoq/cantools" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd" + +SRC_URI[sha256sum] = "8069a8f473bb1679990bea0903f3a22d58df5495aebbf09f58d49f627511b619" + +PYPI_PACKAGE = "cantools" + +inherit pypi python_poetry_core + +DEPENDS += "python3-setuptools-scm-native" + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-can \ + ${PYTHON_PN}-bitstruct \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-textparser \ + ${PYTHON_PN}-typing-extensions \ + ${PYTHON_PN}-diskcache \ + ${PYTHON_PN}-asyncio \ +" + +CLEANBROKEN = "1" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb deleted file mode 100644 index 42bc9fc8ed..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Code coverage measurement for Python" -HOMEPAGE = "https://coverage.readthedocs.io" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93" - -SRC_URI[sha256sum] = "020d56d2da5bc22a0e00a5b0d54597ee91ad72446fa4cf1b97c35022f6b6dbf0" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += " \ - python3-crypt \ - python3-io \ - python3-json \ - python3-multiprocessing \ - python3-pprint \ - python3-shell \ - python3-sqlite3 \ - python3-tomllib \ - python3-xml \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb new file mode 100644 index 0000000000..cb1041c2ff --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Code coverage measurement for Python" +HOMEPAGE = "https://coverage.readthedocs.io" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93" + +SRC_URI[sha256sum] = "707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + python3-crypt \ + python3-io \ + python3-json \ + python3-multiprocessing \ + python3-pprint \ + python3-shell \ + python3-sqlite3 \ + python3-tomllib \ + python3-xml \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb index 478abbf1fd..e7409f77e6 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb @@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f910a85a4c3da51edf780f17a7608434" PYPI_PACKAGE = "custom_inherit" +SRC_URI += "file://0001-versioneer.py-do-not-use-SafeConfigParser.patch" SRC_URI[sha256sum] = "7052eb337bcce83551815264391cc4efc2bf70b295a3c52aba64f1ab57c3a8a2" inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb deleted file mode 100644 index 70e9831770..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Convex optimization package" -HOMEPAGE = "http://cvxopt.org" -LICENSE = "GPL-3.0-only" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ba1a8a73d8ebea5c47a1173aaf476ddd" - -SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master" - -SRCREV = "d5a21cf1da62e4269176384b1ff62edac5579f94" - -S = "${WORKDIR}/git" - -RDEPENDS:${PN} += "lapack suitesparse" -DEPENDS += "lapack suitesparse" - -inherit setuptools3 - -export CVXOPT_BLAS_LIB_DIR = "${STAGING_LIBDIR}" -export CVXOPT_SUITESPARSE_LIB_DIR = "${STAGING_LIBDIR}" -export CVXOPT_SUITESPARSE_INC_DIR = "${STAGING_INCDIR}" - -EXCLUDE_FROM_WORLD = "1" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb new file mode 100644 index 0000000000..d7d4b22fbd --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb @@ -0,0 +1,21 @@ +SUMMARY = "Convex optimization package" +HOMEPAGE = "http://cvxopt.org" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=66ec4f8e53d3e733a8c26d5ca3830fba" + +SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master" + +SRCREV = "3b718ee560b3b97d6255c55f0ed7f64cb4b72082" + +S = "${WORKDIR}/git" + +RDEPENDS:${PN} += "lapack suitesparse" +DEPENDS += "lapack suitesparse" + +inherit setuptools3 + +export CVXOPT_BLAS_LIB_DIR = "${STAGING_LIBDIR}" +export CVXOPT_SUITESPARSE_LIB_DIR = "${STAGING_LIBDIR}" +export CVXOPT_SUITESPARSE_INC_DIR = "${STAGING_INCDIR}" + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb deleted file mode 100644 index 99a61f136d..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions" -DESCRIPTION = "\ -Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \ -intentions. And before you ask: It’s BSD licensed!" -HOMEPAGE = "https://github.com/mitsuhiko/flask/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" - -SRC_URI[sha256sum] = "09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc" - -UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Flask" -UPSTREAM_CHECK_REGEX = "/Flask/(?P(\d+[\.\-_]*)+)" - -inherit pypi python_setuptools_build_meta - -CLEANBROKEN = "1" - -RDEPENDS:${PN} = " \ - ${PYTHON_PN}-blinker \ - ${PYTHON_PN}-click \ - ${PYTHON_PN}-itsdangerous \ - ${PYTHON_PN}-jinja2 \ - ${PYTHON_PN}-profile \ - ${PYTHON_PN}-werkzeug \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb new file mode 100644 index 0000000000..e0afd3718f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions" +DESCRIPTION = "\ +Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \ +intentions. And before you ask: It’s BSD licensed!" +HOMEPAGE = "https://github.com/mitsuhiko/flask/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" + +SRC_URI[sha256sum] = "cfadcdb638b609361d29ec22360d6070a77d7463dcb3ab08d2c2f2f168845f58" + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Flask" +UPSTREAM_CHECK_REGEX = "/Flask/(?P(\d+[\.\-_]*)+)" + +inherit pypi python_setuptools_build_meta + +CLEANBROKEN = "1" + +RDEPENDS:${PN} = " \ + ${PYTHON_PN}-blinker \ + ${PYTHON_PN}-click \ + ${PYTHON_PN}-itsdangerous \ + ${PYTHON_PN}-jinja2 \ + ${PYTHON_PN}-profile \ + ${PYTHON_PN}-werkzeug \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch new file mode 100644 index 0000000000..1171322e26 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch @@ -0,0 +1,263 @@ +From 43f132103cedfd92b85173bcdacfbabd5916d9fc Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 27 Dec 2023 14:52:16 +0100 +Subject: [PATCH] src: fix python 3.12 builds + +This is a backport for 3.1.x versions provided separately in https://github.com/aleaxit/gmpy/issues/446 + +Upstream-Status: Inappropriate [can be dropped when 2.2.x is released] + +Signed-off-by: Alexander Kanavin +--- + src/gmpy2_convert.h | 21 +++++++ + src/gmpy2_convert_gmp.c | 129 +++++++++++++------------------------- + src/gmpy2_convert_utils.c | 2 +- + 3 files changed, 65 insertions(+), 87 deletions(-) + +diff --git a/src/gmpy2_convert.h b/src/gmpy2_convert.h +index f887d47..3e8cb2b 100644 +--- a/src/gmpy2_convert.h ++++ b/src/gmpy2_convert.h +@@ -142,6 +142,27 @@ extern "C" { + #define IS_TYPE_COMPLEX_ONLY(x) ((x > OBJ_TYPE_REAL) && \ + (x < OBJ_TYPE_COMPLEX)) + ++/* Compatibility macros (to work with PyLongObject internals). ++ */ ++ ++#if PY_VERSION_HEX >= 0x030C0000 ++# define TAG_FROM_SIGN_AND_SIZE(is_neg, size) ((is_neg?2:(size==0)) | (((size_t)size) << 3)) ++# define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (obj->long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE(is_neg, size)) ++#elif PY_VERSION_HEX >= 0x030900A4 ++# define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (Py_SET_SIZE(obj, (is_neg?-1:1)*size)) ++#else ++# define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (Py_SIZE(obj) = (is_neg?-1:1)*size) ++#endif ++ ++#if PY_VERSION_HEX >= 0x030C0000 ++# define GET_OB_DIGIT(obj) obj->long_value.ob_digit ++# define _PyLong_IsNegative(obj) ((obj->long_value.lv_tag & 3) == 2) ++# define _PyLong_DigitCount(obj) (obj->long_value.lv_tag >> 3) ++#else ++# define GET_OB_DIGIT(obj) obj->ob_digit ++# define _PyLong_IsNegative(obj) (Py_SIZE(obj) < 0) ++# define _PyLong_DigitCount(obj) (_PyLong_IsNegative(obj)? -Py_SIZE(obj):Py_SIZE(obj)) ++#endif + + /* Since the macros are used in gmpy2's codebase, these functions are skipped + * until they are needed for the C API in the future. +diff --git a/src/gmpy2_convert_gmp.c b/src/gmpy2_convert_gmp.c +index cf0891e..8b8df81 100644 +--- a/src/gmpy2_convert_gmp.c ++++ b/src/gmpy2_convert_gmp.c +@@ -59,33 +59,24 @@ GMPy_MPZ_From_PyIntOrLong(PyObject *obj, CTXT_Object *context) + } + #endif + +- switch (Py_SIZE(templong)) { +- case -1: +- mpz_set_si(result->z, -(sdigit)templong->ob_digit[0]); ++ len = _PyLong_DigitCount(templong); ++ negative = _PyLong_IsNegative(templong); ++ ++ switch (len) { ++ case 1: ++ mpz_set_si(result->z, (sdigit)GET_OB_DIGIT(templong)[0]); + break; + case 0: + mpz_set_si(result->z, 0); + break; +- case 1: +- mpz_set_si(result->z, templong->ob_digit[0]); +- break; + default: +- mpz_set_si(result->z, 0); +- +- if (Py_SIZE(templong) < 0) { +- len = - Py_SIZE(templong); +- negative = 1; +- } else { +- len = Py_SIZE(templong); +- negative = 0; +- } +- +- mpz_import(result->z, len, -1, sizeof(templong->ob_digit[0]), 0, +- sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit); ++ mpz_import(result->z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0, ++ sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT, ++ GET_OB_DIGIT(templong)); ++ } + +- if (negative) { +- mpz_neg(result->z, result->z); +- } ++ if (negative) { ++ mpz_neg(result->z, result->z); + } + return result; + } +@@ -105,33 +96,24 @@ mpz_set_PyIntOrLong(mpz_t z, PyObject *obj) + } + #endif + +- switch (Py_SIZE(templong)) { +- case -1: +- mpz_set_si(z, -(sdigit)templong->ob_digit[0]); ++ len = _PyLong_DigitCount(templong); ++ negative = _PyLong_IsNegative(templong); ++ ++ switch (len) { ++ case 1: ++ mpz_set_si(z, (sdigit)GET_OB_DIGIT(templong)[0]); + break; + case 0: + mpz_set_si(z, 0); + break; +- case 1: +- mpz_set_si(z, templong->ob_digit[0]); +- break; + default: +- mpz_set_si(z, 0); +- +- if (Py_SIZE(templong) < 0) { +- len = - Py_SIZE(templong); +- negative = 1; +- } else { +- len = Py_SIZE(templong); +- negative = 0; +- } +- +- mpz_import(z, len, -1, sizeof(templong->ob_digit[0]), 0, +- sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit); ++ mpz_import(z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0, ++ sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT, ++ GET_OB_DIGIT(templong)); ++ } + +- if (negative) { +- mpz_neg(z, z); +- } ++ if (negative) { ++ mpz_neg(z, z); + } + return; + } +@@ -186,12 +168,7 @@ GMPy_PyLong_From_MPZ(MPZ_Object *obj, CTXT_Object *context) + + /* Assume gmp uses limbs as least as large as the builtin longs do */ + +- if (mpz_sgn(obj->z) < 0) { +- negative = 1; +- } else { +- negative = 0; +- } +- ++ negative = mpz_sgn(obj->z) < 0; + size = (mpz_sizeinbase(obj->z, 2) + PyLong_SHIFT - 1) / PyLong_SHIFT; + + if (!(result = _PyLong_New(size))) { +@@ -200,31 +177,20 @@ GMPy_PyLong_From_MPZ(MPZ_Object *obj, CTXT_Object *context) + /* LCOV_EXCL_STOP */ + } + +- mpz_export(result->ob_digit, &count, -1, sizeof(result->ob_digit[0]), 0, +- sizeof(result->ob_digit[0])*8 - PyLong_SHIFT, obj->z); ++ mpz_export(GET_OB_DIGIT(result), &count, -1, sizeof(GET_OB_DIGIT(result)[0]), 0, ++ sizeof(GET_OB_DIGIT(result)[0])*8 - PyLong_SHIFT, obj->z); + + if (count == 0) { +- result->ob_digit[0] = 0; ++ GET_OB_DIGIT(result)[0] = 0; + } + + /* long_normalize() is file-static so we must reimplement it */ + /* longobjp = long_normalize(longobjp); */ +- while ((size>0) && (result->ob_digit[size-1] == 0)) { ++ while ((size>0) && (GET_OB_DIGIT(result)[size-1] == 0)) { + size--; + } +-#if PY_VERSION_HEX >= 0x030900A4 +- Py_SET_SIZE(result, size); +-#else +- Py_SIZE(result) = size; +-#endif + +- if (negative) { +-#if PY_VERSION_HEX >= 0x030900A4 +- Py_SET_SIZE(result, - Py_SIZE(result)); +-#else +- Py_SIZE(result) = - Py_SIZE(result); +-#endif +- } ++ _PyLong_SetSignAndDigitCount(result, negative, size); + return (PyObject*)result; + } + +@@ -476,33 +442,24 @@ GMPy_XMPZ_From_PyIntOrLong(PyObject *obj, CTXT_Object *context) + } + #endif + +- switch (Py_SIZE(templong)) { +- case -1: +- mpz_set_si(result->z, -(sdigit)templong->ob_digit[0]); ++ len = _PyLong_DigitCount(templong); ++ negative = _PyLong_IsNegative(templong); ++ ++ switch (len) { ++ case 1: ++ mpz_set_si(result->z, (sdigit)GET_OB_DIGIT(templong)[0]); + break; + case 0: + mpz_set_si(result->z, 0); + break; +- case 1: +- mpz_set_si(result->z, templong->ob_digit[0]); +- break; + default: +- mpz_set_si(result->z, 0); +- +- if (Py_SIZE(templong) < 0) { +- len = - Py_SIZE(templong); +- negative = 1; +- } else { +- len = Py_SIZE(templong); +- negative = 0; +- } +- +- mpz_import(result->z, len, -1, sizeof(templong->ob_digit[0]), 0, +- sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit); ++ mpz_import(result->z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0, ++ sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT, ++ GET_OB_DIGIT(templong)); ++ } + +- if (negative) { +- mpz_neg(result->z, result->z); +- } ++ if (negative) { ++ mpz_neg(result->z, result->z); + } + return result; + } +@@ -639,7 +596,7 @@ GMPy_MPQ_From_PyStr(PyObject *s, int base, CTXT_Object *context) + } + + cp = PyBytes_AsString(ascii_str); +- ++ + { + char *whereslash = strchr((char*)cp, '/'); + char *wheredot = strchr((char*)cp, '.'); +diff --git a/src/gmpy2_convert_utils.c b/src/gmpy2_convert_utils.c +index d676eaf..8908d17 100644 +--- a/src/gmpy2_convert_utils.c ++++ b/src/gmpy2_convert_utils.c +@@ -123,7 +123,7 @@ static unsigned long + GMPy_Integer_AsUnsignedLongWithType_v2(PyObject *x, int xtype) + { + if IS_TYPE_PyInteger(xtype) { +- if (Py_SIZE(x) < 0) { ++ if (_PyLong_IsNegative(((PyLongObject*)x))) { + VALUE_ERROR("n must be > 0"); + return (unsigned long)-1; + } diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb index 9a66af9a98..d9e9bd50e5 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb @@ -10,5 +10,6 @@ PYPI_PACKAGE = "gmpy2" SRC_URI[sha256sum] = "bc297f1fd8c377ae67a4f493fc0f926e5d1b157e5c342e30a4d84dc7b9f95d96" inherit pypi setuptools3 python3native +SRC_URI += "file://0001-src-fix-python-3.12-builds.patch" BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb deleted file mode 100644 index 89613516e6..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \ -Moderator, and many other Google APIs." -HOMEPAGE = "https://github.com/googleapis/google-api-python-client" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" - -SRC_URI[sha256sum] = "3a45a53c031478d1c82c7162dd25c9a965247bca6bd438af0838a9d9b8219405" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += "\ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-core \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-httplib2 \ - ${PYTHON_PN}-uritemplate \ - ${PYTHON_PN}-google-api-core \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb new file mode 100644 index 0000000000..b1614b854f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \ +Moderator, and many other Google APIs." +HOMEPAGE = "https://github.com/googleapis/google-api-python-client" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRC_URI[sha256sum] = "c3bcb5fd70d57f4c94b30c0dbeade53c216febfbf1d771eeb1a2fa74bd0d6756" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-httplib2 \ + ${PYTHON_PN}-uritemplate \ + ${PYTHON_PN}-google-api-core \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.bb deleted file mode 100644 index 2f527611e4..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.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] = "42f707937feb4f5e5a39e6c4f343a17300a459aaf03141457ba505812841cc40" - -RDEPENDS:${PN} += "\ - ${PYTHON_PN}-asyncio \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-numbers \ -" - -RDEPENDS:${PN} += "\ - ${PYTHON_PN}-aiohttp \ - ${PYTHON_PN}-cachetools \ - ${PYTHON_PN}-pyasn1-modules \ - ${PYTHON_PN}-rsa \ - ${PYTHON_PN}-six \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb new file mode 100644 index 0000000000..1a4913b718 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb @@ -0,0 +1,26 @@ +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] = "54385acca5c0fbdda510cd8585ba6f3fcb06eeecf8a6ecca39d3ee148b092590" + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-asyncio \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ +" + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-aiohttp \ + ${PYTHON_PN}-cachetools \ + ${PYTHON_PN}-pyasn1-modules \ + ${PYTHON_PN}-rsa \ + ${PYTHON_PN}-six \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch new file mode 100644 index 0000000000..aba62ddf14 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch @@ -0,0 +1,796 @@ +From 1e02dbe5533d679b9ef064078a303607a7d0542a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 29 Dec 2023 14:33:38 +0100 +Subject: [PATCH] Fix Cython 3 compatibility + +Upstream-Status: Backport [https://github.com/h5py/h5py/pull/2345/commits] +Signed-off-by: Alexander Kanavin +--- + benchmarks/benchmark_slicing.py | 12 ++++---- + docs/conf.py | 2 +- + docs/high/dataset.rst | 4 +-- + docs/high/file.rst | 6 ++-- + docs/requirements-rtd.txt | 5 ++-- + docs/vds.rst | 2 +- + docs/whatsnew/3.0.rst | 2 +- + docs/whatsnew/3.7.rst | 4 +-- + h5py/_errors.pxd | 10 +++---- + h5py/_errors.pyx | 4 +-- + h5py/_hl/base.py | 4 +-- + h5py/_hl/dataset.py | 8 ++--- + h5py/_hl/dims.py | 3 +- + h5py/_hl/files.py | 2 +- + h5py/_locks.pxi | 6 ++-- + h5py/_proxy.pyx | 4 +-- + h5py/_selector.pyx | 2 +- + h5py/api_compat.h | 13 ++++---- + h5py/api_types_hdf5.pxd | 48 +++++++++++++++--------------- + h5py/h5fd.pyx | 38 ++++++++++++++++------- + h5py/h5p.pyx | 4 +-- + h5py/h5t.pyx | 2 +- + h5py/tests/test_attrs_data.py | 2 +- + h5py/tests/test_big_endian_file.py | 4 +-- + h5py/tests/test_dataset.py | 4 +-- + h5py/tests/test_file.py | 6 ++-- + h5py/tests/test_file_alignment.py | 4 +-- + h5py/tests/test_group.py | 4 +-- + h5py/tests/test_selections.py | 2 +- + pylintrc | 2 +- + pyproject.toml | 2 +- + setup_configure.py | 2 +- + tox.ini | 2 +- + 33 files changed, 116 insertions(+), 103 deletions(-) + +diff --git a/benchmarks/benchmark_slicing.py b/benchmarks/benchmark_slicing.py +index e9a34dad..b833f012 100644 +--- a/benchmarks/benchmark_slicing.py ++++ b/benchmarks/benchmark_slicing.py +@@ -7,7 +7,7 @@ import logging + logger = logging.getLogger(__name__) + import h5py + +-#Needed for mutithreading: ++#Needed for multithreading: + from queue import Queue + from threading import Thread, Event + import multiprocessing +@@ -173,8 +173,8 @@ class SlicingBenchmark: + + if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) +- benckmark = SlicingBenchmark() +- benckmark.setup() +- benckmark.time_sequential_reads() +- benckmark.time_threaded_reads() +- benckmark.teardown() ++ benchmark = SlicingBenchmark() ++ benchmark.setup() ++ benchmark.time_sequential_reads() ++ benchmark.time_threaded_reads() ++ benchmark.teardown() +diff --git a/docs/conf.py b/docs/conf.py +index 93b23939..a0f6c1ac 100644 +--- a/docs/conf.py ++++ b/docs/conf.py +@@ -109,7 +109,7 @@ pygments_style = 'sphinx' + + # The theme to use for HTML and HTML Help pages. See the documentation for + # a list of builtin themes. +-html_theme = 'default' ++html_theme = 'sphinx_rtd_theme' + + # Theme options are theme-specific and customize the look and feel of a theme + # further. For a list of options available for each theme, see the +diff --git a/docs/high/dataset.rst b/docs/high/dataset.rst +index 0f27284f..cb75fffe 100644 +--- a/docs/high/dataset.rst ++++ b/docs/high/dataset.rst +@@ -58,7 +58,7 @@ the requested ``dtype``. + Reading & writing data + ---------------------- + +-HDF5 datasets re-use the NumPy slicing syntax to read and write to the file. ++HDF5 datasets reuse the NumPy slicing syntax to read and write to the file. + Slice specifications are translated directly to HDF5 "hyperslab" + selections, and are a fast and efficient way to access data in the file. The + following slicing arguments are recognized: +@@ -464,7 +464,7 @@ Reference + >>> dset = f["MyDS"] + >>> f.close() + >>> if dset: +- ... print("datset accessible") ++ ... print("dataset accessible") + ... else: + ... print("dataset inaccessible") + dataset inaccessible +diff --git a/docs/high/file.rst b/docs/high/file.rst +index 484498ce..e757fe1a 100644 +--- a/docs/high/file.rst ++++ b/docs/high/file.rst +@@ -392,7 +392,7 @@ Data alignment + When creating datasets within files, it may be advantageous to align the offset + within the file itself. This can help optimize read and write times if the data + become aligned with the underlying hardware, or may help with parallelism with +-MPI. Unfortunately, aligning small variables to large blocks can leave alot of ++MPI. Unfortunately, aligning small variables to large blocks can leave a lot of + empty space in a file. To this effect, application developers are left with two + options to tune the alignment of data within their file. The two variables + ``alignment_threshold`` and ``alignment_interval`` in the :class:`File` +@@ -415,7 +415,7 @@ number of regions. Setting a small value can reduce the overall file size, + especially in combination with the ``libver`` option. This controls how the + overall data and metadata are laid out within the file. + +-For more information, see the offical HDF5 documentation `H5P_SET_META_BLOCK_SIZE ++For more information, see the official HDF5 documentation `H5P_SET_META_BLOCK_SIZE + `_. + + Reference +@@ -497,7 +497,7 @@ Reference + Only available with HDF5 >= 1.12.1 or 1.10.x >= 1.10.7. + :param alignment_threshold: Together with ``alignment_interval``, this + property ensures that any file object greater than or equal +- in size to the alignement threshold (in bytes) will be ++ in size to the alignment threshold (in bytes) will be + aligned on an address which is a multiple of alignment interval. + :param alignment_interval: This property should be used in conjunction with + ``alignment_threshold``. See the description above. For more +diff --git a/docs/requirements-rtd.txt b/docs/requirements-rtd.txt +index e67a3eee..52096927 100644 +--- a/docs/requirements-rtd.txt ++++ b/docs/requirements-rtd.txt +@@ -1,3 +1,2 @@ +-sphinx==4.3.0 +-sphinx_rtd_theme==1.0.0 +-readthedocs-sphinx-search==0.1.1 ++sphinx==7.2.6 ++sphinx_rtd_theme==1.3.0 +diff --git a/docs/vds.rst b/docs/vds.rst +index a9a7c7f6..bd47ad1c 100644 +--- a/docs/vds.rst ++++ b/docs/vds.rst +@@ -124,7 +124,7 @@ Reference + slice it to indicate which regions should be used in the virtual dataset. + + When `creating a virtual dataset `_, paths to sources present +- in the same file are changed to a ".", refering to the current file (see ++ in the same file are changed to a ".", referring to the current file (see + `H5Pset_virtual `_). + This will keep such sources valid in case the file is renamed. + +diff --git a/docs/whatsnew/3.0.rst b/docs/whatsnew/3.0.rst +index db30ad66..ff3c2bef 100644 +--- a/docs/whatsnew/3.0.rst ++++ b/docs/whatsnew/3.0.rst +@@ -44,7 +44,7 @@ New features + See also the deprecation related to the ``external`` argument. + * Support for setting file space strategy at file creation. Includes option to + persist empty space tracking between sessions. See :class:`.File` for details. +-* More efficient writing when assiging a scalar to a chunked dataset, when the ++* More efficient writing when assigning a scalar to a chunked dataset, when the + number of elements to write is no more than the size of one chunk. + * Introduced support for the split :ref:`file driver ` + (:pr:`1468`). +diff --git a/docs/whatsnew/3.7.rst b/docs/whatsnew/3.7.rst +index 27790254..2e822d68 100644 +--- a/docs/whatsnew/3.7.rst ++++ b/docs/whatsnew/3.7.rst +@@ -19,7 +19,7 @@ New features + include it. Alternatively, you can :ref:`build h5py from source ` + against an HDF5 build with the direct driver enabled. + * The :class:`.File` constructor contains two new parameters ``alignment_threshold``, +- and ``alignment_interval`` controling the data alignment within the HDF5 ++ and ``alignment_interval`` controlling the data alignment within the HDF5 + file (:pr:`2040`). + * :meth:`~.Group.create_dataset` and :meth:`~.Group.require_dataset` now accept + parameters ``efile_prefix`` and ``virtual_prefix`` to set a filesystem path +@@ -40,7 +40,7 @@ Bug fixes + attributes with ``track_order=True``. + * Fix for building with mpi4py on Python 3.10 (:pr:`2101`). + * Fixed fancy indexing with a boolean array for a single dimension (:pr:`2079`). +-* Avoid returning unitialised memory when reading from a chunked dataset with ++* Avoid returning uninitialised memory when reading from a chunked dataset with + missing chunks and no fill value (:pr:`2076`). + * Enable setting of fillvalue for datasets with variable length string dtype + (:pr:`2044`). +diff --git a/h5py/_errors.pxd b/h5py/_errors.pxd +index df9c1bbe..3cba6307 100644 +--- a/h5py/_errors.pxd ++++ b/h5py/_errors.pxd +@@ -23,7 +23,7 @@ cdef extern from "hdf5.h": + H5E_ARGS, # invalid arguments to routine + H5E_RESOURCE, # resource unavailable + H5E_INTERNAL, # Internal error (too specific to document) +- H5E_FILE, # file Accessability ++ H5E_FILE, # file Accessibility + H5E_IO, # Low-level I/O + H5E_FUNC, # function Entry/Exit + H5E_ATOM, # object Atom +@@ -121,7 +121,7 @@ cdef extern from "hdf5.h": + # No error + H5E_NONE_MINOR # No error + +- # File accessability errors ++ # File accessibility errors + H5E_FILEEXISTS # File already exists + H5E_FILEOPEN # File already open + H5E_CANTCREATE # Unable to create file +@@ -207,7 +207,7 @@ cdef extern from "hdf5.h": + H5E_ARGS, # invalid arguments to routine + H5E_RESOURCE, # resource unavailable + H5E_INTERNAL, # Internal error (too specific to document) +- H5E_FILE, # file Accessability ++ H5E_FILE, # file Accessibility + H5E_IO, # Low-level I/O + H5E_FUNC, # function Entry/Exit + H5E_ID, # object ID +@@ -305,7 +305,7 @@ cdef extern from "hdf5.h": + # No error + H5E_NONE_MINOR # No error + +- # File accessability errors ++ # File accessibility errors + H5E_FILEEXISTS # File already exists + H5E_FILEOPEN # File already open + H5E_CANTCREATE # Unable to create file +@@ -425,4 +425,4 @@ ctypedef struct err_cookie: + cdef err_cookie set_error_handler(err_cookie handler) + + # Set the default error handler set by silence_errors/unsilence_errors +-cdef void set_default_error_handler() nogil ++cdef void set_default_error_handler() noexcept nogil +diff --git a/h5py/_errors.pyx b/h5py/_errors.pyx +index c3bd184e..2a7524b2 100644 +--- a/h5py/_errors.pyx ++++ b/h5py/_errors.pyx +@@ -94,7 +94,7 @@ cdef struct err_data_t: + H5E_error_t err + int n + +-cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) nogil noexcept: ++cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) noexcept nogil: + + cdef err_data_t *ee = e + +@@ -168,7 +168,7 @@ cdef err_cookie _error_handler # Store error handler used by h5py + _error_handler.func = NULL + _error_handler.data = NULL + +-cdef void set_default_error_handler() nogil: ++cdef void set_default_error_handler() noexcept nogil: + """Set h5py's current default error handler""" + H5Eset_auto(H5E_DEFAULT, _error_handler.func, _error_handler.data) + +diff --git a/h5py/_hl/base.py b/h5py/_hl/base.py +index cad37053..9d261c90 100644 +--- a/h5py/_hl/base.py ++++ b/h5py/_hl/base.py +@@ -20,7 +20,7 @@ import posixpath + import numpy as np + + # The high-level interface is serialized; every public API function & method +-# is wrapped in a lock. We re-use the low-level lock because (1) it's fast, ++# is wrapped in a lock. We reuse the low-level lock because (1) it's fast, + # and (2) it eliminates the possibility of deadlocks due to out-of-order + # lock acquisition. + from .._objects import phil, with_phil +@@ -524,7 +524,7 @@ def product(nums): + # Daniel Greenfeld, BSD license), where it is attributed to bottle (Copyright + # (c) 2009-2022, Marcel Hellkamp, MIT license). + +-class cached_property(object): ++class cached_property: + def __init__(self, func): + self.__doc__ = getattr(func, "__doc__") + self.func = func +diff --git a/h5py/_hl/dataset.py b/h5py/_hl/dataset.py +index b69aba48..77b202d2 100644 +--- a/h5py/_hl/dataset.py ++++ b/h5py/_hl/dataset.py +@@ -334,10 +334,10 @@ class ChunkIterator: + self._layout = dset.chunks + if source_sel is None: + # select over entire dataset +- slices = [] +- for dim in range(rank): +- slices.append(slice(0, self._shape[dim])) +- self._sel = tuple(slices) ++ self._sel = tuple( ++ slice(0, self._shape[dim]) ++ for dim in range(rank) ++ ) + else: + if isinstance(source_sel, slice): + self._sel = (source_sel,) +diff --git a/h5py/_hl/dims.py b/h5py/_hl/dims.py +index d3c9206b..0cf4c9f3 100644 +--- a/h5py/_hl/dims.py ++++ b/h5py/_hl/dims.py +@@ -53,8 +53,7 @@ class DimensionProxy(base.CommonStateObject): + + @with_phil + def __iter__(self): +- for k in self.keys(): +- yield k ++ yield from self.keys() + + @with_phil + def __len__(self): +diff --git a/h5py/_hl/files.py b/h5py/_hl/files.py +index aa4fb78d..bfcf3098 100644 +--- a/h5py/_hl/files.py ++++ b/h5py/_hl/files.py +@@ -480,7 +480,7 @@ class File(Group): + + alignment_threshold + Together with ``alignment_interval``, this property ensures that +- any file object greater than or equal in size to the alignement ++ any file object greater than or equal in size to the alignment + threshold (in bytes) will be aligned on an address which is a + multiple of alignment interval. + +diff --git a/h5py/_locks.pxi b/h5py/_locks.pxi +index bc8b2dd9..1ec4e2fc 100644 +--- a/h5py/_locks.pxi ++++ b/h5py/_locks.pxi +@@ -63,7 +63,7 @@ cdef class FastRLock: + return self._owner == pythread.PyThread_get_thread_ident() + + +-cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) nogil: ++cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) noexcept nogil: + # Note that this function *must* hold the GIL when being called. + # We just use 'nogil' in the signature to make sure that no Python + # code execution slips in that might free the GIL +@@ -83,7 +83,7 @@ cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) n + lock, current_thread, + pythread.WAIT_LOCK if blocking else pythread.NOWAIT_LOCK) + +-cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil: ++cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) noexcept nogil: + # Note that this function *must* hold the GIL when being called. + # We just use 'nogil' in the signature to make sure that no Python + # code execution slips in that might free the GIL +@@ -111,7 +111,7 @@ cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil: + lock._count = 1 + return 1 + +-cdef inline void unlock_lock(FastRLock lock) nogil: ++cdef inline void unlock_lock(FastRLock lock) noexcept nogil: + # Note that this function *must* hold the GIL when being called. + # We just use 'nogil' in the signature to make sure that no Python + # code execution slips in that might free the GIL +diff --git a/h5py/_proxy.pyx b/h5py/_proxy.pyx +index 46b4fe0d..e40504f5 100644 +--- a/h5py/_proxy.pyx ++++ b/h5py/_proxy.pyx +@@ -241,7 +241,7 @@ ctypedef struct h5py_scatter_t: + void* buf + + cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim, +- const hsize_t *point, void *operator_data) nogil except -1: ++ const hsize_t *point, void *operator_data) except -1 nogil: + cdef h5py_scatter_t* info = operator_data + + memcpy(elem, (info[0].buf)+((info[0].i)*(info[0].elsize)), +@@ -252,7 +252,7 @@ cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim, + return 0 + + cdef herr_t h5py_gather_cb(void* elem, hid_t type_id, unsigned ndim, +- const hsize_t *point, void *operator_data) nogil except -1: ++ const hsize_t *point, void *operator_data) except -1 nogil: + cdef h5py_scatter_t* info = operator_data + + memcpy((info[0].buf)+((info[0].i)*(info[0].elsize)), elem, +diff --git a/h5py/_selector.pyx b/h5py/_selector.pyx +index 8b858c82..69970176 100644 +--- a/h5py/_selector.pyx ++++ b/h5py/_selector.pyx +@@ -341,7 +341,7 @@ cdef class Reader: + + arr = PyArray_ZEROS(arr_rank, arr_shape, self.np_typenum, 0) + if not self.native_byteorder: +- arr = arr.newbyteorder() ++ arr = arr.view(arr.dtype.newbyteorder()) + finally: + efree(arr_shape) + +diff --git a/h5py/api_compat.h b/h5py/api_compat.h +index 52917f4d..a359e827 100644 +--- a/h5py/api_compat.h ++++ b/h5py/api_compat.h +@@ -24,7 +24,6 @@ typedef void *PyMPI_MPI_Message; + #include + #include "Python.h" + #include "numpy/arrayobject.h" +-#include "hdf5.h" + + /* The HOFFSET macro can't be used from Cython. */ + +@@ -35,14 +34,14 @@ typedef void *PyMPI_MPI_Message; + #define h5py_size_n256 (sizeof(npy_complex256)) + #endif + +-#define h5py_offset_n64_real (HOFFSET(npy_complex64, real)) +-#define h5py_offset_n64_imag (HOFFSET(npy_complex64, imag)) +-#define h5py_offset_n128_real (HOFFSET(npy_complex128, real)) +-#define h5py_offset_n128_imag (HOFFSET(npy_complex128, imag)) ++#define h5py_offset_n64_real (0) ++#define h5py_offset_n64_imag (sizeof(float)) ++#define h5py_offset_n128_real (0) ++#define h5py_offset_n128_imag (sizeof(double)) + + #ifdef NPY_COMPLEX256 +-#define h5py_offset_n256_real (HOFFSET(npy_complex256, real)) +-#define h5py_offset_n256_imag (HOFFSET(npy_complex256, imag)) ++#define h5py_offset_n256_real (0) ++#define h5py_offset_n256_imag (sizeof(long double)) + #endif + + #endif +diff --git a/h5py/api_types_hdf5.pxd b/h5py/api_types_hdf5.pxd +index a198f105..099e0f58 100644 +--- a/h5py/api_types_hdf5.pxd ++++ b/h5py/api_types_hdf5.pxd +@@ -257,27 +257,27 @@ cdef extern from "hdf5.h": + herr_t (*sb_encode)(H5FD_t *file, char *name, unsigned char *p) + herr_t (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p) + size_t fapl_size +- void * (*fapl_get)(H5FD_t *file) +- void * (*fapl_copy)(const void *fapl) +- herr_t (*fapl_free)(void *fapl) ++ void * (*fapl_get)(H5FD_t *file) except * ++ void * (*fapl_copy)(const void *fapl) except * ++ herr_t (*fapl_free)(void *fapl) except -1 + size_t dxpl_size + void * (*dxpl_copy)(const void *dxpl) + herr_t (*dxpl_free)(void *dxpl) +- H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) +- herr_t (*close)(H5FD_t *file) ++ H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except * ++ herr_t (*close)(H5FD_t *file) except -1 + int (*cmp)(const H5FD_t *f1, const H5FD_t *f2) + herr_t (*query)(const H5FD_t *f1, unsigned long *flags) + herr_t (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map) + haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size) + herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size) +- haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) +- herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) +- haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) ++ haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept ++ herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept ++ haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1 + herr_t (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle) +- herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) +- herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) +- herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) +- herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) ++ herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except * ++ herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except * ++ herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 ++ herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 + herr_t (*lock)(H5FD_t *file, hbool_t rw) + herr_t (*unlock)(H5FD_t *file) + H5FD_mem_t fl_map[H5FD_MEM_NTYPES] +@@ -295,27 +295,27 @@ cdef extern from "hdf5.h": + herr_t (*sb_encode)(H5FD_t *file, char *name, unsigned char *p) + herr_t (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p) + size_t fapl_size +- void * (*fapl_get)(H5FD_t *file) +- void * (*fapl_copy)(const void *fapl) +- herr_t (*fapl_free)(void *fapl) ++ void * (*fapl_get)(H5FD_t *file) except * ++ void * (*fapl_copy)(const void *fapl) except * ++ herr_t (*fapl_free)(void *fapl) except -1 + size_t dxpl_size + void * (*dxpl_copy)(const void *dxpl) + herr_t (*dxpl_free)(void *dxpl) +- H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) +- herr_t (*close)(H5FD_t *file) ++ H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except * ++ herr_t (*close)(H5FD_t *file) except -1 + int (*cmp)(const H5FD_t *f1, const H5FD_t *f2) + herr_t (*query)(const H5FD_t *f1, unsigned long *flags) + herr_t (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map) + haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size) + herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size) +- haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) +- herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) +- haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) ++ haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept ++ herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept ++ haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1 + herr_t (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle) +- herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) +- herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) +- herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) +- herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) ++ herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except * ++ herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except * ++ herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 ++ herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 + herr_t (*lock)(H5FD_t *file, hbool_t rw) + herr_t (*unlock)(H5FD_t *file) + H5FD_mem_t fl_map[H5FD_MEM_NTYPES] +diff --git a/h5py/h5fd.pyx b/h5py/h5fd.pyx +index e9746057..d39cf68f 100644 +--- a/h5py/h5fd.pyx ++++ b/h5py/h5fd.pyx +@@ -144,10 +144,10 @@ cdef herr_t H5FD_fileobj_close(H5FD_fileobj_t *f) except -1 with gil: + stdlib_free(f) + return 0 + +-cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type): ++cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type) noexcept nogil: + return f.eoa + +-cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr): ++cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr) noexcept nogil: + f.eoa = addr + return 0 + +@@ -191,22 +191,38 @@ cdef herr_t H5FD_fileobj_flush(H5FD_fileobj_t *f, hid_t dxpl, hbool_t closing) e + cdef H5FD_class_t info + memset(&info, 0, sizeof(info)) + ++# Cython doesn't support "except X" in casting definition currently ++ctypedef herr_t (*file_free_func_ptr)(void *) except -1 ++ ++ctypedef herr_t (*file_close_func_ptr)(H5FD_t *) except -1 ++ctypedef haddr_t (*file_get_eoa_func_ptr)(const H5FD_t *, H5FD_mem_t) noexcept ++ctypedef herr_t (*file_set_eof_func_ptr)(H5FD_t *, H5FD_mem_t, haddr_t) noexcept ++ctypedef haddr_t (*file_get_eof_func_ptr)(const H5FD_t *, H5FD_mem_t) except -1 ++ctypedef herr_t (*file_read_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void*) except -1 ++ctypedef herr_t (*file_write_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void*) except -1 ++ctypedef herr_t (*file_truncate_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1 ++ctypedef herr_t (*file_flush_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1 ++ ++ + info.name = 'fileobj' + info.maxaddr = libc.stdint.SIZE_MAX - 1 + info.fc_degree = H5F_CLOSE_WEAK + info.fapl_size = sizeof(PyObject *) + info.fapl_get = H5FD_fileobj_fapl_get + info.fapl_copy = H5FD_fileobj_fapl_copy +-info.fapl_free = H5FD_fileobj_fapl_free ++ ++info.fapl_free = H5FD_fileobj_fapl_free ++ + info.open = H5FD_fileobj_open +-info.close = H5FD_fileobj_close +-info.get_eoa = H5FD_fileobj_get_eoa +-info.set_eoa = H5FD_fileobj_set_eoa +-info.get_eof = H5FD_fileobj_get_eof +-info.read = H5FD_fileobj_read +-info.write = H5FD_fileobj_write +-info.truncate = H5FD_fileobj_truncate +-info.flush = H5FD_fileobj_flush ++ ++info.close = H5FD_fileobj_close ++info.get_eoa = H5FD_fileobj_get_eoa ++info.set_eoa = H5FD_fileobj_set_eoa ++info.get_eof = H5FD_fileobj_get_eof ++info.read = H5FD_fileobj_read ++info.write = H5FD_fileobj_write ++info.truncate = H5FD_fileobj_truncate ++info.flush = H5FD_fileobj_flush + # H5FD_FLMAP_DICHOTOMY + info.fl_map = [H5FD_MEM_SUPER, # default + H5FD_MEM_SUPER, # super +diff --git a/h5py/h5p.pyx b/h5py/h5p.pyx +index 779ea1b5..dc8bf65a 100644 +--- a/h5py/h5p.pyx ++++ b/h5py/h5p.pyx +@@ -1177,7 +1177,7 @@ cdef class PropFAID(PropInstanceID): + size_t block_size IN: File system block size + size_t cbuf_size IN: Copy buffer size + +- Properites with value of 0 indicate that the HDF5 library should ++ Properties with value of 0 indicate that the HDF5 library should + choose the value. + """ + H5Pset_fapl_direct(self.id, alignment, block_size, cbuf_size) +@@ -1761,7 +1761,7 @@ cdef class PropOCID(PropCreateID): + + max_compact -- maximum number of attributes to be stored in compact storage(default:8) + must be greater than or equal to min_dense +- min_dense -- minmum number of attributes to be stored in dense storage(default:6) ++ min_dense -- minimum number of attributes to be stored in dense storage(default:6) + + """ + H5Pset_attr_phase_change(self.id, max_compact, min_dense) +diff --git a/h5py/h5t.pyx b/h5py/h5t.pyx +index e7aae14f..b9d7e74d 100644 +--- a/h5py/h5t.pyx ++++ b/h5py/h5t.pyx +@@ -1938,7 +1938,7 @@ def check_dtype(**kwds): + + vlen = dtype + If the dtype represents an HDF5 vlen, returns the Python base class. +- Currently only builting string vlens (str) are supported. Returns ++ Currently only built-in string vlens (str) are supported. Returns + None if the dtype does not represent an HDF5 vlen. + + enum = dtype +diff --git a/h5py/tests/test_attrs_data.py b/h5py/tests/test_attrs_data.py +index 56481ca0..5083a1aa 100644 +--- a/h5py/tests/test_attrs_data.py ++++ b/h5py/tests/test_attrs_data.py +@@ -262,7 +262,7 @@ class TestEmpty(BaseAttrs): + self.assertTrue(is_empty_dataspace(h5a.open(self.f.id, b'y'))) + + def test_modify(self): +- with self.assertRaises(IOError): ++ with self.assertRaises(OSError): + self.f.attrs.modify('x', 1) + + def test_values(self): +diff --git a/h5py/tests/test_big_endian_file.py b/h5py/tests/test_big_endian_file.py +index 4d81de01..170b5bcc 100644 +--- a/h5py/tests/test_big_endian_file.py ++++ b/h5py/tests/test_big_endian_file.py +@@ -24,14 +24,14 @@ def test_vlen_big_endian(): + assert dset[4] == 1.2 + assert dset.dtype == "f8" + + assert f["DSLEint"][0] == 1 + assert f["DSLEint"].dtype == "i8" + +diff --git a/h5py/tests/test_dataset.py b/h5py/tests/test_dataset.py +index e104dd53..0ffa5c80 100644 +--- a/h5py/tests/test_dataset.py ++++ b/h5py/tests/test_dataset.py +@@ -1939,9 +1939,9 @@ class TestCommutative(BaseDataset): + dset = self.f.create_dataset("test", shape, dtype=float, + data=np.random.rand(*shape)) + +- # grab a value from the elements, ie dset[0] ++ # grab a value from the elements, ie dset[0, 0] + # check that mask arrays are commutative wrt ==, != +- val = np.float64(dset[0]) ++ val = np.float64(dset[0, 0]) + + assert np.all((val == dset) == (dset == val)) + assert np.all((val != dset) == (dset != val)) +diff --git a/h5py/tests/test_file.py b/h5py/tests/test_file.py +index b47d408e..1aa38731 100644 +--- a/h5py/tests/test_file.py ++++ b/h5py/tests/test_file.py +@@ -326,7 +326,7 @@ class TestDrivers(TestCase): + # could be an integer multiple of 512 + # + # To allow HDF5 to do the heavy lifting for different platform, +- # We didn't provide any argumnets to the first call ++ # We didn't provide any arguments to the first call + # and obtained HDF5's default values there. + + # Testing creation with a few different property lists +@@ -639,9 +639,9 @@ class TestUnicode(TestCase): + Modes 'r' and 'r+' do not create files even when given unicode names + """ + fname = self.mktemp(prefix=chr(0x201a)) +- with self.assertRaises(IOError): ++ with self.assertRaises(OSError): + File(fname, 'r') +- with self.assertRaises(IOError): ++ with self.assertRaises(OSError): + File(fname, 'r+') + + +diff --git a/h5py/tests/test_file_alignment.py b/h5py/tests/test_file_alignment.py +index c280bb76..da13ee04 100644 +--- a/h5py/tests/test_file_alignment.py ++++ b/h5py/tests/test_file_alignment.py +@@ -50,7 +50,7 @@ class TestFileAlignment(TestCase): + alignment_interval = 4096 + + for shape in [ +- (1033,), # A prime number above the thresold ++ (1033,), # A prime number above the threshold + (1000,), # Exactly equal to the threshold + (1001,), # one above the threshold + ]: +@@ -75,7 +75,7 @@ class TestFileAlignment(TestCase): + alignment_interval = 1024 + + for shape in [ +- (881,), # A prime number below the thresold ++ (881,), # A prime number below the threshold + (999,), # Exactly one below the threshold + ]: + fname = self.mktemp() +diff --git a/h5py/tests/test_group.py b/h5py/tests/test_group.py +index 328c352a..4af1fb1f 100644 +--- a/h5py/tests/test_group.py ++++ b/h5py/tests/test_group.py +@@ -771,7 +771,7 @@ class TestExternalLinks(TestCase): + with self.assertRaises(KeyError): + self.f['ext'] + +- # I would prefer IOError but there's no way to fix this as the exception ++ # I would prefer OSError but there's no way to fix this as the exception + # class is determined by HDF5. + def test_exc_missingfile(self): + """ KeyError raised when attempting to open missing file """ +@@ -844,7 +844,7 @@ class TestExtLinkBugs(TestCase): + try: + if x: + x.close() +- except IOError: ++ except OSError: + pass + return w + orig_name = self.mktemp() +diff --git a/h5py/tests/test_selections.py b/h5py/tests/test_selections.py +index 0b1722d7..01f6dcb7 100644 +--- a/h5py/tests/test_selections.py ++++ b/h5py/tests/test_selections.py +@@ -65,7 +65,7 @@ class TestTypeGeneration(BaseSelection): + self.assertEqual(out, np.dtype('i')) + self.assertEqual(format, np.dtype( [('a','i')] )) + +- # Field does not apear in named typed ++ # Field does not appear in named typed + with self.assertRaises(ValueError): + out, format = sel2.read_dtypes(dt, ('j', 'k')) + +diff --git a/pylintrc b/pylintrc +index 045df2f7..2401d3b0 100644 +--- a/pylintrc ++++ b/pylintrc +@@ -44,7 +44,7 @@ confidence= + # can either give multiple identifiers separated by comma (,) or put this + # option multiple times (only on the command line, not in the configuration + # file where it should appear only once).You can also use "--disable=all" to +-# disable everything first and then reenable specific checks. For example, if ++# disable everything first and then re-enable specific checks. For example, if + # you want to run only the similarities checker, you can use "--disable=all + # --enable=similarities". If you want to run only the classes checker, but have + # no Warning level messages displayed, use"--disable=all --enable=classes +diff --git a/pyproject.toml b/pyproject.toml +index ee573d2f..717200ef 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,6 +1,6 @@ + [build-system] + requires = [ +- "Cython >=0.29.31,<1", ++ "Cython >=0.29.31,<4", + "oldest-supported-numpy", + "pkgconfig", + "setuptools >=61", +diff --git a/setup_configure.py b/setup_configure.py +index 0fba53ba..c3b86a64 100644 +--- a/setup_configure.py ++++ b/setup_configure.py +@@ -165,7 +165,7 @@ class BuildConfig: + try: + if pkgconfig.exists(pc_name): + pc = pkgconfig.parse(pc_name) +- except EnvironmentError: ++ except OSError: + if os.name != 'nt': + print( + "Building h5py requires pkg-config unless the HDF5 path " +diff --git a/tox.ini b/tox.ini +index 0efb88a6..86a176dd 100644 +--- a/tox.ini ++++ b/tox.ini +@@ -65,7 +65,7 @@ skip_install=True + package_env = DUMMY NON-EXISTENT ENV NAME + changedir=docs + deps= +- sphinx ++ -r docs/requirements-rtd.txt + commands= + sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html + diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb index e772106857..8a9158525e 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb @@ -6,7 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c" SRC_URI[sha256sum] = "d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049" -SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch" +SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch \ + file://0001-Fix-Cython-3-compatibility.patch" inherit pkgconfig pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb deleted file mode 100644 index 7e058a757b..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Library to process JSON-RPC requests" -HOMEPAGE = "https://github.com/explodinglabs/jsonrpcserver" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=61b63ea9d36f6fb63ddaaaac8265304f" - -SRC_URI[sha256sum] = "a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += "\ - python3-apply-defaults \ - python3-asyncio \ - python3-core \ - python3-json \ - python3-jsonschema \ - python3-logging \ - python3-netclient \ - python3-pkgutil \ - python3-oslash \ - python3-typing-extensions \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb deleted file mode 100644 index a72ee14f6c..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb +++ /dev/null @@ -1,73 +0,0 @@ -SUMMARY = "Open source Python library for rapid development of applications \ - that make use of innovative user interfaces, such as multi-touch apps." -HOMEPAGE = "https://kivy.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ed5cd0f2cfda42852c332e3b88c85fea" - -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 -# that our machine has GLES libaries installed as well -# Also, if using SDL2 as backend, SDL2 needs to be configured with gles -SRC_URI = "git://github.com/kivy/kivy.git;protocol=https;branch=stable \ - file://0001-add-support-for-glesv2.patch \ - " - -SRCREV = "344768bfefd2e8f5302cc9dfb8ca41991ce6f7e7" - -S = "${WORKDIR}/git" - -PACKAGES += "${PN}-examples" -FILES:${PN}-examples = "/usr/share/kivy-examples" - -USE_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '1', '0', d)}" -export USE_WAYLAND - -# if using Wayland, let's use pure Wayland (and not XWayland) -# so do not build using X11 flag when we detect Wayland -USE_X11 = " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '0', \ - bb.utils.contains('DISTRO_FEATURES', 'x11', '1', \ - '0', d), d)}" -export USE_X11 - -# Use OpenGL ES 2.0 library -KIVY_GRAPHICS = "gles" -export KIVY_GRAPHICS - -KIVY_CROSS_SYSROOT="${RECIPE_SYSROOT}" -export KIVY_CROSS_SYSROOT - -REQUIRED_DISTRO_FEATURES += "opengl gobject-introspection-data" - -ANY_OF_DISTRO_FEATURES = "x11 wayland" - -DEPENDS += " \ - gstreamer1.0 \ - gstreamer1.0-python \ - libsdl2 \ - libsdl2-ttf \ - libsdl2-image \ - libsdl2-mixer \ - pango \ - python3 \ - python3-cython-native \ -" - -RDEPENDS:${PN} = " \ - gstreamer1.0 \ - gstreamer1.0-python \ - libsdl2 \ - libsdl2-ttf \ - libsdl2-image \ - libsdl2-mixer \ - pango \ - python3 \ - python3-docutils \ - python3-fcntl \ - python3-image \ - python3-pillow \ - python3-pygments \ -" 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 new file mode 100644 index 0000000000..9e791c6e78 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb @@ -0,0 +1,73 @@ +SUMMARY = "Open source Python library for rapid development of applications \ + that make use of innovative user interfaces, such as multi-touch apps." +HOMEPAGE = "https://kivy.org/" +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 +# that our machine has GLES libaries installed as well +# Also, if using SDL2 as backend, SDL2 needs to be configured with gles +SRC_URI = "git://github.com/kivy/kivy.git;protocol=https;branch=stable \ + file://0001-add-support-for-glesv2.patch \ + " + +SRCREV = "9ef218027178115a66b417ae34b21f488bdd3617" + +S = "${WORKDIR}/git" + +PACKAGES += "${PN}-examples" +FILES:${PN}-examples = "/usr/share/kivy-examples" + +USE_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '1', '0', d)}" +export USE_WAYLAND + +# if using Wayland, let's use pure Wayland (and not XWayland) +# so do not build using X11 flag when we detect Wayland +USE_X11 = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '0', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', '1', \ + '0', d), d)}" +export USE_X11 + +# Use OpenGL ES 2.0 library +KIVY_GRAPHICS = "gles" +export KIVY_GRAPHICS + +KIVY_CROSS_SYSROOT="${RECIPE_SYSROOT}" +export KIVY_CROSS_SYSROOT + +REQUIRED_DISTRO_FEATURES += "opengl gobject-introspection-data" + +ANY_OF_DISTRO_FEATURES = "x11 wayland" + +DEPENDS += " \ + gstreamer1.0 \ + gstreamer1.0-python \ + libsdl2 \ + libsdl2-ttf \ + libsdl2-image \ + libsdl2-mixer \ + pango \ + python3 \ + python3-cython-native \ +" + +RDEPENDS:${PN} = " \ + gstreamer1.0 \ + gstreamer1.0-python \ + libsdl2 \ + libsdl2-ttf \ + libsdl2-image \ + libsdl2-mixer \ + pango \ + python3 \ + python3-docutils \ + python3-fcntl \ + python3-image \ + python3-pillow \ + python3-pygments \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb deleted file mode 100644 index 52e1cf6af7..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Python bindings for kmod/libkmod." -HOMEPAGE = "https://github.com/agrover/python-kmod" -SECTION = "devel/python" -LICENSE = "LGPL-2.1-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=6d62c2454850386a2ffe44f72db83d74" - -inherit pypi setuptools3 - -RECIPE_NO_UPDATE_REASON = "Version 0.9.2 is broken when using latest build machinery for C extensions" -SRC_URI[sha256sum] = "f3bf829059bf88eca22f4f549e17aa316cdaa14302bf2ba49ddeee60cea109ff" - -DEPENDS += " \ - kmod \ - python3-cython-native \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb deleted file mode 100644 index f0c8684b0d..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573" - -DEPENDS += " \ - lz4 \ - python3-setuptools-scm-native \ - python3-pkgconfig-native \ -" - -SRC_URI += "file://run-ptest" - -SRC_URI[sha256sum] = "e1431d84a9cfb23e6773e72078ce8e65cad6745816d4cbf9ae67da5ea419acda" - -inherit pkgconfig pypi python_setuptools_build_meta ptest - -RDEPENDS:${PN}-ptest += "\ - python3-coverage \ - python3-pytest \ - python3-pytest-cov \ - python3-pytest-runner \ - python3-multiprocessing \ - python3-psutil \ - python3-unittest-automake-output \ -" - -do_install_ptest() { - cp -rf ${S}/tests/ ${D}${PTEST_PATH}/ - # The stream API is experimental and not enabled yet, so don't ship the test suite - rm -rf ${D}${PTEST_PATH}/tests/stream -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb new file mode 100644 index 0000000000..746926da4e --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573" + +DEPENDS += " \ + lz4 \ + python3-setuptools-scm-native \ + python3-pkgconfig-native \ +" + +SRC_URI += "file://run-ptest" + +SRC_URI[sha256sum] = "01fe674ef2889dbb9899d8a67361e0c4a2c833af5aeb37dd505727cf5d2a131e" + +inherit pkgconfig pypi python_setuptools_build_meta ptest + +RDEPENDS:${PN}-ptest += "\ + python3-coverage \ + python3-pytest \ + python3-pytest-cov \ + python3-pytest-runner \ + python3-multiprocessing \ + python3-psutil \ + python3-unittest-automake-output \ +" + +do_install_ptest() { + cp -rf ${S}/tests/ ${D}${PTEST_PATH}/ + # The stream API is experimental and not enabled yet, so don't ship the test suite + rm -rf ${D}${PTEST_PATH}/tests/stream +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb new file mode 100644 index 0000000000..15350e9426 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "A network address manipulation library for Python." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44" + +SRC_URI[sha256sum] = "4c30c54adf4ea4318b3c055ea3d8c7f6554a50aa2cd8aea4605a23caa0b0229e" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + python3-io \ + python3-pprint \ + python3-xml \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb deleted file mode 100644 index 471d939a82..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "A network address manipulation library for Python." -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44" - -SRC_URI[sha256sum] = "7b46fa9b1a2d71fd5de9e4a3784ef339700a53a08c8040f08baf5f1194da0128" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += " \ - python3-io \ - python3-pprint \ - python3-xml \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb deleted file mode 100644 index b926484db0..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Functors, Applicatives, And Monads in Python" -HOMEPAGE = "https://github.com/dbrattli/oslash" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://README.md;md5=ed79d2637878dfe97de89e357b5c02dd" - -DEPENDS += "\ - ${PYTHON_PN}-pip-native \ - ${PYTHON_PN}-pytest-runner-native\ -" - -SRC_URI[sha256sum] = "868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3" - -PYPI_PACKAGE = "OSlash" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += " \ - python3-json \ - python3-typing-extensions \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb deleted file mode 100644 index 5ff6ffc9e3..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "A modern Python package and dependency manager supporting the latest PEP standards" -HOMEPAGE = "https://pdm-project.org/latest/" -LICENSE = "MIT" -SECTION = "devel/python" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2" - -SRC_URI[sha256sum] = "b10bc4e5394856f1639ddc9bc754d9c26323ec5b828a135c6ed35f935b054b83" - -inherit pypi python_setuptools_build_meta - -DEPENDS += " \ - ${PYTHON_PN}-pdm-backend-native \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb new file mode 100644 index 0000000000..f8a593c2b8 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "A modern Python package and dependency manager supporting the latest PEP standards" +HOMEPAGE = "https://pdm-project.org/latest/" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2" + +SRC_URI[sha256sum] = "5b31255c48d4aca596c73fb872a82848cbe8ff92f008712a9a264455247063ee" + +inherit pypi python_setuptools_build_meta + +DEPENDS += " \ + ${PYTHON_PN}-pdm-backend-native \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb deleted file mode 100644 index 01f180c8cb..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "Provides the core functionality for pydantic validation and serialization." -DESCRIPTION = "This package provides the core functionality for \ -pydantic validation and serialization.\ -\ -Pydantic-core is currently around 17x faster than pydantic V1." -HOMEPAGE = "https://github.com/pydantic/pydantic-core" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c" - -SRC_URI[sha256sum] = "6d30226dfc816dd0fdf120cae611dd2215117e4f9b124af8c60ab9093b6e8e71" - -DEPENDS = "python3-maturin-native python3-typing-extensions" - -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}" - -RDEPENDS:${PN} += "python3-typing-extensions" - -INSANE_SKIP:${PN} = "already-stripped" - -inherit ptest -SRC_URI += "file://run-ptest" -RDEPENDS:${PN}-ptest += "\ - python3-dirty-equals \ - python3-hypothesis \ - python3-pytest \ - python3-pytest-mock \ - python3-unittest-automake-output \ -" - -do_install_ptest() { - cp -rf ${S}/tests/ ${D}${PTEST_PATH}/ - rm -rf ${D}${PTEST_PATH}/tests/benchmarks -} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb new file mode 100644 index 0000000000..e58ee7fd66 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb @@ -0,0 +1,51 @@ +SUMMARY = "Provides the core functionality for pydantic validation and serialization." +DESCRIPTION = "This package provides the core functionality for \ +pydantic validation and serialization.\ +\ +Pydantic-core is currently around 17x faster than pydantic V1." +HOMEPAGE = "https://github.com/pydantic/pydantic-core" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c" + +SRC_URI[sha256sum] = "1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948" + +DEPENDS = "python3-maturin-native python3-typing-extensions" + +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}" + +RDEPENDS:${PN} += "python3-typing-extensions" + +INSANE_SKIP:${PN} = "already-stripped" + +inherit ptest +SRC_URI += "file://run-ptest" +RDEPENDS:${PN}-ptest += "\ + python3-dirty-equals \ + python3-hypothesis \ + python3-pytest \ + python3-pytest-mock \ + python3-unittest-automake-output \ +" + +do_install:append() { + for f in ${D}/${libdir}/${PYTHON_DIR}/site-packages/pydantic_core/_pydantic_core.*.so + do + fname=`basename $f` + lname=`echo $fname | sed 's/musl/gnu/'` + if [ "$fname" != "$lname" ]; then + mv $f ${D}/${libdir}/${PYTHON_DIR}/site-packages/pydantic_core/$lname + fi + done +} + +do_install_ptest() { + cp -rf ${S}/tests/ ${D}${PTEST_PATH}/ + rm -rf ${D}${PTEST_PATH}/tests/benchmarks +} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb deleted file mode 100644 index 11f11b776d..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "passive checker of Python programs" -HOMEPAGE = "https://github.com/PyCQA/pyflakes" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f" - -SRC_URI[sha256sum] = "a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb new file mode 100644 index 0000000000..b7ee20ebe4 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "passive checker of Python programs" +HOMEPAGE = "https://github.com/PyCQA/pyflakes" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f" + +SRC_URI[sha256sum] = "1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest index 7a5ceedf95..2a4e87e03a 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest @@ -1,3 +1,3 @@ #!/bin/sh -pytest --benchmark-disable -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' +pytest --benchmark-disable -vv --minimal-messages-config tests/test_functional.py | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' 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.0.3.bb index 09ab1f26ff..cc33edd829 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.0.3.bb @@ -46,6 +46,9 @@ do_install_ptest() { cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ install -Dm 0644 ${S}/tests/.pylint_primer_tests/.gitkeep ${D}${PTEST_PATH}/tests/.pylint_primer_tests/.gitkeep sed -i 's#/usr/bin/python$#/usr/bin/python3#g' ${D}${PTEST_PATH}/tests/data/ascript + # regression_distutil_import_error_73.py fails to run see + # https://lists.openembedded.org/g/openembedded-devel/topic/103181847 + rm ${D}${PTEST_PATH}/tests/functional/r/regression_02/regression_distutil_import_error_73.py } BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb deleted file mode 100644 index 12bf6245e5..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Python API for MISP" -HOMEPAGE = "https://github.com/MISP/PyMISP" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20" - -SRC_URI[sha256sum] = "888e848494e04148c8ff5887f04154a2b40f3065c53d93f9cec65f7ca7171362" - -inherit python_poetry_core pypi - -PIP_INSTALL_PACKAGE = "pymisp" - -RDEPENDS:${PN} += " \ - ${PYTHON_PN}-dateutil \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-jsonschema \ - ${PYTHON_PN}-requests \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-deprecated \ - ${PYTHON_PN}-wrapt \ -" - -# Fixes: python3-pymisp requires /bin/bash, but no -# providers found in RDEPENDS:python3-pymisp? [file-rdep] -RDEPENDS:${PN} += "bash" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb new file mode 100644 index 0000000000..dec8186993 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Python API for MISP" +HOMEPAGE = "https://github.com/MISP/PyMISP" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20" + +SRC_URI[sha256sum] = "00abe5592f07bb1cd41ca803f9b0b8b2b70474004a779be53cd215280fd625b3" + +inherit python_poetry_core pypi + +PIP_INSTALL_PACKAGE = "pymisp" + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-dateutil \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-jsonschema \ + ${PYTHON_PN}-requests \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-deprecated \ + ${PYTHON_PN}-wrapt \ +" + +# Fixes: python3-pymisp requires /bin/bash, but no +# providers found in RDEPENDS:python3-pymisp? [file-rdep] +RDEPENDS:${PN} += "bash" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb deleted file mode 100644 index a00778c99f..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77" - -SRC_URI[sha256sum] = "c16052382554c7b22d48782ab3438d5b10f8cf7a4bdcae7f0f67f097d95beecc" - -inherit pypi python_setuptools_build_meta - -DEPENDS += "python3-setuptools-scm-native" - -RDEPENDS:${PN} += " \ - python3-pytest \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb new file mode 100644 index 0000000000..85f69ac3ab --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77" + +SRC_URI[sha256sum] = "af313ce900a62fbe2b1aed18e37ad757f1ef9940c6b6a88e2954de38d6b1fb9f" + +inherit pypi python_setuptools_build_meta + +DEPENDS += "python3-setuptools-scm-native" + +RDEPENDS:${PN} += " \ + python3-pytest \ +" + +BBCLASSEXTEND = "native nativesdk" 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_4.1.0.bb index 1ff3e75cbe..3a68011f4a 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_4.1.0.bb @@ -10,5 +10,6 @@ SRC_URI[sha256sum] = "3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6 inherit pypi setuptools3 DEPENDS += "${PYTHON_PN}-setuptools-scm-native" +RDEPENDS:${PN} += "python3-coverage" BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb deleted file mode 100644 index 91ab762eb6..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ -application developers the full power and flexibility of SQL" -HOMEPAGE = "http://www.sqlalchemy.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b707d50badb798e1d897f2c8f649382d" - -SRC_URI[sha256sum] = "6db97656fd3fe3f7e5b077f12fa6adb5feb6e0b567a3e99f47ecf5f7ea0a09e3" - -PYPI_PACKAGE = "SQLAlchemy" -inherit pypi setuptools3 - -RDEPENDS:${PN} += " \ - python3-asyncio \ - python3-compression \ - python3-json \ - python3-logging \ - python3-netclient \ - python3-numbers \ - python3-pickle \ - python3-profile \ - python3-threading \ - python3-typing-extensions \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb new file mode 100644 index 0000000000..35011553c2 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ +application developers the full power and flexibility of SQL" +HOMEPAGE = "http://www.sqlalchemy.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c78b979ae6c20775a28a287d32092cbb" + +SRC_URI[sha256sum] = "a2c69a7664fb2d54b8682dd774c3b54f67f84fa123cf84dda2a5f40dcaa04e08" + +PYPI_PACKAGE = "SQLAlchemy" +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + python3-asyncio \ + python3-compression \ + python3-json \ + python3-logging \ + python3-netclient \ + python3-numbers \ + python3-pickle \ + python3-profile \ + python3-threading \ + python3-typing-extensions \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.bb deleted file mode 100644 index 19ea0113a5..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.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] = "fcdaa8ac49c04dfa0ed3ee3384ef6dfdb5d6f3741502be247279407679296772" - -inherit pypi python_hatchling - -RDEPENDS:${PN} = "\ - ${PYTHON_PN}-ipython-genutils \ - ${PYTHON_PN}-decorator \ -" 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 new file mode 100644 index 0000000000..0089d6c6e1 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb @@ -0,0 +1,13 @@ +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} = "\ + ${PYTHON_PN}-ipython-genutils \ + ${PYTHON_PN}-decorator \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb deleted file mode 100644 index d8ce4ab403..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks." -HOMEPAGE = "https://github.com/marshmallow-code/webargs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c3ff8567ef1f2a8cf223f30ac5a6f094" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "cab207941b0686c4d086c823632ddcd4343151644341a32fcf50b8eaa71e31c7" - -RDEPENDS:${PN} += "\ - python3-marshmallow \ - python3-packaging \ - " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb new file mode 100644 index 0000000000..ea830807c2 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks." +HOMEPAGE = "https://github.com/marshmallow-code/webargs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=dfbd4ae0074716275fc229c775723e8f" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "ea99368214a4ce613924be99d71db58c269631e95eff4fa09b7354e52dc006a5" + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-marshmallow \ + ${PYTHON_PN}-packaging \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-asyncio \ + ${PYTHON_PN}-logging \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb deleted file mode 100644 index b57c311002..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "A flexible forms validation and rendering library for python web development." -HOMEPAGE = "https://pypi.python.org/pypi/WTForms" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" - -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=17ed54aa95f4a6cd0d7a4747d14b64d0" - -SRC_URI[sha256sum] = "5e51df8af9a60f6beead75efa10975e97768825a82146a65c7cbf5b915990620" - -UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/WTForms" -UPSTREAM_CHECK_REGEX = "/WTForms/(?P(\d+[\.\-_]*)+)" - -inherit pypi python_hatchling - -DEPENDS += "\ - ${PYTHON_PN}-pip-native \ - ${PYTHON_PN}-babel-native \ - " - -RDEPENDS:${PN} += "\ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-markupsafe \ - " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb new file mode 100644 index 0000000000..1459538ea8 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "A flexible forms validation and rendering library for python web development." +HOMEPAGE = "https://pypi.python.org/pypi/WTForms" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=17ed54aa95f4a6cd0d7a4747d14b64d0" + +SRC_URI[sha256sum] = "f8d76180d7239c94c6322f7990ae1216dae3659b7aa1cee94b6318bdffb474b9" + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/WTForms" +UPSTREAM_CHECK_REGEX = "/WTForms/(?P(\d+[\.\-_]*)+)" + +inherit pypi python_hatchling + +DEPENDS += "\ + ${PYTHON_PN}-pip-native \ + ${PYTHON_PN}-babel-native \ + " + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-markupsafe \ + " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb deleted file mode 100644 index 7259c3fad3..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "unittest-based test runner with Ant/JUnit like XML reporting" -HOMEPAGE = "https://github.com/pycontribs/xmlrunner" -LICENSE = "LGPL-3.0-only" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=fa964f202b6ae067ed5828fe43c77c1a" - -SRC_URI[md5sum] = "7b0b152ed2d278516aedbc0cac22dfb3" -SRC_URI[sha256sum] = "5a6113d049eca7646111ee657266966e5bbfb0b5ceb2e83ee0772e16d7110f39" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += "python3-unittest" diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb deleted file mode 100644 index 932cf22b1f..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Google Spreadsheets Python API" -HOMEPAGE = "https://github.com/burnash/gspread" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9488e21983675fa56dc05af558b83e2f" - -SRC_URI[sha256sum] = "298ebab76e6ed6a998eabc81545ec58f5610f44e2ddb4858b539a0634093f8ce" - -S = "${WORKDIR}/gspread-${PV}" - -RDEPENDS:${PN} = "python3-requests" - -inherit pypi python_poetry_core diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb new file mode 100644 index 0000000000..920ff4d69d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb @@ -0,0 +1,12 @@ +SUMMARY = "Google Spreadsheets Python API" +HOMEPAGE = "https://github.com/burnash/gspread" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9488e21983675fa56dc05af558b83e2f" + +SRC_URI[sha256sum] = "3fcef90183f15d3c9233b4caa021a83682f2b2ee678340c42d7ca7d8be98c6d1" + +S = "${WORKDIR}/gspread-${PV}" + +RDEPENDS:${PN} = "python3-requests" + +inherit pypi python_poetry_core -- cgit v1.2.3