From 2c0ff100208ca463e310936a38cd390531eb4b51 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Thu, 21 Mar 2024 12:09:16 +0100 Subject: [PATCH 1/3] avoid setting read mode to 'r' as it became the default in 3.0.0 and now raises a deprecation warning --- qiita_files/util.py | 10 +++++++--- setup.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/qiita_files/util.py b/qiita_files/util.py index a17b5e6..d6227e7 100644 --- a/qiita_files/util.py +++ b/qiita_files/util.py @@ -7,13 +7,17 @@ # ----------------------------------------------------------------------------- from contextlib import contextmanager +from packaging import version import h5py -# not present in all 2.x series -if hasattr(h5py.get_config(), 'default_file_mode'): - h5py.get_config().default_file_mode = 'r' +# Setting h5py.default_file_mode is deprecated. +# 'r' (read-only) is the default from h5py 3.0. +if version.Version(h5py.__version__) <= version.Version("3.0"): + # not present in all 2.x series + if hasattr(h5py.get_config(), 'default_file_mode'): + h5py.get_config().default_file_mode = 'r' def _is_string_or_bytes(s): diff --git a/setup.py b/setup.py index 2f398e5..95a1e4c 100644 --- a/setup.py +++ b/setup.py @@ -43,6 +43,6 @@ 'qiita_files/format', 'qiita_files/parse'], extras_require={'test': ["nose >= 0.10.1", "pep8"]}, - install_requires=['numpy', 'h5py', 'joblib'], + install_requires=['numpy', 'h5py', 'joblib', 'packaging'], classifiers=classifiers ) From 098461e2670ee007d61740c8fbb8fd2d42e4e1b8 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Fri, 22 Mar 2024 10:24:26 +0100 Subject: [PATCH 2/3] remove bandaid --- qiita_files/util.py | 9 --------- setup.py | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/qiita_files/util.py b/qiita_files/util.py index d6227e7..1bc0ede 100644 --- a/qiita_files/util.py +++ b/qiita_files/util.py @@ -7,19 +7,10 @@ # ----------------------------------------------------------------------------- from contextlib import contextmanager -from packaging import version import h5py -# Setting h5py.default_file_mode is deprecated. -# 'r' (read-only) is the default from h5py 3.0. -if version.Version(h5py.__version__) <= version.Version("3.0"): - # not present in all 2.x series - if hasattr(h5py.get_config(), 'default_file_mode'): - h5py.get_config().default_file_mode = 'r' - - def _is_string_or_bytes(s): """Returns True if input argument is string (unicode or not) or bytes. """ diff --git a/setup.py b/setup.py index 95a1e4c..2f398e5 100644 --- a/setup.py +++ b/setup.py @@ -43,6 +43,6 @@ 'qiita_files/format', 'qiita_files/parse'], extras_require={'test': ["nose >= 0.10.1", "pep8"]}, - install_requires=['numpy', 'h5py', 'joblib', 'packaging'], + install_requires=['numpy', 'h5py', 'joblib'], classifiers=classifiers ) From a1d2182624ccbad7787bb96fcc2780675df81936 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Fri, 29 Aug 2025 10:25:00 +0200 Subject: [PATCH 3/3] only set default mode for versions older than 3.3 --- qiita_files/util.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/qiita_files/util.py b/qiita_files/util.py index a17b5e6..c21ebb9 100644 --- a/qiita_files/util.py +++ b/qiita_files/util.py @@ -11,9 +11,13 @@ import h5py -# not present in all 2.x series -if hasattr(h5py.get_config(), 'default_file_mode'): - h5py.get_config().default_file_mode = 'r' +# deprecated sind h5py 3.3, +# see https://docs.h5py.org/en/stable/whatsnew/3.6.html +h5py_version = list(map(int, h5py.__version__.split('.'))) +if h5py_version < [3, 3, 0]: + # not present in all 2.x series + if hasattr(h5py.get_config(), 'default_file_mode'): + h5py.get_config().default_file_mode = 'r' def _is_string_or_bytes(s):