Files
LazyPathResolve/lazyPathResolve/__init__.py
dennisgunia 31f8da7444 first commit
2021-02-03 19:18:04 +01:00

24 lines
709 B
Python

class RelPathInavlid(Exception):
"""Raised when the relative path is invalid"""
pass
def resolvePathUNIX(abs, rel):
newPath = ''
if rel[0:2] == './':
newPath = abs + rel[1:]
elif rel[0:3] == '../':
absSegs = abs.split("/")
relSegs = rel.split("/")
backLevels = sum(x == ".." for x in relSegs)
if backLevels >= len(absSegs):
raise RelPathInavlid
newPathArr = absSegs[1:(backLevels * -1)]
for relLevel in relSegs:
if relLevel != '..':
newPathArr.append(relLevel)
for lvl in newPathArr:
newPath = newPath + '/' + lvl
else:
raise RelPathInavlid
return newPath