Extract Location into separate file

This commit is contained in:
Joscha
2020-04-23 17:38:28 +00:00
parent f3f4be2690
commit 5ef5a56e69
5 changed files with 41 additions and 38 deletions

View File

@ -78,41 +78,6 @@ def prompt_yes_no(question: str, default: Optional[bool] = None) -> bool:
print(wrong_reply)
class ResolveException(Exception):
"""An exception while resolving a file."""
class Location:
"""
An object that has an inherent path.
"""
def __init__(self, path: Path):
self._path = path.resolve()
@property
def path(self) -> Path:
"""
This object's location.
"""
return self._path
def resolve(self, target: Path) -> Path:
"""
Resolve a file relative to the path of this location.
Raises a [ResolveException] if the file is outside the given directory.
"""
absolute_path = self.path.joinpath(target).resolve()
# TODO Make this less inefficient
if self.path not in absolute_path.parents:
raise ResolveException(f"Path {target} is not inside directory {self.path}")
return absolute_path
class PrettyLogger:
"""
A logger that prints some specially formatted log messages in color.