While translating from mel to python is straight forward you might end up doing more than that just because python thinks different.
Mel script tends to tangle gui code, querying maya scene properties and "processing" code, so at least separating them properly is a good first step.
Rewriting the texture manager below using a texture class object shortened the code dramatically.
A 1200 lines melscript is now some 360 lines of python and a .ui file. Python rules...
Here is the code.
I decided to give good old texture checker tool a new gui as maya 2011 stopped supporting some formating features it was using.
After building a .ui in QtDesigner i added code to update the dynamic checkbox list (a QListWidget) and connect the other widgets.
I didn't find accessing the dynamically created check boxes too straight forward, so here is a code snippet:
#get the list
#add check boxes
item = QtGui.QListWidgetItem(listWidget)
ch = QtGui.QCheckBox()
#query check boxes status
for index in xrange(listWidget.count()):
check_box = listWidget.itemWidget(listWidget.item(index))
state = check_box.checkState()
Here is a useful example for using pyQt in maya with Threads in a way that doesn't block the gui.
And here is the code.