Source code for layup_copy_demo_files

import os
import argparse
from pathlib import Path
import shutil
import sys
from importlib.resources import files

from layup.utilities.file_access_utils import find_directory_or_exit
from layup.utilities.layup_demo_commands import print_demo_command


[docs] def copy_demo_files(verb, copy_location, force_overwrite): """ Copies the files needed to run the Sorcha demo to a user-specified location. Parameters ----------- copy_location : string String containing the filepath of the location to which the configuration files should be copied. force_overwrite : boolean Flag for determining whether existing files should be overwritten. Returns ----------- None """ _ = find_directory_or_exit(copy_location, "filepath") # add verb demo specific files here and create the directorys if verb == "orbitfit": demo_data_root = files("layup.data.demo.orbitfit") demo_files = [ "holman_data_working.csv", ] elif verb == "convert": demo_data_root = files("layup.data.demo.convert") demo_files = [ "cent_orbs_kep.csv", ] elif verb == "predict": demo_data_root = files("layup.data.demo.predict") demo_files = [] elif verb == "comet": demo_data_root = files("layup.data.demo.comet") demo_files = ["demo_comet_input.csv"] elif verb == "visualize": demo_data_root = files("layup.data.demo.visualise") demo_files = [] for fn in demo_files: if not force_overwrite and os.path.isfile(os.path.join(copy_location, fn)): sys.exit( "Identically named file exists at location. Re-run with -f or --force to force overwrite." ) demo_path = demo_data_root.joinpath(fn) shutil.copy(demo_path, copy_location) print("Demo files {} copied to {}.".format(demo_files, copy_location)) print_demo_command(verb, printall=False)