Select Git revision

Jan David Mol authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
hwdev.py 2.11 KiB
import yaml;
import importlib
import sys, inspect
import logging
YAMLDIR='YAML/'
class hwdev:
def __init__(self,configfile):
logging.info("Loading:",configfile)
self.D=yaml.load(open(YAMLDIR+configfile))
self.loadchildren(self.D)
def loadchildren(self,D):
self.children=[]
self.childnames=[]
if "dev_children" in D:
for c in D['dev_children']:
childname=(c['child_name']+"_" if c.get('child_name') else '');
objnm=c['child_dev']
yamlname=c['child_conf']
logging.info("Add child:",childname,objnm,yamlname)
i = importlib.import_module(objnm)
for name, obj in inspect.getmembers(i,inspect.isclass):
if name==objnm:
# yamlname=(c['conf_name'] if c.get('conf_name') else nm)
# logging.debug(" Load child:",childname," conf=",yamlname+".yaml")
c['obj']=obj(yamlname+".yaml")
self.children.append([childname,c['obj']])
def GetVarNames(self,parentname,callback):
for name,child in self.children:
child.GetVarNames(parentname+name,callback)
return True;
def GetMethodNames(self,parentname,callback):
for name,child in self.children:
child.GetMethodNames(parentname+name,callback)
return True;
def GetVarValue(self,name,value,I2Ccallback):
return False
def SetVarValue(self,name,value,I2Ccallback):
return False
# def CallMethod(self,name,params,I2Ccallback):
# for name,child in self.children:
# child.CallMethod(name,params,I2Ccallback)
# return True;
def CallMethod(self,name,params,I2Ccallback):
childname=name.split('_')[0]
for cname,child in self.children:
# logging.debug("hwdev callmethod",cname,childname)
if cname=="": child.CallMethod(name,params,I2Ccallback)
elif cname[:-1]==childname: return child.CallMethod(name[len(childname)+1:],params,I2Ccallback)
return False
def Find(L,name,value):
for x in L:
if x[name]==value:
return x;
return False;