conductor.houdini.hda.dependency_scan module

Get a list of all files that are needed to run a job.

conductor.houdini.hda.dependency_scan.UDIM_RE

Find <udim> and related tokens in filenames so they can be globbed.

Type:re.RegexObject
conductor.houdini.hda.dependency_scan.fetch

Get a list of dependencies required for the submission.

Adding this note from Eric at GoodbyeKansas

for ref in file_refs:
    if ref[0]:
        parm = ref[0]
        ue = parm.unexpandedString()
        file_value = hou.expandString(ue.replace('$F', '\$F'))

This is a good way to expand everything except but keep $F so it can be replaced with * for glob should probably replace $OS with parm.node().name() as well but we don’t us $OS so havent got any problems from that that way you dont get /path/to/frame/range/foobar.1001.bgeo.sc but instead get /path/to/frame/range/foobar.1001.$F4.sc that can then be converted to a glob path

This is when looping over hou.fileReferences()

conductor.houdini.hda.dependency_scan.fetch(node, sequence, samples=None)

Get the list of files needed to render this node.

sequence is the whole frame range being rendered. And samples, is a Sequence containing a few frames that we use to tests if a parm is changing over time. If samples is None, then no optimization happens.