[ENH] Allow plus signs in labels#1926
Conversation
|
In this PR, plus signs are allowed for any label-format value, but I believe some folks (@effigies?) were thinking of limiting them to special multi-label cases. If we want to go down that route, then we'll need to create a new "format" (e.g., "multilabel") that applies to specific entities. I'm not 100% which entities we would want the multilabel format for... perhaps |
|
Reading #1165 (comment) and the following discussion, I think the overall consensus was toward permissiveness; i.e., allow in any label instead of splitting out a new multi-label concept. I feel like the discussion about "semantics" was not entirely clear. I personally feel we should refrain from implying a relation between
|
|
I like that! |
oesteban
left a comment
There was a problem hiding this comment.
Looks good, just a couple of nit picks
Co-authored-by: Chris Markiewicz <effigies@gmail.com>
…ts to gain +
=== Do not change lines below ===
{
"chain": [],
"cmd": "git-sedi '\\[0-9a-zA-Z\\]' '[0-9a-zA-Z+]'",
"exit": 0,
"extra_inputs": [],
"inputs": [],
"outputs": [],
"pwd": "."
}
^^^ Do not change lines above ^^^
| r"(?:sub-(?P<subject>[0-9a-zA-Z]+)/)?" | ||
| r"(?:ses-(?P<session>[0-9a-zA-Z]+)/)?" | ||
| r"(?:sub-(?P<subject>[0-9a-zA-Z+]+)/)?" | ||
| r"(?:ses-(?P<session>[0-9a-zA-Z+]+)/)?" |
There was a problem hiding this comment.
I am afraid that is not all ... I will push a few commits on that end in a few minutes (I hope you don't mind).
Some other might need adjustment and I even start feeling that we might need to come up with some term (like "literal" but there might be better) to encompass "alphanumeric" and +.
There was a problem hiding this comment.
@yarikoptic Note this is a regression test that shows the specific output of a specific synthetic rule.
There was a problem hiding this comment.
my comment is not really about this test -- I meant that changes in this PR (just this test) aren't sufficient. pushed now
|
Just a sidenote FTR: There is also a question of either to allow it in suffixes (e.g. would converge DANDI layout closer (dandi/dandi-cli#1498) but since we do not have any "incident" of that in BIDS ATM, it is not appropriate to change ATM even though in general I see that suffixes also should be of the same nature as "labels", in particular that IIRC their values could "migrate" into |
|
I pushed some changes which I think are due as well, although might need tune ups -- individual commits might have more information/reasoning in the commit messages. But there is also IMHO outstanding review and possibly tune up needed to src/metaschema.json it does have plenty of "alphanumeric" and _ allowances and I am not yet 100% sure none of them somehow overlaps with "alphanumeric" possible in filename etc... most likely none, but still worth looking at IMHO❯ git grep 'a-zA-Z0-9[^+]' -- src/metaschema.json
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$": {
src/metaschema.json: "^_[a-zA-Z0-9_-]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": { "$ref": "#/definitions/suffixRule" }
src/metaschema.json: "^[a-zA-Z0-9_]+$": { "$ref": "#/definitions/suffixRule" }
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "^[a-zA-Z0-9_]+$": {
src/metaschema.json: "items": { "type": "string", "pattern": "^[a-zA-Z0-9]+$" } |
Remi-Gau
left a comment
There was a problem hiding this comment.
For something like this I would much prefer that one bids example is modified to showcase this so that downstream validator and parsers have got some food to sink their digital teeth into.
|
@Remi-Gau that's a great point. Do you think it makes more sense to create a new example dataset or to modify an existing one? I took a quick look at the BIDS examples and https://github.com/bids-standard/bids-examples/tree/master/ds004332 looks promising. There are complex EDIT: If you think creating a new dataset makes more sense, then I think it would be good to use something like CUBIDS since that will use the |
|
I am afraid that if we start adding a new dataset for every new aspect of the spec we need to validate we will end up with too many examples. How about adding this to the synthetic example? |
|
That works! I'll look into modifying https://github.com/bids-standard/bids-examples/tree/master/synthetic. |
Co-authored-by: Yaroslav Halchenko <debian@onerussian.com>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1926 +/- ##
=======================================
Coverage 82.45% 82.45%
=======================================
Files 17 17
Lines 1499 1499
=======================================
Hits 1236 1236
Misses 263 263 ☔ View full report in Codecov by Sentry. |
yarikoptic
left a comment
There was a problem hiding this comment.
FWIW, looks good and complete to me. Should we proceed with the merge?
|
I never got the bids example updated unfortunately. Maybe I could make time late next week to do it, but if someone else is willing to do it that would be great. |
|
@yarikoptic thanks for opening the examples PR! I think it's ready to merge now. |
|
@Remi-Gau could you check this over one last time? I think you're the only reviewer who hasn't approved. |
|
Thanks @Remi-Gau! Alright, does anyone have any issue with me merging? Otherwise, I'll merge tomorrow morning. |
* origin/master: (76 commits) [pre-commit.ci] pre-commit autoupdate add Julia Pfarr as current BIDS maintainer [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate fix fix [MAINT] deal with links redirects Temporarily disable dicomlookup urls check Fix URL to renamed now "Contributors" wiki doc: correct typos doc: remove mentioning of `schemacode` install as the third command enh: use macro for the physio template enh: add metaentities to rules README Apply suggestions from code review [ENH] Allow plus signs in labels (#1926) [pre-commit.ci] pre-commit autoupdate [MAINT] update link to new website sty: pyupgrade --py39-plus chore: Bump schema package to 1.0.4-dev chore: Bump schema package to 1.0.3 ... Conflicts: src/schema/objects/columns.yaml -- added the 3 pipette columns
* Adjust create_synthethic_ds.sh to use 2 tasknames with + Ref: bids-standard/bids-specification#1926 * [DATALAD RUNCMD] Recreate beh/ portion of synthetic dataset with new tasks === Do not change lines below === { "chain": [], "cmd": "rm -rf sub-*/ses-*/beh && code/create_synthethic_ds.sh", "exit": 0, "extra_inputs": [], "inputs": [], "outputs": [], "pwd": "synthetic" } ^^^ Do not change lines above ^^^
Closes #1165. Adds
+to the valid characters for the "label" format, which is currently only used for a subset of entities.