-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorporating json into bids.File (issues #596 #371) #597
Conversation
my hunch would be to first keep things in the same class |
Ok, will merge into main class. |
for more information, see https://pre-commit.ci
Few changes:
|
% a: 'val_a' | ||
% Appending values to existing field: | ||
% update_struct(struct('a', 'val_a', 'b', 'val_b'), | ||
% 'b-add', 'val_b2') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
% 'b-add', 'val_b2') | |
% 'b-add', 'val_b2') |
Random thought.
I know this is an edge case in the world of bids because we would expect the field to be camel camse but what if one of the field to update is named "b-add", do you have then do something like: "b-add-add" ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe it would be better to have simpler function:
- one for adding
- one for removing
- one for appending an element to a an array or a cell
- one for popping an element from a array or a cell
or have the first argument specify what "action" to perform.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, no matter how BIDS will decide to make life needlessly complicated, but if json is transformed into matlab structure, the fieldnames like b-add
will be forbidden.
Splitting into several subcommand: metadata_add
, metadata_append
, metadata_rm
can be implemented, and maybe is a good idea. But then it would be difficult to work with struct instead of parameters.
For poping (remove and return) is more complicated, as matlab do not modify current object, and multiple returns looks ugly:
[file, val] = file.metadata_pop('val_a');
What is your take on not forcing to read metadata when creating File instance, and making it on request only?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the fieldnames like
b-add
will be forbidden
Oh dear... Matlab 101. Silly me for forgetting this... I guess that's what happens when you start switching back and forth between languages
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is your take on not forcing to read metadata when creating File instance, and making it on request only?
I think that the metadata reading will try to implement the inheritance principle (by reading potentially matching metadatafiles in the parent directories) and I don't remember if I have put the fail safe in place to avoid "weird" behaviors.
For example it may be while doing some file wrangling that I do not want the metadata from temp/task-foo_bold.json
to b added to those of tmp/WIP/sub-01_task-foo_bold.json
.
temp
├── task-foo_bold.json
└── WIP
├── sub-01_task-foo_bold.json
└── sub-01_task-foo_bold.nii
I think this was the kind of concern I had. But improving the handling of the inheritance principle could help with things like this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that inheritance should be part of bids (even if I don't like it due to all the complications). My question should the metadata be loaded implicitly or explicitly (f.set_metadata();
).
Implicit reading of metadata imposes that the logic of retrieving json files, and reading them happens every time when a new instance is created, even if it's not needed.
The way how inheritance principle is implemented is an another issue -- it requires the knowledge of the layout of dataset, which is stored in layout structure, but not in File. For me (very personal opinion), inheritance principle should be applied during creation of layout, by setting File.metadata_files, but not in File.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just realized that set_metadata
relies on bids.internal.get_meta_list
that tries to implement the inheritance principle (same one use for bids.layout).
function obj = set_metadata(obj)
if isempty(obj.metadata_files)
pattern = '^.*%s\\.json$';
obj.metadata_files = bids.internal.get_meta_list(obj.path, pattern);
end
obj.metadata = bids.internal.get_metadata(obj.metadata_files);
end
I would say that changing this is beyond the scope of this PR which is on updating metadata. Just thought it was good to mention it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For poping (remove and return) is more complicated, as matlab do not modify current object, and multiple returns looks ugly:
[file, val] = file.metadata_pop('val_a');
I think I would just return the file object.
file = file.metadata_pop('FieldToPopFrom', 'value_to_pop');
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWI: will open a small PR to add a parameter to bids.internal.get_meta_list
to decide to use the inheritance principle or not to list metadata files.
It could then be reused here to let user decide what they want to do.
Added tests for File and set up implicit metadada reading. For me, the PR can be removed from draft. |
Tacking #369 feels a bit too much in this PR, no? |
Technically yes, but it can be integrated in the current PR. But I'm not sure what to do with inheritance principle -- renaming can easily brake it. |
You are right. One headache at time. Let's leave it out of the scope of this one for now. |
The Updated doc and tests (couldn't run coverage). At this point the PR do what is supposed to do -- ready for final discussion/review? I'll open a new tangent issue for automatic loading of metadata, just to keep things organized. |
tests/test_bids_file.m
Outdated
% test metadata manipulation | ||
% metadata_update | ||
bf = bf.metadata_update('Testing', 'adding field'); | ||
assertTrue(isfield(bf.metadata, 'Testing')); | ||
assertEqual(bf.metadata.Testing, 'adding field'); | ||
|
||
bf = bf.metadata_update('Testing', 'modifying field'); | ||
assertEqual(bf.metadata.Testing, 'modifying field'); | ||
|
||
bf = bf.metadata_update('Testing', []); | ||
assertFalse(isfield(bf.metadata, 'Testing')); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably better to have smaller independent tests (into separate functions)
not a blocker: I can take care of it in a separate PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can do -- I put there to not reread metadata again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah that's always the trade off, but unless set up is super heavy then I tend to prefer smaller independent tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to be clear, do you want a new function inside tests_bids_file.m
or completely separate test suite? I guess it's former, but want to be sure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a new function inside
tests_bids_file.m
just new function
matlab is annoying enough to force you to have one "main" function per file, let's not feed the monster. 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 minor points regarding having smaller tests and where the doc for each method should go.
If you don't have the time I can take care of it.
just let me know.
thanks
Spitted the tests. Just to be completely transparent and to be sure that docs are clear: |
All good. |
I may add another option later in a separate PR to add the possibility to use the inheritance principle or not when loading the metadata will ask for a review if you have time |
* add transformers to label and merge identical rows * update doc * refactor * add cumulative behavior to label indentical rows * refactor * expand behavior of label rows to support cell type for columns * add tests for merge rows * FCI * FCI * add inequality to Filter transformer * support regex for Replace transformers * update docs * refactor * add possibility to generate json version of transformers * add demo transformers split by trials * update help sections * update code to adapt to new schema * fix entity order bug * return only one datatypes when they are duplicates * set file modality in constructor * get definition will look into metadata if it returns empty in colums * rm old CI * remove labels from dependabot config * fix test that delete schema * make layout more verbose * make layout more versbose and make warning mosre useful * only display a . for actually indexed modality * fix octave bug * add function to create basic participant.tsv * silence warning test for octave * make query warning more explicit * add extra model validation * revert 21a9a9e * retry more informative error on metadata query * remove some old copyrights * lint * use new copyright format * update doc * bring back images for contributing * fix typo * update demos * update notebooks and convert to matlab scripts * update notebooks * add test workflow * FCI * FCI * fix notebooks * Update demos/working_with_files.m * update doc * FCI * switch back to isdir to see if older octave is happier with this * update README * update create participants.tsv * update image path * fix copyright line skip * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix spelling * fix report tests * update create participants * add create session tsv * fix test * update test * update bids init * refactor create readme * update create readme * add extra columns sessions.tsv * add doc arguments * lint * improve test and messages * fix some test * exclude some files from scans.tsv * refactor tests * fix octave warning * silence warning test on octave * skip bids validation with octave for now * skip failing matlab test * simplify test * windows related fixes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * skip octave test * improve error message * fix octave test * fix listing of trial types * improve default stats model when no task present * silence test for warning under octave * fix creation of json for derivatives when entity labels are numbers * make download more robust * skip warning test for octave * reformat windows path when printing to avoiding escaped characters warnings * improve error message on query * fix create sessions and participants tsv * add potential datalad related hints when file writing fails * fix typo * improve error message * silence codespell * silence octave warning * improve transformers * add response time histogram * add get root node method * refactor * use bids stats model to plot events * fix code spell and octave bug * fix miss hit config * remove comment * fix download face rep dataset * better handle datalad datasets * validate folder name in bids.init * fix cell indexing * fix cell indexing * update doc * add diagnostic for events * improve figure saving * update doc * rename transformers tests * refactor tests * silence writing tranformers test definitions * move logical operation as compute opertion * update transformer test description * update facerep * add versbosity options to reports * add flag to all figures * add filter to layout to only index certain subjects, sessions, modalities * use filtering of layout * fix when no filter * use regexp * fix when to use regex * improve octave support of transformers * rm some tests skip for octave * stop using moxunit * refactor ci * change action version * use bids validator with octave * fix octace in ci * add JSONio to octave path * add quotes * fiw path * fix path * fix dead links * fix links * update download * update precommit * fix tests * make transformer more tolerant when filtering variable is missing * [DOC] update bids.layout doc and return_file_index error message (#539) * update doc * add more detail when error happens in return_file_index * update precommit * update pre-commit and run on all files * [ENH] update warning message on return_file_index failure (#540) * update doc * add more detail when error happens in return_file_index * update precommit * update pre-commit and run on all files * update warning * improve error message * update info about gunzip (#547) * [MAINT] back merge master (#549) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] * CI: Use PAT to submit pull requests (#534) This will ensure that actions run on the PR. The default `GITHUB_TOKEN` is not enabled to do that to avoid a possible loop of new PRs with actions. * Bump peter-evans/create-pull-request from 4 to 5 (#536) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](peter-evans/create-pull-request@v4...v5) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [MAINT] update schema (#548) * update schema * readd token$ --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Chris Markiewicz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [FIX] failing to return file index during dependencies indexing thorw warning and not error (#546) * no file index throws warning and not error * silence octave warning * update doc (#554) * [ENH] support querying for scans.tsv and sessions.tsv (#550) * add querying for scans * add querying for sessions * count sessions and scans as suffixes * fix tests * [ENH] allow to query directly for tsv content (#555) * silence some warnings * test error * allow query of participants (#557) * [INFRA] run tests on mac OS and windows for matlab (#560) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] * CI: Use PAT to submit pull requests (#534) This will ensure that actions run on the PR. The default `GITHUB_TOKEN` is not enabled to do that to avoid a possible loop of new PRs with actions. * Bump peter-evans/create-pull-request from 4 to 5 (#536) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](peter-evans/create-pull-request@v4...v5) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [MAINT] update schema (#548) * update schema * readd token$ * update ci (#558) * split workflows matlab and octave * fix * use shorthand for commands * skip coverage on windows * [FIX] remove byte order mark from tsv file (#556) * fix bom * add data * octave fix * change the way CI is detected * fix tests * sanitize path in error * [DATALAD] Recorded changes * [DATALAD] Recorded changes --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Chris Markiewicz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [INFRA] randomize tests order (#566) * randomize tests * fix doc generation and links * skip dead links * skip dead links * skip dead links * skip dead links * use temp_dir * [MAINT] update schema dev (#580) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] * CI: Use PAT to submit pull requests (#534) This will ensure that actions run on the PR. The default `GITHUB_TOKEN` is not enabled to do that to avoid a possible loop of new PRs with actions. * Bump peter-evans/create-pull-request from 4 to 5 (#536) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](peter-evans/create-pull-request@v4...v5) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [MAINT] update schema (#548) * update schema * readd token$ * update ci (#558) * [FIX] remove byte order mark from tsv file (#556) * fix bom * add data * octave fix * Bump matlab-actions/run-command from 1.1.3 to 1.2.0 (#570) Bumps [matlab-actions/run-command](https://github.com/matlab-actions/run-command) from 1.1.3 to 1.2.0. - [Release notes](https://github.com/matlab-actions/run-command/releases) - [Commits](matlab-actions/run-command@v1.1.3...v1.2.0) --- updated-dependencies: - dependency-name: matlab-actions/run-command dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [MAINT] update schema (#577) * update schema * rm token --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Chris Markiewicz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [ENH] give more meaningful error messsages when failing to read json (#582) * add warning mentioning which json files could not be read * add file not found erro * fix force false skipped when unzipping files (#584) * [DOC] update help of several functions (#583) * update doc * update example * fixes * [ENH] add electrodes and optodes as group dependencies (#586) * add electrodes and optodes as dependencies * inline function * fix * allow indexing of files missing session entity when schemaless (#598) * improve wrong dir message (#601) * [ENH] index and query phenotype (#590) * index and query phenotype * do not load content and metadata * [ENH] do not add subject to layout if it is empty (#600) * do not add subject to layout if it is empty * subject is in structure if schemaless * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor * get properties and not fields when dealing with bids.File instance * rerun * silence failing tests on windows --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [MAINT] Update from main (#606) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] * CI: Use PAT to submit pull requests (#534) This will ensure that actions run on the PR. The default `GITHUB_TOKEN` is not enabled to do that to avoid a possible loop of new PRs with actions. * Bump peter-evans/create-pull-request from 4 to 5 (#536) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](peter-evans/create-pull-request@v4...v5) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [MAINT] update schema (#548) * update schema * readd token$ * update ci (#558) * [FIX] remove byte order mark from tsv file (#556) * fix bom * add data * octave fix * Bump matlab-actions/run-command from 1.1.3 to 1.2.0 (#570) Bumps [matlab-actions/run-command](https://github.com/matlab-actions/run-command) from 1.1.3 to 1.2.0. - [Release notes](https://github.com/matlab-actions/run-command/releases) - [Commits](matlab-actions/run-command@v1.1.3...v1.2.0) --- updated-dependencies: - dependency-name: matlab-actions/run-command dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [MAINT] update schema (#577) * update schema * rm token * docs: add coxroy as a contributor for bug, ideas, and userTesting (#585) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> * BIDS schema update (#587) Co-authored-by: Remi-Gau <[email protected]> * BIDS schema update (#592) Co-authored-by: Remi-Gau <[email protected]> * BIDS schema update (#594) Co-authored-by: Remi-Gau <[email protected]> * Bump matlab-actions/run-command from 1.2.0 to 1.2.1 (#602) Bumps [matlab-actions/run-command](https://github.com/matlab-actions/run-command) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/matlab-actions/run-command/releases) - [Commits](matlab-actions/run-command@v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: matlab-actions/run-command dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [FIX] handle nan and and datetimes when printing tables (#605) * fix bugs in tables and datetimes * skip on windows * update schema --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Chris Markiewicz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Remi-Gau <[email protected]> * [ENH] use inheritance in get_meta_list (#609) * use inheritance in get_meta_list * refactor * [ENH] improve bids schema api (#610) * improve API * add doc * skip octave for test * [FIX] better handle printing of paths in windows (#611) * better handle printting of paths in windows * fix more paths * more clean up * fix more paths * fix bug with unsorted model (#613) * add info about skipped tests (#614) * Incorporating json into bids.File (issues #596 #371) (#597) * First attempt to incorporate json into bids.File * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * lint * Added util function to update structures * Style and tests for util/update_struct.m * Using metadata field instead of json_struct * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removed JSONFile subclass * Added tests for metadata for File class * Fixed spelling in doc * File: Added functions that act on individual fields * File: fixed style * Splitted File.metadada tests into smaller ones --------- Co-authored-by: Beliy Nikita <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Remi Gau <[email protected]> * add id to warning * fix bug with 2 json file for one level (#616) * [ENH] improve performance and testing (#618) * update timing * try speed up test by not indexing dependencies * run on latest and oldest matlab * [DATALAD] Recorded changes * [DATALAD] Recorded changes * cancel previous runs * speed up some tests or functions * run slow and fast tests in parallel * windows env var fix * try using globals * fix * add more slow test * add doc * update demo (#621) * update demo * doc changes * [ENH] remove atlas and update res and den metadata (#622) * rm atlas and update res and den metadata * fix * [FIX] Fix tests after merge from master (#627) * fix tests after merge from main * fix test octave * use objects for levels (#630) * add internal function to start resolvig uri (#631) * fix hed tags (#632) * [MAINT] merge main in dev (#644) * BIDS schema update (#628) Co-authored-by: Remi-Gau <[email protected]> * Bump actions/checkout from 3 to 4 (#629) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * BIDS schema update (#633) Co-authored-by: Remi-Gau <[email protected]> * BIDS schema update (#634) Co-authored-by: Remi-Gau <[email protected]> * BIDS schema update (#635) Co-authored-by: Remi-Gau <[email protected]> * [pre-commit.ci] pre-commit autoupdate (#636) updates: - [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](pre-commit/pre-commit-hooks@v4.4.0...v4.5.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * BIDS schema update (#637) Co-authored-by: Remi-Gau <[email protected]> * BIDS schema update (#639) Co-authored-by: Remi-Gau <[email protected]> * BIDS schema update (#640) Co-authored-by: Remi-Gau <[email protected]> * Bump matlab-actions/setup-matlab from 1.2.4 to 1.2.5 (#641) Bumps [matlab-actions/setup-matlab](https://github.com/matlab-actions/setup-matlab) from 1.2.4 to 1.2.5. - [Release notes](https://github.com/matlab-actions/setup-matlab/releases) - [Commits](matlab-actions/setup-matlab@v1.2.4...v1.2.5) --- updated-dependencies: - dependency-name: matlab-actions/setup-matlab dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump matlab-actions/run-command from 1.2.1 to 1.2.2 (#642) Bumps [matlab-actions/run-command](https://github.com/matlab-actions/run-command) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/matlab-actions/run-command/releases) - [Commits](matlab-actions/run-command@v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: matlab-actions/run-command dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [FIX] update test after schema update (#643) * fix test after schema update * set os version for doc * update schema * fix typos * update tests --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Remi-Gau <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Chris Markiewicz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Remi-Gau <[email protected]> Co-authored-by: Nikita Beliy <[email protected]> Co-authored-by: Beliy Nikita <[email protected]>
First draft to incorporating managing sidecar into
bids.File
class.@Remi-Gau , Is it better to use the
bids.File
class directly or use a daughter class extending functionality?Todo:
bids.JSONFile
or use thebids.File
Sources
andRaw
. BIDS requires path starting from root of datasetbids.File
for changing file metadata #371