Added support on script to compare symbols in both Qt bindings (PySide/PyQt4)

Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
          Marcelo Lira <marcelo.lira@openbossa.org>
This commit is contained in:
renatofilho 2010-09-29 11:15:42 -03:00
commit 6ad03f2a79

View file

@ -44,6 +44,7 @@ ignore = ["staticMetaObject",
def recurse_into(el,obj): def recurse_into(el,obj):
#s = el.split('.')[-1] #s = el.split('.')[-1]
#pdb.set_trace() #pdb.set_trace()
symbols = []
for item in sorted(dir(obj)): for item in sorted(dir(obj)):
if item[0]=='_': if item[0]=='_':
continue continue
@ -52,44 +53,55 @@ def recurse_into(el,obj):
mobj = eval(mel) mobj = eval(mel)
except Exception: except Exception:
continue continue
if item in ignore: if item in ignore:
continue continue
print mel else:
symbols.append(mel)
if isclass(mobj): if isclass(mobj):
recurse_into(mel,mobj) symbols += recurse_into(mel,mobj)
return symbols
if __name__=='__main__': if __name__=='__main__':
top = sys.argv[1] modules = [ 'QtCore',
'QtGui',
'QtHelp',
#'QtMultimedia',
'QtNetwork',
'QtOpenGL',
'QtScript',
'QtScriptTools',
'QtSql',
'QtSvg',
'QtTest',
#'QtUiTools',
'QtWebKit',
'QtXml',
'QtXmlPatterns' ]
if top=="PyQt4": libraries = ["PySide", "PyQt4"]
import sip librarySymbols = {}
sip.setapi('QDate',2) for l in libraries:
sip.setapi('QDateTime',2) dictionary = []
sip.setapi('QString',2) if l =="PyQt4":
sip.setapi('QTextStream',2) import sip
sip.setapi('QTime',2) sip.setapi('QDate',2)
sip.setapi('QUrl',2) sip.setapi('QDateTime',2)
sip.setapi('QVariant',2) sip.setapi('QString',2)
sip.setapi('QTextStream',2)
sip.setapi('QTime',2)
sip.setapi('QUrl',2)
sip.setapi('QVariant',2)
if len(sys.argv)>2: for m in modules:
modules = sys.argv[2:] exec "from %s import %s" % (l,m) in globals(), locals()
else: dictionary += recurse_into(m, eval(m))
modules = [ 'QtCore', librarySymbols[l] = dictionary
'QtGui',
'QtHelp',
#'QtMultimedia',
'QtNetwork',
'QtOpenGL',
'QtScript',
'QtScriptTools',
'QtSql',
'QtSvg',
'QtTest',
#'QtUiTools',
'QtWebKit',
'QtXml',
'QtXmlPatterns' ]
for m in modules: print "PyQt4: ", len(librarySymbols["PyQt4"]), " PySide: ", len(librarySymbols["PySide"])
exec "from %s import %s" % (top,m) in globals(), locals()
recurse_into(m,eval(m)) for symbol in librarySymbols["PyQt4"]:
if not (symbol in librarySymbols["PySide"]):
print "Symbol not found in PySide:", symbol