This might not be the most efficient, but we have this in place as part of
a larger archive script, happy to share:
import nuke
import os
import sys
def recursiveDependencies(n):
'''Given a node, find all upstream nodes. This works, but for moderately
complex nuke graphs it can take a long long time, eg 516 nodes found in
1418 seconds'''
thisDependencies = set(n.dependencies())
if not thisDependencies:
return set()
dependencyDependencies = set()
for nn in thisDependencies:
dependencyDependencies.update(recursiveDependencies(nn))
return thisDependencies.union(dependencyDependencies)
def findOutputs():
result = []
for n in nuke.allNodes():
if n.Class() in ["Write"]:
result.append(n)
return result
def findInputsFromOutputs():
result = set()
for n in findOutputs():
dependencies = recursiveDependencies(n)
for dependent in dependencies:
if dependent.Class() in ['Read','ReadGeo']:
result.add(os.path.dirname(nuke.filename(dependent)))
return list(result)
def printInputsFromOutputs():
print '\n'.join(findInputsFromOutputs())
def findInputs():
result = set()
for n in nuke.allNodes():
if n.Class() in ["Read", "ReadGeo"]:
result.add(os.path.dirname(nuke.filename(n)))
result = list(result)
result.sort()
return result
def printInputs():
print '\n'.join(findInputs())
On Thu, Feb 11, 2016 at 11:34 AM, Dan Stein <[email protected]>
wrote:
> For non-GUI you can load Nuke as a Python module.
>
>
> http://docs.thefoundry.co.uk/nuke/80/pythondevguide/nuke_as_python_module.html
>
> Then just collect the Read and ReadGeo nodes however you would in the GUI,
> nuke.allNodes('Read')... etc
>
> On Feb 11, 2016, at 10:52 AM, Gabor Hovanyi <[email protected]> wrote:
>
> for reads, you could use nukescripts.get_script_data() or
> nukescripts.get_reads()
>
> -g
>
> On Thu, Feb 11, 2016 at 10:26 AM, Gary Jaeger <[email protected]> wrote:
>
>> Is there a way, preferably in non-gui mode, to quickly generate a list of
>> all read nodes, including geo, used in a script?
>>
>> Gary Jaeger // Core Studio
>> 249 Princeton Avenue
>> Half Moon Bay, CA 94019
>> 650.728.7957 (direct)
>> 650.728.7060 (main)
>> http://corestudio.com
>>
>>
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>
> _______________________________________________
> Nuke-users mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
>
> _______________________________________________
> Nuke-users mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users