"""Lazy ASE Atoms loading."""importpathlibimporth5pyimporttyping_extensionsastyeximportznh5mdimportzntrackCWD=pathlib.Path(__file__).parent.resolve()def_frames_getter(self:zntrack.Node,name:str,suffix:str)->None:withself.state.fs.open((self.nwd/name).with_suffix(suffix),mode="rb")asf:withh5py.File(f)asfile:returnznh5md.IO(file_handle=file)[:]def_frames_save_func(self:zntrack.Node,name:str,suffix:str)->None:file=(self.nwd/name).with_suffix(suffix)io=znh5md.IO(filename=file)io.create_file()io.extend(getattr(self,name))