nf-core pipelines launch ends in a stacktrace
Open
Nobody has claimed this yet.
bug
- Dominant language
- Python
- Stars
- 322
- Forks
- 255
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 5
Description
Description of the bug
I'm trying to write out the params file for various pipelines in my directory, but it results in a stack trace when using the command-line option for fetchngs.
nf-core pipelines launch fetchngs
,--./,-.
___ __ __ __ ___ /,-._.--~\
|\ | |__ __ / ` / \ |__) |__ } {
| \| | \__, \__/ | \ |___ \`-._,-`-,
`._,._,'
nf-core/tools version 3.2.0 - https://nf-co.re
INFO NOTE: This tool ignores any pipeline parameter defaults overwritten by Nextflow config files or
profiles
WARNING Could not find GitHub authentication token. Some API requests may fail.
? Select release / branch: 1.12.0 [release]
INFO Downloading workflow: nf-core/fetchngs (1.12.0)
ERROR [✗] Pipeline schema does not follow nf-core specs:
Schema is using the wrong draft: http://json-schema.org/draft-07/schema, should be
https://json-schema.org/draft-07/schema
INFO No pipeline schema found - creating one from the config
INFO Would you like to enter pipeline parameters using a web-based interface or a command-line wizard?
? Choose launch method Command line
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/bin/nf-core:10 in │
│ <module> │
│ │
│ 7 │
│ 8 if __name__ == '__main__': │
│ 9 │ sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) │
│ ❱ 10 │ sys.exit(run_nf_core()) │
│ 11 │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/nf_core/__main__.py:182 in run_nf_core │
│ │
│ 179 │ │ │ log.debug(f"Could not check latest version: {e}") │
│ 180 │ │ stderr.print("\n") │
│ 181 │ # Launch the click cli │
│ ❱ 182 │ nf_core_cli(auto_envvar_prefix="NFCORE") │
│ 183 │
│ 184 │
│ 185 @tui( │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/rich_click/rich_command.py:378 in __call__ │
│ │
│ 375 │ │ # Include this here because I run into a false warning │
│ 376 │ │ # in the PyCharm IDE otherwise; for some reason PyCharm doesn't │
│ 377 │ │ # seem to think RichGroups are callable. (No issues with Mypy, though.) │
│ ❱ 378 │ │ return super().__call__(*args, **kwargs) │
│ 379 │
│ 380 │
│ 381 class RichCommandCollection(CommandCollection, RichGroup): │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/click/core.py:1161 in __call__ │
│ │
│ 1158 │ │
│ 1159 │ def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any: │
│ 1160 │ │ """Alias for :meth:`main`.""" │
│ ❱ 1161 │ │ return self.main(*args, **kwargs) │
│ 1162 │
│ 1163 │
│ 1164 class Command(BaseCommand): │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/rich_click/rich_command.py:166 in main │
│ │
│ 163 │ │ try: │
│ 164 │ │ │ try: │
│ 165 │ │ │ │ with self.make_context(prog_name, args, **extra) as ctx: │
│ ❱ 166 │ │ │ │ │ rv = self.invoke(ctx) │
│ 167 │ │ │ │ │ if not standalone_mode: │
│ 168 │ │ │ │ │ │ return rv │
│ 169 │ │ │ │ │ # it's not safe to `ctx.exit(rv)` here! │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/click/core.py:1697 in invoke │
│ │
│ 1694 │ │ │ │ super().invoke(ctx) │
│ 1695 │ │ │ │ sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) │
│ 1696 │ │ │ │ with sub_ctx: │
│ ❱ 1697 │ │ │ │ │ return _process_result(sub_ctx.command.invoke(sub_ctx)) │
│ 1698 │ │ │
│ 1699 │ │ # In chain mode we create the contexts step by step, but after the │
│ 1700 │ │ # base command has been invoked. Because at that point we do not │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/click/core.py:1697 in invoke │
│ │
│ 1694 │ │ │ │ super().invoke(ctx) │
│ 1695 │ │ │ │ sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) │
│ 1696 │ │ │ │ with sub_ctx: │
│ ❱ 1697 │ │ │ │ │ return _process_result(sub_ctx.command.invoke(sub_ctx)) │
│ 1698 │ │ │
│ 1699 │ │ # In chain mode we create the contexts step by step, but after the │
│ 1700 │ │ # base command has been invoked. Because at that point we do not │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/click/core.py:1443 in invoke │
│ │
│ 1440 │ │ │ echo(style(message, fg="red"), err=True) │
│ 1441 │ │ │
│ 1442 │ │ if self.callback is not None: │
│ ❱ 1443 │ │ │ return ctx.invoke(self.callback, **ctx.params) │
│ 1444 │ │
│ 1445 │ def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: │
│ 1446 │ │ """Return a list of completions for the incomplete value. Looks │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/click/core.py:788 in invoke │
│ │
│ 785 │ │ │
│ 786 │ │ with augment_usage_errors(__self): │
│ 787 │ │ │ with ctx: │
│ ❱ 788 │ │ │ │ return __callback(*args, **kwargs) │
│ 789 │ │
│ 790 │ def forward(__self, __cmd: "Command", *args: t.Any, **kwargs: t.Any) -> t.Any: │
│ 791 │ │ """Similar to :meth:`invoke` but fills in default keyword │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/click/decorators.py:33 in new_func │
│ │
│ 30 │ """ │
│ 31 │ │
│ 32 │ def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R": │
│ ❱ 33 │ │ return f(get_current_context(), *args, **kwargs) │
│ 34 │ │
│ 35 │ return update_wrapper(new_func, f) │
│ 36 │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/nf_core/__main__.py:551 in command_pipelines_launch │
│ │
│ 548 │ """ │
│ 549 │ Launch a pipeline using a web GUI or command line prompts. │
│ 550 │ """ │
│ ❱ 551 │ pipelines_launch(ctx, pipeline, id, revision, command_only, params_in, params_out, s │
│ 552 │
│ 553 │
│ 554 # nf-core pipelines list │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/nf_core/commands_pipelines.py:264 in pipelines_launch │
│ │
│ 261 │ │ url, │
│ 262 │ │ id, │
│ 263 │ ) │
│ ❱ 264 │ if not launcher.launch_pipeline(): │
│ 265 │ │ sys.exit(1) │
│ 266 │
│ 267 │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/nf_core/pipelines/launch.py:176 in launch_pipeline │
│ │
│ 173 │ │ │ │ │ return False │
│ 174 │ │ │ else: │
│ 175 │ │ │ │ # Kick off the interactive wizard to collect user inputs │
│ ❱ 176 │ │ │ │ self.prompt_schema() │
│ 177 │ │ │
│ 178 │ │ # Validate the parameters that we now have │
│ 179 │ │ if not self.schema_obj.validate_params(): │
│ │
│ /Users/mahpa906/Documents/Projects/nf-metaomics-daisychain/.pixi/envs/default/lib/python3.13/sit │
│ e-packages/nf_core/pipelines/launch.py:412 in prompt_schema │
│ │
│ 409 │ │ definitions_schemas = self.schema_obj.schema.get("$defs", self.schema_obj.schema │
│ 410 │ │ for allOf in self.schema_obj.schema.get("allOf", []): │
│ 411 │ │ │ d_key = allOf["$ref"][14:] │
│ ❱ 412 │ │ │ answers.update(self.prompt_group(d_key, definitions_schemas[d_key])) │
│ 413 │ │ │
│ 414 │ │ # Top level schema params │
│ 415 │ │ for param_id, param_obj in self.schema_obj.schema.get("properties", {}).items(): │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: 'dict_items' object is not subscriptable
Command used and terminal output
System information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce with nf-core pipelines launch fetchngs and follow the command-line launch path after the pipeline schema warning. Inspect how the fetched schema and parameter wizard are handled; done means the command completes without a stacktrace and can write the requested params file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100