-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrunner.py
34 lines (23 loc) · 950 Bytes
/
runner.py
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
import json
import os
from sandpile import Sandpiles, SymmetryMode
from tee import Tee
os.environ['PYOPENCL_CTX'] = '0'
sandpiles = Sandpiles()
def run(queue_filename, output_dir, sequence_fn):
with open(queue_filename) as f:
queue = json.load(f)
os.makedirs(output_dir, exist_ok=True)
with Tee(os.path.join(output_dir, 'log.txt'), 'w+'):
for item in queue:
if not item.get('active', True):
continue
symmetry_modes = (
SymmetryMode[item.get('x_symmetry_mode', 'SYMMETRY_OFF')],
SymmetryMode[item.get('y_symmetry_mode', 'SYMMETRY_OFF')]
)
print(item['filename'])
sandpile = sandpiles.create_sandpile(shape=tuple(item['shape']),
symmetry_modes=symmetry_modes)
sequence_fn(sandpile, item['filename'], symmetry_modes)
print('-' * 75)