Created
September 27, 2013 16:03
-
-
Save schettino72/6730907 to your computer and use it in GitHub Desktop.
doit progress bar demo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from pyterm import Term | |
from sample_bar import ProgressBar | |
from doit.reporter import ConsoleReporter | |
class ProgressReporter(ConsoleReporter): | |
"""use some colors in the report""" | |
def __init__(self, outstream, options): | |
ConsoleReporter.__init__(self, outstream, options) | |
self.term = Term() | |
self.prog_bar = ProgressBar(self.term, 'Nikola - building site') | |
self._prog = 0 # number of tasks executed | |
self._total_tasks = None | |
def initialize(self, tasks): | |
self._total_tasks = len([t for t in tasks if t.startswith('post:')]) | |
def execute_task(self, task): | |
self.prog_bar.update(self._prog/float(self._total_tasks), task.name) | |
def add_success(self, task): | |
if task.name.startswith('post:'): | |
self._prog += 1 | |
self.prog_bar.update(self._prog/float(self._total_tasks), task.name) | |
DOIT_CONFIG = { | |
'reporter': ProgressReporter, | |
'verbosity': 1, | |
} | |
def task_init(): | |
return {'actions': ['sleep 1']} | |
def task_post(): | |
for x in range(5): | |
yield {'name': str(x), | |
'actions': ['echo out %d' % x, 'sleep 1']} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -r 5f9fb17b49cc doit/runner.py | |
--- a/doit/runner.py Fri Sep 27 19:09:13 2013 +0700 | |
+++ b/doit/runner.py Fri Sep 27 22:46:36 2013 +0700 | |
@@ -232,6 +232,8 @@ | |
@ivar task_dispatcher (TaskDispatcher) | |
""" | |
try: | |
+ if hasattr(self.reporter, 'initialize'): | |
+ self.reporter.initialize(task_dispatcher.tasks) | |
self.run_tasks(task_dispatcher) | |
except InvalidTask as exception: | |
self.reporter.runtime_error(str(exception)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment