So it seems my issue is actually <@UNMC49PJS> :exp...
# rubber-duck
m
So it seems my issue is actually @Mahesh Binzer-Panchal đŸ€Ż
m
Huh? What's happening?
m
I don't know, but somehow, the map I have for you which looks totally fine for me is failing the linting if not placed last
m
Which lint? nf-core or nextflow?
m
nf-core
and not failing, but erroring in a way that seems to indicate a parsing issue
Look what I had to do in the nextflow.config file in https://github.com/nf-core/seqinspector/pull/233/changes
I really though I am going crazy, but it works
m
Is it linting or the RO crate stuff?
m
so it's in linting, it's an error, but does not fail anything, it just cannot parse the contributors, and it should do something with RO crate
As I knew something was wrong with the contributors, I removed everyone, and added people back one by one
and that's how I noticed an issue
l
Is there any strange invisible character ?
m
Then my entry would always error right?
l
How did you obtain the error, I'm curious now 😄
m
The parsing function seems to be doing some replace stuff which I don't get
Copy code
# Use curly brackets for dictionaries
        contributors_str = contributors_str.replace("], [", "}, {").replace("[[", "[{").replace("]]", "}]")
đŸ«  1
It's updating a lot of stuff in the parse:
Copy code
# Read and parse manifest.contributors. Normalise and fix its fields,
    # and return as a list of dictionaries
    def parse_manifest_contributors(self) -> list:
        field_names = ["name", "affiliation", "github", "contribution", "orcid", "email"]
        # Grab the contributor list and convert to JSON
        # TODO: can be removed once we switch to `nextflow config -o json`
        contributors_str = self.pipeline_obj.nf_config["manifest.contributors"]
        log.debug(f"manifest.contributors: {contributors_str}")
        # JSON uses double quotes, not single quotes
        contributors_str = contributors_str.replace("'", '"')
        for key in field_names:
            # All dictionary keys need to be quoted
            contributors_str = contributors_str.replace(f"{key}:", f'"{key}":')
        # Use curly brackets for dictionaries
        contributors_str = contributors_str.replace("], [", "}, {").replace("[[", "[{").replace("]]", "}]")
        log.debug(f"manifest.contributors (normalised): {contributors_str}")
        try:
            contributors = json.loads(contributors_str)
        except json.JSONDecodeError as exc:
            log.error(
                "Could not parse `manifest.contributors` from nextflow.config. "
                "Expected a list of maps, for example: [[name: 'First Last', github: 'user']]. "
                f"Normalised string passed to JSON parser was: {contributors_str!r}. "
                f"JSON decoding error: {exc}"
            )
            return []
My guess is the issue is in there.
Maxime, can you run with the debug settings to see what the before looks like?
Copy code
log.debug(f"manifest.contributors: {contributors_str}")
There's probably not a
Copy code
log.debug(f"manifest.contributors (normalised): {contributors_str}")
for mine
m
Copy code
DEBUG    manifest.contributors: [[name:'Adrien Coulier', affiliation:'Pixelgen Technologies', github:'Aratz', contribution:['author'], orcid:'0000-0003-2702-1103'], [name:'Alfred Kedhammar', affiliation:'Clinical     rocrate.py:404
         Genomics', github:'kedhammar', contribution:['author']], [name:'Agrima Bhatt', affiliation:'National Genomics Infrastructure', github:'agrima2010', contribution:['author'], orcid:'0009-0004-5536-7210'],
         [name:'Maxime U Garcia', affiliation:'National Genomics Infrastructure', github:'maxulysse', contribution:['contributor', 'maintainer'], orcid:'0000-0003-2827-9261'], [name:'Natalia Garcia Garcia',
         github:'nggvs', contribution:['contributor']], [name:'Franziska Bonath', affiliation:'National Genomics Infrastructure', github:'FranBonath', contribution:['author'], orcid:'0000-0002-1270-1504'],
         [name:'Pontus Höjer', affiliation:'National Genomics Infrastructure', github:'pontushojer', contribution:['contributor'], orcid:'0000-0001-8010-4755'], [name:'Edmund Miller', affiliation:'Seqera',
         github:'edmundmiller', contribution:['contributor']], [name:'Ramprasad Neethiraj', affiliation:'Clinical Genomics', github:'ramprasadn', contribution:['author'], orcid:'0000-0001-7313-3734'], [name:'Matilda
         Åslin', affiliation:'National Genomics Infrastructure', github:'matrulda', contribution:['author'], orcid:'0000-0002-2450-6415'], [name:'Patricie Skaláková', affiliation:'Masaryk University',
         github:'Patricie34', contribution:['contributor'], orcid:'0009-0009-0647-7639'], [name:'Eliott Bosshard', affiliation:'Clinical Genomics', github:'EliottBo', contribution:['contributor'],
         orcid:'0009-0000-2384-0369'], [name:'Karthik Nair', affiliation:'National Genomics Infrastructure', github:'KarNair', contribution:['contributor']], [name:'Matthias Zepper', affiliation:'National Genomics
         Infrastructure', github:'MatthiasZepper', contribution:['author'], orcid:'0000-0003-2880-8581'], [name:'Nelly Nyawira Nkonge', affiliation:'National Genomics Infrastructure', github:'nkongenelly',
         contribution:['contributor'], orcid:'0000-0002-0396-8573'], [name:'Beatriz Vinhas', affiliation:'Clinical Genomics', github:'beatrizsavinhas', contribution:['contributor']], [name:'JĂșlia Mir Pedrol',
         affiliation:'Center For Genomics Regulation', github:'mirpedrol', contribution:['contributor'], orcid:'0000-0001-6104-9260'], [name:'Cristina Tuñí i Domínguez', affiliation:'Flowmics', github:'ctuni',
         contribution:['contributor']], [name:'Johannes Alneberg', affiliation:'National Genomics Infrastructure', github:'alneberg', contribution:['contributor'], orcid:'0000-0002-2467-008X'], [name:'Annick
         Renevey', affiliation:'Clinical Genomics', github:'rannick', contribution:['contributor'], orcid:'0000-0001-7411-6063'], [name:'Adam Talbot', affiliation:'Seqera', github:'adamrtalbot',
         contribution:['contributor']], [name:'Jonas Kjellin', affiliation:'National Genomics Infrastructure', github:'kjellinjonas', contribution:['contributor'], orcid:'0000-0002-3830-7046'], [name:'Mahesh
         Binzer-Panchal', affiliation:'National Bioinformatics Infrastructure Sweden', github:'mahesh-panchal', contribution:['contributor'], orcid:'0000-0003-1675-0677'], [name:'Tori Griffin', affiliation:'National
         Genomics Infrastructure', github:'torigiffin', contribution:['contributor']]]
DEBUG    manifest.contributors (normalised): [{"name":"Adrien Coulier", "affiliation":"Pixelgen Technologies", "github":"Aratz", "contribution":["author"], "orcid":"0000-0003-2702-1103"}, {"name":"Alfred Kedhammar",  rocrate.py:412
         "affiliation":"Clinical Genomics", "github":"kedhammar", "contribution":["author"]}, {"name":"Agrima Bhatt", "affiliation":"National Genomics Infrastructure", "github":"agrima2010",
         "contribution":["author"], "orcid":"0009-0004-5536-7210"}, {"name":"Maxime U Garcia", "affiliation":"National Genomics Infrastructure", "github":"maxulysse", "contribution":["contributor", "maintainer"],
         "orcid":"0000-0003-2827-9261"}, {"name":"Natalia Garcia Garcia", "github":"nggvs", "contribution":["contributor"]}, {"name":"Franziska Bonath", "affiliation":"National Genomics Infrastructure",
         "github":"FranBonath", "contribution":["author"], "orcid":"0000-0002-1270-1504"}, {"name":"Pontus Höjer", "affiliation":"National Genomics Infrastructure", "github":"pontushojer",
         "contribution":["contributor"], "orcid":"0000-0001-8010-4755"}, {"name":"Edmund Miller", "affiliation":"Seqera", "github":"edmundmiller", "contribution":["contributor"]}, {"name":"Ramprasad Neethiraj",
         "affiliation":"Clinical Genomics", "github":"ramprasadn", "contribution":["author"], "orcid":"0000-0001-7313-3734"}, {"name":"Matilda Åslin", "affiliation":"National Genomics Infrastructure",
         "github":"matrulda", "contribution":["author"], "orcid":"0000-0002-2450-6415"}, {"name":"Patricie SkalĂĄkovĂĄ", "affiliation":"Masaryk University", "github":"Patricie34", "contribution":["contributor"],
         "orcid":"0009-0009-0647-7639"}, {"name":"Eliott Bosshard", "affiliation":"Clinical Genomics", "github":"EliottBo", "contribution":["contributor"], "orcid":"0009-0000-2384-0369"}, {"name":"Karthik Nair",
         "affiliation":"National Genomics Infrastructure", "github":"KarNair", "contribution":["contributor"]}, {"name":"Matthias Zepper", "affiliation":"National Genomics Infrastructure", "github":"MatthiasZepper",
         "contribution":["author"], "orcid":"0000-0003-2880-8581"}, {"name":"Nelly Nyawira Nkonge", "affiliation":"National Genomics Infrastructure", "github":"nkongenelly", "contribution":["contributor"],
         "orcid":"0000-0002-0396-8573"}, {"name":"Beatriz Vinhas", "affiliation":"Clinical Genomics", "github":"beatrizsavinhas", "contribution":["contributor"]}, {"name":"JĂșlia Mir Pedrol", "affiliation":"Center For
         Genomics Regulation", "github":"mirpedrol", "contribution":["contributor"], "orcid":"0000-0001-6104-9260"}, {"name":"Cristina Tuñí i Domínguez", "affiliation":"Flowmics", "github":"ctuni",
         "contribution":["contributor"]}, {"name":"Johannes Alneberg", "affiliation":"National Genomics Infrastructure", "github":"alneberg", "contribution":["contributor"], "orcid":"0000-0002-2467-008X"},
         {"name":"Annick Renevey", "affiliation":"Clinical Genomics", "github":"rannick", "contribution":["contributor"], "orcid":"0000-0001-7411-6063"}, {"name":"Adam Talbot", "affiliation":"Seqera",
         "github":"adamrtalbot", "contribution":["contributor"]}, {"name":"Jonas Kjellin", "affiliation":"National Genomics Infrastructure", "github":"kjellinjonas", "contribution":["contributor"],
         "orcid":"0000-0002-3830-7046"}, {"name":"Mahesh Binzer-Panchal", "affiliation":"National Bioinformatics Infrastructure Sweden", "github":"mahesh-panchal", "contribution":["contributor"],
         "orcid":"0000-0003-1675-0677"}, {"name":"Tori Griffin", "affiliation":"National Genomics Infrastructure", "github":"torigiffin", "contribution":["contributor"}]]
ERROR    Could not parse `manifest.contributors` from nextflow.config. Expected a list of maps, for example: []. Normalised string passed to JSON parser was: '[{"name":"Adrien Coulier", "affiliation":"Pixelgen        rocrate.py:416
         Technologies", "github":"Aratz", "contribution":["author"], "orcid":"0000-0003-2702-1103"}, {"name":"Alfred Kedhammar", "affiliation":"Clinical Genomics", "github":"kedhammar", "contribution":["author"]},
         {"name":"Agrima Bhatt", "affiliation":"National Genomics Infrastructure", "github":"agrima2010", "contribution":["author"], "orcid":"0009-0004-5536-7210"}, {"name":"Maxime U Garcia", "affiliation":"National
         Genomics Infrastructure", "github":"maxulysse", "contribution":["contributor", "maintainer"], "orcid":"0000-0003-2827-9261"}, {"name":"Natalia Garcia Garcia", "github":"nggvs",
         "contribution":["contributor"]}, {"name":"Franziska Bonath", "affiliation":"National Genomics Infrastructure", "github":"FranBonath", "contribution":["author"], "orcid":"0000-0002-1270-1504"},
         {"name":"Pontus Höjer", "affiliation":"National Genomics Infrastructure", "github":"pontushojer", "contribution":["contributor"], "orcid":"0000-0001-8010-4755"}, {"name":"Edmund Miller",
         "affiliation":"Seqera", "github":"edmundmiller", "contribution":["contributor"]}, {"name":"Ramprasad Neethiraj", "affiliation":"Clinical Genomics", "github":"ramprasadn", "contribution":["author"],
         "orcid":"0000-0001-7313-3734"}, {"name":"Matilda Åslin", "affiliation":"National Genomics Infrastructure", "github":"matrulda", "contribution":["author"], "orcid":"0000-0002-2450-6415"}, {"name":"Patricie
         SkalĂĄkovĂĄ", "affiliation":"Masaryk University", "github":"Patricie34", "contribution":["contributor"], "orcid":"0009-0009-0647-7639"}, {"name":"Eliott Bosshard", "affiliation":"Clinical Genomics",
         "github":"EliottBo", "contribution":["contributor"], "orcid":"0009-0000-2384-0369"}, {"name":"Karthik Nair", "affiliation":"National Genomics Infrastructure", "github":"KarNair",
         "contribution":["contributor"]}, {"name":"Matthias Zepper", "affiliation":"National Genomics Infrastructure", "github":"MatthiasZepper", "contribution":["author"], "orcid":"0000-0003-2880-8581"},
         {"name":"Nelly Nyawira Nkonge", "affiliation":"National Genomics Infrastructure", "github":"nkongenelly", "contribution":["contributor"], "orcid":"0000-0002-0396-8573"}, {"name":"Beatriz Vinhas",
         "affiliation":"Clinical Genomics", "github":"beatrizsavinhas", "contribution":["contributor"]}, {"name":"JĂșlia Mir Pedrol", "affiliation":"Center For Genomics Regulation", "github":"mirpedrol",
         "contribution":["contributor"], "orcid":"0000-0001-6104-9260"}, {"name":"Cristina Tuñí i Domínguez", "affiliation":"Flowmics", "github":"ctuni", "contribution":["contributor"]}, {"name":"Johannes Alneberg",
         "affiliation":"National Genomics Infrastructure", "github":"alneberg", "contribution":["contributor"], "orcid":"0000-0002-2467-008X"}, {"name":"Annick Renevey", "affiliation":"Clinical Genomics",
         "github":"rannick", "contribution":["contributor"], "orcid":"0000-0001-7411-6063"}, {"name":"Adam Talbot", "affiliation":"Seqera", "github":"adamrtalbot", "contribution":["contributor"]}, {"name":"Jonas
         Kjellin", "affiliation":"National Genomics Infrastructure", "github":"kjellinjonas", "contribution":["contributor"], "orcid":"0000-0002-3830-7046"}, {"name":"Mahesh Binzer-Panchal", "affiliation":"National
         Bioinformatics Infrastructure Sweden", "github":"mahesh-panchal", "contribution":["contributor"], "orcid":"0000-0003-1675-0677"}, {"name":"Tori Griffin", "affiliation":"National Genomics Infrastructure",
         "github":"torigiffin", "contribution":["contributor"}]]'. JSON decoding error: Expecting ',' delimiter: line 1 column 3454 (char 3453)
ERROR    No authors found in pipeline manifest. Proceeding without adding authors to the RO-Crate.                                                                                                                       rocrate.py:281
nope, you are there
And when I put you back in last, issue is no longer there
Untitled
m
There's two outputs. One is unnormalized and the other is normalized. I'm not expecting my name in the normalized output. Also why is Annick's name there twice? She and my name both appear to have carriage returns following the first name.
👀 1
Or is that your own formatting?
m
I copy pasted from the terminal, so formatting is definitively borked
but you are in both unnormalized and normalized
I haven't noticed any duplicates in name
m
Does Tori griffin have an error in her entry?
Copy code
"torigiffin", "contribution":["contributor"}]]
                                           ^
m
nope
That only comes when you're put in not in last
m
Oh, my mistake. That was from the normalised list. But wait. Are you sure it's me, or the fact that Tori doesn't have an orcid?
m
iep
pretty sure it's you, given your place in the list
you you've given me more ideas
and @mashehu too
So I'll keep investigating
m
I think the fix might be
Copy code
# Replace only the outermost brackets (not nested ones)
if contributors_str.startswith("[["):
    contributors_str = "[{" + contributors_str[2:]
if contributors_str.endswith("]]"):
    contributors_str = contributors_str[:-2] + "}]"
contributors_str = contributors_str.replace("], [", "}, {")
m
the fix will most probably be https://github.com/nf-core/tools/issues/4204
m
As in you're going to do the switch to
nextflow config -o json
as the solution to this?
m
yep, to avoid all the awkward json normalization
đŸ‘đŸœ 1
👍 1