From 2211bbd6491d4bfabe4c73aee85abac6834af830 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <MichielCottaar@protonmail.com> Date: Fri, 27 Mar 2020 14:06:24 +0000 Subject: [PATCH] REF: set partial_fill to False again Still using `partial_fill` when creating FileTreeQuery --- fsl/utils/filetree/filetree.py | 2 +- fsl/utils/filetree/query.py | 2 ++ tests/test_filetree/test_read.py | 9 ++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/fsl/utils/filetree/filetree.py b/fsl/utils/filetree/filetree.py index 3159fefa8..44f2b7b15 100644 --- a/fsl/utils/filetree/filetree.py +++ b/fsl/utils/filetree/filetree.py @@ -354,7 +354,7 @@ class FileTree(object): self.variables = {} @classmethod - def read(cls, tree_name: str, directory='.', partial_fill=True, **variables) -> "FileTree": + def read(cls, tree_name: str, directory='.', partial_fill=False, **variables) -> "FileTree": """ Reads a FileTree from a specific file diff --git a/fsl/utils/filetree/query.py b/fsl/utils/filetree/query.py index a2e215c84..d371bcdf3 100644 --- a/fsl/utils/filetree/query.py +++ b/fsl/utils/filetree/query.py @@ -89,6 +89,8 @@ class FileTreeQuery(object): :arg tree: The :class:`.FileTree` object """ + # Hard-code into the templates any pre-defined variables + tree = tree.partial_fill() # Find all files present in the directory # (as Match objects), and find all variables, diff --git a/tests/test_filetree/test_read.py b/tests/test_filetree/test_read.py index 6627969e3..0ceaa5086 100644 --- a/tests/test_filetree/test_read.py +++ b/tests/test_filetree/test_read.py @@ -13,14 +13,21 @@ def same_path(p1, p2): def test_simple_tree(): tree = filetree.FileTree.read('eddy') - assert 'basename' not in tree.variables + assert 'basename' in tree.variables same_path(tree.get('basename'), './eddy_output') same_path(tree.get('image'), './eddy_output.nii.gz') + same_path(tree.update(basename='eddy').get('image'), './eddy.nii.gz') tree = filetree.FileTree.read('eddy.tree', basename='out') + assert 'basename' in tree.variables + same_path(tree.get('basename'), './out') + same_path(tree.update(basename='eddy').get('image'), './eddy.nii.gz') + + tree = filetree.FileTree.read('eddy.tree', basename='out', partial_fill=True) assert 'basename' not in tree.variables same_path(tree.get('basename'), './out') + same_path(tree.update(basename='eddy').get('image'), './out.nii.gz') with pytest.raises(ValueError): filetree.FileTree.read('non_existing') -- GitLab