Source code for denspp.offline.structure_builder

import logging
from pathlib import Path
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: Path) -> 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 = path2temp / file_name dst = path2start / folder_name dst.mkdir(exist_ok=True, parents=True) if not (dst / file_name).exists(): 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 = { ".gitignore": "", "README.md": "", "run_tests.py": "", "run_pipeline.py": "", "call_data.py": "src_pipe", "pipeline_plot.py": "src_pipe", "pipeline_v0.py": "src_pipe", } path2start = get_path_to_project(new_folder) path2start.mkdir(parents=True, exist_ok=True) for folder_name in folder_structure: (path2start / folder_name).mkdir(parents=True, exist_ok=True) if not (path2start / folder_name).exists(): logger.debug(f"Creating template folder: {folder_name}") copy_template_files(copy_files=copy_files, path2start=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 = { "run_training.py": "", "call_dataset.py": folder_start, "example_model.py": f"{folder_start}/models", } # --- Generation process path2start = get_path_to_project(new_folder) for folder_name in folder_structure: (path2start / folder_start / folder_name).mkdir(parents=True, exist_ok=True) if not path2start.exists(): logger.debug(f"Creating template folder: {folder_name}") copy_template_files(copy_files=copy_files, path2start=path2start)