def make_generic()

in src/dfcx_scrapi/tools/maker_util.py [0:0]


    def make_generic(cls, obj, obj_type, default, conditionals=None):
        if conditionals is None:
            conditionals = {}

        if isinstance(obj, obj_type):
            return obj

        elif isinstance(obj, dict):
            obj_ins = obj_type()
            for key, value in obj.items():
                if key in conditionals.keys():
                    func = conditionals[key]
                    out = func(value)
                    setattr(obj_ins, key, out)
                else:
                    print(value)
                    setattr(obj_ins, key, value)
            return obj_ins

        elif isinstance(obj, str):
            dic = {
                "unspecified": 0,
                "map": 1,
                "list": 2,
                "regexp": 3,
                "default": 1,
            }
            t = dic.get(obj.lower())
            if t:
                return obj_type(t)
            else:
                return default
        else:
            return default