Source code for denspp.offline.structure_builder

import logging
from os import makedirs
from os.path import join, exists
from shutil import copy
from denspp.offline import get_path_to_project_templates, get_path_to_project_start


logger = logging.getLogger(__name__)


[docs] def copy_template_files(copy_files: dict, path2start: str) -> None: """Function for copying template files to new folder. :param copy_files: Dictionary of file paths to copy :param path2start: Path to start folder :return: None """ path2temp = get_path_to_project_templates() for file_name, folder_name in copy_files.items(): src = join(path2temp, file_name) dst = join(path2start, folder_name) makedirs(dst, exist_ok=True) if not exists(join(dst, file_name)): copy(src=src, dst=dst) logger.debug(f"Copy file from: {src} - to: {dst}")
[docs] def init_project_folder(new_folder: str = '') -> None: """Generating folder structure in first run :param new_folder: Name of the new folder to create (test case) :return: None """ folder_structure = ['data', 'dataset', 'runs', 'config', 'src', 'src_pipe'] copy_files = {'main_pipeline.py': '', 'template_test0.py': '', '.gitignore': '', 'run_tests.py': '', 'call_data.py': 'src_pipe', 'pipeline_plot.py': 'src_pipe', 'pipeline_norm_v0.py': 'src_pipe', 'pipeline_merge_v0.py': 'src_pipe'} path2start = get_path_to_project_start(new_folder) makedirs(path2start, exist_ok=True) for folder_name in folder_structure: makedirs(join(path2start, folder_name), exist_ok=True) if not exists(join(path2start, folder_name)): logger.debug(f"Creating template folder: {folder_name}") copy_template_files(copy_files, path2start) init_dnn_folder(new_folder=new_folder)
[docs] def init_dnn_folder(new_folder: str = '') -> None: """Generating a handler dummy for training neural networks :param new_folder: Name of the new folder to create (test case) :return: None """ folder_start = 'src_dnn' folder_structure = ['models', 'dataset'] copy_files = {'main_dnn_train.py': '', 'call_dataset.py': folder_start, 'example_model.py': join(folder_start, 'models')} # --- Generation process path2start = get_path_to_project_start(new_folder) for folder_name in folder_structure: makedirs(join(path2start, folder_start, folder_name), exist_ok=True) if not exists(path2start): logger.debug(f"Creating template folder: {folder_name}") copy_template_files(copy_files, path2start)