Source code for mckit_meshes.m_file_iterator
from __future__ import annotations
from typing import TYPE_CHECKING, TextIO
if TYPE_CHECKING:
from collections.abc import Generator
[docs]
def m_file_iterator(stream: TextIO) -> Generator[list[str]]:
header: list[str] = []
for _line in stream:
if len(header) < 3:
header.append(_line.strip())
else:
break
yield header
mesh: list[str] = []
for line in stream:
_line = line.strip()
if _line:
if len(mesh) > 0 and _line.startswith("Mesh Tally Number"):
yield mesh
mesh = []
mesh.append(_line)
if len(mesh) > 0:
yield mesh