Source code for aiida_vasp.utils.general
"""
General utils.
Contains general utils that is not directly coupled to the plugin or AiiDA.
"""
from __future__ import annotations
import os
import shutil
from typing import Callable
[docs]
def copytree(
src: str,
dst: str,
symlinks: bool = False,
ignore: Callable[[str, list[str]], list[str]] | None = None,
) -> None:
"""
Fixes annoying complaint about existing directory running tests
In Python 3.8 there is a flag for shutil.copytree that handles this,
but we still support 3.6 and 3.7.
"""
for item in os.listdir(src):
source = os.path.join(src, item)
destination = os.path.join(dst, item)
if os.path.isdir(source):
shutil.copytree(source, destination, symlinks, ignore)
else:
shutil.copy2(source, destination)