aiida-core icon indicating copy to clipboard operation
aiida-core copied to clipboard

`verdi node graph generate` error for missing PK is not correctly handled and help page is wrong

Open agoscinski opened this issue 9 months ago • 1 comments

Describe the bug / Steps to reproduce / Expected behavior

  • Error for missing is PK not properly handled
$ verdi node graph generate
Traceback (most recent call last):
  File "/home/alexgo/micromamba/envs/aiida-dev/bin/verdi", line 8, in <module>
    sys.exit(verdi())
             ^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/micromamba/envs/aiida-dev/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/code/aiida-core/src/aiida/cmdline/utils/decorators.py", line 102, in wrapper
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/code/aiida-core/src/aiida/cmdline/commands/cmd_node.py", line 535, in graph_generate
    pks = '.'.join(str(n.pk) for n in root_nodes)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexgo/code/aiida-core/src/aiida/cmdline/commands/cmd_node.py", line 535, in <genexpr>
    pks = '.'.join(str(n.pk) for n in root_nodes)
                       ^^^^
AttributeError: 'NoneType' object has no attribute 'pk'

Compare to

$ verdi computer show
Usage: verdi computer show [OPTIONS] COMPUTER
Try 'verdi computer show --help' for help.

Error: Missing argument 'COMPUTER'.

The error seems not to be properly handled in the former case.

  • The help page of the command is wrong
$ verdi node graph generate --help
Usage: verdi node graph generate [OPTIONS] [--] [ROOT_NODE] OUTPUT_FILE

  Generate a graph from one or multiple root nodes.
[...]

Again comparing it with other commands, I interpret [ROOT_NODE] as optional, but it is not, it is the OUTPUT_FILE which is optional. Also verdi node graph generate -N 1 output.pdf does not work but one has to do verdi node graph generate -N 1 -O output.pdf

Your environment

  • Operating system: Ubuntu 22.04 LTS
  • Python version: 3.11
$ verdi status
✔ version:     AiiDA v2.5.1
✔ config:      /home/alexgo/code/aiida-core/.aiida
✔ profile:     alexgo
✔ storage:     SqliteDosStorage[/home/alexgo/code/aiida-core/.aiida/repository/sqlite_dos_f275ff0f10174e8e84c13e82dd5ba452]: open,
✔ rabbitmq:    Connected to RabbitMQ v3.8.14 as amqp://guest:[email protected]:5672?heartbeat=600

agoscinski avatar May 16 '24 08:05 agoscinski