summaryrefslogtreecommitdiff
path: root/fs/path.py
diff options
context:
space:
mode:
authorwillmcgugan <willmcgugan@67cdc799-7952-0410-af00-57a81ceafa0f>2009-11-29 12:43:32 +0000
committerwillmcgugan <willmcgugan@67cdc799-7952-0410-af00-57a81ceafa0f>2009-11-29 12:43:32 +0000
commit8032bf16fedd63a8e2e70b7a82a68799b031ca72 (patch)
tree9c4e8a7eef2feaecc1ff828ea424d6852ee2cae7 /fs/path.py
parentc391f938bd232386d8698ed9a8573afead442022 (diff)
downloadpyfilesystem-8032bf16fedd63a8e2e70b7a82a68799b031ca72.tar.gz
Some fixes
git-svn-id: http://pyfilesystem.googlecode.com/svn/trunk@288 67cdc799-7952-0410-af00-57a81ceafa0f
Diffstat (limited to 'fs/path.py')
-rw-r--r--fs/path.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/fs/path.py b/fs/path.py
index 17731c2..4cdb873 100644
--- a/fs/path.py
+++ b/fs/path.py
@@ -178,7 +178,7 @@ def issamedir(path1, path2):
return pathsplit(normpath(path1))[0] == pathsplit(normpath(path2))[0]
-def isprefix(path1,path2):
+def isprefix(path1, path2):
"""Return true is path1 is a prefix of path2.
>>> isprefix("foo/bar", "foo/bar/spam.txt")
@@ -203,6 +203,20 @@ def isprefix(path1,path2):
return True
def forcedir(path):
+ """Ensure the path ends with a trailing /
+
+ >>> forcedir("foo/bar")
+ 'foo/bar/'
+ >>> forcedir("foo/bar/")
+ 'foo/bar/'
+
+ """
+
if not path.endswith('/'):
return path + '/'
return path
+
+def frombase(path1, path2):
+ if not isprefix(path1, path2):
+ raise ValueError("path1 must be a prefix of path2")
+ return path2[len(path1):]