def rel_source(src: str) -> str:
    subdir = os.path.abspath(os.path.join(self.sourcedir, target['subdir']))
    if os.path.isabs(src):
        return os.path.relpath(src, subdir)
    elif (not os.path.exists(src)):
        return src
    return os.path.relpath(os.path.abspath(src), subdir)
def rel_source(src: str) -> str:
    subdir = os.path.abspath(os.path.join(self.sourcedir, target['subdir']))
    if os.path.isabs(src):
        return os.path.relpath(src, subdir)
    elif (not os.path.exists(src)):
        return src
    return os.path.relpath(os.path.abspath(src), subdir)