Make sure that if overwrite is set to False, the input and output folders
    are not set to the same location.

    :param opts: a namespace containing the attributes 'overwrite', 'input',
        and 'output'
    :raises ValidationException: if 'input' and 'output' point to the same
        directory and 'overwrite' is set to False
    :return: True if 'overwrite' is set to True, or 'input'/'output' are
        separate directories

def validate_overwrite_different_input_output(opts):
    """
    Make sure that if overwrite is set to False, the input and output folders
    are not set to the same location.

    :param opts: a namespace containing the attributes 'overwrite', 'input',
        and 'output'
    :raises ValidationException: if 'input' and 'output' point to the same
        directory and 'overwrite' is set to False
    :return: True if 'overwrite' is set to True, or 'input'/'output' are
        separate directories
    """
    if opts.overwrite or path.abspath(opts.input) != path.abspath(opts.output):
        return True
    else:
        raise ValidationException("Input and output directories are the same, "
                                  "but --overwrite / -X flag is not provided.\n"
                                  "Do you want to overwrite your input files? "
                                  "If so, use the following command:\n"
                                  "\tanchorhub -X " + opts.input)