26 lines
955 B
Python
26 lines
955 B
Python
class GUIMasterData:
|
|
data_changed: bool = False
|
|
data_type: str = ""
|
|
do_not_update: list[str] = ["do_not_update", "data_type"]
|
|
|
|
def __init__(self) -> None:
|
|
self.data_type = str(type(self)).split(".")[-1][:-2]
|
|
|
|
def update(self, input) -> None:
|
|
to_update: list[str] = []
|
|
|
|
something_todo = getattr(input, "data_changed", None)
|
|
if (something_todo is None) or (something_todo is False):
|
|
return
|
|
|
|
for vars in dir(self):
|
|
if vars.startswith("__") is False:
|
|
if not callable(getattr(self, vars)):
|
|
if (vars in self.do_not_update) is False:
|
|
to_update.append(vars)
|
|
|
|
input_name = getattr(input, "data_type", None)
|
|
if (input_name is not None) and (input_name == self.data_type):
|
|
for vars in to_update:
|
|
data_in = getattr(input, vars, None)
|
|
setattr(self, vars, data_in)
|