lundi 22 avril 2013

python nuke unpremult for all read and shuffle node

    Voici un petit script qui fait gagner du temps, il crée un node unpremult sous tout les nodes read, shuffle et le script recrée les connections des dependences:


 
#permet de recupere un dictionnaire contenant le node connecte ainsi que l'id de son input
def getOutput(node):
    dep = node.dependent()
    id = []
    for d in dep:
        ip = d.inputs()
        for i in range(ip):
            if d.input(i) == node:
                id.append(i)
    dictNodeInput = dict(zip(dep, id))
    return dictNodeInput


#permet de connecter tout les inputs d'un dict cree par la fonction getOutput() a un node
def setOutput(node, dictInput):
    for e, i in dictInput.items():
        e.setInput(i, node)
    return


read = nuke.allNodes("Read")
s = nuke.allNodes("Shuffle")

for p in s:
    read.append(p)

for r in read:
    d = getOutput(r)
    unp = nuke.nodes.Unpremult()
    unp.setInput(0,r)
    setOutput(unp, d)




mardi 16 avril 2013

Petite astuce dict zip python.


    Voici une petite astuce pour simplifier les attributions "keys", "values" d'un dictionnaire.
Lorsque l'on a deux listes et qu'on veut les combiner dans un dictionnaire on peut le faire sans boucle avec la fonction zip de la class dict. Comme ceci:


 

keys = ['A', 'B', 'C']

values = [1, 2, 3]

dic = dict(zip(keys, values))

print(dic)

>>> {'A': 1, 'B': 2, 'C': 3}




mardi 9 avril 2013

PySide/PyQt QDesktopWidget

Petit pense-bête sur le module Qt QDesktopWidget:


 

#module pour les info ecrans
ff = QtGui.QDesktopWidget()

#recupere les dimension des ecrans.
ff = QtGui.QDesktopWidget().screenGeometry(widget)
#recupere l'index de l ecran ou est place le widget
ff = QtGui.QDesktopWidget().screenNumber(widget)
#recupere le nombre d'ecran du system
ff = QtGui.QDesktopWidget().screenCount()