From 1ec4a6240d1444dc991fff943878f5d4268b1e1c Mon Sep 17 00:00:00 2001 From: "askerosted@gmail.com" Date: Mon, 30 Mar 2026 14:15:09 +0900 Subject: [PATCH 1/2] public close connection and use in test --- src/graphnet/data/dataset/lmdb/lmdb_dataset.py | 4 ++++ tests/data/test_dataconverters_and_datasets.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/graphnet/data/dataset/lmdb/lmdb_dataset.py b/src/graphnet/data/dataset/lmdb/lmdb_dataset.py index 53414156b..ac6d35e6f 100644 --- a/src/graphnet/data/dataset/lmdb/lmdb_dataset.py +++ b/src/graphnet/data/dataset/lmdb/lmdb_dataset.py @@ -430,3 +430,7 @@ def __getitem__(self, sequential_index: int) -> Any: data = super().__getitem__(sequential_index) return data + + def close(self) -> None: + """Close any open LMDB connections.""" + self._close_connection() diff --git a/tests/data/test_dataconverters_and_datasets.py b/tests/data/test_dataconverters_and_datasets.py index b175b53d5..bdf26dda0 100644 --- a/tests/data/test_dataconverters_and_datasets.py +++ b/tests/data/test_dataconverters_and_datasets.py @@ -296,7 +296,6 @@ def test_sqlite_to_lmdb_converter() -> None: truth=TRUTH.DEEPCORE, graph_definition=graph_definition, ) - dataset_from_lmdb_raw = LMDBDataset(path, **opt_raw) # type: ignore dataset_sqlite = SQLiteDataset( get_file_path("sqlite"), **opt_raw # type: ignore[arg-type] @@ -310,6 +309,7 @@ def test_sqlite_to_lmdb_converter() -> None: dataset_from_lmdb_raw[ix].x, dataset_sqlite[ix].x ) + dataset_from_lmdb_raw.close() # Close connection # Test 2: Check that pre-computed representation matches real-time computed # The pre-computed representation field name is the class name pre_computed_field_name = graph_definition.__class__.__name__ @@ -361,3 +361,4 @@ def test_sqlite_to_lmdb_converter() -> None: ) else: assert precomputed_truth == realtime_truth + dataset_from_lmdb_precomputed.close() # Close connection From 0dead35fd446a8b4671c5dd0ee8f51f962475bfe Mon Sep 17 00:00:00 2001 From: "askerosted@gmail.com" Date: Mon, 30 Mar 2026 14:15:36 +0900 Subject: [PATCH 2/2] move _close_connetion call to end of post_init --- src/graphnet/data/dataset/lmdb/lmdb_dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graphnet/data/dataset/lmdb/lmdb_dataset.py b/src/graphnet/data/dataset/lmdb/lmdb_dataset.py index ac6d35e6f..e69ae3be1 100644 --- a/src/graphnet/data/dataset/lmdb/lmdb_dataset.py +++ b/src/graphnet/data/dataset/lmdb/lmdb_dataset.py @@ -169,9 +169,9 @@ def _post_init(self) -> None: if self._pre_computed_representation is None: # Only check for missing columns if using raw tables self._remove_missing_columns() - self._close_connection() if self._pre_computed_representation is not None: self._identify_missing_truth_labels() + self._close_connection() def _identify_missing_truth_labels(self) -> None: """Identify missing truth labels in the pre-computed representation."""