| #!/usr/bin/env python3 | |
| import os | |
| import os.path | |
| def normpath(p, to=None): | |
| p = os.path.realpath(os.path.abspath(p)) | |
| if to is None: | |
| return p | |
| return os.path.relpath(p, normpath(to)) | |
| def curpath(p): | |
| return normpath(p, os.curdir) | |
| def modfile(p, pattern): | |
| assert "{}" not in p | |
| filename = os.path.basename(p) | |
| pathname = os.path.dirname(p) | |
| newfilename = pattern.format(filename) | |
| while newfilename.startswith(".."): | |
| newfilename = newfilename[1:] | |
| newpath = os.path.join(pathname, newfilename) | |
| return newpath |