Skip & Log properties with 'None' as default value

This commit is contained in:
Raffson
2022-10-09 15:28:36 +02:00
parent 2be3257e3c
commit bcac6c4287

View File

@@ -1,6 +1,7 @@
from __future__ import annotations from __future__ import annotations
import inspect import inspect
import logging
from collections.abc import Iterator from collections.abc import Iterator
from dataclasses import dataclass from dataclasses import dataclass
from typing import Any, Generic, Type, TypeVar from typing import Any, Generic, Type, TypeVar
@@ -33,6 +34,11 @@ class UnitProperty(Generic[ValueT]):
for name, attr in inspect.getmembers(props, inspect.isclass): for name, attr in inspect.getmembers(props, inspect.isclass):
if name.startswith("__"): if name.startswith("__"):
continue continue
attr_values = getattr(attr, "Values", None)
if attr_values is None and unit_type.property_defaults[name] is None:
msg = f"Skipping property '{name}' for '{unit_type.id}': default value is None."
logging.warning(msg)
continue
yield cls.property_from(attr, unit_type.property_defaults[name]) yield cls.property_from(attr, unit_type.property_defaults[name])
@classmethod @classmethod