class Spectacle: def __init__(self, path): self.path = path self.source, self.sink = Pipe() self.events = { 'reading': Event() } if self.path is '': self.reader = HackRFIO(self.source, self.events) else: self.reader = FileIO(self.path, self.source, self.events) self.reader.start() self.periodogram = Periodogram(self.sink, self.events) self.periodogram.start() try: self.reader.join() self.periodogram.join() except KeyboardInterrupt: self.reader.terminate() self.periodogram.terminate()