def write(self, data): if self.closed: return if not data: return self.out.write(data) data = hint_to_text(data) if not self.stream: data += '\n' now = time.time() delay = (now - self.last) if self.last else 0 duration = now - self.start self.last = now if self.unicode: if type(data) != unicode: data = data.decode('utf-8', errors='ignore') if self.rec == 'ttyrec': usec, sec = math.modf(now) usec = int(usec * 10**6) sec = int(sec) self.log.write(struct.pack('<III', sec, usec, len(data)) + data) elif self.rec == 'asciinema': self.log.write(json.dumps([duration, 'o', data])) self.log.write('\n') elif self.rec == 'asciinema1': if delay: self.log.write(',') self.log.write(json.dumps([duration, data])) else: seqs = set() for seqgroups in self.cleaner.finditer(data): seqs.add(seqgroups.groups()[0]) for seq in seqs: data = data.replace(seq, '') self.log.write(data) self.log.flush()
def display(data): print hint_to_text(data)