diff options
| author | Patrick Williams <patrick@stwcx.xyz> | 2024-01-12 18:51:57 +0300 |
|---|---|---|
| committer | Patrick Williams <patrick@stwcx.xyz> | 2024-01-12 22:30:46 +0300 |
| commit | 705982a51d24e74df1786f60cc99d1106de626df (patch) | |
| tree | 4e81a89c017c50483d786294ea823752b5f55017 /meta-openembedded/meta-python/recipes-devtools/python/python3-h5py | |
| parent | ad3455d69e100ba61b43c715039b793ce936527b (diff) | |
| download | openbmc-705982a51d24e74df1786f60cc99d1106de626df.tar.xz | |
subtree updates
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 <GLES3/gl3.h>
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 <patrick@stwcx.xyz>
Diffstat (limited to 'meta-openembedded/meta-python/recipes-devtools/python/python3-h5py')
| -rw-r--r-- | meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch | 796 |
1 files changed, 796 insertions, 0 deletions
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 <alex@linutronix.de> +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 <alex@linutronix.de> +--- + 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 + <https://portal.hdfgroup.org/display/HDF5/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 <creating_vds_>`_, 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 <https://portal.hdfgroup.org/display/HDF5/H5P_SET_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 <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 <source_install>` + 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 = <err_data_t*>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(<hid_t>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 = <h5py_scatter_t*>operator_data + + memcpy(elem, (<char*>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 = <h5py_scatter_t*>operator_data + + memcpy((<char*>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 <stddef.h> + #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[<int>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[<int>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 = <void *(*)(H5FD_t *)>H5FD_fileobj_fapl_get + info.fapl_copy = <void *(*)(const void *)>H5FD_fileobj_fapl_copy +-info.fapl_free = <herr_t (*)(void *)>H5FD_fileobj_fapl_free ++ ++info.fapl_free = <file_free_func_ptr>H5FD_fileobj_fapl_free ++ + info.open = <H5FD_t *(*)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)>H5FD_fileobj_open +-info.close = <herr_t (*)(H5FD_t *)>H5FD_fileobj_close +-info.get_eoa = <haddr_t (*)(const H5FD_t *, H5FD_mem_t)>H5FD_fileobj_get_eoa +-info.set_eoa = <herr_t (*)(H5FD_t *, H5FD_mem_t, haddr_t)>H5FD_fileobj_set_eoa +-info.get_eof = <haddr_t (*)(const H5FD_t *, H5FD_mem_t)>H5FD_fileobj_get_eof +-info.read = <herr_t (*)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void *)>H5FD_fileobj_read +-info.write = <herr_t (*)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void *)>H5FD_fileobj_write +-info.truncate = <herr_t (*)(H5FD_t *, hid_t, hbool_t)>H5FD_fileobj_truncate +-info.flush = <herr_t (*)(H5FD_t *, hid_t, hbool_t)>H5FD_fileobj_flush ++ ++info.close = <file_close_func_ptr>H5FD_fileobj_close ++info.get_eoa = <file_get_eoa_func_ptr>H5FD_fileobj_get_eoa ++info.set_eoa = <file_set_eof_func_ptr>H5FD_fileobj_set_eoa ++info.get_eof = <file_get_eof_func_ptr>H5FD_fileobj_get_eof ++info.read = <file_read_func_ptr>H5FD_fileobj_read ++info.write = <file_write_func_ptr>H5FD_fileobj_write ++info.truncate = <file_truncate_func_ptr>H5FD_fileobj_truncate ++info.flush = <file_flush_func_ptr>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" + +- # Same float values with big endianess ++ # Same float values with big endianness + assert f["DSBEfloat"][0] == 3.14 + assert f["DSBEfloat"].dtype == ">f8" + + assert f["DSLEint"][0] == 1 + assert f["DSLEint"].dtype == "<u8" + +- # Same int values with big endianess ++ # Same int values with big endianness + assert f["DSBEint"][0] == 1 + assert f["DSBEint"].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 + |
