#!/usr/bin/env python import yaml class Font(dict): def __init__(self, letterdict): for (k, v) in letterdict.items(): self[k] = set(v.split()) class Display(object): def __init__(self, data): self.mapping = {} for c, segs in enumerate(data['coms']): for s, name in enumerate(segs): self.mapping[name] = (c, s) def render_text(self, text, symbols, font): cursor = 1 segments = set() for letter in text: if letter == '.': segments.add("a%s_dp"%(cursor-1)) elif letter == ':': segments.add("a%s_colon"%(cursor-1)) elif letter in font: for segment in font[letter]: segments.add("a%s_%s"%(cursor, segment)) cursor += 1 for s in symbols: segments.add(s) coms = {} for segment in segments: com, seg = self.mapping[segment] coms[com] = coms.get(com, 0) | (1<