Source code for bibliopixel.util.image.yml

import itertools
from .. import data_file

MODULE = '.'.join(__name__.split('.')[:-1])

YML_READER_TYPE = MODULE + '.yml.Reader'
SEPARATOR = '---\n'
COLORS_PER_LINE = 12


[docs]class Writer: def __init__(self, movie_writer): self.shape = movie_writer.project.layout.shape self.ranges = tuple(range(i) for i in self.shape) self.getter = movie_writer.project.layout.get self.movie_writer = movie_writer self.fp = None
[docs] def step(self): if not self.fp: self.fp = open(self.movie_writer.filename, 'w') header = { 'typename': YML_READER_TYPE, 'fps': self.movie_writer.scaled_fps, 'shape': self.shape, } data_file.dump(header, self.fp) self.fp.write(SEPARATOR) self.fp.write('"') for i, index in enumerate(itertools.product(*self.ranges)): if not (i % COLORS_PER_LINE): self.fp.write('\\\n') self.fp.write('%02x%02x%02x' % self.getter(*index)) self.fp.write('"\n')
[docs] def write(self): try: self.fp.close() except: pass