Exemple #1
0
 def initialize(self, **kwargs):
     """Initializes all the units belonging to this Workflow, in dependency
     order.
     """
     try:
         snapshot = kwargs["snapshot"]
     except KeyError:
         raise from_none(
             KeyError(
                 "\"snapshot\" (True/False) must be provided in kwargs"))
     units_number = len(self)
     fin_text = "%d units were initialized" % units_number
     maxlen = max([len(u.name) for u in self] + [len(fin_text)])
     if not self.is_standalone:
         self.verify_interface(IDistributable)
     progress = ProgressBar(
         maxval=units_number,
         term_width=min(80,
                        len(self) + 8 + maxlen),
         widgets=[Percentage(), ' ',
                  Bar(), ' ', ' ' * maxlen],
         poll=0)
     progress.widgets[0].TIME_SENSITIVE = True
     self.info("Initializing units in %s...", self.name)
     progress.start()
     units_in_dependency_order = list(self.units_in_dependency_order)
     iqueue = list(units_in_dependency_order)
     while len(iqueue) > 0:
         unit = iqueue.pop(0)
         # Early abort in case of KeyboardInterrupt
         if self.thread_pool.joined:
             break
         progress.widgets[-1] = unit.name + ' ' * (maxlen - len(unit.name))
         progress.update()
         if not self.is_standalone:
             unit.verify_interface(IDistributable)
         try:
             partially = unit.initialize(**kwargs)
         except:
             self.error("Unit \"%s\" failed to initialize", unit.name)
             raise
         if partially:
             iqueue.append(unit)
         else:
             if snapshot and not unit._remembers_gates:
                 unit.close_gate()
                 unit.close_upstream()
             progress.inc()
     progress.widgets[-1] = fin_text + ' ' * (maxlen - len(fin_text))
     progress.finish()
     initialized_units_number = len(units_in_dependency_order)
     if initialized_units_number < units_number:
         self.warning("Not all units were initialized (%d left): %s",
                      units_number - initialized_units_number,
                      set(self) - set(units_in_dependency_order))
Exemple #2
0
 def initialize(self, **kwargs):
     """Initializes all the units belonging to this Workflow, in dependency
     order.
     """
     try:
         snapshot = kwargs["snapshot"]
     except KeyError:
         raise from_none(KeyError(
             "\"snapshot\" (True/False) must be provided in kwargs"))
     units_number = len(self)
     fin_text = "%d units were initialized" % units_number
     maxlen = max([len(u.name) for u in self] + [len(fin_text)])
     if not self.is_standalone:
         self.verify_interface(IDistributable)
     progress = ProgressBar(maxval=units_number,
                            term_width=min(80, len(self) + 8 + maxlen),
                            widgets=[Percentage(), ' ', Bar(), ' ',
                                     ' ' * maxlen], poll=0)
     progress.widgets[0].TIME_SENSITIVE = True
     self.info("Initializing units in %s...", self.name)
     progress.start()
     units_in_dependency_order = list(self.units_in_dependency_order)
     iqueue = list(units_in_dependency_order)
     while len(iqueue) > 0:
         unit = iqueue.pop(0)
         # Early abort in case of KeyboardInterrupt
         if self.thread_pool.joined:
             break
         progress.widgets[-1] = unit.name + ' ' * (maxlen - len(unit.name))
         progress.update()
         if not self.is_standalone:
             unit.verify_interface(IDistributable)
         try:
             partially = unit.initialize(**kwargs)
         except:
             self.error("Unit \"%s\" failed to initialize", unit.name)
             raise
         if partially:
             iqueue.append(unit)
         else:
             if snapshot and not unit._remembers_gates:
                 unit.close_gate()
                 unit.close_upstream()
             progress.inc()
     progress.widgets[-1] = fin_text + ' ' * (maxlen - len(fin_text))
     progress.finish()
     initialized_units_number = len(units_in_dependency_order)
     if initialized_units_number < units_number:
         self.warning("Not all units were initialized (%d left): %s",
                      units_number - initialized_units_number,
                      set(self) - set(units_in_dependency_order))