From 6bb3dd4d9c31841e076455c0390103055f08c505 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Thu, 19 Sep 2019 09:15:50 +0100
Subject: [PATCH] MNT: Fix invalid escape sequences

---
 fsl/utils/filetree/parse.py |  4 ++--
 fsl/utils/filetree/utils.py | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/fsl/utils/filetree/parse.py b/fsl/utils/filetree/parse.py
index 409a358bf..acfa68d17 100644
--- a/fsl/utils/filetree/parse.py
+++ b/fsl/utils/filetree/parse.py
@@ -77,7 +77,7 @@ def read_line(line: str) -> Tuple[int, PurePath, str]:
     """
     Parses line from the tree file
 
-    :param line: input line from a \*.tree file
+    :param line: input line from a ``*.tree`` file
     :return: Tuple with:
 
         - number of spaces in front of the name
@@ -105,7 +105,7 @@ def read_subtree_line(line: str, directory: str) -> Tuple[int, "filetree.FileTre
     """
     Parses the line defining a sub_tree
 
-    :param line: input line from a \*.tree file
+    :param line: input line from a ``*.tree`` file
     :param directory: containing directory
     :return: Tuple with
 
diff --git a/fsl/utils/filetree/utils.py b/fsl/utils/filetree/utils.py
index 0b8292949..11464e935 100644
--- a/fsl/utils/filetree/utils.py
+++ b/fsl/utils/filetree/utils.py
@@ -98,7 +98,7 @@ def resolve_optionals(text):
         else:
             return ''
 
-    res = [resolve_single_optional(text) for text in re.split('(\[.*?\])', text)]
+    res = [resolve_single_optional(text) for text in re.split(r'(\[.*?\])', text)]
     return ''.join(res)
 
 
@@ -109,7 +109,7 @@ def find_variables(template):
     :param template: full template
     :return: sequence of variables
     """
-    return tuple(var.split(':')[0] for var in re.findall("\{(.*?)\}", template))
+    return tuple(var.split(':')[0] for var in re.findall(r"\{(.*?)\}", template))
 
 
 def optional_variables(template):
@@ -121,7 +121,7 @@ def optional_variables(template):
     """
     include = set()
     exclude = set()
-    for text in re.split('(\[.*?\])', template):
+    for text in re.split(r'(\[.*?\])', template):
         if len(text) == 0:
             continue
         variables = find_variables(text)
@@ -152,13 +152,13 @@ def extract_variables(template, filename, known_vars=None):
         sub_re = resolve_optionals(fill_known(
                 template,
                 dict(
-                        **{var: '(\S+)' for k, var in zip(keep, optional) if k},
-                        **{var: '(\S+)' for var in remaining.difference(optional)}
+                        **{var: r'(\S+)' for k, var in zip(keep, optional) if k},
+                        **{var: r'(\S+)' for var in remaining.difference(optional)}
                 )
         ))
         while '//' in sub_re:
             sub_re = sub_re.replace('//', '/')
-        sub_re = sub_re.replace('.', '\.')
+        sub_re = sub_re.replace('.', r'\.')
         if re.match(sub_re, filename) is None:
             continue
 
-- 
GitLab