コード例 #1
0
ファイル: editexp.py プロジェクト: alexisylchan/TechExpMgmt
class KeywordDictDecoder:
    def __init__(self):
        self.keyword_dict = KeywordDict()

    def __dict_to_class(self, dict_item):
        inst = None
        if "__class__" in dict_item:
            class_name = dict_item.pop("__class__")
            module_name = dict_item.pop("__module__")
            module = __import__(module_name)
            inst = globals()[class_name]
        return inst

    def decode(self, inputobj):
        keyword_dict_class = self.__dict_to_class(inputobj)
        if keyword_dict_class is not None:
            self.keyword_dict = keyword_dict_class()
        # print json.dumps(inputobj,indent = 2)

        for keyword in inputobj:
            for exp_attr_dict in inputobj[keyword]:
                exp_class = self.__dict_to_class(exp_attr_dict)
                expobj = exp_class(self.keyword_dict)
                for attr in exp_attr_dict:
                    setattr(expobj, attr, exp_attr_dict[attr])
                self.keyword_dict.add_keyword(keyword, expobj)