From 77205f6b3d90e14f7ae5de8a8fe5e1b19e145f8d Mon Sep 17 00:00:00 2001 From: www Date: Sun, 27 Dec 2020 19:19:50 +0000 Subject: [PATCH] clean utils --- misc/utils.py | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/misc/utils.py b/misc/utils.py index 1c2edae..8a8d0fe 100644 --- a/misc/utils.py +++ b/misc/utils.py @@ -2,33 +2,24 @@ import yaml from collections.abc import Mapping from dataclasses import asdict + class SaveFileObject(): - #def __init__(self,d={},**kwargs): - # self.data=d - # self.data.update(kwargs) - #def asdict(self): - # return self.data def asdict(self): return asdict(self) + def update(self, new): if new is None: new=dict() for key, value in new.items(): if hasattr(self, key): setattr(self, key, value) - #def __getattr__(self, key): - # return self.data.get(key,None) - #def __setattr__(self, key,value): - # if not key in ["data"]: - # self.data[key]=value - # else: - # super().__setattr__(key,value) + class SaveFileMapping(Mapping): __file =None def __init__(self, file=None): self.data=dict() - self.__file=file + self.__file=file def asdict(self): @@ -54,15 +45,13 @@ class SaveFileMapping(Mapping): def __getitem__(self,key): return self.data.get(key,None) - def __setitem__(self,key,data): + def __setitem__(self,key,data): if not isinstance(data,SaveFileObject): raise TypeError("data elements should be derived from SaveFileObject") if not callable(getattr(data,"asdict",None)): raise TypeError("Dataelements need a method asdict that returns a dict this should be out of the box if you use dataclasses") - #if not callable(getattr(data.__class__,"from_dict",None)): - # raise TypeError("Dataelements need a method to_dict that returns a dict") - + self.data[key]= data return self.data[key]