Aiida-diff problem: aiida.common.exceptions.ValidationError: The specified transport is not a valid one

Hi,
I am trying to follow the instruction of aiida-diff in these two webpages:
https://aiida.readthedocs.io/projects/aiida-core/en/latest/howto/plugins_develop.html#how-to-plugins-develop

I installed the aiida-diff as instruction, but the ./example_01.py does not work. I have uninstalled and reinstalled the aiida-diff, but the problem persists.

Here is the install process

$ pip install aiida-diff
Collecting aiida-diff
  Downloading aiida_diff-2.0.0-py3-none-any.whl (10 kB)
Requirement already satisfied: aiida-core<3,>=2.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-diff) (2.5.0)
Requirement already satisfied: voluptuous in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-diff) (0.14.1)
Requirement already satisfied: alembic~=1.2 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (1.13.1)
Requirement already satisfied: archive-path~=0.4.2 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.4.2)
Requirement already satisfied: aio-pika~=6.6 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (6.8.1)
Requirement already satisfied: circus~=0.18.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.18.0)
Requirement already satisfied: click-spinner~=0.1.8 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.1.10)
Requirement already satisfied: click~=8.1 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (8.1.7)
Requirement already satisfied: disk-objectstore~=1.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (1.0.0)
Requirement already satisfied: docstring-parser in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.15)
Requirement already satisfied: graphviz~=0.19 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.20.1)
Requirement already satisfied: ipython>=7 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (8.20.0)
Requirement already satisfied: jedi<0.19 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.18.2)
Requirement already satisfied: jinja2~=3.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (3.1.3)
Requirement already satisfied: kiwipy~=0.7.7 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (0.7.7)
Requirement already satisfied: importlib-metadata~=6.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (6.10.0)
Requirement already satisfied: numpy~=1.21 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (1.26.3)
Requirement already satisfied: paramiko>=2.7.2,~=2.7 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (2.12.0)
Requirement already satisfied: plumpy~=0.21.6 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.21.7)
Requirement already satisfied: pgsu~=0.2.1 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.2.4)
Requirement already satisfied: psutil~=5.6 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (5.9.8)
Requirement already satisfied: psycopg2-binary~=2.8 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (2.9.3)
Requirement already satisfied: pydantic~=2.4 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (2.5.3)
Requirement already satisfied: pytz~=2021.1 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (2021.3)
Requirement already satisfied: pyyaml~=6.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (6.0.1)
Requirement already satisfied: requests~=2.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (2.31.0)
Requirement already satisfied: sqlalchemy~=2.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (2.0.25)
Requirement already satisfied: tabulate~=0.8.5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.8.10)
Requirement already satisfied: tqdm~=4.45 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (4.66.1)
Requirement already satisfied: upf_to_json~=0.9.2 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (0.9.2)
Requirement already satisfied: wrapt~=1.11 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aiida-core<3,>=2.0->aiida-diff) (1.16.0)
Requirement already satisfied: aiormq<4,>=3.2.3 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aio-pika~=6.6->aiida-core<3,>=2.0->aiida-diff) (3.3.1)
Requirement already satisfied: yarl in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from aio-pika~=6.6->aiida-core<3,>=2.0->aiida-diff) (1.9.4)
Requirement already satisfied: Mako in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from alembic~=1.2->aiida-core<3,>=2.0->aiida-diff) (1.3.1)
Requirement already satisfied: typing-extensions>=4 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from alembic~=1.2->aiida-core<3,>=2.0->aiida-diff) (4.9.0)
Requirement already satisfied: pyzmq>=17.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from circus~=0.18.0->aiida-core<3,>=2.0->aiida-diff) (25.1.2)
Requirement already satisfied: tornado>=5.0.2 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from circus~=0.18.0->aiida-core<3,>=2.0->aiida-diff) (6.3.3)
Requirement already satisfied: zipp>=0.5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from importlib-metadata~=6.0->aiida-core<3,>=2.0->aiida-diff) (3.17.0)
Requirement already satisfied: decorator in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (5.1.1)
Requirement already satisfied: matplotlib-inline in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (0.1.6)
Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (3.0.42)
Requirement already satisfied: pygments>=2.4.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (2.17.2)
Requirement already satisfied: stack-data in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (0.6.2)
Requirement already satisfied: traitlets>=5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (5.14.1)
Requirement already satisfied: pexpect>4.3 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from ipython>=7->aiida-core<3,>=2.0->aiida-diff) (4.9.0)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from jedi<0.19->aiida-core<3,>=2.0->aiida-diff) (0.8.3)
Requirement already satisfied: MarkupSafe>=2.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from jinja2~=3.0->aiida-core<3,>=2.0->aiida-diff) (2.1.4)
Requirement already satisfied: shortuuid in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from kiwipy~=0.7.7->kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (1.0.11)
Requirement already satisfied: async-generator in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from kiwipy~=0.7.7->kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (1.10)
Requirement already satisfied: pytray<0.4.0,>=0.2.2 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from kiwipy~=0.7.7->kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (0.3.4)
Requirement already satisfied: deprecation in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from kiwipy~=0.7.7->kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (2.1.0)
Requirement already satisfied: pamqp~=2.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (2.3.0)
Requirement already satisfied: bcrypt>=3.1.3 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from paramiko>=2.7.2,~=2.7->aiida-core<3,>=2.0->aiida-diff) (4.1.2)
Requirement already satisfied: cryptography>=2.5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from paramiko>=2.7.2,~=2.7->aiida-core<3,>=2.0->aiida-diff) (39.0.0)
Requirement already satisfied: pynacl>=1.0.1 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from paramiko>=2.7.2,~=2.7->aiida-core<3,>=2.0->aiida-diff) (1.5.0)
Requirement already satisfied: six in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from paramiko>=2.7.2,~=2.7->aiida-core<3,>=2.0->aiida-diff) (1.16.0)
Requirement already satisfied: nest_asyncio~=1.5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from plumpy~=0.21.6->aiida-core<3,>=2.0->aiida-diff) (1.6.0)
Requirement already satisfied: psycopg2==2.9.3 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from psycopg2-binary~=2.8->aiida-core<3,>=2.0->aiida-diff) (2.9.3)
Requirement already satisfied: annotated-types>=0.4.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from pydantic~=2.4->aiida-core<3,>=2.0->aiida-diff) (0.6.0)
Requirement already satisfied: pydantic-core==2.14.6 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from pydantic~=2.4->aiida-core<3,>=2.0->aiida-diff) (2.14.6)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from requests~=2.0->aiida-core<3,>=2.0->aiida-diff) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from requests~=2.0->aiida-core<3,>=2.0->aiida-diff) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from requests~=2.0->aiida-core<3,>=2.0->aiida-diff) (2.1.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from requests~=2.0->aiida-core<3,>=2.0->aiida-diff) (2023.11.17)
Requirement already satisfied: greenlet!=0.4.17 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from sqlalchemy~=2.0->aiida-core<3,>=2.0->aiida-diff) (3.0.3)
Requirement already satisfied: cffi>=1.12 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from cryptography>=2.5->paramiko>=2.7.2,~=2.7->aiida-core<3,>=2.0->aiida-diff) (1.16.0)
Requirement already satisfied: ptyprocess>=0.5 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from pexpect>4.3->ipython>=7->aiida-core<3,>=2.0->aiida-diff) (0.7.0)
Requirement already satisfied: wcwidth in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=7->aiida-core<3,>=2.0->aiida-diff) (0.2.13)
Requirement already satisfied: packaging in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from deprecation->kiwipy~=0.7.7->kiwipy[rmq]~=0.7.7->aiida-core<3,>=2.0->aiida-diff) (23.2)
Requirement already satisfied: executing>=1.2.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from stack-data->ipython>=7->aiida-core<3,>=2.0->aiida-diff) (2.0.1)
Requirement already satisfied: asttokens>=2.1.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from stack-data->ipython>=7->aiida-core<3,>=2.0->aiida-diff) (2.4.1)
Requirement already satisfied: pure-eval in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from stack-data->ipython>=7->aiida-core<3,>=2.0->aiida-diff) (0.2.2)
Requirement already satisfied: multidict>=4.0 in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from yarl->aio-pika~=6.6->aiida-core<3,>=2.0->aiida-diff) (6.0.4)
Requirement already satisfied: pycparser in /home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages (from cffi>=1.12->cryptography>=2.5->paramiko>=2.7.2,~=2.7->aiida-core<3,>=2.0->aiida-diff) (2.21)
Installing collected packages: aiida-diff
Successfully installed aiida-diff-2.0.0
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter$ verdi quicksetup

(aiida) yang@yang-Inspiron-3670:~/AiiDA$ pg_ctl -D mylocal_db -l logfile start
pg_ctl: another server might be running; trying to start server anyway
waiting for server to start.... done
server started
(aiida) yang@yang-Inspiron-3670:~/AiiDA$ rabbitmq-server -detached
(aiida) yang@yang-Inspiron-3670:~/AiiDA$ verdi quicksetup
Report: enter ? for help.
Report: enter ! to ignore the default and set no value.
Profile name [quicksetup]: test_aiida-diff
Email Address (for sharing data) [ygy11123@sina.com]: 
First name [Guoyu]: 
Last name [YANG]: 
Institution [JMU]: 
Report: initialising the profile storage.
Report: initialising empty storage schema
Report: Migrating to the head of the main branch
Success: storage initialisation completed.
Success: created new profile `test_aiida-diff`.
(aiida) yang@yang-Inspiron-3670:~/AiiDA$ verdi profile list

And here is after install:

$ pwd
/home/yang/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples$ ls
example_01.py  example_02.py  input_files
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples$ verdi profile list
Report: configuration folder: /home/yang/.aiida
  archive
  quicksetup
* test_aiida-diff
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples$ verdi plugin list aiida.calculations
Registered entry points for aiida.calculations:
* core.arithmetic.add
* core.templatereplacer
* core.transfer
* diff
* test

Report: Pass the entry point as an argument to display detailed information
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples$ verdi daemon start  
Starting the daemon with 1 workers... OK
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples$ ./example_01.py  
/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida_diff/helpers.py:49: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)
  computer = Computer.objects.get(label=name)
Traceback (most recent call last):
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida_diff/helpers.py", line 49, in get_computer
    computer = Computer.objects.get(label=name)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida/orm/entities.py", line 128, in get
    return res.one()[0]
           ^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida/orm/querybuilder.py", line 1129, in one
    raise NotExistent('No result was found')
aiida.common.exceptions.NotExistent: No result was found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/yang/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples/./example_01.py", line 72, in <module>
    cli()  # pylint: disable=no-value-for-parameter
    ^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida/cmdline/utils/decorators.py", line 81, in wrapper
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yang/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples/./example_01.py", line 68, in cli
    test_run(code)
  File "/home/yang/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples/./example_01.py", line 25, in test_run
    computer = helpers.get_computer()
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida_diff/helpers.py", line 62, in get_computer
    computer.store()
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida/orm/computers.py", line 288, in store
    self.validate()
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida/orm/computers.py", line 237, in validate
    self._transport_type_validator(self.transport_type)
  File "/home/yang/miniforge3/envs/aiida/lib/python3.11/site-packages/aiida/orm/computers.py", line 153, in _transport_type_validator
    raise exceptions.ValidationError('The specified transport is not a valid one')
aiida.common.exceptions.ValidationError: The specified transport is not a valid one
(aiida) yang@yang-Inspiron-3670:~/AiiDA/cookiecutter/aiida-diff/aiida-diff-master/examples$ ./example_01.py  

Any idea what the problem is?

Many thanks for that!

Sincerely,
Dr. Guoyu Yang
Lecturer
Jimei Univ, School of Science, Digital Fujian Big Data Modeling and Intelligent Computing Institute
185 Yinjiang Rd.,
Jimei District, Xiamen,361021
Fujian, China
E-mail: 201961000100@jmu.edu.cn

Hello,

Looks like get_computer is trying to set up the computer but the transport specified is invalid.

I’m not by any means an authority on AiiDA, just really getting into it, but I think that in helpers.py, lines 59 & 60, the transport and scheduler type should be core.local and core.direct instead of just local and direct.

1 Like

You can get around it by setting up the diff code manually and providing it as a parameter to running it in the command line

e.g. ./example_01.py --code diff@localhost

Hi everyone, @kmlefran is correct - this needs to be updated.

It appears to already have been fixed in the plugin cutter, but its default aiida-diff output was not updated.
I’ll try to find the time to do this later today.