diff --git a/grabbit/core.py b/grabbit/core.py index 04e2a0c..ffc5b72 100644 --- a/grabbit/core.py +++ b/grabbit/core.py @@ -104,8 +104,10 @@ def as_named_tuple(self): "representing a File as a namedtuple. Replacing " "entities %s with safe versions %s." % (keys, safe)) entities = dict(zip(keys, self.entities.values())) - _File = namedtuple('File', 'filename ' + ' '.join(entities.keys())) - return _File(filename=self.path, **entities) + _FileTuple = namedtuple('FileTuple', 'path filename dirname ' + ' '.join(entities.keys())) + return _FileTuple(path=self.path, + filename=self.filename, dirname=self.dirname, + **entities) def copy(self, path_patterns, symbolic_link=False, root=None, conflicts='fail'): diff --git a/grabbit/tests/test_core.py b/grabbit/tests/test_core.py index 29eb02a..36283f3 100644 --- a/grabbit/tests/test_core.py +++ b/grabbit/tests/test_core.py @@ -84,7 +84,7 @@ def test_named_tuple(self, file): file = copy(file) file.tags = {'attrA': Tag(None, 'apple'), 'attrB': Tag(None, 'banana')} tup = file.as_named_tuple() - assert(tup.filename == file.path) + assert(tup.path == file.path) assert isinstance(tup, tuple) assert not hasattr(tup, 'task') assert tup.attrA == 'apple' @@ -203,12 +203,13 @@ def test_absolute_paths(self, bids_layout): layout = Layout([(root, config)], absolute_paths=True) result = layout.get(subject=1, run=1, session=1) assert result - assert all([os.path.isabs(f.filename) for f in result]) + assert all([os.path.isabs(f.path) for f in result]) + assert not any([os.path.isabs(f.filename) for f in result]) layout = Layout([(root, config)], absolute_paths=False) result = layout.get(subject=1, run=1, session=1) assert result - assert not any([os.path.isabs(f.filename) for f in result]) + assert not any([os.path.isabs(f.path) for f in result]) # Should always be absolute paths on HDFS else: