Source code for denspp.offline.structure_builder

import logging
from os import makedirs
from os.path import exists, join
from shutil import copy

from denspp.offline import get_path_to_project, get_path_to_project_templates
from denspp.offline.data_call.owncloud_handler import OwnCloudDownloader

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 """ OwnCloudDownloader() folder_structure = ["data", "dataset", "runs", "config", "src", "src_pipe"] copy_files = { "main_pipeline.py": "", ".gitignore": "", "README.md": "", "run_tests.py": "", "call_data.py": "src_pipe", "pipeline_plot.py": "src_pipe", "pipeline_v0.py": "src_pipe", } path2start = get_path_to_project(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_training.py": "", "call_dataset.py": folder_start, "example_model.py": join(folder_start, "models"), } # --- Generation process path2start = get_path_to_project(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)