예제 #1
0
 def test_get_folders(self):
     # make some folders with names.txts
     os.mkdir('folder_1')
     open(os.path.join('folder_1', 'names.txt'), 'w').close()
     os.mkdir('folder_2')
     open(os.path.join('folder_2', 'names.txt'), 'w').close()
     folders = stools.getFolders()
     self.assertTrue('folder_1' in folders)
     self.assertTrue('folder_2' in folders)
     shutil.rmtree('folder_1')
     shutil.rmtree('folder_2')
예제 #2
0
 def test_get_folders(self):
     # make some folders with names.txts
     os.mkdir('folder_1')
     open(os.path.join('folder_1', 'names.txt'), 'w').close()
     os.mkdir('folder_2')
     open(os.path.join('folder_2', 'names.txt'), 'w').close()
     folders = stools.getFolders()
     self.assertTrue('folder_1' in folders)
     self.assertTrue('folder_2' in folders)
     shutil.rmtree('folder_1')
     shutil.rmtree('folder_2')
예제 #3
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()