Support slash notation for BlendPath

This mimicks the slash notation of pathlib.Path
This commit is contained in:
Sybren A. Stüvel
2018-02-27 17:29:44 +01:00
parent 15cd74cda4
commit 6b9c0a3f95
2 changed files with 22 additions and 0 deletions
+13
View File
@@ -25,6 +25,19 @@ class BlendPath(bytes):
"""
return self.decode('utf8', errors='replace')
def __truediv__(self, subpath: bytes):
"""Slash notation like pathlib.Path."""
sub = BlendPath(subpath)
if sub.is_absolute():
raise ValueError("'a / b' only works when 'b' is a relative path")
return BlendPath(os.path.join(self, sub))
def __rtruediv__(self, parentpath: bytes):
"""Slash notation like pathlib.Path."""
if self.is_absolute():
raise ValueError("'a / b' only works when 'b' is a relative path")
return BlendPath(os.path.join(parentpath, self))
def is_blendfile_relative(self) -> bool:
return self[:2] == b'//'