Skip to content

Commit a4811ec

Browse files
committed
fix
1 parent b49f97d commit a4811ec

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

flopy4/mf6/codec/reader/grammar/__init__.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ def _get_template_env():
2323
def _compute_block_metadata(blocks):
2424
"""Pre-compute block metadata for template rendering."""
2525
blocks_list = []
26+
all_fields = {} # Collect all unique fields
27+
2628
for block_name, block_fields in blocks.items():
2729
period_groups = filters.group_period_fields(block_fields)
2830
has_index = block_name == "period"
@@ -40,6 +42,9 @@ def _compute_block_metadata(blocks):
4042
all_field_names = list(block_fields.keys())
4143
standalone_fields = [f for f in all_field_names if f not in grouped_field_names]
4244

45+
# Collect field objects
46+
all_fields.update(block_fields)
47+
4348
blocks_list.append(
4449
{
4550
"name": block_name,
@@ -49,7 +54,7 @@ def _compute_block_metadata(blocks):
4954
}
5055
)
5156

52-
return blocks_list
57+
return blocks_list, all_fields
5358

5459

5560
def make_grammar(dfn: Dfn, outdir: PathLike):
@@ -59,12 +64,12 @@ def make_grammar(dfn: Dfn, outdir: PathLike):
5964
template = env.get_template("component.lark.jinja")
6065
target_path = outdir / f"{dfn.name}.lark"
6166

62-
# Pre-compute block metadata
63-
blocks_list = _compute_block_metadata(dfn.blocks)
67+
# Pre-compute block metadata and collect all fields
68+
blocks_list, fields = _compute_block_metadata(dfn.blocks)
6469

6570
with open(target_path, "w") as f:
6671
name = dfn.name
67-
f.write(template.render(name=name, blocks=blocks_list, fields=dfn.fields))
72+
f.write(template.render(name=name, blocks=blocks_list, fields=fields))
6873

6974

7075
def make_all_grammars(dfns: dict[str, Dfn], outdir: PathLike):

0 commit comments

Comments
 (0)