Source code for smif.controller.setup
import logging
import os
import shutil
from importlib import resources
[docs]
def copy_project_folder(directory):
"""Creates folder structure in the target directory
Parameters
----------
directory:
Location where the sample project should be copied to
"""
_recursive_overwrite("smif", "sample_project", directory)
if directory == ".":
dirname = "the current directory"
else:
dirname = directory
logging.info("Created sample project in %s", dirname)
def _recursive_overwrite(pkg: str, src: str, dest: str):
if resources.files(pkg).joinpath(src).is_dir():
if not os.path.isdir(dest):
os.makedirs(dest)
contents = resources.files(pkg).joinpath(src).iterdir()
for item in contents:
_recursive_overwrite(pkg, os.path.join(src, item.name), os.path.join(dest, item.name))
else:
filename = resources.files(pkg) / src
with resources.as_file(filename) as path:
shutil.copyfile(path, dest)