nipy / heudiconv

Flexible DICOM conversion into structured directory layouts
https://heudiconv.readthedocs.io
Other
236 stars 125 forks source link

`heudiconv/tests/test_main.py::test_prepare_for_datalad - AssertionError` on both #679

Open TheChymera opened 1 year ago

TheChymera commented 1 year ago

Summary

Tests fail, full build log → https://ppb.chymera.eu/0a66d8.log

Platform details:

Choose one:

Any ideas what's up? I have =datalad-0.18.3 installed, all other tests pass fine :/

yarikoptic commented 1 year ago

so the actual failed test:

        assert set(ds.repo.get_indexed_files()) == target_files
        # and all are under git
        for f in target_files:
>           assert not ds.repo.is_under_annex(f)

Dataset    = <class 'datalad.distribution.dataset.Dataset'>
ds         = Dataset('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
ds_path    = 'PI/study'
f          = '.bidsignore'
studydir   = PosixPath('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
studydir_  = '/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study'
subdss     = ['PI', 'PI/study']
superds    = Dataset('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0')
target_files = {'.bidsignore',
 '.datalad/.gitattributes',
 '.datalad/config',
 '.gitattributes',
 'CHANGES',
 'README',
 'dataset_description.json',
 'scans.json'}
tmp_path   = PosixPath('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0')

heudiconv/tests/test_main.py:152: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.11/site-packages/datalad/support/gitrepo.py:322: in _wrap_normalize_paths
    result = func(self, files_new, *args, **kwargs)
        args       = ()
        files      = '.bidsignore'
        files_new  = ['.bidsignore']
        func       = <function AnnexRepo.is_under_annex at 0x7fc42a1d5d00>
        kwargs     = {}
        map_filenames_back = False
        match_return_type = True
        normalize  = <function _normalize_path at 0x7fc42bda84a0>
        remap_filenames = <function normalize_paths.<locals>._wrap_normalize_paths.<locals>.<lambda> at 0x7fc41a499a80>
        self       = AnnexRepo('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
        serialize  = False
        single_file = True
/usr/lib/python3.11/site-packages/datalad/support/annexrepo.py:2006: in is_under_annex
    return self._check_files(check, files, batch)
        allow_quick = False
        batch      = False
        check      = <function AnnexRepo.is_under_annex.<locals>.check at 0x7fc41a4999e0>
        files      = ['./.bidsignore']
        self       = AnnexRepo('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
/usr/lib/python3.11/site-packages/datalad/support/annexrepo.py:1951: in _check_files
    annex_res = fn(files, normalize_paths=False, batch=batch)
        batch      = False
        files      = ['./.bidsignore']
        fn         = <function AnnexRepo.is_under_annex.<locals>.check at 0x7fc41a4999e0>
        modified   = []
        pointers   = True
        self       = AnnexRepo('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
/usr/lib/python3.11/site-packages/datalad/support/annexrepo.py:2003: in check
    return self.info([f for f in files if not isdir(f)],
        files      = ['./.bidsignore']
        kwargs     = {'batch': False, 'normalize_paths': False}
        self       = AnnexRepo('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
/usr/lib/python3.11/site-packages/datalad/support/gitrepo.py:330: in _wrap_normalize_paths
    return remap_filenames(result)
        args       = ()
        files      = ['./.bidsignore']
        files_new  = ['./.bidsignore']
        func       = <function AnnexRepo.info at 0x7fc42a1d6a20>
        kwargs     = {'batch': False, 'fast': True}
        map_filenames_back = True
        match_return_type = True
        normalize  = <function normalize_paths.<locals>._wrap_normalize_paths.<locals>.<lambda> at 0x7fc41a36db20>
        remap_filenames = <function normalize_paths.<locals>._wrap_normalize_paths.<locals>.remap_filenames at 0x7fc41a36f060>
        result     = {}
        self       = AnnexRepo('/var/tmp/portage/dev-python/heudiconv-0.13.0/temp/pytest-of-portage/pytest-0/test_prepare_for_datalad0/PI/study')
        serialize  = False
        single_file = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

out = {}

    def remap_filenames(out):
        """Helper to map files back to non-normalized paths"""
        if isinstance(out, dict):
>           assert(len(out) == len(files_new))
E           AssertionError

files      = ['./.bidsignore']
files_new  = ['./.bidsignore']
out        = {}
single_file = False

/usr/lib/python3.11/site-packages/datalad/support/gitrepo.py:305: AssertionError

what version of git-annex is there? (do not see in the log)

TheChymera commented 1 year ago

@yarikoptic =git-annex-10.20230214

yarikoptic commented 6 months ago

@TheChymera Is this outstanding? then let's tackle during some next interactive coworking session.