"""
Source url: https://github.com/OPHoperHPO/image-background-remove-tool
Author: Nikita Selin (OPHoperHPO)[https://github.com/OPHoperHPO].
License: Apache License 2.0
"""
from pathlib import Path
from PIL import Image
import warnings
from typing import Optional


def save_file(output: Optional[Path], input_path: Path, image: Image.Image):
    """
    Saves an image to the file system

    Args:
        output: Output path [dir or end file]
        input_path: Input path of the image
        image: Image to be saved.
    """
    if isinstance(output, Path) and str(output) != "none":
        if output.is_dir() and output.exists():
            image.save(output.joinpath(input_path.with_suffix('.png').name))
        elif output.suffix != '':
            if output.suffix != ".png":
                warnings.warn(f"Only export with .png extension is supported! Your {output.suffix}"
                              f" extension will be ignored and replaced with .png!")
            image.save(output.with_suffix('.png'))
        else:
            raise ValueError("Wrong output path!")
    elif output is None or str(output) == "none":
        image.save(input_path.with_name(input_path.stem.split('.')[0] + '_bg_removed').with_suffix('.png'))
