From 0a1686dd9b6e1fc81530a57bc5a3e75716d4047b Mon Sep 17 00:00:00 2001 From: Marcel Zwiers Date: Tue, 4 Feb 2025 22:40:45 +0100 Subject: [PATCH] Improved check for processed data / revert commit #1f1fa7903911b92e39b6c4ddd5bc28402d0decd9 (GitHub issue #243) --- bidscoin/bidscoiner.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bidscoin/bidscoiner.py b/bidscoin/bidscoiner.py index dca2dd5d..097e57ed 100755 --- a/bidscoin/bidscoiner.py +++ b/bidscoin/bidscoiner.py @@ -275,12 +275,12 @@ def bidscoiner(sourcefolder: str, bidsfolder: str, participant: list=(), force: subid, sesid = datasource.subid_sesid(subid, sesid or '') bidssession = bidsfolder/subid/sesid # TODO: Support DICOMDIR with multiple subjects (as in PYDICOMDIR) if not force and bidssession.is_dir(): - has_run = False - for datatype in lsdirs(bidssession): # See what datatypes we already have in the bids session-folder - if next(datatype.iterdir(), None) and datatype.name in bidsmap.dataformat(datasource.dataformat).datatypes: # See if the plugin may add data for this datatype - LOGGER.info(f">>> Skipping {name} processing: {bidssession} already has {datatype.name} data (you can carefully use the -f option to overrule)") - has_run = True - if has_run: + datatypes = set() + for datatype in [dtype for dtype in lsdirs(bidssession) if next(dtype.iterdir(), None)]: # See what non-empty datatypes we already have in the bids session-folder + if datatype.name in bidsmap.dataformat(datasource.dataformat).datatypes: # See if the plugin may add data for this datatype + datatypes.add(datatype.name) + if datatypes: + LOGGER.info(f">>> Skipping {name} processing: {bidssession} already has {datatypes} data (you can carefully use the -f option to overrule)") continue LOGGER.info(f">>> Coining {name} datasources in: {sesfolder}")