def test_lt(tmp_crumb): tst1 = tmp_crumb < tmp_crumb tst2 = tmp_crumb.path < tmp_crumb.path assert (not tst1) assert tst1 == tst2 tmp_crumb2 = Crumb.copy(tmp_crumb) tst1 = tmp_crumb2 < tmp_crumb2 tst2 = tmp_crumb2.path < tmp_crumb2.path assert (not tst1) assert tst1 == tst2 tmp_crumb2 = tmp_crumb2.joinpath('hansel') tst1 = tmp_crumb2 < tmp_crumb2 tst2 = tmp_crumb2.path < tmp_crumb2.path assert (not tst1) assert tst1 == tst2 tmp_crumb._path = os.path.sep + 'aaalex' + tmp_crumb2._path tst1 = tmp_crumb < tmp_crumb2 tst2 = tmp_crumb._path < tmp_crumb2._path assert (tst1) assert tst1 == tst2 tmp_crumb._path = os.path.sep + 'zealous' + tmp_crumb2._path tst1 = tmp_crumb < tmp_crumb2 tst2 = tmp_crumb._path < tmp_crumb2._path assert (not tst1) assert tst1 == tst2 assert tmp_crumb >= tmp_crumb2 assert not tmp_crumb <= tmp_crumb2 assert tmp_crumb > tmp_crumb2 assert not tmp_crumb < tmp_crumb2
def test_lt(tmp_crumb): tst1 = tmp_crumb < tmp_crumb tst2 = tmp_crumb.path < tmp_crumb.path assert(not tst1) assert tst1 == tst2 tmp_crumb2 = Crumb.copy(tmp_crumb) tst1 = tmp_crumb2 < tmp_crumb2 tst2 = tmp_crumb2.path < tmp_crumb2.path assert(not tst1) assert tst1 == tst2 tmp_crumb2 = tmp_crumb2.joinpath('hansel') tst1 = tmp_crumb2 < tmp_crumb2 tst2 = tmp_crumb2.path < tmp_crumb2.path assert(not tst1) assert tst1 == tst2 tmp_crumb._path = op.sep + 'aaalex' + tmp_crumb2._path tst1 = tmp_crumb < tmp_crumb2 tst2 = tmp_crumb._path < tmp_crumb2._path assert(tst1) assert tst1 == tst2 tmp_crumb._path = op.sep + 'zealous' + tmp_crumb2._path tst1 = tmp_crumb < tmp_crumb2 tst2 = tmp_crumb._path < tmp_crumb2._path assert(not tst1) assert tst1 == tst2 assert tmp_crumb >= tmp_crumb2 assert not tmp_crumb <= tmp_crumb2 assert tmp_crumb > tmp_crumb2 assert not tmp_crumb < tmp_crumb2
def test_regex(tmp_crumb): assert not op.exists(tmp_crumb.path) values_dict = {'session_id': ['session_{:02}'.format(i) for i in range( 2)], 'subject_id': ['subj_{:03}'.format(i) for i in range(100)], 'modality': ['anat'], 'image': ['mprage1.nii'], } _ = mktree(tmp_crumb, list(ParameterGrid(values_dict))) crumb = Crumb(tmp_crumb.path.replace('{subject_id}', '{subject_id:^subj_02.*$}'), regex='re') # re.match re_subj_ids = crumb['subject_id'] assert re_subj_ids == ['subj_{:03}'.format(i) for i in range(20, 30)] assert crumb.ls('subject_id:^subj_02.*$') == crumb.ls('subject_id') crumb = Crumb(tmp_crumb.path.replace('{subject_id}', '{subject_id:subj_02*}'), regex='fnmatch') # fnmatch fn_subj_ids = crumb['subject_id'] assert fn_subj_ids == re_subj_ids cr_bkp = crumb.copy() assert crumb.ls('subject_id:subj_02*') == crumb.ls('subject_id') assert crumb['subject_id'][0] == crumb.get_first('subject_id') assert crumb.patterns['subject_id'] == cr_bkp.patterns['subject_id'] assert not crumb.ls('subject_id:subj_03*') == crumb.ls('subject_id') assert crumb.patterns['subject_id'] == cr_bkp.patterns['subject_id'] pytest.raises(ValueError, Crumb, tmp_crumb.path.replace('{subject_id}', '{subject_id:subj_02*}'), regex='hansel') crumb2 = Crumb.copy(crumb) assert crumb2._re_method == crumb._re_method assert crumb2._re_args == crumb._re_args assert crumb2.patterns == crumb.patterns assert len(crumb2.patterns) == 1 assert 'subject_id' in crumb2.patterns.keys()
def test_regex(tmp_crumb): assert not os.path.exists(tmp_crumb.path) values_dict = { 'session_id': ['session_{:02}'.format(i) for i in range(2)], 'subject_id': ['subj_{:03}'.format(i) for i in range(100)], 'modality': ['anat'], 'image': ['mprage1.nii'], } mktree(tmp_crumb, list(ParameterGrid(values_dict))) crumb = Crumb(tmp_crumb.path.replace('{subject_id}', '{subject_id:^subj_02.*$}'), regex='re') # re.match re_subj_ids = crumb['subject_id'] assert re_subj_ids == ['subj_{:03}'.format(i) for i in range(20, 30)] assert crumb.ls('subject_id:^subj_02.*$') == crumb.ls('subject_id') crumb = Crumb(tmp_crumb.path.replace('{subject_id}', '{subject_id:subj_02*}'), regex='fnmatch') # fnmatch fn_subj_ids = crumb['subject_id'] assert fn_subj_ids == re_subj_ids cr_bkp = crumb.copy() assert crumb.ls('subject_id:subj_02*') == crumb.ls('subject_id') assert crumb['subject_id'][0] == crumb.get_first('subject_id') assert crumb.patterns['subject_id'] == cr_bkp.patterns['subject_id'] assert not crumb.ls('subject_id:subj_03*') == crumb.ls('subject_id') assert crumb.patterns['subject_id'] == cr_bkp.patterns['subject_id'] pytest.raises(ValueError, Crumb, tmp_crumb.path.replace('{subject_id}', '{subject_id:subj_02*}'), regex='hansel') crumb2 = Crumb.copy(crumb) assert crumb2._re_method == crumb._re_method assert crumb2._re_args == crumb._re_args assert crumb2.patterns == crumb.patterns assert len(crumb2.patterns) == 1 assert 'subject_id' in crumb2.patterns.keys()
def test_copy(crumb): copy = Crumb.copy(crumb) assert crumb is not copy assert crumb == copy copy2 = crumb.copy() assert crumb is not copy2 assert crumb == copy2 assert copy is not copy2 pytest.raises(TypeError, crumb.copy, {})
def test_copy(crumb): copy = Crumb.copy(crumb) assert crumb is not copy assert crumb == copy copy2 = crumb.copy() assert crumb is not copy2 assert crumb == copy2 assert copy is not copy2 pytest.raises(TypeError, crumb.copy, {})
def _crumb_fill_dst( src_crumb: hansel.Crumb, dst_crumb: hansel.Crumb ) -> Iterator[Tuple[hansel.Crumb, hansel.Crumb]]: """ Will list `src_crumb` and copy the resulting item arguments into `dst_crumb`. All the defined arguments of `src_crumb.ls()[0]` must define `dst_crumb` entirely and create a path to a file or folder. """ for src in src_crumb.ls(): dst = dst_crumb.copy() copy_args(src, dst) if dst.has_crumbs(): raise AttributeError("Destination crumb still has open arguments, " "expected to fill it. Got {}.".format( str(dst))) yield src, dst
def test_from_path(crumb): cr = Crumb.copy(crumb) assert cr is not crumb assert cr == crumb cr2 = crumb.from_path(crumb) assert cr2 is not crumb assert cr2 == crumb assert cr2 is not cr assert cr2 == cr cr2 = Crumb.from_path(Path(crumb.path)) assert cr2 is not crumb assert cr2 == crumb assert cr2 is not cr assert cr2 == cr
def test_equal_copy(crumb): crumb2 = Crumb.copy(crumb) assert crumb2 == crumb crumb2._argval['hansel'] = 'hello' assert crumb2 != crumb crumb2._path += '/' assert crumb2 != crumb crumb2._path == os.path.join(crumb._path, '{test}') assert crumb2 != crumb crumb2._argval['hansel'] = 'hello' assert crumb2 != crumb crumb3 = Crumb(crumb.path, ignore_list=['.*']) assert crumb3 != crumb
def test_from_path(crumb): cr = Crumb.copy(crumb) assert cr is not crumb assert cr == crumb cr2 = crumb.from_path(crumb) assert cr2 is not crumb assert cr2 == crumb assert cr2 is not cr assert cr2 == cr cr2 = Crumb.from_path(Path(crumb.path)) assert cr2 is not crumb assert cr2 == crumb assert cr2 is not cr assert cr2 == cr
def test_equal_copy(crumb): crumb2 = Crumb.copy(crumb) assert crumb2 == crumb crumb2._argval['hansel'] = 'hello' assert crumb2 != crumb crumb2._path += '/' assert crumb2 != crumb crumb2._path == op.join(crumb._path, '{test}') assert crumb2 != crumb crumb2._argval['hansel'] = 'hello' assert crumb2 != crumb crumb3 = Crumb(crumb.path, ignore_list=['.*']) assert crumb3 != crumb
def test_set_patterns(tmp_crumb): assert not os.path.exists(tmp_crumb.path) values_dict = {'session_id': ['session_{:02}'.format(i) for i in range(2)], 'subject_id': ['subj_{:03}'.format(i) for i in range(100)], 'modality': ['anat'], 'image': ['mprage1.nii'], } mktree(tmp_crumb, list(ParameterGrid(values_dict))) # a crumb without the pattern, the pattern is added later crumb2 = Crumb(tmp_crumb.path, regex='fnmatch') crumb3 = crumb2.copy() crumb3.set_patterns() assert crumb2 == crumb3 pytest.raises(KeyError, crumb2.set_patterns, somekey='somevalue') crumb3.set_pattern('subject_id', 'subj_02*') crumb2.set_patterns(subject_id='subj_02*') assert crumb2['subject_id'] == crumb3['subject_id']