Ejemplo n.º 1
0
    def _evaluate(self):
        colors = self.get_raw('colors')
        has_lists, has_scalars = False, False
        for c in colors:
            is_list = isinstance(c, list)
            has_lists = has_lists or is_list
            has_scalars = has_scalars or not is_list

        if has_scalars:
            if has_lists:
                raise Exception('Can\'t mix lists and scalars in pattern.List')
            colors = [colors]
        max_column = max(len(c) for c in colors)
        columns = self.get('columns') or max_column
        if not max_column:
            # Empty list.
            return cechomesh.ColorList(columns=columns)

        ce = (cechomesh.color_list_with_errors(c) for c in colors)
        color_lists, errors = zip(*ce)
        errors = list(itertools.chain(*errors))
        if errors:
            raise Exception('\nCan\'t understand %s: %s.' %
                            (plural(len(errors), 'color'), ', '.join(errors)))
        result = cechomesh.ColorList(columns=columns)
        for i, cl in enumerate(color_lists):
            cl.size = columns
            result.extend(cl)
        return result
Ejemplo n.º 2
0
    def _image_to_list(self, image):
        if image.mode != 'RGB':
            image = image.convert(mode='RGB')

        image = crop(
            image,
            **self.get_dict('top_offset', 'left_offset', 'bottom_offset',
                            'right_offset'))
        image = resize(image,
                       **self.get_dict('x', 'y', 'stretch', 'top', 'left'))
        return cechomesh.ColorList(image, columns=image.size[0])
Ejemplo n.º 3
0
    def _evaluate(self):
        debug = self.get('debug')
        fontfile = self.get('font')
        if not fontfile:
            raise ValueError("Text doesn't have a font setting")
        font_height = self.get('font_height')
        height = self.get('height') or font_height
        text = self.get('text')
        if not text:
            raise ValueError("Text doesn't have a text setting")

        image, width, height = draw_text(fontfile, text, height, font_height)
        return cechomesh.ColorList(image, columns=width)
Ejemplo n.º 4
0
 def setUp(self):
     self.data = cechomesh.ColorList([
         'red',
         'green',
         'blue',
         'yellow',
         'beige',
         'khaki',
         'olive',
         'tan',
         'plum',
         'teal',
         'wheat',
         'orchid',
     ])
Ejemplo n.º 5
0
 def _evaluate(self):
     return cechomesh.ColorList(self.patterns()[0], self.get('columns'))
Ejemplo n.º 6
0
 def doWrapTest(self, dx, dy, expected):
     result = cechomesh.scroll_color_list(self.data, dx, dy, 4, wrap=True)
     expected = cechomesh.ColorList(expected)
     # , columns=4) why was this there
     self.assertEquals(result, expected)
Ejemplo n.º 7
0
 def doTest(self, dx, dy, expected):
     result = cechomesh.scroll_color_list(self.data, dx, dy, columns=4)
     expected = cechomesh.ColorList(expected)  # , columns=4)
     self.assertEquals(result, expected)