Change cl_api module (delete class attribute).

develop
Самоукин Алексей 14 years ago
parent a78005fc10
commit 9c08517221

@ -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

Loading…
Cancel
Save