From b224ed519d23052b043e0be051ceff443ee2134b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Fri, 9 Mar 2018 08:37:08 +0100 Subject: [PATCH] Add support to FileManager to change working directory --- lib/tfw/components/source_code_event_handler.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/tfw/components/source_code_event_handler.py b/lib/tfw/components/source_code_event_handler.py index c7269d0..b780c98 100644 --- a/lib/tfw/components/source_code_event_handler.py +++ b/lib/tfw/components/source_code_event_handler.py @@ -1,4 +1,4 @@ -from os.path import isfile, join, relpath +from os.path import isfile, join, relpath, exists, isdir from glob import glob from tfw.event_handler_base import TriggerlessEventHandler @@ -11,9 +11,20 @@ log = logging.getLogger(__name__) class FileManager: def __init__(self, working_directory, selected_file=None): self.exclude = ['__pycache__'] - self._workdir = working_directory + self._workdir = None + self.workdir = working_directory self.filename = selected_file or self.files[0] + @property + def workdir(self): + return self._workdir + + @workdir.setter + def workdir(self, directory): + if not exists(directory) or not isdir(directory): + raise EnvironmentError('"{}" is not a directory!'.format(directory)) + self._workdir = directory + def select_file(self, filename): if not filename in self.files: raise EnvironmentError('No such file in workdir!')