Skip to content

Commit 144070f

Browse files
committed
mv _header business to Geometry
1 parent c9fdaea commit 144070f

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

src/stagpy/step.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,24 @@ class Geometry:
4040

4141
step: Step
4242

43+
@cached_property
44+
def _maybe_header(self) -> dict[str, Any] | None:
45+
if self.step.isnap is None:
46+
return None
47+
sdat = self.step.sdat
48+
binfiles = sdat._binfiles_set(self.step.isnap)
49+
header = None
50+
if binfiles:
51+
header = stagyyparsers.field_header(binfiles.pop())
52+
elif sdat.hdf5:
53+
header = stagyyparsers.read_geom_h5(sdat._dataxmf, self.step.isnap)
54+
return header if header else None
55+
4356
@cached_property
4457
def _header(self) -> Mapping[str, Any]:
45-
hdr = self.step._header
46-
if hdr is None:
58+
if self._maybe_header is None:
4759
raise error.NoGeomError(self.step)
48-
return hdr
60+
return self._maybe_header
4961

5062
def _scale_radius_mo(self, radius: NDArray) -> NDArray:
5163
"""Rescale radius for evolving MO runs."""
@@ -356,7 +368,8 @@ def _get_raw_data(self, name: str) -> tuple[list[str], Any]:
356368
sdat = self.step.sdat
357369
if filestem in phyvars.SFIELD_FILES_H5:
358370
xmff = sdat._botxmf if name.endswith("bot") else sdat._topxmf
359-
header = self.step._header
371+
header = self.step.geom._maybe_header
372+
assert header is not None
360373
else:
361374
xmff = sdat._dataxmf
362375
header = None
@@ -612,18 +625,6 @@ def __repr__(self) -> str:
612625
else:
613626
return f"{self.sdat!r}.steps[{self.istep}]"
614627

615-
@cached_property
616-
def _header(self) -> dict[str, Any] | None:
617-
if self.isnap is None:
618-
return None
619-
binfiles = self.sdat._binfiles_set(self.isnap)
620-
header = None
621-
if binfiles:
622-
header = stagyyparsers.field_header(binfiles.pop())
623-
elif self.sdat.hdf5:
624-
header = stagyyparsers.read_geom_h5(self.sdat._dataxmf, self.isnap)
625-
return header if header else None
626-
627628
@cached_property
628629
def geom(self) -> Geometry:
629630
"""Geometry information.

0 commit comments

Comments
 (0)