From d31cbb732f7458cd8d3a3f855025aafc0d0efbfa Mon Sep 17 00:00:00 2001 From: Ludvig Kihlman Date: Thu, 11 Jun 2020 15:16:29 +0100 Subject: [PATCH] Make format_path behave the same for absolute paths with and without escape=True --- nbgrader/coursedir.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbgrader/coursedir.py b/nbgrader/coursedir.py index 292fdf561..abcadc558 100644 --- a/nbgrader/coursedir.py +++ b/nbgrader/coursedir.py @@ -276,9 +276,12 @@ def format_path(self, nbgrader_step: str, student_id: str, assignment_id: str, e ) if escape: - base = re.escape(self.root) structure = [x.format(**kwargs) for x in full_split(self.directory_structure)] - path = re.escape(os.path.sep).join([base] + structure) + if len(structure) == 0 or not structure[0].startswith(os.sep): + base = [re.escape(self.root)] + else: + base = [] + path = re.escape(os.path.sep).join(base + structure) else: path = os.path.join(self.root, self.directory_structure.format(**kwargs))