Skip to content

Instantly share code, notes, and snippets.

@aheadley
Created March 30, 2012 20:22
Show Gist options
  • Save aheadley/2254713 to your computer and use it in GitHub Desktop.
Save aheadley/2254713 to your computer and use it in GitHub Desktop.
from overviewer_core.observer import Observer
import os
class AnnouncingObserver(Observer):
def __init__(self):
self.handle = open('/full/path/to/input_command', 'w')
super(AnnouncingObserver,self).__init__()
def finish(self):
self.handle.write("say Rendered %d of %d. %d%% complete\n" % (self.get_max_value(), self.get_max_value(), 100.0))
self.handle.flush()
super(AnnouncingObserver, self).finish()
self.handle.close()
def update(self, current_value):
super(AnnouncingObserver, self).update(current_value)
if self._need_update():
self.handle.write("say Rendered %d of %d. %d%% complete\n" % (self.get_current_value(), self.get_max_value(), self.get_percentage()))
self.handle.flush()
self.last_update = current_value
return True
return False
def _need_update(self):
return (self.get_current_value() * 100.0 / self.get_max_value()) - (self.last_update * 100.0 / self.get_max_value()) >= 20.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment