Source code for model_package.peta

#! /usr/bin/env python

import sys
import os
import pathlib
import argparse
import subprocess

from model_package.DNS_Ratel import simulation_variables_nominal


[docs] def peta_copy(source_directory, output_directory): '''Copy DNS results from the CU Peta library to the output directory :param str source_directory: The source directory of DNS simulation results :param str output_directory: The output directory destination ''' source_files = simulation_variables_nominal.I41_02['DNS_files'] + \ [simulation_variables_nominal.I41_02['DNS_forces']] + \ simulation_variables_nominal.F83['DNS_files'] + \ simulation_variables_nominal.additional_files # Create source directory if it doesn't exist if os.path.exists(output_directory) == False: os.makedirs(output_directory) # Get user's CU username username = input("Enter your CU identikey: ") # Build single command to copy all files at once sources = [] for file in source_files: dest_file = f"{output_directory}/{file.split('/')[-1]}" if os.path.isfile(dest_file) == False: sources.append(f'{source_directory}/{file}') else: print(f'{output_directory}/{dest_file} already exists!') file_string=f"{username}@login.rc.colorado.edu:" + '{' + f"{','.join(sources)}" + '}' # Transfer files full_command = ["scp", "-P", "22", file_string, f'{output_directory}/.'] p = subprocess.Popen(full_command) sts = os.waitpid(p.pid, 0) return 0
def get_parser(): script_name = pathlib.Path(__file__) cli_description = "Copy DNS results from the CU Peta library to the output directory" parser = argparse.ArgumentParser(description=cli_description) parser.add_argument('--source-directory', type=str, required=True, help="The source directory of DNS simulation results") parser.add_argument('--output-directory', type=pathlib.Path, required=True, help="The output directory destination.") return parser if __name__ == "__main__": parser = get_parser() args = parser.parse_args() sys.exit(peta_copy(source_directory=args.source_directory, output_directory=args.output_directory, ))