From 86f386c137b1cee29015077b50ea7ead87c2732e Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:08:24 +0100 Subject: [PATCH 01/13] Create .pre-commit-config.yaml --- .pre-commit-config.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..fd2cef5 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,10 @@ +repos: + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.9 + hooks: + - id: ruff + name: ruff lint + args: ["--fix"] + files: ^h5io/ + - id: ruff-format + name: ruff format From 8b1a038634046fc6a591b3ce1b1138a2e6cbf497 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 06:08:34 +0000 Subject: [PATCH 02/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .ci_support/release.py | 37 ++++--- setup.py | 2 +- tests/test_base.py | 224 ++++++++++++++++++++++++++++------------- tests/test_pointer.py | 87 ++++++++-------- 4 files changed, 220 insertions(+), 130 deletions(-) diff --git a/.ci_support/release.py b/.ci_support/release.py index a3edb01..cb90330 100644 --- a/.ci_support/release.py +++ b/.ci_support/release.py @@ -1,12 +1,19 @@ def get_setup_version_and_pattern(setup_content): depend_lst, version_lst = [], [] for l in setup_content: - if '==' in l: - lst = l.split('[')[-1].split(']')[0].replace(' ', '').replace('"', '').replace("'", '').split(',') + if "==" in l: + lst = ( + l.split("[")[-1] + .split("]")[0] + .replace(" ", "") + .replace('"', "") + .replace("'", "") + .split(",") + ) for dep in lst: - if dep != '\n': - version_lst.append(dep.split('==')[1]) - depend_lst.append(dep.split('==')[0]) + if dep != "\n": + version_lst.append(dep.split("==")[1]) + depend_lst.append(dep.split("==")[0]) version_high_dict = {d: v for d, v in zip(depend_lst, version_lst)} return version_high_dict @@ -16,14 +23,14 @@ def get_env_version(env_content): read_flag = False depend_lst, version_lst = [], [] for l in env_content: - if 'dependencies:' in l: + if "dependencies:" in l: read_flag = True elif read_flag: - lst = l.replace('-', '').replace(' ', '').replace('\n', '').split("=") + lst = l.replace("-", "").replace(" ", "").replace("\n", "").split("=") if len(lst) == 2: depend_lst.append(lst[0]) version_lst.append(lst[1]) - return {d:v for d, v in zip(depend_lst, version_lst)} + return {d: v for d, v in zip(depend_lst, version_lst)} def update_dependencies(setup_content, version_low_dict, version_high_dict): @@ -35,27 +42,29 @@ def update_dependencies(setup_content, version_low_dict, version_high_dict): version_combo_dict[dep] = dep + "==" + ver setup_content_new = "" - pattern_dict = {d:d + "==" + v for d, v in version_high_dict.items()} + pattern_dict = {d: d + "==" + v for d, v in version_high_dict.items()} for l in setup_content: for k, v in pattern_dict.items(): if v in l: l = l.replace(v, version_combo_dict[k]) - setup_content_new +=l + setup_content_new += l return setup_content_new if __name__ == "__main__": - with open('pyproject.toml', "r") as f: + with open("pyproject.toml", "r") as f: setup_content = f.readlines() - with open('environment.yml', "r") as f: + with open("environment.yml", "r") as f: env_content = f.readlines() setup_content_new = update_dependencies( setup_content=setup_content[2:], version_low_dict=get_env_version(env_content=env_content), - version_high_dict=get_setup_version_and_pattern(setup_content=setup_content[2:]), + version_high_dict=get_setup_version_and_pattern( + setup_content=setup_content[2:] + ), ) - with open('pyproject.toml', "w") as f: + with open("pyproject.toml", "w") as f: f.writelines("".join(setup_content[:2]) + setup_content_new) diff --git a/setup.py b/setup.py index edb08a3..fcbb31f 100644 --- a/setup.py +++ b/setup.py @@ -5,4 +5,4 @@ setup( version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(), -) \ No newline at end of file +) diff --git a/tests/test_base.py b/tests/test_base.py index 51e19f6..0d4b4b8 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -17,7 +17,7 @@ def get_hdf5_raw_content(file_name): def collect_attrs(name, obj): item_lst.append({name: {k: v for k, v in obj.attrs.items()}}) - with h5py.File(file_name, 'r') as f: + with h5py.File(file_name, "r") as f: f.visititems(collect_attrs) return item_lst @@ -60,7 +60,7 @@ def setUp(self): "/data_hierarchical/a": [1, 2], "/data_hierarchical/b": 3, "/data_hierarchical/c/d": 4, - "/data_hierarchical/c/e": 5 + "/data_hierarchical/c/e": 5, } write_dict_to_hdf(file_name=self.file_name, data_dict=self.data_hierarchical) @@ -70,47 +70,81 @@ def tearDown(self): def test_read_dict_hierarchical(self): self.assertEqual( self.data_hierarchical, - read_dict_from_hdf(file_name=self.file_name, h5_path=self.h5_path, recursive=True) + read_dict_from_hdf( + file_name=self.file_name, h5_path=self.h5_path, recursive=True + ), ) self.assertEqual( self.data_hierarchical, - read_dict_from_hdf(file_name=self.file_name, h5_path=self.h5_path, recursive=1) + read_dict_from_hdf( + file_name=self.file_name, h5_path=self.h5_path, recursive=1 + ), ) self.assertEqual({}, read_dict_from_hdf(file_name=self.file_name, h5_path="/")) self.assertEqual( - {k: v for k, v in self.data_hierarchical.items() if "/data_hierarchical/c" in k}, - read_dict_from_hdf(file_name=self.file_name, h5_path="/data_hierarchical/c", recursive=True) + { + k: v + for k, v in self.data_hierarchical.items() + if "/data_hierarchical/c" in k + }, + read_dict_from_hdf( + file_name=self.file_name, h5_path="/data_hierarchical/c", recursive=True + ), ) self.assertEqual( - {'/data_hierarchical/a': [1, 2]}, - read_dict_from_hdf(file_name=self.file_name, h5_path="/data_hierarchical/a") + {"/data_hierarchical/a": [1, 2]}, + read_dict_from_hdf( + file_name=self.file_name, h5_path="/data_hierarchical/a" + ), ) self.assertEqual( - {'/data_hierarchical/b': 3}, - read_dict_from_hdf(file_name=self.file_name, h5_path="/data_hierarchical/b") + {"/data_hierarchical/b": 3}, + read_dict_from_hdf( + file_name=self.file_name, h5_path="/data_hierarchical/b" + ), ) def test_read_hdf(self): - self.assertEqual(_read_hdf(hdf_filehandle=self.file_name, h5_path="/data_hierarchical/b", slash="ignore"), 3) + self.assertEqual( + _read_hdf( + hdf_filehandle=self.file_name, + h5_path="/data_hierarchical/b", + slash="ignore", + ), + 3, + ) with h5py.File(self.file_name, "r") as hdf: - self.assertEqual(_read_hdf(hdf_filehandle=hdf, h5_path="/data_hierarchical/b", slash="ignore"), 3) + self.assertEqual( + _read_hdf( + hdf_filehandle=hdf, h5_path="/data_hierarchical/b", slash="ignore" + ), + 3, + ) with self.assertRaises(TypeError): - self.assertEqual(_read_hdf(hdf_filehandle=1, h5_path="/data_hierarchical/b", slash="ignore"), 3) + self.assertEqual( + _read_hdf( + hdf_filehandle=1, h5_path="/data_hierarchical/b", slash="ignore" + ), + 3, + ) def test_hdf5_structure(self): - self.assertEqual(get_hdf5_raw_content(file_name=self.file_name), [ - {'data_hierarchical': {}}, - {'data_hierarchical/a': {'TITLE': 'json'}}, - {'data_hierarchical/b': {'TITLE': 'int'}}, - {'data_hierarchical/c': {}}, - {'data_hierarchical/c/d': {'TITLE': 'int'}}, - {'data_hierarchical/c/e': {'TITLE': 'int'}}, - ]) + self.assertEqual( + get_hdf5_raw_content(file_name=self.file_name), + [ + {"data_hierarchical": {}}, + {"data_hierarchical/a": {"TITLE": "json"}}, + {"data_hierarchical/b": {"TITLE": "int"}}, + {"data_hierarchical/c": {}}, + {"data_hierarchical/c/d": {"TITLE": "int"}}, + {"data_hierarchical/c/e": {"TITLE": "int"}}, + ], + ) def test_list_groups(self): nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical") - self.assertEqual(groups, ['/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) + self.assertEqual(groups, ["/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) nodes, groups = list_hdf(file_name=self.file_name, h5_path="/wrong_path") self.assertEqual(nodes, []) self.assertEqual(groups, []) @@ -118,24 +152,38 @@ def test_list_groups(self): self.assertEqual(nodes, []) self.assertEqual(groups, []) nodes, groups = list_hdf(file_name=self.file_name, h5_path="/") - self.assertEqual(groups, ['/data_hierarchical']) + self.assertEqual(groups, ["/data_hierarchical"]) self.assertEqual(nodes, []) nodes, groups = list_hdf(file_name=self.file_name, h5_path="/", recursive=1) - self.assertEqual(groups, ['/data_hierarchical', '/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) + self.assertEqual(groups, ["/data_hierarchical", "/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) nodes, groups = list_hdf(file_name=self.file_name, h5_path="/", recursive=2) - self.assertEqual(groups, ['/data_hierarchical', '/data_hierarchical/c']) + self.assertEqual(groups, ["/data_hierarchical", "/data_hierarchical/c"]) self.assertEqual( nodes, - ['/data_hierarchical/a', '/data_hierarchical/b', '/data_hierarchical/c/d', '/data_hierarchical/c/e'] + [ + "/data_hierarchical/a", + "/data_hierarchical/b", + "/data_hierarchical/c/d", + "/data_hierarchical/c/e", + ], ) - nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical", recursive=True) - self.assertEqual(groups, ['/data_hierarchical/c']) + nodes, groups = list_hdf( + file_name=self.file_name, h5_path="/data_hierarchical", recursive=True + ) + self.assertEqual(groups, ["/data_hierarchical/c"]) self.assertEqual( nodes, - ['/data_hierarchical/a', '/data_hierarchical/b', '/data_hierarchical/c/d', '/data_hierarchical/c/e'] + [ + "/data_hierarchical/a", + "/data_hierarchical/b", + "/data_hierarchical/c/d", + "/data_hierarchical/c/e", + ], + ) + nodes, groups = list_hdf( + file_name=self.file_name, h5_path="/data_hierarchical/a", recursive=True ) - nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical/a", recursive=True) self.assertEqual(groups, []) self.assertEqual(nodes, []) with self.assertRaises(TypeError): @@ -143,44 +191,69 @@ def test_list_groups(self): def test_get_hdf_content(self): with h5py.File(self.file_name, "r") as hdf: - nodes, groups = _get_hdf_content(hdf=hdf["data_hierarchical"], recursive=False, only_groups=False, only_nodes=False) - self.assertEqual(groups, ['/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) - nodes = _get_hdf_content(hdf=hdf["data_hierarchical"], recursive=False, only_groups=False, only_nodes=True) - groups = _get_hdf_content(hdf=hdf["data_hierarchical"], recursive=False, only_groups=True, only_nodes=False) - self.assertEqual(groups, ['/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) - self.assertEqual(groups, ['/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) + nodes, groups = _get_hdf_content( + hdf=hdf["data_hierarchical"], + recursive=False, + only_groups=False, + only_nodes=False, + ) + self.assertEqual(groups, ["/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) + nodes = _get_hdf_content( + hdf=hdf["data_hierarchical"], + recursive=False, + only_groups=False, + only_nodes=True, + ) + groups = _get_hdf_content( + hdf=hdf["data_hierarchical"], + recursive=False, + only_groups=True, + only_nodes=False, + ) + self.assertEqual(groups, ["/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) + self.assertEqual(groups, ["/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) def test_delete(self): - delete_item(file_name=self.file_name, h5_path='/data_hierarchical/c') + delete_item(file_name=self.file_name, h5_path="/data_hierarchical/c") nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical") self.assertEqual(groups, []) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) - delete_item(file_name=self.file_name, h5_path='/data_hierarchical/a') + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) + delete_item(file_name=self.file_name, h5_path="/data_hierarchical/a") nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical") self.assertEqual(groups, []) - self.assertEqual(nodes, ['/data_hierarchical/b']) - delete_item(file_name=self.file_name, h5_path='/data_hierarchical/d') - delete_item(file_name="empty.h5", h5_path='/data_hierarchical/c') + self.assertEqual(nodes, ["/data_hierarchical/b"]) + delete_item(file_name=self.file_name, h5_path="/data_hierarchical/d") + delete_item(file_name="empty.h5", h5_path="/data_hierarchical/c") def test_write_dict_to_hdf(self): nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical") - self.assertEqual(groups, ['/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) - write_dict_to_hdf(file_name=self.file_name, data_dict={'/data_hierarchical/f': {"g": 6, "h": 7}}) - write_dict_to_hdf(file_name=self.file_name, data_dict={'/data_hierarchical/i/l': 4}) + self.assertEqual(groups, ["/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) + write_dict_to_hdf( + file_name=self.file_name, + data_dict={"/data_hierarchical/f": {"g": 6, "h": 7}}, + ) + write_dict_to_hdf( + file_name=self.file_name, data_dict={"/data_hierarchical/i/l": 4} + ) nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical") - self.assertEqual(groups, ['/data_hierarchical/c', '/data_hierarchical/i']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b', '/data_hierarchical/f']) - delete_item(file_name=self.file_name, h5_path='/data_hierarchical/i') - delete_item(file_name=self.file_name, h5_path='/data_hierarchical/f') + self.assertEqual(groups, ["/data_hierarchical/c", "/data_hierarchical/i"]) + self.assertEqual( + nodes, + ["/data_hierarchical/a", "/data_hierarchical/b", "/data_hierarchical/f"], + ) + delete_item(file_name=self.file_name, h5_path="/data_hierarchical/i") + delete_item(file_name=self.file_name, h5_path="/data_hierarchical/f") nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_hierarchical") - self.assertEqual(groups, ['/data_hierarchical/c']) - self.assertEqual(nodes, ['/data_hierarchical/a', '/data_hierarchical/b']) + self.assertEqual(groups, ["/data_hierarchical/c"]) + self.assertEqual(nodes, ["/data_hierarchical/a", "/data_hierarchical/b"]) with self.assertRaises(TypeError): - write_dict_to_hdf(file_name=self.file_name, data_dict={'/data_hierarchical/j': ValueError}) + write_dict_to_hdf( + file_name=self.file_name, data_dict={"/data_hierarchical/j": ValueError} + ) class TestBaseJSON(TestCase): @@ -190,7 +263,7 @@ def setUp(self): self.data_hierarchical = { "/data_json/a": [1, 2], "/data_json/b": 3, - "/data_json/c": {"d": 4, "e": 5} + "/data_json/c": {"d": 4, "e": 5}, } write_dict_to_hdf(file_name=self.file_name, data_dict=self.data_hierarchical) @@ -200,33 +273,40 @@ def tearDown(self): def test_read_dict_hierarchical(self): self.assertEqual( self.data_hierarchical, - read_dict_from_hdf(file_name=self.file_name, h5_path=self.h5_path, recursive=True) + read_dict_from_hdf( + file_name=self.file_name, h5_path=self.h5_path, recursive=True + ), ) self.assertEqual( self.data_hierarchical, - read_dict_from_hdf(file_name=self.file_name, h5_path=self.h5_path, recursive=1) + read_dict_from_hdf( + file_name=self.file_name, h5_path=self.h5_path, recursive=1 + ), ) self.assertEqual({}, read_dict_from_hdf(file_name=self.file_name, h5_path="/")) def test_hdf5_structure(self): - self.assertEqual(get_hdf5_raw_content(file_name=self.file_name), [ - {'data_json': {}}, - {'data_json/a': {'TITLE': 'json'}}, - {'data_json/b': {'TITLE': 'int'}}, - {'data_json/c': {'TITLE': 'json'}}, - ]) + self.assertEqual( + get_hdf5_raw_content(file_name=self.file_name), + [ + {"data_json": {}}, + {"data_json/a": {"TITLE": "json"}}, + {"data_json/b": {"TITLE": "int"}}, + {"data_json/c": {"TITLE": "json"}}, + ], + ) def test_list_groups(self): nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_json") self.assertEqual(groups, []) - self.assertEqual(nodes, ['/data_json/a', '/data_json/b', '/data_json/c']) + self.assertEqual(nodes, ["/data_json/a", "/data_json/b", "/data_json/c"]) def test_delete(self): - delete_item(file_name=self.file_name, h5_path='/data_json/c') + delete_item(file_name=self.file_name, h5_path="/data_json/c") nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_json") self.assertEqual(groups, []) - self.assertEqual(nodes, ['/data_json/a', '/data_json/b']) - delete_item(file_name=self.file_name, h5_path='/data_json/b') + self.assertEqual(nodes, ["/data_json/a", "/data_json/b"]) + delete_item(file_name=self.file_name, h5_path="/data_json/b") nodes, groups = list_hdf(file_name=self.file_name, h5_path="/data_json") self.assertEqual(groups, []) - self.assertEqual(nodes, ['/data_json/a']) + self.assertEqual(nodes, ["/data_json/a"]) diff --git a/tests/test_pointer.py b/tests/test_pointer.py index 9d8926e..75026a6 100644 --- a/tests/test_pointer.py +++ b/tests/test_pointer.py @@ -10,7 +10,7 @@ def get_hdf5_raw_content(file_name): def collect_attrs(name, obj): item_lst.append({name: {k: v for k, v in obj.attrs.items()}}) - with h5py.File(file_name, 'r') as f: + with h5py.File(file_name, "r") as f: f.visititems(collect_attrs) return item_lst @@ -24,9 +24,11 @@ def setUp(self): "/data_hierarchical/a": [1, 2], "/data_hierarchical/b": 3, "/data_hierarchical/c/d": 4, - "/data_hierarchical/c/e": 5 + "/data_hierarchical/c/e": 5, } - Pointer(file_name=self.file_name, h5_path=self.h5_path).write_dict(data_dict=self.data_hierarchical) + Pointer(file_name=self.file_name, h5_path=self.h5_path).write_dict( + data_dict=self.data_hierarchical + ) def tearDown(self): os.remove(self.file_name) @@ -38,8 +40,12 @@ def test_empty_file_root(self): self.assertFalse(p.file_exists) self.assertEqual(p.file_name, os.path.abspath(file_name).replace("\\", "/")) self.assertIsNone(p["test"]) - self.assertEqual(p.list_h5_path(h5_path="wrong/path"), {"nodes": [], "groups": []}) - self.assertEqual(p.list_h5_path(h5_path="/wrong/path"), {"nodes": [], "groups": []}) + self.assertEqual( + p.list_h5_path(h5_path="wrong/path"), {"nodes": [], "groups": []} + ) + self.assertEqual( + p.list_h5_path(h5_path="/wrong/path"), {"nodes": [], "groups": []} + ) self.assertEqual(p.file_size(), 0) self.assertEqual(p.to_dict(hierarchical=True), {}) self.assertEqual(p.to_dict(hierarchical=False), {}) @@ -59,8 +65,12 @@ def test_is_root(self): self.assertTrue(Pointer(file_name="empty.h5", h5_path="/").is_root) self.assertTrue(Pointer(file_name="self.file_name", h5_path="/").is_root) self.assertFalse(Pointer(file_name="empty.h5", h5_path="/wrong/path").is_root) - self.assertFalse(Pointer(file_name="self.file_name", h5_path="/data_hierarchical").is_root) - self.assertFalse(Pointer(file_name="self.file_name", h5_path="/wrong/path").is_root) + self.assertFalse( + Pointer(file_name="self.file_name", h5_path="/data_hierarchical").is_root + ) + self.assertFalse( + Pointer(file_name="self.file_name", h5_path="/wrong/path").is_root + ) def test_navigate_hierarchical_file(self): p = Pointer(file_name=self.file_name, h5_path="/data_hierarchical") @@ -73,7 +83,7 @@ def test_navigate_hierarchical_file(self): self.assertEqual(p["a"], self.data_hierarchical["/data_hierarchical/a"]) self.assertEqual( p["c"].h5_path, - Pointer(file_name=self.file_name, h5_path="/data_hierarchical/c").h5_path + Pointer(file_name=self.file_name, h5_path="/data_hierarchical/c").h5_path, ) self.assertEqual(p["c/d"], self.data_hierarchical["/data_hierarchical/c/d"]) self.assertEqual(len(p), 4) @@ -81,57 +91,60 @@ def test_navigate_hierarchical_file(self): def test_to_dict(self): p = Pointer(file_name=self.file_name, h5_path="/data_hierarchical") self.assertEqual( - p.to_dict(hierarchical=True), - {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}} + p.to_dict(hierarchical=True), {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}} ) self.assertEqual( p.to_dict(hierarchical=False), { k.replace("/data_hierarchical/", ""): v for k, v in self.data_hierarchical.items() - } + }, ) p = Pointer(file_name=self.file_name, h5_path="/") self.assertEqual( p.to_dict(hierarchical=True), - {'data_hierarchical': {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}}} + {"data_hierarchical": {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}}}, ) self.assertEqual( p.to_dict(hierarchical=False), - { - k.replace("/", "", 1): v - for k, v in self.data_hierarchical.items() - } + {k.replace("/", "", 1): v for k, v in self.data_hierarchical.items()}, ) self.assertEqual( str(p), - "Pointer(file_name=\"" + os.path.abspath(self.file_name).replace("\\", "/") + "\", h5_path=\"/\") {\'groups\': [\'data_hierarchical\'], \'nodes\': []}" + 'Pointer(file_name="' + + os.path.abspath(self.file_name).replace("\\", "/") + + "\", h5_path=\"/\") {'groups': ['data_hierarchical'], 'nodes': []}", ) def test_repr_json(self): p = Pointer(file_name=self.file_name, h5_path="/data_hierarchical") - self.assertEqual(p._repr_json_(), {'a': '[1, 2]', 'b': '3', 'c': {'d': '4', 'e': '5'}}) + self.assertEqual( + p._repr_json_(), {"a": "[1, 2]", "b": "3", "c": {"d": "4", "e": "5"}} + ) def test_write_to_file(self): p = Pointer(file_name=self.file_name, h5_path="/data_hierarchical") p["f/g/h"] = 5 self.assertEqual(p["f/g/h"], 5) self.assertEqual(len(p), 5) - self.assertEqual(p.list_all(), ['a', 'b', 'c', 'f']) + self.assertEqual(p.list_all(), ["a", "b", "c", "f"]) del p["f/g/h"] self.assertEqual(len(p), 4) - self.assertEqual(p.list_all(), ['a', 'b', 'c', 'f']) + self.assertEqual(p.list_all(), ["a", "b", "c", "f"]) del p["f"] self.assertEqual(len(p), 4) - self.assertEqual(p.list_all(), ['a', 'b', 'c']) + self.assertEqual(p.list_all(), ["a", "b", "c"]) def test_with_statement(self): with Pointer(file_name=self.file_name)["data_hierarchical"] as p: - self.assertEqual(p.to_dict(hierarchical=True), {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}}) + self.assertEqual( + p.to_dict(hierarchical=True), + {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}}, + ) def test_iter(self): p = Pointer(file_name=self.file_name, h5_path="/data_hierarchical") - for i, j in zip(p, ['a', 'b', 'c/d', 'c/e']): + for i, j in zip(p, ["a", "b", "c/d", "c/e"]): self.assertEqual(i, j) def test_copy_to(self): @@ -141,11 +154,11 @@ def test_copy_to(self): p_old.copy_to(destination=p_new) self.assertEqual( p_old.to_dict(hierarchical=True), - {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}} + {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}}, ) self.assertEqual( p_new.to_dict(hierarchical=True), - {'data_hierarchical': {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}}} + {"data_hierarchical": {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}}}, ) os.remove(file_name_new) p_old = Pointer(file_name=self.file_name, h5_path="/data_hierarchical") @@ -153,31 +166,19 @@ def test_copy_to(self): p_old.copy_to(destination=p_new, file_name=file_name_new) self.assertEqual( p_old.to_dict(hierarchical=True), - {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}} + {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}}, ) self.assertEqual( p_new.to_dict(hierarchical=True), - {'data_hierarchical': {'a': [1, 2], 'b': 3, 'c': {'d': 4, 'e': 5}}} + {"data_hierarchical": {"a": [1, 2], "b": 3, "c": {"d": 4, "e": 5}}}, ) os.remove(file_name_new) p_old = Pointer(file_name=self.file_name, h5_path="/data_hierarchical/c") p_new = Pointer(file_name=self.file_name, h5_path="/data_hierarchical/f") p_old.copy_to(destination=p_new) - self.assertEqual( - p_old.to_dict(hierarchical=True), - {'d': 4, 'e': 5} - ) - self.assertEqual( - p_new.to_dict(hierarchical=True), - {'c': {'d': 4, 'e': 5}} - ) + self.assertEqual(p_old.to_dict(hierarchical=True), {"d": 4, "e": 5}) + self.assertEqual(p_new.to_dict(hierarchical=True), {"c": {"d": 4, "e": 5}}) p_new = Pointer(file_name=self.file_name, h5_path="/data_hierarchical/g") p_old.copy_to(destination=p_new, maintain_name=False) - self.assertEqual( - p_old.to_dict(hierarchical=True), - {'d': 4, 'e': 5} - ) - self.assertEqual( - p_new.to_dict(hierarchical=True), - {'d': 4, 'e': 5} - ) + self.assertEqual(p_old.to_dict(hierarchical=True), {"d": 4, "e": 5}) + self.assertEqual(p_new.to_dict(hierarchical=True), {"d": 4, "e": 5}) From 81739c80d4f4d403341ae8a0da67ed90c8996937 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:08:47 +0100 Subject: [PATCH 03/13] Update .pre-commit-config.yaml --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fd2cef5..41db816 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,6 +5,6 @@ repos: - id: ruff name: ruff lint args: ["--fix"] - files: ^h5io/ + files: ^h5io_browser/ - id: ruff-format name: ruff format From 354410fb12aaaa376ce5c1fe35ff4d95d24eb5d5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 06:08:51 +0000 Subject: [PATCH 04/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- h5io_browser/__init__.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 74505de..398764b 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,11 +1,3 @@ -from h5io_browser.pointer import Pointer -from h5io_browser.base import ( - delete_item, - list_hdf, - read_dict_from_hdf, - write_dict_to_hdf, -) - from ._version import get_versions # Set version of h5io_browser From 5f6de51d68be88e5b79bf678ceb3cdfad4649009 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:14:50 +0100 Subject: [PATCH 05/13] Update __init__.py --- h5io_browser/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 398764b..e93dc1d 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,3 +1,11 @@ +from h5io_browser.pointer import Pointer # noqa, analysis:ignore +from h5io_browser.base import ( # noqa, analysis:ignore + delete_item, # noqa, analysis:ignore + list_hdf, # noqa, analysis:ignore + read_dict_from_hdf, # noqa, analysis:ignore + write_dict_to_hdf, # noqa, analysis:ignore +) # noqa, analysis:ignore + from ._version import get_versions # Set version of h5io_browser From 3dc7299b743f444888c900aebacba83189c0efab Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 06:14:53 +0000 Subject: [PATCH 06/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- h5io_browser/__init__.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index e93dc1d..398764b 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,11 +1,3 @@ -from h5io_browser.pointer import Pointer # noqa, analysis:ignore -from h5io_browser.base import ( # noqa, analysis:ignore - delete_item, # noqa, analysis:ignore - list_hdf, # noqa, analysis:ignore - read_dict_from_hdf, # noqa, analysis:ignore - write_dict_to_hdf, # noqa, analysis:ignore -) # noqa, analysis:ignore - from ._version import get_versions # Set version of h5io_browser From 479fd08ecef22035e034c04c7bf1cdbaaeb9514a Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:20:47 +0100 Subject: [PATCH 07/13] Update __init__.py --- h5io_browser/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 398764b..232495d 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,3 +1,11 @@ +from h5io_browser.pointer import Pointer # noqa, analysis:ignore +from h5io_browser.base import ( # noqa, analysis:ignore + delete_item, # noqa, analysis:ignore + list_hdf, # noqa, analysis:ignore + read_dict_from_hdf, # noqa, analysis:ignore + write_dict_to_hdf, # noqa, analysis:ignore +) # noqa, analysis:ignore + from ._version import get_versions # Set version of h5io_browser From ed42d14d33ba733337ff7a6e8f7d5515edaac115 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 06:20:52 +0000 Subject: [PATCH 08/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- h5io_browser/__init__.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 232495d..398764b 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,11 +1,3 @@ -from h5io_browser.pointer import Pointer # noqa, analysis:ignore -from h5io_browser.base import ( # noqa, analysis:ignore - delete_item, # noqa, analysis:ignore - list_hdf, # noqa, analysis:ignore - read_dict_from_hdf, # noqa, analysis:ignore - write_dict_to_hdf, # noqa, analysis:ignore -) # noqa, analysis:ignore - from ._version import get_versions # Set version of h5io_browser From e462f1c45c226023033891532fc789092d6aa4b0 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:22:44 +0100 Subject: [PATCH 09/13] Update __init__.py --- h5io_browser/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 398764b..7c00047 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,3 +1,13 @@ +# fmt: off +from h5io_browser.pointer import Pointer +from h5io_browser.base import ( + delete_item, + list_hdf, + read_dict_from_hdf, + write_dict_to_hdf, +) +# fmt: on + from ._version import get_versions # Set version of h5io_browser From 414c81f3fb1de5e109d7378943a5ce15da15a235 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 06:22:48 +0000 Subject: [PATCH 10/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- h5io_browser/__init__.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 7c00047..79abc4f 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,11 +1,4 @@ # fmt: off -from h5io_browser.pointer import Pointer -from h5io_browser.base import ( - delete_item, - list_hdf, - read_dict_from_hdf, - write_dict_to_hdf, -) # fmt: on from ._version import get_versions From 46854926b348fd47b0fa19e1c9e3c372d855c4d5 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:25:56 +0100 Subject: [PATCH 11/13] Update __init__.py --- h5io_browser/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 79abc4f..20d958d 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,5 +1,10 @@ -# fmt: off -# fmt: on +from h5io_browser.pointer import Pointer # fmt: skip +from h5io_browser.base import ( # fmt: skip + delete_item, + list_hdf, + read_dict_from_hdf, + write_dict_to_hdf, +) from ._version import get_versions From af2c1a877edca60c29eb2b1173f8c50192b71bd1 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 06:26:00 +0000 Subject: [PATCH 12/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- h5io_browser/__init__.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 20d958d..398764b 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,11 +1,3 @@ -from h5io_browser.pointer import Pointer # fmt: skip -from h5io_browser.base import ( # fmt: skip - delete_item, - list_hdf, - read_dict_from_hdf, - write_dict_to_hdf, -) - from ._version import get_versions # Set version of h5io_browser From ea8c0fe0ed9a5dac78b0016aa9f96c94a3f6c13d Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Wed, 3 Jan 2024 07:29:19 +0100 Subject: [PATCH 13/13] Update __init__.py --- h5io_browser/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/h5io_browser/__init__.py b/h5io_browser/__init__.py index 398764b..df4a15b 100644 --- a/h5io_browser/__init__.py +++ b/h5io_browser/__init__.py @@ -1,3 +1,11 @@ +from h5io_browser.pointer import Pointer # noqa +from h5io_browser.base import ( # noqa + delete_item, # noqa + list_hdf, # noqa + read_dict_from_hdf, # noqa + write_dict_to_hdf, # noqa +) # noqa + from ._version import get_versions # Set version of h5io_browser