summaryrefslogtreecommitdiffstats
path: root/tests/roof.py
blob: 2138931f4b517dde9b8c97274bdb718e1d89f3fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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)