1313m .patch ()
1414
1515
16+ class LMDBError (Exception ):
17+ """Base class for LMDB errors."""
18+
19+
20+ class LMDBMetadataError (LMDBError ):
21+ """Metadata not found in LMDB."""
22+
23+
24+ class LMDBFrameError (LMDBError ):
25+ """Frame data not found in LMDB."""
26+
27+
1628class LMDBFormat (Format ):
1729 """
1830 Class for handling the LMDB format, which stores atomic configurations in a
@@ -194,7 +206,7 @@ def from_multi_systems(self, file_name, map_size=1000000000, **kwargs):
194206 with env .begin () as txn :
195207 metadata_packed = txn .get (b"__metadata__" )
196208 if metadata_packed is None :
197- raise KeyError ("LMDB database does not contain metadata." )
209+ raise LMDBMetadataError ("LMDB database does not contain metadata." )
198210 metadata = msgpack .unpackb (metadata_packed , raw = False )
199211 frame_idx_fmt = metadata .get ("frame_idx_fmt" , "012d" )
200212
@@ -209,7 +221,7 @@ def from_multi_systems(self, file_name, map_size=1000000000, **kwargs):
209221 key = f"{ i :{frame_idx_fmt }} " .encode ("ascii" )
210222 value = txn .get (key )
211223 if value is None :
212- raise KeyError (f"Frame data not found for key: { key } " )
224+ raise LMDBFrameError (f"Frame data not found for key: { key } " )
213225 frame_data = msgpack .unpackb (value , raw = False )
214226 system_frames .append (frame_data )
215227
0 commit comments