nft-update-addresses: fix checking for None, fixing type guards

main
Felix Stupp 1 year ago
parent 84fe940a26
commit d3b8d4cc14
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -651,7 +651,7 @@ class SetConfig:
for temp in self.elements:
for var in temp.get_identifiers():
m = regex.search(var)
if m == None:
if m is None:
raise ValueError(
f"set {self.name!r} for if {self.ifname!r} uses invalid template variable {var!r}"
)
@ -696,7 +696,7 @@ class SetConfig:
data_type = obj["type"]
assert isinstance(data_type, str)
flags = obj.get("flags")
assert flags == None or isinstance(flags, str)
assert flags is None or isinstance(flags, str)
elements = obj["elements"]
assert isinstance(elements, Sequence) and all(
isinstance(elem, str) for elem in elements
@ -707,7 +707,7 @@ class SetConfig:
ifname=ifname,
name=name,
data_type=data_type,
flags=cast(None | str, flags),
flags=flags,
elements=templates,
)
@ -736,17 +736,22 @@ class InterfaceConfig:
def from_json(ifname: str, obj: JsonObj) -> InterfaceConfig:
assert set(obj.keys()) <= set(("macs", "sets"))
macs = obj.get("macs")
assert macs == None or isinstance(macs, Sequence)
assert macs is None or isinstance(macs, Sequence)
sets = obj.get("sets")
assert sets == None or isinstance(sets, Mapping)
assert sets is None or isinstance(sets, Mapping)
return InterfaceConfig(
ifname=IfName(ifname),
macs_direct=tuple()
if macs == None
else tuple(to_mac(cast(str, mac)) for mac in macs), # type: ignore[union-attr]
if macs is None
else tuple(to_mac(cast(str, mac)) for mac in macs),
sets=tuple()
if sets == None
else tuple(SetConfig.from_json(ifname=ifname, name=name, obj=cast(JsonObj, one_set)) for name, one_set in sets.items()), # type: ignore[union-attr]
if sets is None
else tuple(
SetConfig.from_json(
ifname=ifname, name=name, obj=cast(JsonObj, one_set)
)
for name, one_set in sets.items()
),
)

Loading…
Cancel
Save