Example #1
0
 def test_log_message(self):
     # not much to test here ...
     logger = logging.getLogger('a_logger')
     res = stools.logMessage(phase='program-start',
                             logger=logger,
                             folders=['a'])
     self.assertIsNone(res)
Example #2
0
def main(restart, retry, email, threads, verbose, debug, stages, base_logger):
    '''Run pG-lt'''
    # setup folder to hold pickled args
    temp_dir = os.path.join(os.getcwd(), 'tempfiles')
    if not os.path.isdir(temp_dir):
        os.mkdir(temp_dir)
    argspath = os.path.join(temp_dir, 'arguments.p')
    if restart:
        if not os.path.isfile(argspath):
            sys.exit('Cannot restart, are you sure you have already run \
pG-lt?')
        stools.logMessage('program-restart', logger=base_logger, retry=retry)
        with open(argspath, 'r') as file:
            nworkers, threads_per_worker, folders, email, threads, verbose,\
                debug, stages = pickle.load(file)
        runner = Runner(folders=folders, nworkers=nworkers, stages=stages,
                        threads_per_worker=threads_per_worker, wd=os.getcwd(),
                        email=email, verbose=verbose, debug=debug,
                        logger=base_logger, retry=retry)
    else:
        if verbose:
            stools.printHeader()
        # search cwd for folders that contain names and parameter files
        folders = stools.getFolders()
        # calculate nworkers
        nworkers, threads_per_worker, spare_threads =\
            stools.calcWorkers(threads=threads, nfolders=len(folders))
        # start message
        stools.logMessage('program-start', logger=base_logger, folders=folders,
                          threads=threads_per_worker*nworkers, stages=stages,
                          spare_threads=spare_threads, email=email)
        # setup runner
        base_logger.info('Setting up files and folders ....')
        runner = Runner(folders=folders, nworkers=nworkers, stages=stages,
                        threads_per_worker=threads_per_worker, wd=os.getcwd(),
                        email=email, verbose=verbose, debug=debug,
                        logger=base_logger, retry=False)
        runner.setup()
        base_logger.info('Done.')
        # pickle runner for restart
        with open(argspath, 'w') as file:
            pickle.dump((nworkers, threads_per_worker, folders, email,
                         threads, verbose, debug, stages), file)
    # run stages
    runner.run()
Example #3
0
 def run(self):
     """Run stages across folders"""
     for stage in self.stages:
         if self.retry or not check(stage=stage):
             logMessage("stage-start", logger=self.logger, stage=stage)
             self._runstage(folders=self.folders, stage=stage)
             clock(stage=stage)  # clock stage for all folders
             logMessage("stage-end", logger=self.logger, stage=stage, counter=self.counter)
         self.counter = 0
     logMessage("program-end", logger=self.logger)
Example #4
0
 def run(self):
     '''Run stages across folders'''
     for stage in self.stages:
         if self.retry or not check(stage=stage):
             logMessage('stage-start', logger=self.logger, stage=stage)
             self._runstage(folders=self.folders, stage=stage)
             clock(stage=stage)  # clock stage for all folders
             logMessage('stage-end',
                        logger=self.logger,
                        stage=stage,
                        counter=self.counter)
         self.counter = 0
     logMessage('program-end', logger=self.logger)
Example #5
0
 def test_log_message(self):
     # not much to test here ...
     logger = logging.getLogger('a_logger')
     res = stools.logMessage(phase='program-start', logger=logger,
                             folders=['a'])
     self.assertIsNone(res)