import gi import sys import json import gobject from gi.repository import Ufo from gi.repository import GObject class RoofConfig: def __init__(self, config="roof.json"): self.streams = 1 with open(config) as json_file: cfg = json.load(json_file) if cfg.get("network", {}).get("streams") != None: self.streams = cfg["network"]["streams"] elif cfg.get("setup", {}).get("modules") != None: self.streams = cfg["setup"]["modules"] config = "roof.json" cfg = RoofConfig(config) pm = Ufo.PluginManager() graph = Ufo.TaskGraph() scheduler = Ufo.Scheduler() build = pm.get_task('roof-build') build.set_properties(config=config, number=0) write = pm.get_task('write') write.set_properties(filename="test.raw") for id in range(cfg.streams): read = pm.get_task('roof-read') read.set_properties(config=config, id=id) graph.connect_nodes(read, build) build.bind_property('stop', read, 'stop', GObject.BindingFlags.DEFAULT) #read_task.set_properties(path='/home/data/*.tif', start=10, number=100) #graph.connect_nodes_full(read, write, 0) graph.connect_nodes(build, write) scheduler.run(graph)