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,28 +53,18 @@ 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]
if top=="PyQt4":
import sip
sip.setapi('QDate',2)
sip.setapi('QDateTime',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:
modules = sys.argv[2:]
else:
modules = [ 'QtCore', modules = [ 'QtCore',
'QtGui', 'QtGui',
'QtHelp', 'QtHelp',
@ -90,6 +81,27 @@ if __name__=='__main__':
'QtXml', 'QtXml',
'QtXmlPatterns' ] 'QtXmlPatterns' ]
libraries = ["PySide", "PyQt4"]
librarySymbols = {}
for l in libraries:
dictionary = []
if l =="PyQt4":
import sip
sip.setapi('QDate',2)
sip.setapi('QDateTime',2)
sip.setapi('QString',2)
sip.setapi('QTextStream',2)
sip.setapi('QTime',2)
sip.setapi('QUrl',2)
sip.setapi('QVariant',2)
for m in modules: for m in modules:
exec "from %s import %s" % (top,m) in globals(), locals() exec "from %s import %s" % (l,m) in globals(), locals()
recurse_into(m,eval(m)) dictionary += recurse_into(m, eval(m))
librarySymbols[l] = dictionary
print "PyQt4: ", len(librarySymbols["PyQt4"]), " PySide: ", len(librarySymbols["PySide"])
for symbol in librarySymbols["PyQt4"]:
if not (symbol in librarySymbols["PySide"]):
print "Symbol not found in PySide:", symbol