Commit 0aee9e10 authored by Sébastien Tourbier's avatar Sébastien Tourbier
Browse files

feat(bids.dataset): add Datalad's create() and save() methods

parent 08d1adf7
Loading
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@ from datetime import date

from bids import BIDSLayout

import datalad.api

from datahipy.bids.electrophy import get_ieeg_info
from datahipy.bids.participant import get_participants_info
from datahipy.bids.validation import (
@@ -92,8 +94,14 @@ def create_empty_bids_dataset(bids_dir=None, dataset_desc=None):
        Dictionary with the content of the dataset_description.json file.
    """
    print("> Creating an empty BIDS dataset at: ", bids_dir, "...")
    # Create the BIDS dataset directory
    # Create the BIDS dataset directory if it does not exist
    if not os.path.exists(os.path.dirname(bids_dir)):
        os.makedirs(bids_dir, exist_ok=True)
    # Initialize the BIDS dataset as a Datalad-managed dataset
    datalad.api.create(
        dataset=bids_dir,
        cfg_proc=['text2git', 'bids']
    )
    # Create the dataset_description.json file
    with open(os.path.join(bids_dir, "dataset_description.json"), "w") as f:
        json.dump(dataset_desc, f, indent=4)
@@ -106,6 +114,12 @@ def create_empty_bids_dataset(bids_dir=None, dataset_desc=None):
    add_bidsignore_validation_rule(bids_dir, "**/*_ct.*")
    # Create an initial participants.tsv file
    create_initial_participants_tsv(bids_dir)
    # Save the state of the initial dataset
    datalad.api.save(
        dataset=bids_dir,
        message='Initial blank BIDS dataset',
        recursive=True
    )


def create_bids_layout(bids_dir=None, **kwargs):