Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix layer naming in LayerInfos #613

Merged
merged 4 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/kfactory/layer.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def _validate_layers(self) -> Self:
"All fields in LayerInfos must be of type kdb.LayerInfo. "
f"Field {field_name} is of type {type(f)}"
)
if not f.is_named():
if not f.name:
f.name = field_name
if f.layer == -1 or f.datatype == -1:
raise InvalidLayerError(
Expand Down
8 changes: 4 additions & 4 deletions tests/test_layers.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,30 @@ def test_layer_infos_valid() -> None:
def test_layer_infos_invalid_type() -> None:
with pytest.raises(
ValidationError,
match="All fields in LayerInfos must be of type kdb.LayerInfo.",
match=r"All fields in LayerInfos must be of type kdb.LayerInfo.",
):
kf.LayerInfos(layer1="invalid_layer_info")


def test_layer_infos_missing_layer() -> None:
with pytest.raises(
ValidationError,
match="Layers must specify layer number and datatype.",
match=r"Layers must specify layer number and datatype.",
):
kf.LayerInfos(layer1=kf.kdb.LayerInfo(-1, 0))


def test_layer_infos_missing_datatype() -> None:
with pytest.raises(
ValidationError,
match="Layers must specify layer number and datatype.",
match=r"Layers must specify layer number and datatype.",
):
kf.LayerInfos(layer1=kf.kdb.LayerInfo(1, -1))


def test_layer_infos_named_layer() -> None:
layer_info = kf.LayerInfos(layer1=kf.kdb.LayerInfo(1, 0, name="Layer1"))
assert layer_info.layer1.name == "layer1" # type: ignore[attr-defined]
assert layer_info.layer1.name == "Layer1" # type: ignore[attr-defined]


def test_layer_infos_unnamed_layer() -> None:
Expand Down
Loading