|
|
|
@ -46,7 +46,9 @@ class libVars:
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
class _services(color_print, libVars):
|
|
|
|
|
apiObjs = {}
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self.apiObjs = {}
|
|
|
|
|
|
|
|
|
|
def getApiClass(self, apiFile):
|
|
|
|
|
importPath, moduleName = os.path.split(apiFile)
|
|
|
|
@ -153,11 +155,17 @@ class attribute(object):
|
|
|
|
|
class _pkgAPI(object):
|
|
|
|
|
|
|
|
|
|
def __init__(self, pkgName):
|
|
|
|
|
self._pkgName = pkgName
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __setvar__(self, pkgName):
|
|
|
|
|
services = _services()
|
|
|
|
|
self.var = False
|
|
|
|
|
varObj = services.runMethodToPkg(pkgName, 'get_vars')
|
|
|
|
|
if varObj:
|
|
|
|
|
self.var = attribute(varObj)
|
|
|
|
|
|
|
|
|
|
def __setmethods__(self, pkgName):
|
|
|
|
|
services = _services()
|
|
|
|
|
pkgObj = services.getPkgApi(pkgName)
|
|
|
|
|
for attr in dir(pkgObj):
|
|
|
|
|
if not attr.startswith("_") and callable(getattr(pkgObj, attr)) and\
|
|
|
|
@ -165,13 +173,36 @@ class _pkgAPI(object):
|
|
|
|
|
setattr(self, attr, getattr(pkgObj, attr))
|
|
|
|
|
|
|
|
|
|
def __getattribute__(self, attr):
|
|
|
|
|
if attr.startswith("__") or attr in ('var','all'):
|
|
|
|
|
if attr.startswith("__") or attr in ('_pkgName'):
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
elif attr == 'var':
|
|
|
|
|
try:
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
except AttributeError:
|
|
|
|
|
pkgName = object.__getattribute__(self, '_pkgName')
|
|
|
|
|
self.__setvar__(pkgName)
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
elif attr == 'api':
|
|
|
|
|
try:
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
except AttributeError:
|
|
|
|
|
services = _services()
|
|
|
|
|
pkgName = object.__getattribute__(self, '_pkgName')
|
|
|
|
|
value = services.getPkgApi(pkgName)
|
|
|
|
|
setattr(self, attr, value)
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
value = object.__getattribute__(self,attr)()
|
|
|
|
|
value = object.__getattribute__(self, attr)()
|
|
|
|
|
flagFoundAttr = True
|
|
|
|
|
except:
|
|
|
|
|
raise APIError(_("Can not found method %s")%attr)
|
|
|
|
|
flagFoundAttr = False
|
|
|
|
|
if flagFoundAttr is False:
|
|
|
|
|
pkgName = object.__getattribute__(self, '_pkgName')
|
|
|
|
|
self.__setmethods__(pkgName)
|
|
|
|
|
try:
|
|
|
|
|
value = object.__getattribute__(self, attr)()
|
|
|
|
|
except:
|
|
|
|
|
raise APIError(_("Can not found method %s")%attr)
|
|
|
|
|
return value
|
|
|
|
|
|
|
|
|
|
class _allPkg(object):
|
|
|
|
@ -223,7 +254,7 @@ class _allPkg(object):
|
|
|
|
|
listValues = []
|
|
|
|
|
for pkgObj in listObi:
|
|
|
|
|
try:
|
|
|
|
|
val = object.__getattribute__(pkgObj, attr)()
|
|
|
|
|
val = getattr(pkgObj, attr)
|
|
|
|
|
except Exception, e:
|
|
|
|
|
continue
|
|
|
|
|
listValues.append(val)
|
|
|
|
@ -234,20 +265,31 @@ class _allPkg(object):
|
|
|
|
|
else:
|
|
|
|
|
return True
|
|
|
|
|
listValues = filter(lambda x: x, listValues)
|
|
|
|
|
listValues = map(lambda x: '1' if x is True else x, listValues)
|
|
|
|
|
listValues = map(lambda x: '1' if x is True else str(x), listValues)
|
|
|
|
|
value = "\n".join(listValues)
|
|
|
|
|
object.__setattr__(self, attr, value)
|
|
|
|
|
return value
|
|
|
|
|
|
|
|
|
|
class packagesAPI:
|
|
|
|
|
class packagesAPI(object):
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
objLibVars = libVars()
|
|
|
|
|
objLibVars.createClLibVars()
|
|
|
|
|
apiDict = objLibVars.clLibVars.Get('cl_api')
|
|
|
|
|
listPkgObj = []
|
|
|
|
|
for pkgName in apiDict.keys():
|
|
|
|
|
pkgAPIObj = _pkgAPI(pkgName)
|
|
|
|
|
setattr(self, pkgName.replace('-','_'), pkgAPIObj)
|
|
|
|
|
listPkgObj.append(pkgAPIObj)
|
|
|
|
|
setattr(self, 'all', _allPkg(listPkgObj))
|
|
|
|
|
def __getattribute__(self, attr):
|
|
|
|
|
if attr.startswith("__"):
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
flagFoundAttr = True
|
|
|
|
|
except AttributeError:
|
|
|
|
|
flagFoundAttr = False
|
|
|
|
|
if flagFoundAttr is False:
|
|
|
|
|
objLibVars = libVars()
|
|
|
|
|
objLibVars.createClLibVars()
|
|
|
|
|
apiDict = objLibVars.clLibVars.Get('cl_api')
|
|
|
|
|
listPkgObj = []
|
|
|
|
|
for pkgName in apiDict.keys():
|
|
|
|
|
pkgAPIObj = _pkgAPI(pkgName)
|
|
|
|
|
setattr(self, pkgName.replace('-','_'), pkgAPIObj)
|
|
|
|
|
listPkgObj.append(pkgAPIObj)
|
|
|
|
|
setattr(self, 'all', _allPkg(listPkgObj))
|
|
|
|
|
value = object.__getattribute__(self, attr)
|
|
|
|
|
return value
|
|
|
|
|