What’s new?#
Version 0.21 (unreleased)#
Detailed list of changes#
🚀 Enhancements#
Expose MRI defacing function to public API as
mne_bids.deface_mri()by Erica Peterson (#1544)Add an
extra_fieldsparameter tomake_dataset_description()to write additional top-level keys todataset_description.json, by Bruno Aristimunha (#1674)Add
mne_bids.open_lock(), the cross-process file lock mne-bids uses for shared files such asparticipants.tsv, so downstream writers can share it, by Bruno Aristimunha (#1675)
🧐 API and behavior changes#
Sidecar files are now written to a temporary file and moved into place, so reading them no longer takes a file lock, and a sidecar whose content would not change is no longer rewritten, by Hamza Abdelhedi (#1680)
🛠 Requirements#
None yet
🪲 Bug fixes#
Fix readers seeing a partially written sidecar while another process was rewriting it, by Hamza Abdelhedi (#1680)
Fix parallel
mne_bids.write_raw_bids()calls for BTi/4D data overwriting each other’s.bidsignorechanges, by Hamza Abdelhedi (#1680)Fix
find_matching_paths()omitting files with atracksysentity and returning no matches whentracking_systemsis specified, by Shubham Padkonde.Allow
acquisition="calibration"or"crosstalk"together with ataskinBIDSPathwhendatatypeis not"meg", since these labels are reserved only for MEG fine-calibration and crosstalk files, by Bruno Aristimunha (#1673)
⚕️ Code health#
mne_bids.read_raw_bids()now parsesparticipants.tsvonce per version of the file instead of on every call, so reading every recording of a large dataset no longer gets slower as the number of subjects grows, by Hamza Abdelhedi (#1681)Dropping rows from a TSV table no longer deep-copies the table first, by Hamza Abdelhedi (#1681)
Sped up
mne_bids.read_raw_bids()andmne_bids.write_raw_bids()on network filesystems by taking fewer file locks, by Hamza Abdelhedi (#1680)