{
  "plugins": {
    "aiida-QECpWorkChain": {
      "code_home": "https://github.com/rikigigi/aiida-QECpWorkChain",
      "development_status": "beta",
      "entry_point_prefix": "qecpworkchain",
      "pip_url": "git+https://github.com/rikigigi/aiida-QECpWorkChain",
      "name": "aiida-QECpWorkChain",
      "package_name": "aiida_QECpWorkChain",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Riccardo Bertossa",
        "author_email": "rbertoss@sissa.it",
        "version": "0.2.0a0",
        "description": "Car-Parrinello Work Chain with Quantum Espresso. This workchain does a full CP simulation, from the choice of the electronic mass and the timestep, to the choice of the best parallelization options, and then it does the NPT equilibration and a final NVE simulation at the prescribed P and T. Automates as much as possible.",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=2.0.0,<3.0.0",
      "entry_points": {
        "aiida.workflows": {
          "qecpworkchain.cp": {
            "description": [
              "No description available"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cp_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "cp_resources_cg_list",
                  "required": true,
                  "valid_types": "List",
                  "info": "Same as cp_resources_cp_list but when doing a CG. The CG uses a different amount of resource and can use no band or task group parallelization."
                },
                {
                  "name": "cp_resources_cp_list",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of dictionary like the following:\n{\n 'resources' : {\n   'num_machines' : 2,\n   'num_mpiprocs_per_machine' : 48,\n },\n 'wallclock' : 3600,\n 'queue' : 'queue_name',\n 'account': 'account_name',\n}\nc,porturrently only the first element of the list is used.\n'wallclock' is the maximum time that can be requested to the scheduler. This code can decide to ask for less.\n"
                },
                {
                  "name": "ecutwfc",
                  "required": true,
                  "valid_types": "Float",
                  "info": "wavefunction cutoff (Ry), like in the QE input"
                },
                {
                  "name": "pseudo_family",
                  "required": true,
                  "valid_types": "Str",
                  "info": "pseudopotential family to use, as in usual aiida operations"
                },
                {
                  "name": "pw_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "input pw code (used to calculate force ratio)"
                },
                {
                  "name": "pw_resources_list",
                  "required": true,
                  "valid_types": "List",
                  "info": "Same as cp_resources_cp_list but for pw.x code."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData, TrajectoryData",
                  "info": "Input structure. If a trajectory is given, the workchain will use its last step to start the CG. If velocities are present, they will be used to initialize the simulation. Note that if you use a trajectory, usually kind information (like mass) are not included, so default values will be used. If you want to include kind information or override those provided with the input structure, use the input structure_kinds"
                },
                {
                  "name": "thermobarostat_points",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of dicts, each with the format [ { \"temperature_K\": 1000, \"pressure_KBar\": 10 , \"equilibration_time_ps\": 5.0, \"thermostat_time_ps\": 5.0} ]. The simulation will loop over this list of dictionaries, in the same order, equilibrating for the specified time at the given P,T point. Every point is repeated if the average T and P are not within the specified ranges"
                },
                {
                  "name": "additional_parameters_cp",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "parameters that will be included in the settings input of the QE CP plugin. These settings will be added on top of the default one. Same format as plugin input"
                },
                {
                  "name": "adjust_ionic_mass",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Multiply the mass of the ions by the corresponding force ration between the cp forces and pw forces -- that is less than 1. Note that averages of static properties do not depend on the ionic masses."
                },
                {
                  "name": "benchmark_emass_dt_walltime_s",
                  "required": false,
                  "valid_types": "Float",
                  "info": "same as benchmark_parallel_walltime_s but for dermining the best electronic mass and timestep."
                },
                {
                  "name": "benchmark_parallel_walltime_s",
                  "required": false,
                  "valid_types": "Float",
                  "info": "time requested to the scheduler during the test for finding the best parallelization parameters."
                },
                {
                  "name": "cmdline_cp",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "additional command line parameters of the cp verlet caclulations only (for example parallelization options)"
                },
                {
                  "name": "default_nose_frequency",
                  "required": false,
                  "valid_types": "Float",
                  "info": "default nose frequency when a frequency cannot be estimated from the vibrational spectrum"
                },
                {
                  "name": "dt",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "timestep in atomic units, if not automatically chosen."
                },
                {
                  "name": "dt_start_stop_step",
                  "required": false,
                  "valid_types": "List",
                  "info": "list of timesteps to try. Timesteps are changed to better integrate the equation of motion. When a new electronic mass is selected by this workchain timesteps are automatically adjusted."
                },
                {
                  "name": "emass",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "electronic mass, atomic mass units, if not automatically chosen"
                },
                {
                  "name": "emass_list",
                  "required": false,
                  "valid_types": "List",
                  "info": "list of electronic masses to try. The emass is selected in order to satisfy the requested CP/DFT force ratio."
                },
                {
                  "name": "initial_atomic_velocities_A_ps",
                  "required": false,
                  "valid_types": "ArrayData, NoneType",
                  "info": "optional input initial velocities in angstrom over picoseconds"
                },
                {
                  "name": "max_slope_const",
                  "required": false,
                  "valid_types": "Float",
                  "info": "max slope in K/ps of the constant of motion linear fit."
                },
                {
                  "name": "max_slope_ekinc",
                  "required": false,
                  "valid_types": "Float",
                  "info": "max slope in K/ps of the ekinc linear fit. If not satisfied try to change emass"
                },
                {
                  "name": "max_slope_min_emass",
                  "required": false,
                  "valid_types": "Float",
                  "info": "minimum possible value of electronic mass that can be set by the max_slope correction routine. Will not go lower than that."
                },
                {
                  "name": "max_slope_min_ps",
                  "required": false,
                  "valid_types": "Float",
                  "info": "minimum required lenght in ps of the last trajectory to do the linear fit on ekinc and const of motion"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "min_traj_steps_vdos",
                  "required": false,
                  "valid_types": "Int",
                  "info": "minimum number of steps to consider the calculated vibrational spectrum maximum valid, to set the thermostat frequency"
                },
                {
                  "name": "minimum_nose_frequency",
                  "required": false,
                  "valid_types": "Float",
                  "info": "minimum nose frequency: if the frequency estimated from the vibrational spectrum is lower than this value, this value is used"
                },
                {
                  "name": "nstep_initial_cg",
                  "required": false,
                  "valid_types": "Int",
                  "info": "At the beginning of the simulation the CP algorithm is not used. This is the number of steps to do using Born-Oppenheimer molecular dynamics algorithm with a conjugate gradient minimization of the electronic ground state."
                },
                {
                  "name": "nstep_parallel_test",
                  "required": false,
                  "valid_types": "Int",
                  "info": "the benchmark simulations will be that long, if performed"
                },
                {
                  "name": "number_of_pw_per_trajectory",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Number of pw submitted for every trajectory during calculation of force ratio."
                },
                {
                  "name": "nve_required_picoseconds",
                  "required": false,
                  "valid_types": "Float",
                  "info": "The equilibrated NVE simulation will last at least this number of picoseconds. How much picoseconds do you want?"
                },
                {
                  "name": "pressure_tolerance",
                  "required": false,
                  "valid_types": "Float",
                  "info": "Pressure tolerance in kBar used to say if the npt is equilibrated. If not setted, use the standard deviation of the P time series"
                },
                {
                  "name": "skip_emass_dt_test",
                  "required": false,
                  "valid_types": "Bool",
                  "info": ""
                },
                {
                  "name": "skip_parallel_test",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "do not run run benchmarks to discover a good internal Quantum Espresso parallelization scheme for the current system"
                },
                {
                  "name": "skip_thermobarostat",
                  "required": false,
                  "valid_types": "Bool",
                  "info": ""
                },
                {
                  "name": "structure_kinds",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "These kinds will be used to override or set the masses of the various atomic types. Note that the workflow, if skip_emass_dt_test is True, will calculate the ratio between cp forces and pw forces and adjust the provided masses automatically according to this ratio. So if you provide this input, make sure to set skip_emass_dt_test to True and set also the inputs emass and dt, or \"bad things can happen\""
                },
                {
                  "name": "target_force_ratio",
                  "required": false,
                  "valid_types": "Float",
                  "info": "The forces calculated by the Car-Parrinello method are affected by two types of error: one is due to the oscillations of the electrons around the DFT energy minimum, and the second is due to the finite mass of the electronic fluid that produces a _sistematic_ error in the forces, as if the electrons add mass to the ionic core. This second kind of error is can be controlled by this parameter, that tries to adjust the electronic mass to obtain the desidered ratio between CP forces and true DFT forces. Then you may want to modify the ionic mass to correct the leading factor of this error."
                },
                {
                  "name": "temperature_tolerance",
                  "required": false,
                  "valid_types": "Float",
                  "info": "Temperature tolerance in K used to say if the npt is equilibrated. If not setted, use the standard deviation of the T time series"
                },
                {
                  "name": "tempw_initial_random",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "If provided, sets the initial temperature when randomly initializing the starting velocities."
                }
              ],
              "outputs": [
                {
                  "name": "dt",
                  "required": true,
                  "valid_types": "Float",
                  "info": "The best integration timestep found"
                },
                {
                  "name": "emass",
                  "required": true,
                  "valid_types": "Float",
                  "info": "The best electronic mass found"
                },
                {
                  "name": "full_traj",
                  "required": true,
                  "valid_types": "TrajectoryData",
                  "info": "The full merged trajectory of all the simulations"
                },
                {
                  "name": "nve_prod_traj",
                  "required": true,
                  "valid_types": "TrajectoryData",
                  "info": "The trajectory of the last NVE simulation"
                },
                {
                  "name": "cmdline_cp",
                  "required": false,
                  "valid_types": "List",
                  "info": "The best command line parameters for the cp code"
                },
                {
                  "name": "kinds",
                  "required": false,
                  "valid_types": "List",
                  "info": "The kinds for the structure with the modified ionic masses"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 401,
                  "message": "The initial cg steps failed. I cannot start to work."
                },
                {
                  "status": 402,
                  "message": "Nose-Hoover thermostat failed."
                },
                {
                  "status": 403,
                  "message": "Final cg after Nose-Hoover failed."
                },
                {
                  "status": 404,
                  "message": "Error in the NVE simulation"
                },
                {
                  "status": 405,
                  "message": "The simulations are calculating very expensive random numbers. There is something wrong (cutoff? metal? boo?)"
                },
                {
                  "status": 406,
                  "message": "Wrong input parameters"
                },
                {
                  "status": 407,
                  "message": "Parallel test was not succesful, maybe there is something more wrong."
                },
                {
                  "status": 408,
                  "message": "Multiple errors in the simulation that cannot fix."
                },
                {
                  "status": 409,
                  "message": "This is a bug in the workchain."
                },
                {
                  "status": 410,
                  "message": "The initial simulation failed. I cannot start to work. Probably the configuration is not suitable for a molecular dynamics run or the trial integration timestep is too big"
                }
              ]
            },
            "class": "aiida_QECpWorkChain.workflow:CpWorkChain"
          }
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/rikigigi/aiida-QECpWorkChain",
      "is_installable": "True"
    },
    "aiida-abacus": {
      "code_home": "https://github.com/MCresearch/aiida-abacus",
      "entry_point_prefix": "abacus",
      "name": "aiida-abacus",
      "package_name": "aiida_abacus",
      "hosted_on": "github.com",
      "metadata": {
        "description": "AiiDA plugin for ABACUS",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA"
        ],
        "author": "aiida-abacus team"
      },
      "aiida_version": ">=2.5,<3",
      "entry_points": {
        "aiida.data": {
          "abacus": "aiida_abacus.data:DiffParameters"
        },
        "aiida.calculations": {
          "abacus": "aiida_abacus.calculations:DiffCalculation"
        },
        "aiida.parsers": {
          "abacus": "aiida_abacus.parsers:DiffParser"
        },
        "aiida.cmdline.data": {
          "abacus": "aiida_abacus.cli:data_cli"
        }
      },
      "commits_count": 76,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-abinit": {
      "code_home": "https://github.com/sponce24/aiida-abinit",
      "entry_point_prefix": "abinit",
      "pip_url": "aiida-abinit",
      "plugin_info": "https://raw.github.com/sponce24/aiida-abinit/master/setup.json",
      "name": "aiida-abinit",
      "package_name": "aiida_abinit",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-10-04",
        "description": "The AiiDA plugin for ABINIT.",
        "author_email": "Samuel Ponce <samuel.pon@gmail.com>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "0.5.0"
      },
      "aiida_version": ">=2.0,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "abinit": {
            "description": [
              "AiiDA calculation plugin wrapping the abinit executable."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kpoints",
                  "required": true,
                  "valid_types": "KpointsData",
                  "info": "The k-point mesh or path"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The ABINIT input parameters."
                },
                {
                  "name": "pseudos",
                  "required": true,
                  "valid_types": "Psp8Data, JthXmlData",
                  "info": "The pseudopotentials."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "A remote folder used for restarts."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Various special settings."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Various output quantities."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Final electronic bands if present."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Final structure of the calculation if present."
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "Trajectory of various output quantities over the calculation if present."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "Calculation did not produce all expected output files."
                },
                {
                  "status": 101,
                  "message": "Calculation did not produce the expected `[prefix]o_GSR.nc` output file."
                },
                {
                  "status": 102,
                  "message": "Calculation did not produce the expected `[prefix]o_HIST.nc` output file."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 210,
                  "message": "The retrieved folder did not contain the `stdout` output file."
                },
                {
                  "status": 301,
                  "message": "The `stdout` output file could not be read."
                },
                {
                  "status": 302,
                  "message": "The `stdout` output file could not be parsed."
                },
                {
                  "status": 303,
                  "message": "The `abipy` `EventsParser` reports that the runw as not completed."
                },
                {
                  "status": 304,
                  "message": "The output file contains one or more error messages."
                },
                {
                  "status": 305,
                  "message": "The output file contains one or more warning messages."
                },
                {
                  "status": 312,
                  "message": "The output structure could not be parsed."
                },
                {
                  "status": 400,
                  "message": "The calculation stopped prematurely because it ran out of walltime."
                },
                {
                  "status": 500,
                  "message": "The SCF minimization cycle did not converge."
                },
                {
                  "status": 501,
                  "message": "The ionic minimization cycle did not converge."
                }
              ]
            },
            "class": "aiida_abinit.calculations:AbinitCalculation"
          }
        },
        "aiida.parsers": {
          "abinit": "aiida_abinit.parsers:AbinitParser"
        },
        "aiida.workflows": {
          "abinit.base": {
            "description": [
              "Base Abinit Workchain to perform a DFT calculation. Validates parameters and restart."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "abinit",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "An explicit k-points mesh or list. Either this or `kpoints_distance` must be provided."
                },
                {
                  "name": "kpoints_distance",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "The minimum desired distance in 1/\u212b between k-points in reciprocal space. The explicit k-point mesh will be generated automatically by a calculation function based on the input structure."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Various output quantities."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Final electronic bands if present."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Final structure of the calculation if present."
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "Trajectory of various output quantities over the calculation if present."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 201,
                  "message": "`pseudos` could not be used to get the necessary pseudos."
                },
                {
                  "status": 202,
                  "message": "Neither the `kpoints` nor the `kpoints_distance` input was specified."
                },
                {
                  "status": 203,
                  "message": "Neither the `options` nor `automatic_parallelization` input was specified."
                },
                {
                  "status": 204,
                  "message": "The `metadata.options` did not specify both `resources.num_machines` and `max_wallclock_seconds`."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_abinit.workflows.base:AbinitBaseWorkChain"
          }
        }
      },
      "commits_count": 1,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-abinit",
      "is_installable": "True"
    },
    "aiida-aenet": {
      "code_home": "https://gitlab.com/lattice737/aiida-aenet",
      "development_status": "planning",
      "entry_point_prefix": "aenet",
      "pip_url": "https://gitlab.com/lattice737/aiida-aenet",
      "name": "aiida-aenet",
      "package_name": "aiida_aenet",
      "hosted_on": "gitlab.com",
      "metadata": {
        "author": "Nicholas Martinez",
        "author_email": "nicholasmartinez@my.unt.edu",
        "version": "0.1.0",
        "description": "AiiDA plugin to construct machine-learning potentials using aenet",
        "classifiers": [
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Development Status :: 0 - Alpha"
        ]
      },
      "aiida_version": "~=1.2",
      "entry_points": {
        "aiida.data": {
          "aenet.algorithm": "aiida_aenet.data.algorithm:AenetAlgorithm",
          "aenet.potential": "aiida_aenet.data.potentials:AenetPotential"
        },
        "aiida.calculations": {
          "aenet.cur": "aiida_aenet.calculations.cur:CurCalculation",
          "aenet.generate": "aiida_aenet.calculations.generate:AenetGenerateCalculation",
          "aenet.predict": "aiida_aenet.calculations.predict:AenetPredictCalculation",
          "aenet.simulate": "aiida_aenet.calculations.simulate:AenetLammpsMdCalculation",
          "aenet.train": "aiida_aenet.calculations.train:AenetTrainCalculation",
          "aenet.transform": "aiida_aenet.calculations.transform:TransformCalculation"
        },
        "aiida.parsers": {
          "aenet.generate": "aiida_aenet.parsers.generate:AenetGenerateParser",
          "aenet.predict": "aiida_aenet.parsers.predict:AenetPredictParser",
          "aenet.simulate": "aiida_aenet.parsers.simulate:AenetLammpsMdParser",
          "aenet.train": "aiida_aenet.parsers.train:AenetTrainParser"
        },
        "aiida.workflows": {
          "aenet.build_reference": "aiida_aenet.workflows.build_reference:BuildReferenceWorkChain",
          "aenet.compare_simulations": "aiida_aenet.workflows.compare_simulations:CompareSimulationsWorkChain",
          "aenet.make_potential": "aiida_aenet.workflows.make_potential:MakePotentialWorkChain",
          "aenet.make_structures": "aiida_aenet.workflows.make_structures:MakeStructuresWorkChain"
        },
        "aenet.potentials": {
          "lammps.ann": "aiida_aenet.data.potentials.lammps:ANN"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 6
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 4
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 4
        },
        {
          "colorclass": "orange",
          "text": "Other (Aenet potentials)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install https://gitlab.com/lattice737/aiida-aenet"
    },
    "aiida-aimall": {
      "entry_point_prefix": "aimall",
      "code_home": "https://github.com/kmlefran/aiida-aimall",
      "pip_url": "aiida-aimall",
      "documentation_url": "https://aiida-aimall.readthedocs.io/en/latest/",
      "plugin_info": "https://raw.githubusercontent.com/kmlefran/aiida-aimall/main/pyproject.toml",
      "version_file": "https://raw.githubusercontent.com/kmlefran/aiida-aimall/main/aiida_aimall/__init__.py",
      "name": "aiida-aimall",
      "package_name": "aiida_aimall",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-11-16",
        "description": "A plugin to interface AIMAll with AiiDA",
        "author_email": "Kevin Lefrancois-Gagnon <kgagnon@lakeheadu.ca>",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11"
        ],
        "version": "1.0.5"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.calculations": {
          "aimall.aimqb": {
            "description": [
              "AiiDA calculation plugin wrapping the aimqb executable.",
              "",
              "    Attributes:",
              "        parameters (AimqbParameters): command line parameters for the AimqbCalculation",
              "        file (aiida.orm.SinglefileData): the wfx, wfn, or fchk file to be run",
              "        code (aiida.orm.Code): code of the AIMQB executable",
              "        attached_atom_int (aiida.orm.Int): optional integer label of the atom that is attached to the rest of the molecule",
              "        group_atoms (aiida.orm.List): optional integer list of ids of atoms comprising the group for AimqbGroupParser",
              "",
              "    Example:",
              "        ::",
              "",
              "            code = orm.load_code('aimall@localhost')",
              "            AimqbParameters = DataFactory(\"aimall.aimqb\")",
              "            aim_params = AimqbParameters(parameter_dict={\"naat\": 2, \"nproc\": 2, \"atlaprhocps\": True})",
              "            file = SinglefileData(\"/absolute/path/to/file\")",
              "            # Alternatively, if you have the file as a string, you can build the file with:",
              "            # file=SinglefileData(io.BytesIO(file_string.encode()))",
              "            AimqbCalculation = CalculationFactory(\"aimall.aimqb\")",
              "            builder  = AimqbCalculation.get_builder()",
              "            builder.parameters = aim_params",
              "            builder.file = file",
              "            builder.code = code",
              "            builder.metadata.options.resources = {\"num_machines\": 1, \"num_mpiprocs_per_machine\": 2}",
              "            builder.submit()",
              "",
              "    Note:",
              "        By default, the AimqbBaseParser is used, getting atomic, BCP, and (if applicable) LapRhoCps.",
              "            You can opt to use the AimqbGroupParser, which also returns the integrated group properties",
              "            of a group, as well as the atomic graph descriptor of the group. In doing so, you can also",
              "            define the atoms included in the group, which, by convention, defaults to all atoms except atom 2.",
              "            You can further specify which atom of the group is the one bonded to the substrate, which defaults to",
              "            atom 1.  This is done by providing this to the builder:",
              "",
              "        ::",
              "",
              "            builder.metadata.options.parser_name = \"aimall.group\"",
              "            builder.attached_atom_int = Int(1)",
              "            builder.group_atoms = List([1,3,4,5,6])"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "fchk, wfn, or wfx to run AimQB on"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "AimqbParameters",
                  "info": "Command line parameters for aimqb"
                },
                {
                  "name": "attached_atom_int",
                  "required": false,
                  "valid_types": "Int",
                  "info": "id # of attached atom for graph descriptor. Defaults to atom 1"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "group_atoms",
                  "required": false,
                  "valid_types": "List",
                  "info": "Integer ids of atoms in groups to include. e.g. [1,3,4]. Defaults to all atoms in molecule except atom 2"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The computed parameters of an AIMAll calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 210,
                  "message": "The retrieved folder did not contain the output file."
                }
              ]
            },
            "class": "aiida_aimall.calculations:AimqbCalculation"
          }
        },
        "aiida.data": {
          "aimall.aimqb": "aiida_aimall.data:AimqbParameters"
        },
        "aiida.parsers": {
          "aimall.base": "aiida_aimall.parsers:AimqbBaseParser",
          "aimall.group": "aiida_aimall.parsers:AimqbGroupParser"
        },
        "aiida.workflows": {
          "aimall.aimreor": "aiida_aimall.workchains.param_parts:AIMAllReorWorkChain",
          "aimall.gausstoaim": "aiida_aimall.workchains.qc_programs:GaussianToAIMWorkChain",
          "aimall.qmtoaim": "aiida_aimall.workchains.qc_programs:QMToAIMWorkChain",
          "aimall.smitogauss": "aiida_aimall.workchains.param_parts:SmilesToGaussianWorkChain",
          "aimall.subparam": "aiida_aimall.workchains.subparam:SubstituentParameterWorkChain",
          "aimall.wfxtoaim": "aiida_aimall.workchains.qc_programs:GenerateWFXToAIMWorkChain"
        }
      },
      "commits_count": 31,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 6
        }
      ],
      "pip_install_cmd": "pip install aiida-aimall",
      "is_installable": "True"
    },
    "aiida-alloy": {
      "code_home": "https://github.com/DanielMarchand/aiida-alloy",
      "development_status": "beta",
      "entry_point_prefix": "alloy",
      "pip_url": "git+https://github.com/DanielMarchand/aiida-alloy",
      "name": "aiida-alloy",
      "package_name": "aiida_alloy",
      "hosted_on": "github.com",
      "metadata": {
        "author": "The AiiDA developers group",
        "author_email": "",
        "version": "0.1.0a0",
        "description": "Aiida Workflows for Elastic Constants using Quantum Espresso",
        "classifiers": [
          "Programming Language :: Python"
        ]
      },
      "aiida_version": ">=1.0.0a0",
      "entry_points": {
        "aiida.workflows": {
          "elastic": "aiida_alloy.workflows.ElasticWorkChain:ElasticWorkChain"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-alloy<pre>Collecting git+https://github.com/DanielMarchand/aiida-alloy\n  Cloning https://github.com/DanielMarchand/aiida-alloy to /tmp/pip-req-build-73ea7lua\n  Running command git clone --filter=blob:none --quiet https://github.com/DanielMarchand/aiida-alloy /tmp/pip-req-build-73ea7lua\n  Resolved https://github.com/DanielMarchand/aiida-alloy to commit dfae54b29291dfe94d4a5ca136738020f447bc1e\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'error'\n  error: subprocess-exited-with-error\n  \n  \u00d7 python setup.py egg_info did not run successfully.\n  \u2502 exit code: 1\n  \u2570\u2500> [6 lines of output]\n      Traceback (most recent call last):\n        File \"<string>\", line 2, in <module>\n        File \"<pip-setuptools-caller>\", line 34, in <module>\n        File \"/tmp/pip-req-build-73ea7lua/setup.py\", line 20, in <module>\n          long_description=open('README.md').read(),\n      FileNotFoundError: [Errno 2] No such file or directory: 'README.md'\n      [end of output]\n  \n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n\n\u00d7 Encountered error while generating package metadata.\n\u2570\u2500> See above for output.\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for details.\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'elastic' does not start with prefix 'alloy.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/DanielMarchand/aiida-alloy",
      "is_installable": "False"
    },
    "aiida-amber": {
      "code_home": "https://github.com/CCPBioSim/aiida-amber",
      "documentation_url": "https://aiida-amber.readthedocs.io/",
      "entry_point_prefix": "amber",
      "pip_url": "aiida-amber",
      "plugin_info": "https://raw.githubusercontent.com/CCPBioSim/aiida-amber/main/pyproject.toml",
      "name": "aiida-amber",
      "package_name": "aiida_amber",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-03-02",
        "description": "AiiDA plugin that wraps amber molecular dynamics executables",
        "author_email": "Jas Kalayan <jas.kalayan@stfc.ac.uk>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.11"
        ],
        "version": "2.2.0"
      },
      "aiida_version": ">=2.6.1,<=2.6.3",
      "entry_points": {
        "aiida.calculations": {
          "amber.antechamber": {
            "description": [
              "AiiDA calculation plugin wrapping the antechamber executable.",
              "",
              "    AiiDA plugin wrapper for the amber 'antechamber' command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "input_file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input structure file for antechamber"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "AntechamberParameters",
                  "info": "Command line parameters for antechamber"
                },
                {
                  "name": "additional_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "additional file"
                },
                {
                  "name": "antechamber_outfiles",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of antechamber output file names."
                },
                {
                  "name": "charge_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "charge file"
                },
                {
                  "name": "check_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "check file for gaussian"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "esp_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "gaussian esp file"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "res_top_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "residue toplogy file"
                }
              ],
              "outputs": [
                {
                  "name": "output_file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "output file"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_amber.calculations.antechamber:AntechamberCalculation"
          },
          "amber.parmed": {
            "description": [
              "AiiDA calculation plugin wrapping the parmed executable.",
              "",
              "    AiiDA plugin wrapper for the amber 'parmed' command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "ParmedParameters",
                  "info": "Command line parameters for parmed"
                },
                {
                  "name": "parmed_script",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input file for parmed commands"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "inpcrd_files",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "List of inpcrd files to load into ParmEd"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parmed_dirs",
                  "required": false,
                  "valid_types": "FolderData",
                  "info": "path to directory where inputs referenced in parmed input file are"
                },
                {
                  "name": "parmed_inpfiles",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "inputs referenced in parmed input script"
                },
                {
                  "name": "parmed_outfiles",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of parmed output file names."
                },
                {
                  "name": "prmtop_files",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "List of topology files to load into ParmEd"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_amber.calculations.parmed:ParmedCalculation"
          },
          "amber.pdb4amber": {
            "description": [
              "AiiDA calculation plugin wrapping the pdb4amber executable.",
              "",
              "    AiiDA plugin wrapper for the amber 'pdb4amber' command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "input_file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input pdb file for pdb4amber"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Pdb4amberParameters",
                  "info": "Command line parameters for pdb4amber"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "pdb4amber_outfiles",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of pdb4amber output file names."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "output_file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "outputted pdb file"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_amber.calculations.pdb4amber:Pdb4amberCalculation"
          },
          "amber.sander": {
            "description": [
              "AiiDA calculation plugin wrapping the sander executable.",
              "",
              "    AiiDA plugin wrapper for the amber 'sander' command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "inpcrd",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input initial coordinates and (optionally) velocities and periodic box size."
                },
                {
                  "name": "mdin",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input control data for the min/md run."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "SanderParameters",
                  "info": "Command line parameters for sander"
                },
                {
                  "name": "prmtop",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input molecular topology, force field, periodic box type, atom and residue names."
                },
                {
                  "name": "cein",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input redox state definitions."
                },
                {
                  "name": "cerestrt",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "redox state definitions, final redox states for restart (same format as cein)."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "cpin",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input protonation state definitions."
                },
                {
                  "name": "cprestrt",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "protonation state definitions, final protonation states for restart (same format as cpin)."
                },
                {
                  "name": "evbin",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input input for EVB potentials."
                },
                {
                  "name": "inpdip",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input polarizable dipole file, when indmeth=3."
                },
                {
                  "name": "inptraj",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input coordinate sets in trajectory format, when imin=5 or 6."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "mtmd",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input (optional) containing list of files and parameters for targeted MD to multiple targets."
                },
                {
                  "name": "refc",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "input (optional) reference coords for position restraints; also used for targeted MD."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "mdinfo",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "output latest mdout-format energy info."
                },
                {
                  "name": "mdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "output user readable state info and diagnostics -o stdout will send output to stdout (to the terminal) instead of to a file."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "ceout",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output redox state data saved over trajectory."
                },
                {
                  "name": "cpout",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output protonation state data saved over trajectory."
                },
                {
                  "name": "mdcrd",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output coordinate sets saved over trajectory."
                },
                {
                  "name": "mden",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output extensive energy data over trajectory (not synchronized with mdcrd or mdvel)."
                },
                {
                  "name": "mdfrc",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output force sets saved over trajectory."
                },
                {
                  "name": "mdvel",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output velocity sets saved over trajectory."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "restrt",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output final coordinates, velocity, and box dimensions if any - for restarting run."
                },
                {
                  "name": "rstdip",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "output polarizable dipole file, when indmeth=3."
                },
                {
                  "name": "suffix",
                  "required": false,
                  "valid_types": "str",
                  "info": "output this string will be added to all unspecified output files that are printed (for multisander runs, it will append this suffix to all output files)."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_amber.calculations.sander:SanderCalculation"
          },
          "amber.tleap": {
            "description": [
              "AiiDA calculation plugin wrapping the tleap executable.",
              "",
              "    AiiDA plugin wrapper for the amber 'tleap' command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "TleapParameters",
                  "info": "Command line parameters for tleap"
                },
                {
                  "name": "tleapscript",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "input file for tleap commands"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "dirs",
                  "required": false,
                  "valid_types": "FolderData",
                  "info": "path to directory where custom leaprc are"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "tleap_dirs",
                  "required": false,
                  "valid_types": "FolderData",
                  "info": "path to directory where inputs referenced in tleap input file are"
                },
                {
                  "name": "tleap_inpfiles",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "inputs referenced in tleap input file"
                },
                {
                  "name": "tleap_outfiles",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of tleap output file names."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_amber.calculations.tleap:TleapCalculation"
          }
        },
        "aiida.data": {
          "amber.antechamber": "aiida_amber.data.antechamber:AntechamberParameters",
          "amber.parmed": "aiida_amber.data.parmed:ParmedParameters",
          "amber.parmed_input": "aiida_amber.data.parmed_input:ParmedInputData",
          "amber.pdb4amber": "aiida_amber.data.pdb4amber:Pdb4amberParameters",
          "amber.sander": "aiida_amber.data.sander:SanderParameters",
          "amber.tleap": "aiida_amber.data.tleap:TleapParameters",
          "amber.tleap_input": "aiida_amber.data.tleap_input:TleapInputData"
        },
        "aiida.parsers": {
          "amber.antechamber": "aiida_amber.parsers.antechamber:AntechamberParser",
          "amber.parmed": "aiida_amber.parsers.parmed:ParmedParser",
          "amber.pdb4amber": "aiida_amber.parsers.pdb4amber:Pdb4amberParser",
          "amber.sander": "aiida_amber.parsers.sander:SanderParser",
          "amber.tleap": "aiida_amber.parsers.tleap:TleapParser"
        },
        "console_scripts": {
          "aiida_antechamber": "aiida_amber.cli.antechamber:cli",
          "aiida_parmed": "aiida_amber.cli.parmed:cli",
          "aiida_pdb4amber": "aiida_amber.cli.pdb4amber:cli",
          "aiida_sander": "aiida_amber.cli.sander:cli",
          "aiida_tleap": "aiida_amber.cli.tleap:cli"
        }
      },
      "commits_count": 128,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 5
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 7
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 5
        }
      ],
      "pip_install_cmd": "pip install aiida-amber",
      "is_installable": "True"
    },
    "aiida-ase": {
      "code_home": "https://github.com/aiidateam/aiida-ase",
      "documentation_url": "https://aiida-ase.readthedocs.io/",
      "entry_point_prefix": "ase",
      "pip_url": "aiida-ase",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-ase/master/setup.json",
      "name": "aiida-ase",
      "package_name": "aiida_ase",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-10-04",
        "description": "The official AiiDA plugin for ASE.",
        "author_email": "The AiiDA team <developers@aiida.net>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering"
        ],
        "version": "3.0.0"
      },
      "aiida_version": ">=2.0,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "ase.ase": {
            "description": [
              "`CalcJob` implementation that can be used to wrap around the ASE calculators."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters for the namelists."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "The k-points to use for the calculation."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Optional settings that control the plugin."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "array",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "One of the expected output files was missing."
                },
                {
                  "status": 301,
                  "message": "The log file from the DFT code was not written out."
                },
                {
                  "status": 302,
                  "message": "Relaxation did not complete."
                },
                {
                  "status": 303,
                  "message": "SCF Failed."
                },
                {
                  "status": 305,
                  "message": "Cannot identify what went wrong."
                },
                {
                  "status": 306,
                  "message": "gpaw could not find the PAW potentials."
                },
                {
                  "status": 307,
                  "message": "Attribute Error found in the stderr file."
                },
                {
                  "status": 308,
                  "message": "Fermi level is infinite."
                },
                {
                  "status": 400,
                  "message": "The calculation ran out of walltime."
                }
              ]
            },
            "class": "aiida_ase.calculations.ase:AseCalculation"
          }
        },
        "aiida.parsers": {
          "ase.ase": "aiida_ase.parsers.ase:AseParser",
          "ase.gpaw": "aiida_ase.parsers.gpaw:GpawParser"
        },
        "aiida.workflows": {
          "ase.gpaw.base": {
            "description": [
              "Workchain to run a GPAW calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "gpaw",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "k-points to use for the calculation."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "array",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_ase.workflows.base:GpawBaseWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-ase",
      "is_installable": "True"
    },
    "aiida-autocas": {
      "entry_point_prefix": "autocas",
      "code_home": "https://github.com/microsoft/aiida-autocas",
      "version_file": "https://raw.githubusercontent.com/microsoft/aiida-autocas/main/aiida_autocas/__init__.py",
      "pip_url": "git+https://github.com/microsoft/aiida-autocas",
      "name": "aiida-autocas",
      "package_name": "aiida_autocas",
      "hosted_on": "github.com",
      "metadata": {
        "version": "0.1.0",
        "description": "AiiDA AutoCAS Plugin",
        "classifiers": []
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.calculations": {
          "autocas": "aiida_autocas.calculations:AutoCASCalculation"
        },
        "aiida.parsers": {
          "autocas": "aiida_autocas.parsers:AutoCASParser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/microsoft/aiida-autocas"
    },
    "aiida-bader": {
      "entry_point_prefix": "bader",
      "pip_url": "aiida-bader",
      "code_home": "https://github.com/superstar54/aiida-bader",
      "documentation_url": "https://aiida-bader.readthedocs.io/en/latest/",
      "name": "aiida-bader",
      "package_name": "aiida_bader",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-06-03",
        "description": "Collections of node-based workflow created using aiida-workgraph.",
        "author_email": "Xing Wang <xingwang1991@gmail.com>",
        "classifiers": [
          "Development Status :: 1 - Planning",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering"
        ],
        "version": "0.1.12"
      },
      "aiida_version": "*",
      "entry_points": {
        "aiida.calculations": {
          "bader.bader": "aiida_bader.calculations:BaderCalculation"
        },
        "aiida.parsers": {
          "bader.bader": "aiida_bader.parsers:BaderParser"
        },
        "aiida.workflows": {
          "bader.qe": "aiida_bader.workchains:QeBaderWorkChain"
        },
        "aiidalab_qe.properties": {
          "bader": "aiida_bader.qeapp:bader"
        },
        "console_scripts": {
          "aiida-bader": "aiida_bader.__main__:cli"
        }
      },
      "commits_count": 9,
      "development_status": "planning",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Aiidalab qe properties)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-bader"
    },
    "aiida-bands-inspect": {
      "code_home": "https://github.com/greschd/aiida-bands-inspect",
      "documentation_url": "https://aiida-bands-inspect.readthedocs.io",
      "entry_point_prefix": "bands_inspect",
      "pip_url": "aiida-bands-inspect",
      "name": "aiida-bands-inspect",
      "package_name": "aiida_bands_inspect",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-03-26",
        "description": "AiiDA Plugin for running bands_inspect",
        "author": "Dominik Gresch",
        "author_email": "greschd@gmx.ch",
        "license": "Apache 2.0",
        "home_page": "https://aiida-bands-inspect.readthedocs.io",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Apache Software License",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.4.0"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.calculations": {
          "bands_inspect.align": "aiida_bands_inspect.calculations.align:AlignCalculation",
          "bands_inspect.difference": "aiida_bands_inspect.calculations.difference:DifferenceCalculation",
          "bands_inspect.plot": "aiida_bands_inspect.calculations.plot:PlotCalculation"
        },
        "aiida.parsers": {
          "bands_inspect.bands": "aiida_bands_inspect.parsers.bands:BandsParser",
          "bands_inspect.difference": "aiida_bands_inspect.parsers.difference:DifferenceParser",
          "bands_inspect.align": "aiida_bands_inspect.parsers.align:AlignParser",
          "bands_inspect.plot": "aiida_bands_inspect.parsers.plot:PlotParser"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E002'>E002</a>: Failed to import package aiida_bands_inspect<pre>Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/opt/conda/lib/python3.10/site-packages/aiida_bands_inspect/__init__.py\", line 8, in <module>\n    from . import calculations\n  File \"/opt/conda/lib/python3.10/site-packages/aiida_bands_inspect/calculations/__init__.py\", line 9, in <module>\n    from . import difference\n  File \"/opt/conda/lib/python3.10/site-packages/aiida_bands_inspect/calculations/difference.py\", line 11, in <module>\n    from aiida.orm import JobCalculation, DataFactory\nImportError: cannot import name 'JobCalculation' from 'aiida.orm' (/opt/conda/lib/python3.10/site-packages/aiida/orm/__init__.py)\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 3
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install aiida-bands-inspect",
      "is_installable": "True"
    },
    "aiida-bigdft": {
      "code_home": "https://github.com/BigDFT-group/aiida-bigdft-plugin",
      "development_status": "beta",
      "entry_point_prefix": "bigdft",
      "pip_url": "aiida-bigdft",
      "plugin_info": "https://raw.github.com/BigDFT-group/aiida-bigdft-plugin/master/setup.json",
      "name": "aiida-bigdft",
      "package_name": "aiida_bigdft",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2024-01-10",
        "description": "Translation layer for AiiDA-PyBigDFT",
        "author_email": "Louis Beal <louis.j.beal@gmail.com>",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.3.0"
      },
      "aiida_version": ">=1.6.3,<3",
      "entry_points": {
        "aiida.calculations": {
          "bigdft": {
            "description": [
              "AiiDA plugin wrapping a BigDFT calculation",
              "",
              "    requires a valid BigDFT install and a copy of `bigdft.py` on the target machine."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure (AiiDA format)"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "extra_files_recv",
                  "required": false,
                  "valid_types": "List",
                  "info": "Extra files to retrieve from calculation"
                },
                {
                  "name": "extra_files_send",
                  "required": false,
                  "valid_types": "List",
                  "info": "Extra files to send with calculation"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "BigDFTParameters",
                  "info": "BigDFT Inputfile parameters, as Dict"
                },
                {
                  "name": "params_fname",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Name override for parameters file"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "structure_fname",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Name override for structure file"
                }
              ],
              "outputs": [
                {
                  "name": "energy",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final energy estimate taken from logfile"
                },
                {
                  "name": "logfile",
                  "required": true,
                  "valid_types": "BigDFTLogfile",
                  "info": "BigDFT calculation Logfile"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "timefile",
                  "required": true,
                  "valid_types": "BigDFTFile",
                  "info": "BigDFT calculation time log"
                },
                {
                  "name": "ttotal",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Estimated total run time (excluding queue)"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 100,
                  "message": "Calculation did not produce all expected output files."
                },
                {
                  "status": 101,
                  "message": "Calculation did not produce all expected output files."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 400,
                  "message": "Calculation did not finish because of a walltime issue."
                },
                {
                  "status": 401,
                  "message": "Calculation did not finish because of memory limit"
                }
              ]
            },
            "class": "aiida_bigdft.calculations:BigDFTCalculation"
          }
        },
        "aiida.cmdline.data": {
          "bigdft": "aiida_bigdft.cli:data_cli"
        },
        "aiida.data": {
          "bigdft": "aiida_bigdft.data.BigDFTParameters:BigDFTParameters",
          "bigdftfile": "aiida_bigdft.data.BigDFTFile:BigDFTFile",
          "bigdftlogfile": "aiida_bigdft.data.BigDFTFile:BigDFTLogfile"
        },
        "aiida.parsers": {
          "bigdft": "aiida_bigdft.parsers:BigDFTParser"
        },
        "aiida.workflows": {
          "bigdft": {
            "description": [
              "Base workchain for running a BigDFT Calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "BigDFT",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "energy",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final energy estimate taken from logfile"
                },
                {
                  "name": "logfile",
                  "required": true,
                  "valid_types": "BigDFTLogfile",
                  "info": "BigDFT calculation Logfile"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "timefile",
                  "required": true,
                  "valid_types": "BigDFTFile",
                  "info": "BigDFT calculation time log"
                },
                {
                  "name": "ttotal",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Estimated total run time (excluding queue)"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "The calculation encountered an unrecoverable error"
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_bigdft.workflows.base:BigDFTBaseWorkChain"
          },
          "bigdft.relax": "aiida_bigdft.workflows.relax:BigDFTRelaxWorkChain"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W005'>W005</a>: Development status in classifiers (alpha) does not match development_status in metadata (beta)",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 3
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 2
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-bigdft",
      "is_installable": "True"
    },
    "aiida-castep": {
      "code_home": "https://gitlab.com/bz1/aiida-castep",
      "development_status": "stable",
      "documentation_url": "https://aiida-castep.readthedocs.io/",
      "entry_point_prefix": "castep",
      "pip_url": "aiida-castep",
      "plugin_info": "https://gitlab.com/bz1/aiida-castep/raw/master/setup.json",
      "name": "aiida-castep",
      "package_name": "aiida_castep",
      "hosted_on": "gitlab.com",
      "metadata": {
        "release_date": "2022-05-26",
        "description": "AiiDA plugin for CASTEP",
        "author": "Bonan Zhu",
        "author_email": "zhubonan@outlook.com",
        "license": "MIT License",
        "home_page": "https://github.com/zhubonan/aiida-castep",
        "classifiers": [
          "Framework :: AiiDA",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "2.0.1"
      },
      "aiida_version": ">=2.0,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "castep.castep": {
            "description": [
              "Class representing a generic CASTEP calculation -",
              "    This class should work for all types of calculations."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "A node that defines the input parameters"
                },
                {
                  "name": "pseudos",
                  "required": true,
                  "valid_types": "",
                  "info": "Use nodes for the pseudopotentails of one ofthe element in the structure. You should pass aa dictionary specifying the pseudpotential node foreach kind such as {O: <PsudoNode>}"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure"
                },
                {
                  "name": "bs_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: bandstructure"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "elnes_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: elnes"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Use a node defining the kpoints for the calculation"
                },
                {
                  "name": "magres_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: magres"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optics_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: optics"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote folder as the parent folder. Useful for restarts."
                },
                {
                  "name": "phonon_fine_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: phonon, phonon+efield"
                },
                {
                  "name": "phonon_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: phonon, phonon+efield"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A node for additional settings"
                },
                {
                  "name": "spectral_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: spectral"
                },
                {
                  "name": "supercell_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: phonon"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Parsed results in a dictionary format."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 0,
                  "message": "Calculation terminated gracefully, end found"
                },
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 101,
                  "message": "SCF Cycles failed to reach convergence"
                },
                {
                  "status": 103,
                  "message": "Stopped execuation due to detection of 'stop ' keyword in param file."
                },
                {
                  "status": 104,
                  "message": "CASTEP generate error files. Check them for details"
                },
                {
                  "status": 105,
                  "message": "Cannot find the end of calculation"
                },
                {
                  "status": 106,
                  "message": "No output .castep files found"
                },
                {
                  "status": 107,
                  "message": "Calculation self-terminated due to time limit"
                },
                {
                  "status": 108,
                  "message": "No retrieve folder is found"
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "UNKOWN ERROR"
                },
                {
                  "status": 501,
                  "message": "At least one kpoints/spin has no empty bands - please rerun with increased nextra_bands."
                }
              ]
            },
            "class": "aiida_castep.calculations.castep:CastepCalculation"
          },
          "castep.ts": {
            "description": [
              "CASTEP calculation for transition state search. Use an extra input product structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "A node that defines the input parameters"
                },
                {
                  "name": "product_structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Product structure for transition state search."
                },
                {
                  "name": "pseudos",
                  "required": true,
                  "valid_types": "",
                  "info": "Use nodes for the pseudopotentails of one ofthe element in the structure. You should pass aa dictionary specifying the pseudpotential node foreach kind such as {O: <PsudoNode>}"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure"
                },
                {
                  "name": "bs_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: bandstructure"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "elnes_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: elnes"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Use a node defining the kpoints for the calculation"
                },
                {
                  "name": "magres_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: magres"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optics_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: optics"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote folder as the parent folder. Useful for restarts."
                },
                {
                  "name": "phonon_fine_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: phonon, phonon+efield"
                },
                {
                  "name": "phonon_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: phonon, phonon+efield"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A node for additional settings"
                },
                {
                  "name": "spectral_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: spectral"
                },
                {
                  "name": "supercell_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Extra kpoints input for task: phonon"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Parsed results in a dictionary format."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 0,
                  "message": "Calculation terminated gracefully, end found"
                },
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 101,
                  "message": "SCF Cycles failed to reach convergence"
                },
                {
                  "status": 103,
                  "message": "Stopped execuation due to detection of 'stop ' keyword in param file."
                },
                {
                  "status": 104,
                  "message": "CASTEP generate error files. Check them for details"
                },
                {
                  "status": 105,
                  "message": "Cannot find the end of calculation"
                },
                {
                  "status": 106,
                  "message": "No output .castep files found"
                },
                {
                  "status": 107,
                  "message": "Calculation self-terminated due to time limit"
                },
                {
                  "status": 108,
                  "message": "No retrieve folder is found"
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "UNKOWN ERROR"
                },
                {
                  "status": 501,
                  "message": "At least one kpoints/spin has no empty bands - please rerun with increased nextra_bands."
                }
              ]
            },
            "class": "aiida_castep.calculations.castep:CastepTSCalculation"
          }
        },
        "aiida.cmdline.data": {
          "castep-helper": "aiida_castep.cmdline.helper_cmd:helper_cmd",
          "castep-pseudos": "aiida_castep.cmdline.otfg_cmd:pseudos_cmd"
        },
        "aiida.data": {
          "castep.otfgdata": "aiida_castep.data.otfg:OTFGData",
          "castep.uspdata": "aiida_castep.data.usp:UspData"
        },
        "aiida.groups": {
          "castep.otfg": "aiida_castep.data.otfg:OTFGGroup"
        },
        "aiida.parsers": {
          "castep.castep": "aiida_castep.parsers.castep:CastepParser"
        },
        "aiida.tests": {
          "castep.calculation": "aiida_castep.tests.dbtests.dbtestcalculation"
        },
        "aiida.tools.calculations": {
          "castep.castep": "aiida_castep.calculations.tools:CastepCalcTools"
        },
        "aiida.workflows": {
          "castep.altrelax": {
            "description": [
              "A relaxation workflow that alternates between fixed cell and unfixed cell",
              "    This is meidate the problem in CASTEP where if the cell is partially constraints",
              "    the convergence would be very slow.",
              "",
              "    To overcome this problem, the structure should be relaxed with cell constraints",
              "    then restart with fixed cell and repeat.",
              "",
              "    Following fields can be used in ``relax_options``",
              "",
              "    :var_cell_iter_max: Maximum iterations in variable cell relaxation, default to 10",
              "",
              "    :fix_cell_iter_max: Maximum iterations in fixed cell relaxation, default to 20"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "calc",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure to be used for relaxation."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Wether to clean the workdir of the calculations at the end of the workchain. The default is not performing any cleaning."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "relax_options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Options for relaxation."
                }
              ],
              "outputs": [
                {
                  "name": "output_bands",
                  "required": true,
                  "valid_types": "BandsData",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "output_array",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed structure."
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 101,
                  "message": "Subprocess lauched has failed in the relax stage"
                },
                {
                  "status": 102,
                  "message": "Geometry optimisation is not converged but the maximum iteration is exceeded."
                },
                {
                  "status": 201,
                  "message": "NO cell_constraints find in the input"
                }
              ]
            },
            "class": "aiida_castep.workflows.relax:CastepAlterRelaxWorkChain"
          },
          "castep.bands": {
            "description": [
              "Workchain for running bands calculation.",
              "",
              "    This workchain does the following:",
              "",
              "    1. Relax the structure if requested (eg. inputs passed to the relax namespace).",
              "    2. Optionally: Do a SCF singlepoint calculation",
              "    3. Do combined SCF + non-SCF calculation for bands and dos.",
              "",
              "    Inputs must be passed for the SCF calculation (dispatched to bands and DOS),",
              "    others are optional.",
              "",
              "    Input for bands and dos calculations are optional. However, if they are needed, the full list of inputs must",
              "    be passed. For the `parameters` node, one may choose to only specify those fields that need to be updated."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for SCF workchain, mandatory. Used as template for bands/dos if not supplied separately"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure"
                },
                {
                  "name": "bands",
                  "required": false,
                  "valid_types": "Data",
                  "info": "Inputs for bands calculation, if needed"
                },
                {
                  "name": "bands_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Explicit kpoints for the bands"
                },
                {
                  "name": "bands_kpoints_distance",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Spacing for band distances, used by seekpath"
                },
                {
                  "name": "clean_children_workdir",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "What part of the called children to clean"
                },
                {
                  "name": "dos",
                  "required": false,
                  "valid_types": "Data",
                  "info": "Inputs for DOS calculation, if needed"
                },
                {
                  "name": "dos_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Kpoints for running DOS calculations"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "only_dos",
                  "required": false,
                  "valid_types": "",
                  "info": "Flag for running only DOS calculations"
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "",
                  "info": "Options for this workchain. Supported keywords: dos_smearing, dos_npoints."
                },
                {
                  "name": "relax",
                  "required": false,
                  "valid_types": "Data",
                  "info": "Inputs for Relaxation workchain, if needed"
                },
                {
                  "name": "run_separate_scf",
                  "required": false,
                  "valid_types": "",
                  "info": "Flag for running a separate SCF calculation, default to False"
                }
              ],
              "outputs": [
                {
                  "name": "band_structure",
                  "required": true,
                  "valid_types": "",
                  "info": "Computed band structure with labels"
                },
                {
                  "name": "dos_bands",
                  "required": false,
                  "valid_types": "",
                  "info": "Bands from the DOS calculation"
                },
                {
                  "name": "primitive_structure",
                  "required": false,
                  "valid_types": "",
                  "info": "Primitive structure used for band structure calculations"
                },
                {
                  "name": "seekpath_parameters",
                  "required": false,
                  "valid_types": "",
                  "info": "Parameters used by seekpath"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 501,
                  "message": "Relaxation workchain failed"
                },
                {
                  "status": 502,
                  "message": "SCF workchain failed"
                },
                {
                  "status": 503,
                  "message": "Band structure workchain failed"
                },
                {
                  "status": 504,
                  "message": "DOS workchain failed"
                }
              ]
            },
            "class": "aiida_castep.workflows.bands:CastepBandsWorkChain"
          },
          "castep.base": {
            "description": [
              "A basic workchain for generic CASTEP calculations.",
              "    We try to handle erros such as walltime exceeded or SCF not converged"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "calc",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "calc_options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Options to be passed to calculations's metadata.options"
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Wether to clean the workdir of the calculations or not, the default is not clean."
                },
                {
                  "name": "continuation_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote folder as the parent folder. Useful for restarts."
                },
                {
                  "name": "ensure_gamma_centering",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Ensure the kpoint grid is gamma centred."
                },
                {
                  "name": "kpoints_spacing",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Kpoint spacing"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of restarts"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Options specific to the workchain.Avaliable options: queue_wallclock_limit, use_castep_bin"
                },
                {
                  "name": "pseudos_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "Pseudopotential family to be used"
                },
                {
                  "name": "reuse_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote folder as the parent folder. Useful for restarts."
                }
              ],
              "outputs": [
                {
                  "name": "output_bands",
                  "required": true,
                  "valid_types": "BandsData",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "output_array",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 200,
                  "message": "The maximum number of iterations has been exceeded"
                },
                {
                  "status": 201,
                  "message": "The maximum length of the wallclocks has been exceeded"
                },
                {
                  "status": 301,
                  "message": "CASTEP generated error files and is not recoverable"
                },
                {
                  "status": 302,
                  "message": "Cannot reach SCF convergence despite restart efforts"
                },
                {
                  "status": 400,
                  "message": "The stop flag has been put in the .param file to request termination of the calculation."
                },
                {
                  "status": 900,
                  "message": "Input validate is failed"
                },
                {
                  "status": 901,
                  "message": "Completed one iteration but found not calculation returned"
                },
                {
                  "status": 1000,
                  "message": "Error is not known"
                }
              ]
            },
            "class": "aiida_castep.workflows.base:CastepBaseWorkChain"
          },
          "castep.relax": {
            "description": [
              "WorkChain to relax structures.",
              "    Restart the relaxation calculation until the structure is fully relaxed.",
              "    Each CASTEP relaxation may finish without error with not fully relaxed structure",
              "    if the number of iteration is exceeded (*geom_max_iter*).",
              "    This workchain try to restart such calculations (wrapped in CastepBaseWorkChain)",
              "    until the structure is fully relaxed",
              "",
              "    ``relax_options`` is a Dict of the options avaliable fields are:",
              "",
              "    - restart_mode: mode of restart, choose from ``reuse`` (default), ``structure``,",
              "      ``continuation``.",
              "    - bypass: Bypass relaxation control - e.g. no checking of the convergence.",
              "      Can be used for doing singlepoint calculation."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "calc",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure to be used for relaxation."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Wether to clean the workdir of the calculations at the end of the workchain. The default is not performing any cleaning."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "relax_options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Options for relaxation."
                }
              ],
              "outputs": [
                {
                  "name": "output_bands",
                  "required": true,
                  "valid_types": "BandsData",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "output_array",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed structure."
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 101,
                  "message": "Subprocess lauched has failed in the relax stage"
                },
                {
                  "status": 102,
                  "message": "Geometry optimisation is not converged but the maximum iteration is exceeded."
                }
              ]
            },
            "class": "aiida_castep.workflows.relax:CastepRelaxWorkChain"
          }
        },
        "console_scripts": {
          "castep.mock": "aiida_castep.cmdline.mock_castep:mock_castep"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 4
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands, Groups, Tests, ...)",
          "count": 5
        }
      ],
      "pip_install_cmd": "pip install aiida-castep",
      "is_installable": "True"
    },
    "aiida-catmap": {
      "code_home": "https://github.com/sudarshanv01/aiida-catmap",
      "entry_point_prefix": "catmap",
      "name": "aiida-catmap",
      "package_name": "aiida_catmap",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Sudarshan Vijay",
        "author_email": "vijays@fysik.dtu.dk",
        "version": "0.2.0a0",
        "description": "AiiDA package that interfaces with Kinetic modelling code CatMAP",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.1.0,<2.0.0",
      "entry_points": {
        "aiida.calculations": {
          "catmap": "aiida_catmap.calculations.catmap:CatMAPCalculation"
        },
        "aiida.parsers": {
          "catmap": "aiida_catmap.parsers.catmap:CatMAPParser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-catmat": {
      "code_home": "https://github.com/pzarabadip/aiida-catmat",
      "entry_point_prefix": "catmat",
      "development_status": "beta",
      "documentation_url": "https://aiida-catmat.readthedocs.io/",
      "pip_url": "aiida-catmat",
      "name": "aiida-catmat",
      "package_name": "aiida_catmat",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2022-07-21",
        "description": "Collection of AiiDA WorkChains Developed in Morgan Group",
        "author": "Pezhman Zarabadi-Poor",
        "author_email": "pzarabadip@gmail.com",
        "license": "MIT License",
        "home_page": "https://github.com/pzarabadip/aiida-catmat",
        "classifiers": [
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "1.0.0b0"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.parsers": {
          "vasp_base_parser": "aiida_catmat.parsers:VaspBaseParser"
        },
        "aiida.workflows": {
          "vasp.base": "aiida_catmat.workchains:VaspBaseWorkChain",
          "catmat.vasp_multistage": "aiida_catmat.workchains:VaspMultiStageWorkChain",
          "catmat.vasp_converge": "aiida_catmat.workchains:VaspConvergeWorkChain",
          "catmat.vasp_catmat": "aiida_catmat.workchains:VaspCatMatWorkChain",
          "catmat.vasp_multistage_ddec": "aiida_catmat.workchains:VaspMultiStageDdecWorkChain"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-catmat<pre>Collecting aiida-catmat\n  Downloading aiida-catmat-1.0.0b0.tar.gz (27 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI.\naiida-catmat depends on aiida-vasp@ git+https://github.com/aiida-vasp/aiida-vasp.git@14771c14ac5ccb08ac521d5936eb0c4ec5b9337f\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'vasp_base_parser' does not start with prefix 'catmat.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'vasp.base' does not start with prefix 'catmat.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 5
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-catmat",
      "is_installable": "False"
    },
    "aiida-ce": {
      "code_home": "https://github.com/unkcpz/aiida-ce",
      "development_status": "beta",
      "entry_point_prefix": "ce",
      "pip_url": "git+https://github.com/unkcpz/aiida-ce",
      "name": "aiida-ce",
      "package_name": "aiida_ce",
      "hosted_on": "github.com",
      "metadata": {
        "author": "unkcpz",
        "author_email": "morty.yu@yahoo.com",
        "version": "0.1.0a0",
        "description": "AiiDA plugin for running cluster expansion using icet.",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.0.0,<2.0.0",
      "entry_points": {
        "aiida.data": {
          "ce": "aiida_ce.data:DiffParameters",
          "ce.structures": "aiida_ce.data.structure_set:StructureSet",
          "ce.cluster": "aiida_ce.data.cluster:ClusterSpaceData"
        },
        "aiida.calculations": {
          "ce.genenum": "aiida_ce.calculations.genenum:EnumCalculation",
          "ce.gensqs": "aiida_ce.calculations.gensqs:SqsCalculation",
          "ce.train": "aiida_ce.calculations.train:TrainCalculation"
        },
        "aiida.parsers": {
          "ce.genenum": "aiida_ce.parsers.genenum:EnumParser",
          "ce.gensqs": "aiida_ce.parsers.gensqs:SqsParser",
          "ce.train": "aiida_ce.parsers.train:TrainParser"
        },
        "aiida.cmdline.data": {
          "ce": "aiida_ce.cli:data_cli"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-ce<pre>Collecting git+https://github.com/unkcpz/aiida-ce\n  Cloning https://github.com/unkcpz/aiida-ce to /tmp/pip-req-build-asjjog9z\n  Running command git clone --filter=blob:none --quiet https://github.com/unkcpz/aiida-ce /tmp/pip-req-build-asjjog9z\n  Resolved https://github.com/unkcpz/aiida-ce to commit 84cbc7c1e14af3cac5530e092e529bc84cfcfe6d\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Installing backend dependencies: started\n  Installing backend dependencies: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-ce to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-ce==0.1.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-ce 0.1.0 depends on aiida-core<2.0.0 and >=1.5.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 3
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 3
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 3
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/unkcpz/aiida-ce",
      "is_installable": "False"
    },
    "aiida-champ": {
      "code_home": "https://github.com/TREX-CoE/aiida-champ",
      "development_status": "beta",
      "documentation_url": "http://aiida-champ.readthedocs.io/",
      "entry_point_prefix": "champ",
      "pip_url": "aiida-champ",
      "name": "aiida-champ",
      "package_name": "aiida_champ",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2021-12-27",
        "description": "AiiDA plugin that wraps the vmc executable of CHAMP code for computing the total energy and much more stuff.",
        "author": "Ravindra Shinde",
        "author_email": "r.l.shinde@utwente.nl",
        "license": "MIT",
        "home_page": "https://github.com/neelravi/aiida-champ",
        "classifiers": [
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "1.2.6"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.data": {
          "CHAMP": "aiida_champ.data:CHAMPParameters"
        },
        "aiida.calculations": {
          "CHAMP": "aiida_champ.calculations:CHAMPCalculation"
        },
        "aiida.parsers": {
          "CHAMP": "aiida_champ.parsers:CHAMPParser"
        },
        "aiida.cmdline.data": {
          "CHAMP": "aiida_champ.cli:data_cli"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-champ<pre>Collecting aiida-champ\n  Downloading aiida-champ-1.2.6.tar.gz (10 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Installing backend dependencies: started\n  Installing backend dependencies: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-champ to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-champ==1.2.6 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-champ 1.2.6 depends on aiida-core<2.0.0 and >=1.1.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'CHAMP' does not start with prefix 'champ.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'CHAMP' does not start with prefix 'champ.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'CHAMP' does not start with prefix 'champ.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'CHAMP' does not start with prefix 'champ.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-champ",
      "is_installable": "False"
    },
    "aiida-chemshell": {
      "entry_point_prefix": "chemshell",
      "code_home": "https://github.com/stfc/aiida-chemshell",
      "plugin_info": "https://raw.githubusercontent.com/stfc/aiida-chemshell/refs/heads/main/pyproject.toml",
      "pip_url": "aiida-chemshell",
      "documentation_url": "https://stfc.github.io/aiida-chemshell/",
      "name": "aiida-chemshell",
      "package_name": "aiida_chemshell",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-07-03",
        "description": "AiiDA workflow plugin for the ChemShell chemical modelling software package",
        "author_email": "\"Dr. Benjamin T. Speake\" <benjamin.speake@stfc.ac.uk>",
        "license": "BSD 3-Clause License\n        \n        Copyright (c) 2025, UKRI Science and Technology Facilities Council\n        \n        Redistribution and use in source and binary forms, with or without\n        modification, are permitted provided that the following conditions are met:\n        \n        1. Redistributions of source code must retain the above copyright notice, this\n           list of conditions and the following disclaimer.\n        \n        2. Redistributions in binary form must reproduce the above copyright notice,\n           this list of conditions and the following disclaimer in the documentation\n           and/or other materials provided with the distribution.\n        \n        3. Neither the name of the copyright holder nor the names of its\n           contributors may be used to endorse or promote products derived from\n           this software without specific prior written permission.\n        \n        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "Programming Language :: Python :: 3",
          "Topic :: Scientific/Engineering"
        ],
        "version": "0.2.0"
      },
      "aiida_version": ">=2.8",
      "entry_points": {
        "aiida.calculations": {
          "chemshell": {
            "description": [
              "AiiDA calculation plugin wrapper for ChemShell calculations.",
              "",
              "    Currently supports the following tasks:",
              "      - Single point energy",
              "      - Geometry optimisation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "SinglefileData, StructureData, TrajectoryData",
                  "info": "The input structure for the ChemShell calculation either contained within an '.xyz', '.pun' or '.cjson' file or as a StructureData instance."
                },
                {
                  "name": "calculation_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A dictionary of parameters for the ChemShell Task object."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "force_field_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "A file containing the force field parameters for the ChemShell MM interface."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "mm_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A dictionary of parameters for the ChemShell MM interface."
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optimisation_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A dictionary of parameters for the ChemShell geometry optimisation task. If this input is provided, a geometry optimisation task will be configured and added to this job."
                },
                {
                  "name": "qm_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A dictionary of parameters for to be passed to the Theory object for the ChemShell calculation."
                },
                {
                  "name": "qmmm_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A dictionary of parameters for the ChemShell QM/MM interface."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "structure2",
                  "required": false,
                  "valid_types": "SinglefileData, StructureData, NoneType",
                  "info": "An additional input structure for the ChemShell calculation eithercontained within an '.xyz', '.pun' or '.cjson' file or as a StructureData instance. This is used in jobs such as NEB optimisations as the final structure."
                },
                {
                  "name": "structure_index",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "An index to extract a specific structure if the input 'structure' contains multiple structures, such as if it is a TrajectoryData node."
                }
              ],
              "outputs": [
                {
                  "name": "energy",
                  "required": true,
                  "valid_types": "Float",
                  "info": "The total energy of the system."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "gradients",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "The gradients (and hessian) of the system if requested. The gradients are contained within an AiiDA ArrayData object with the key 'gradients'."
                },
                {
                  "name": "neb_info",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Information generated at each point along a Nudged Elastic Band path."
                },
                {
                  "name": "neb_path",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "The pathway determined by a Nudged Elastic Band calculation."
                },
                {
                  "name": "optimisation_path",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Values calculated at each step of an optimisation based calculation."
                },
                {
                  "name": "optimised_structure",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The optimised structure of the given system, if a geometry optimisation task was configured and successfully completed. The structure is contained within a ChemShell '.pun' file."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "trajectory_force",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "XYZ trajectory containing forces at each step of a geometry optimisation"
                },
                {
                  "name": "trajectory_path",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "XYZ trajectory file for the geometry optimisation"
                },
                {
                  "name": "vibrational_energies",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "The calculated thermochemical properties of the system."
                },
                {
                  "name": "vibrational_modes",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "The calculated vibrational modes of the system."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Error accessing the `output.log` ChemShell output file."
                },
                {
                  "status": 301,
                  "message": "ChemShell calculation failed to compute a final energy for the given task."
                },
                {
                  "status": 302,
                  "message": "ChemShell failed to produced the expected optimised structure file."
                },
                {
                  "status": 303,
                  "message": "ChemShell calculation failed to produce the expected results file."
                },
                {
                  "status": 304,
                  "message": "ChemShell calculation failed to compute the requested gradients or hessian for the given task."
                }
              ]
            },
            "class": "aiida_chemshell.calculations.base:ChemShellCalculation"
          },
          "chemshell.file_conversion.mlip_training": {
            "description": [
              "CalcJob to split an XYZ trajectory into individual ext XYZ files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "atom_energies",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The isolated atomic energies for the training set."
                },
                {
                  "name": "energies",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "The calculated dft energy of each step in the data series in a.u."
                },
                {
                  "name": "force",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "An XYZ trajectory file containing the forces at each step."
                },
                {
                  "name": "path",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "An XYZ trajectory file containing the positions of each step."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "filename",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The name to give the directory of output files."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "test_input",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "The testing data set in extended XYZ format."
                },
                {
                  "name": "training_input",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "The main training data set in extended XYZ format."
                },
                {
                  "name": "validation_input",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "The validation data set in extended XYZ format."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "No trajectory files have been produced."
                }
              ]
            },
            "class": "aiida_chemshell.calculations.file_conversion:CreateJanusTrainingInputsCalcJob"
          }
        },
        "aiida.parsers": {
          "chemshell": "aiida_chemshell.parsers.base:ChemShellParser",
          "chemshell.file_conversion.mlip_training": "aiida_chemshell.parsers.file_conversion:CreateJanusTrainingInputsParser"
        },
        "aiida.workflows": {
          "chemshell.atomic_energies": {
            "description": [
              "AiiDA workflow for extracting isolated atomic energies from a given structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "SinglefileData, StructureData, TrajectoryData",
                  "info": "The input structure for the ChemShell calculation either contained within an '.xyz', '.pun' or '.cjson' file or as a StructureData instance."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "qm_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "A dictionary of parameters for to be passed to the Theory object for the ChemShell calculation."
                }
              ],
              "outputs": [
                {
                  "name": "atom_energies",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "The individual isolated atomic energies for every unique atom type in the given system."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_chemshell.workflows.isolated_atoms:IsolatedAtomicEnergiesWorkChain"
          },
          "chemshell.opt": {
            "description": [
              "Geometry optimisation calculation with extended optional calculation options."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "chemsh",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "vibrational_analysis",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Calculate vibrational modes of resulting structure. (default=True)"
                }
              ],
              "outputs": [
                {
                  "name": "final_energy",
                  "required": true,
                  "valid_types": "Float",
                  "info": "The final energy for the optimised structure."
                },
                {
                  "name": "optimised_structure",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "The final optimised geometry of the given structure."
                },
                {
                  "name": "vibrational_energies",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "The calculated thermochemical properties of the optimised structure"
                },
                {
                  "name": "vibrational_modes",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "The calculated vibrational modes for the optimised structure."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_chemshell.workflows.optimisation:GeometryOptimisationWorkChain"
          }
        }
      },
      "commits_count": 70,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-chemshell",
      "is_installable": "True"
    },
    "aiida-codtools": {
      "code_home": "https://github.com/aiidateam/aiida-codtools",
      "documentation_url": "https://aiida-codtools.readthedocs.io/",
      "entry_point_prefix": "codtools",
      "pip_url": "aiida-codtools",
      "plugin_info": "https://raw.githubusercontent.com/aiidateam/aiida-codtools/master/setup.json",
      "name": "aiida-codtools",
      "package_name": "aiida_codtools",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-02-02",
        "description": "The Official AiiDA plugin for the cod-tools package.",
        "author_email": "The AiiDA team <developers@aiida.net>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "3.1.0"
      },
      "aiida_version": ">=2.1,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "codtools.cif_base": {
            "description": [
              "Generic `CalcJob` implementation that can easily be extended to work with any of the `cod-tools` scripts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_base:CifBaseCalculation"
          },
          "codtools.cif_cell_contents": {
            "description": [
              "CalcJob plugin for the `cif_cell_contents` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "formulae",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "A dictionary of formulae present in the CIF."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_cell_contents:CifCellContentsCalculation"
          },
          "codtools.cif_cod_check": {
            "description": [
              "CalcJob plugin for the `cif_cod_check` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "messages",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by the script."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_cod_check:CifCodCheckCalculation"
          },
          "codtools.cif_cod_deposit": {
            "description": [
              "CalcJob plugin for the `cif_cod_deposit` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 300,
                  "message": "The deposition failed for unknown reasons."
                },
                {
                  "status": 310,
                  "message": "The deposition failed because the input was invalid."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                },
                {
                  "status": 410,
                  "message": "The deposition failed because one or more CIFs already exist in the COD."
                },
                {
                  "status": 420,
                  "message": "The structure is unchanged and so deposition is unnecessary."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_cod_deposit:CifCodDepositCalculation"
          },
          "codtools.cif_cod_numbers": {
            "description": [
              "CalcJob plugin for the `cif_cod_numbers` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "numbers",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Mapping of COD IDs found with their formula and count."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_cod_numbers:CifCodNumbersCalculation"
          },
          "codtools.cif_filter": {
            "description": [
              "CalcJob plugin for the `cif_filter` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF produced by the script."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_filter:CifFilterCalculation"
          },
          "codtools.cif_select": {
            "description": [
              "CalcJob plugin for the `cif_select` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF produced by the script."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_select:CifSelectCalculation"
          },
          "codtools.cif_split_primitive": {
            "description": [
              "CalcJob plugin for the `cif_split_primitive` script of the `cod-tools` package."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIF to be processed."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Command line parameters."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "cifs",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CIFs produced by the script."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "messages",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Warning and error messages returned by script."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Neither the output for the error file could be read from the retrieved folder."
                },
                {
                  "status": 311,
                  "message": "The output file could not be read from the retrieved folder."
                },
                {
                  "status": 312,
                  "message": "The error file could not be read from the retrieved folder."
                },
                {
                  "status": 313,
                  "message": "The output file is empty."
                },
                {
                  "status": 320,
                  "message": "Invalid command line option passed."
                },
                {
                  "status": 400,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 410,
                  "message": "The output file could not be parsed into a CifData object."
                }
              ]
            },
            "class": "aiida_codtools.calculations.cif_split_primitive:CifSplitPrimitiveCalculation"
          },
          "codtools.primitive_structure_from_cif": {
            "description": [
              "Attempt to parse the given `CifData` and create a `StructureData` from it.",
              "",
              "    First the raw CIF file is parsed with the given `parse_engine`. The resulting `StructureData` is then passed through",
              "    SeeKpath to try and get the primitive cell. If that is successful, important structural parameters as determined by",
              "    SeeKpath will be set as extras on the structure node which is then returned as output.",
              "",
              "    :param cif: the `CifData` node",
              "    :param parse_engine: the parsing engine, supported libraries 'ase' and 'pymatgen'",
              "    :param symprec: a `Float` node with symmetry precision for determining primitive cell in SeeKpath",
              "    :param site_tolerance: a `Float` node with the fractional coordinate distance tolerance for finding overlapping",
              "        sites. This will only be used if the parse_engine is pymatgen",
              "    :return: the primitive `StructureData` as determined by SeeKpath"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "Data",
                  "info": "the `CifData` node"
                },
                {
                  "name": "parse_engine",
                  "required": true,
                  "valid_types": "Data",
                  "info": "the parsing engine, supported libraries 'ase' and 'pymatgen'"
                },
                {
                  "name": "site_tolerance",
                  "required": true,
                  "valid_types": "Data",
                  "info": "a `Float` node with the fractional coordinate distance tolerance for finding overlapping\nsites. This will only be used if the parse_engine is pymatgen"
                },
                {
                  "name": "symprec",
                  "required": true,
                  "valid_types": "Data",
                  "info": "a `Float` node with symmetry precision for determining primitive cell in SeeKpath"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_codtools.calculations.functions.primitive_structure_from_cif:primitive_structure_from_cif"
          }
        },
        "aiida.parsers": {
          "codtools.cif_base": "aiida_codtools.parsers.cif_base:CifBaseParser",
          "codtools.cif_cell_contents": "aiida_codtools.parsers.cif_cell_contents:CifCellContentsParser",
          "codtools.cif_cod_check": "aiida_codtools.parsers.cif_cod_check:CifCodCheckParser",
          "codtools.cif_cod_deposit": "aiida_codtools.parsers.cif_cod_deposit:CifCodDepositParser",
          "codtools.cif_cod_numbers": "aiida_codtools.parsers.cif_cod_numbers:CifCodNumbersParser",
          "codtools.cif_split_primitive": "aiida_codtools.parsers.cif_split_primitive:CifSplitPrimitiveParser"
        },
        "aiida.workflows": {
          "codtools.cif_clean": {
            "description": [
              "WorkChain to clean a `CifData` node using the `cif_filter` and `cif_select` scripts of `cod-tools`.",
              "",
              "    It will first run `cif_filter` to correct syntax errors, followed by `cif_select` which will canonicalize the tags.",
              "    If a group is passed for the `group_structure` input, the atomic structure library defined by the `engine` input",
              "    will be used to parse the final cleaned `CifData` to construct a `StructureData` object, which will then be passed",
              "    to the `SeeKpath` library to analyze it and return the primitive structure"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The CifData node that is to be cleaned."
                },
                {
                  "name": "cif_filter",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "cif_select",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "group_cif",
                  "required": false,
                  "valid_types": "Group, NoneType",
                  "info": "An optional Group to which the final cleaned CifData node will be added."
                },
                {
                  "name": "group_structure",
                  "required": false,
                  "valid_types": "Group, NoneType",
                  "info": "An optional Group to which the final reduced StructureData node will be added."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "parse_engine",
                  "required": false,
                  "valid_types": "Str",
                  "info": "The atomic structure engine to parse the cif and create the structure."
                },
                {
                  "name": "site_tolerance",
                  "required": false,
                  "valid_types": "Float",
                  "info": "The fractional coordinate distance tolerance for finding overlapping sites (pymatgen only)."
                },
                {
                  "name": "symprec",
                  "required": false,
                  "valid_types": "Float",
                  "info": "The symmetry precision used by SeeKpath for crystal symmetry refinement."
                }
              ],
              "outputs": [
                {
                  "name": "cif",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "The cleaned CifData node."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The primitive cell structure created with SeeKpath from the cleaned CifData."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 401,
                  "message": "The CifFilterCalculation step failed."
                },
                {
                  "status": 402,
                  "message": "The CifSelectCalculation step failed."
                },
                {
                  "status": 410,
                  "message": "The cleaned CifData contains sites with unknown species."
                },
                {
                  "status": 411,
                  "message": "The cleaned CifData defines no atomic sites."
                },
                {
                  "status": 412,
                  "message": "The cleaned CifData defines sites with attached hydrogens with incomplete positional data."
                },
                {
                  "status": 413,
                  "message": "The cleaned CifData defines sites with invalid atomic occupancies."
                },
                {
                  "status": 414,
                  "message": "Failed to parse a StructureData from the cleaned CifData."
                },
                {
                  "status": 420,
                  "message": "SeeKpath failed to determine the primitive structure."
                },
                {
                  "status": 421,
                  "message": "SeeKpath detected inconsistent symmetry operations."
                }
              ]
            },
            "class": "aiida_codtools.workflows.cif_clean:CifCleanWorkChain"
          }
        },
        "console_scripts": {
          "aiida-codtools": "aiida_codtools.cli:cmd_root"
        }
      },
      "commits_count": 6,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 9
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 6
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-codtools",
      "is_installable": "True"
    },
    "aiida-core": {
      "code_home": "https://github.com/aiidateam/aiida-core",
      "development_status": "stable",
      "documentation_url": "https://aiida-core.readthedocs.io/",
      "entry_point_prefix": "",
      "package_name": "aiida",
      "pip_url": "aiida-core",
      "plugin_info": "https://raw.githubusercontent.com/aiidateam/aiida-core/master/setup.json",
      "name": "aiida-core",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-03-16",
        "description": "AiiDA is a workflow manager for computational science with a strong focus on provenance, performance and extensibility.",
        "author_email": "The AiiDA team <developers@aiida.net>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering"
        ],
        "version": "2.8.0"
      },
      "aiida_version": "==2.8.0",
      "entry_points": {
        "aiida.brokers": {
          "core.rabbitmq": "aiida.brokers.rabbitmq.broker:RabbitmqBroker"
        },
        "aiida.calculations": {
          "core.arithmetic.add": {
            "description": [
              "`CalcJob` implementation to add two numbers using bash for testing and demonstration purposes."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "x",
                  "required": true,
                  "valid_types": "Int, Float",
                  "info": "The left operand."
                },
                {
                  "name": "y",
                  "required": true,
                  "valid_types": "Int, Float",
                  "info": "The right operand."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "sum",
                  "required": true,
                  "valid_types": "Int, Float",
                  "info": "The sum of the left and right operand."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 310,
                  "message": "The output file could not be read."
                },
                {
                  "status": 320,
                  "message": "The output file contains invalid output."
                },
                {
                  "status": 410,
                  "message": "The sum of the operands is a negative number."
                }
              ]
            },
            "class": "aiida.calculations.arithmetic.add:ArithmeticAddCalculation"
          },
          "core.stash": "aiida.calculations.stash:StashCalculation",
          "core.templatereplacer": "aiida.calculations.templatereplacer:TemplatereplacerCalculation",
          "core.transfer": "aiida.calculations.transfer:TransferCalculation",
          "core.unstash": "aiida.calculations.unstash:UnstashCalculation"
        },
        "aiida.calculations.importers": {
          "core.arithmetic.add": "aiida.calculations.importers.arithmetic.add:ArithmeticAddCalculationImporter"
        },
        "aiida.calculations.monitors": {
          "core.always_kill": "aiida.calculations.monitors.base:always_kill"
        },
        "aiida.cmdline.computer.configure": {
          "core.local": "aiida.transports.plugins.local:CONFIGURE_LOCAL_CMD",
          "core.ssh": "aiida.transports.plugins.ssh:CONFIGURE_SSH_CMD"
        },
        "aiida.cmdline.data": {
          "core.array": "aiida.cmdline.commands.cmd_data.cmd_array:array",
          "core.bands": "aiida.cmdline.commands.cmd_data.cmd_bands:bands",
          "core.cif": "aiida.cmdline.commands.cmd_data.cmd_cif:cif",
          "core.dict": "aiida.cmdline.commands.cmd_data.cmd_dict:dictionary",
          "core.remote": "aiida.cmdline.commands.cmd_data.cmd_remote:remote",
          "core.singlefile": "aiida.cmdline.commands.cmd_data.cmd_singlefile:singlefile",
          "core.structure": "aiida.cmdline.commands.cmd_data.cmd_structure:structure",
          "core.trajectory": "aiida.cmdline.commands.cmd_data.cmd_trajectory:trajectory",
          "core.upf": "aiida.cmdline.commands.cmd_data.cmd_upf:upf"
        },
        "aiida.cmdline.data.structure.import": {},
        "aiida.data": {
          "core.array": "aiida.orm.nodes.data.array.array:ArrayData",
          "core.array.bands": "aiida.orm.nodes.data.array.bands:BandsData",
          "core.array.kpoints": "aiida.orm.nodes.data.array.kpoints:KpointsData",
          "core.array.projection": "aiida.orm.nodes.data.array.projection:ProjectionData",
          "core.array.trajectory": "aiida.orm.nodes.data.array.trajectory:TrajectoryData",
          "core.array.xy": "aiida.orm.nodes.data.array.xy:XyData",
          "core.base": "aiida.orm.nodes.data:BaseType",
          "core.bool": "aiida.orm.nodes.data.bool:Bool",
          "core.cif": "aiida.orm.nodes.data.cif:CifData",
          "core.code": "aiida.orm.nodes.data.code.legacy:Code",
          "core.code.abstract": "aiida.orm.nodes.data.code.abstract:AbstractCode",
          "core.code.containerized": "aiida.orm.nodes.data.code.containerized:ContainerizedCode",
          "core.code.installed": "aiida.orm.nodes.data.code.installed:InstalledCode",
          "core.code.portable": "aiida.orm.nodes.data.code.portable:PortableCode",
          "core.dict": "aiida.orm.nodes.data.dict:Dict",
          "core.enum": "aiida.orm.nodes.data.enum:EnumData",
          "core.float": "aiida.orm.nodes.data.float:Float",
          "core.folder": "aiida.orm.nodes.data.folder:FolderData",
          "core.int": "aiida.orm.nodes.data.int:Int",
          "core.jsonable": "aiida.orm.nodes.data.jsonable:JsonableData",
          "core.list": "aiida.orm.nodes.data.list:List",
          "core.numeric": "aiida.orm.nodes.data.numeric:NumericType",
          "core.orbital": "aiida.orm.nodes.data.orbital:OrbitalData",
          "core.remote": "aiida.orm.nodes.data.remote.base:RemoteData",
          "core.remote.stash": "aiida.orm.nodes.data.remote.stash.base:RemoteStashData",
          "core.remote.stash.compress": "aiida.orm.nodes.data.remote.stash.compress:RemoteStashCompressedData",
          "core.remote.stash.custom": "aiida.orm.nodes.data.remote.stash.custom:RemoteStashCustomData",
          "core.remote.stash.folder": "aiida.orm.nodes.data.remote.stash.folder:RemoteStashFolderData",
          "core.singlefile": "aiida.orm.nodes.data.singlefile:SinglefileData",
          "core.str": "aiida.orm.nodes.data.str:Str",
          "core.structure": "aiida.orm.nodes.data.structure:StructureData",
          "core.upf": "aiida.orm.nodes.data.upf:UpfData"
        },
        "aiida.groups": {
          "core": "aiida.orm.groups:Group",
          "core.auto": "aiida.orm.groups:AutoGroup",
          "core.import": "aiida.orm.groups:ImportGroup",
          "core.upf": "aiida.orm.groups:UpfFamily"
        },
        "aiida.node": {
          "data": "aiida.orm.nodes.data.data:Data",
          "process": "aiida.orm.nodes.process.process:ProcessNode",
          "process.calculation": "aiida.orm.nodes.process.calculation.calculation:CalculationNode",
          "process.calculation.calcfunction": "aiida.orm.nodes.process.calculation.calcfunction:CalcFunctionNode",
          "process.calculation.calcjob": "aiida.orm.nodes.process.calculation.calcjob:CalcJobNode",
          "process.workflow": "aiida.orm.nodes.process.workflow.workflow:WorkflowNode",
          "process.workflow.workchain": "aiida.orm.nodes.process.workflow.workchain:WorkChainNode",
          "process.workflow.workfunction": "aiida.orm.nodes.process.workflow.workfunction:WorkFunctionNode"
        },
        "aiida.orm": {
          "core.auth_info": "aiida.orm.authinfos:AuthInfo",
          "core.comment": "aiida.orm.comments:Comment",
          "core.computer": "aiida.orm.computers:Computer",
          "core.data": "aiida.orm.nodes.data.data:Data",
          "core.entity": "aiida.orm.entities:Entity",
          "core.group": "aiida.orm.groups:Group",
          "core.log": "aiida.orm.logs:Log",
          "core.node": "aiida.orm.nodes.node:Node",
          "core.user": "aiida.orm.users:User"
        },
        "aiida.parsers": {
          "core.arithmetic.add": "aiida.parsers.plugins.arithmetic.add:ArithmeticAddParser",
          "core.templatereplacer": "aiida.parsers.plugins.templatereplacer.parser:TemplatereplacerParser"
        },
        "aiida.schedulers": {
          "core.direct": "aiida.schedulers.plugins.direct:DirectScheduler",
          "core.lsf": "aiida.schedulers.plugins.lsf:LsfScheduler",
          "core.pbspro": "aiida.schedulers.plugins.pbspro:PbsproScheduler",
          "core.sge": "aiida.schedulers.plugins.sge:SgeScheduler",
          "core.slurm": "aiida.schedulers.plugins.slurm:SlurmScheduler",
          "core.torque": "aiida.schedulers.plugins.torque:TorqueScheduler"
        },
        "aiida.storage": {
          "core.psql_dos": "aiida.storage.psql_dos.backend:PsqlDosBackend",
          "core.sqlite_dos": "aiida.storage.sqlite_dos.backend:SqliteDosStorage",
          "core.sqlite_temp": "aiida.storage.sqlite_temp.backend:SqliteTempBackend",
          "core.sqlite_zip": "aiida.storage.sqlite_zip.backend:SqliteZipBackend"
        },
        "aiida.tools.calculations": {},
        "aiida.tools.data.orbitals": {
          "core.orbital": "aiida.tools.data.orbital.orbital:Orbital",
          "core.realhydrogen": "aiida.tools.data.orbital.realhydrogen:RealhydrogenOrbital"
        },
        "aiida.tools.dbexporters": {},
        "aiida.tools.dbimporters": {
          "core.cod": "aiida.tools.dbimporters.plugins.cod:CodDbImporter",
          "core.icsd": "aiida.tools.dbimporters.plugins.icsd:IcsdDbImporter",
          "core.materialsproject": "aiida.tools.dbimporters.plugins.materialsproject:MaterialsProjectImporter",
          "core.mpds": "aiida.tools.dbimporters.plugins.mpds:MpdsDbImporter",
          "core.mpod": "aiida.tools.dbimporters.plugins.mpod:MpodDbImporter",
          "core.nninc": "aiida.tools.dbimporters.plugins.nninc:NnincDbImporter",
          "core.oqmd": "aiida.tools.dbimporters.plugins.oqmd:OqmdDbImporter",
          "core.pcod": "aiida.tools.dbimporters.plugins.pcod:PcodDbImporter",
          "core.tcod": "aiida.tools.dbimporters.plugins.tcod:TcodDbImporter"
        },
        "aiida.transports": {
          "core.local": "aiida.transports.plugins.local:LocalTransport",
          "core.ssh": "aiida.transports.plugins.ssh:SshTransport",
          "core.ssh_async": "aiida.transports.plugins.ssh_async:AsyncSshTransport"
        },
        "aiida.workflows": {
          "core.arithmetic.add_multiply": {
            "description": [
              "Add two numbers and multiply it with a third."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "x",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "y",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "z",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida.workflows.arithmetic.add_multiply:add_multiply"
          },
          "core.arithmetic.multiply_add": {
            "description": [
              "WorkChain to multiply two numbers and add a third, for testing and demonstration purposes."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "AbstractCode",
                  "info": ""
                },
                {
                  "name": "x",
                  "required": true,
                  "valid_types": "Int",
                  "info": ""
                },
                {
                  "name": "y",
                  "required": true,
                  "valid_types": "Int",
                  "info": ""
                },
                {
                  "name": "z",
                  "required": true,
                  "valid_types": "Int",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "result",
                  "required": true,
                  "valid_types": "Int",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 400,
                  "message": "The result is a negative number."
                }
              ]
            },
            "class": "aiida.workflows.arithmetic.multiply_add:MultiplyAddWorkChain"
          }
        },
        "console_scripts": {
          "runaiida": "aiida.cmdline.commands.cmd_run:run",
          "verdi": "aiida.cmdline.commands.cmd_verdi:verdi"
        }
      },
      "commits_count": 253,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 32
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 2
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 2
        },
        {
          "colorclass": "orange",
          "text": "Other (Brokers, Calculations importers, Calculations monitors, ...)",
          "count": 59
        }
      ],
      "pip_install_cmd": "pip install aiida-core",
      "is_installable": "True"
    },
    "aiida-cp2k": {
      "code_home": "https://github.com/cp2k/aiida-cp2k",
      "entry_point_prefix": "cp2k",
      "pip_url": "aiida-cp2k",
      "plugin_info": "https://raw.githubusercontent.com/cp2k/aiida-cp2k/master/setup.json",
      "name": "aiida-cp2k",
      "package_name": "aiida_cp2k",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-02-04",
        "description": "The official AiiDA plugin for CP2K.",
        "author": "The AiiDA team",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python :: 3"
        ],
        "version": "2.1.1"
      },
      "aiida_version": ">=2.0.0,<3.0.0",
      "entry_points": {
        "aiida.calculations": {
          "cp2k": {
            "description": [
              "This is a Cp2kCalculation, subclass of JobCalculation, to prepare input for an ab-initio CP2K calculation.",
              "",
              "    For information on CP2K, refer to: https://www.cp2k.org."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The input parameters."
                },
                {
                  "name": "pseudos_upf",
                  "required": true,
                  "valid_types": "UpfData",
                  "info": "A mapping of `UpfData` nodes onto the kind name to which they should apply."
                },
                {
                  "name": "basissets",
                  "required": false,
                  "valid_types": "",
                  "info": "A dictionary of basissets to be used in the calculations: key is the atomic symbol, value is either a single basisset or a list of basissets. If multiple basissets for a single symbol are passed, it is mandatory to specify a KIND section with a BASIS_SET keyword matching the names (or aliases) of the basissets."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "file",
                  "required": false,
                  "valid_types": "SinglefileData, StructureData",
                  "info": "Additional input files."
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoint mesh."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Working directory of a previously ran calculation to restart from."
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "",
                  "info": "A dictionary of pseudopotentials to be used in the calculations: key is the atomic symbol, value is either a single pseudopotential or a list of pseudopotentials. If multiple pseudos for a single symbol are passed, it is mandatory to specify a KIND section with a PSEUDOPOTENTIAL keyword matching the names (or aliases) of the pseudopotentials."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Optional input parameters."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "The main input structure."
                },
                {
                  "name": "trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData, NoneType",
                  "info": "Input trajectory for a REFTRAJ simulation."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The output dictionary containing results of the calculation."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Computed electronic band structure."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "The output trajectory."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 210,
                  "message": "The retrieved folder did not contain the required output file."
                },
                {
                  "status": 301,
                  "message": "The output file could not be read."
                },
                {
                  "status": 302,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 303,
                  "message": "The output file was incomplete."
                },
                {
                  "status": 304,
                  "message": "The output file contains the word \"ABORT\"."
                },
                {
                  "status": 312,
                  "message": "The output structure could not be parsed."
                },
                {
                  "status": 321,
                  "message": "The coordinates trajectory file could not be read."
                },
                {
                  "status": 323,
                  "message": "The forces trajectory file could not be read."
                },
                {
                  "status": 325,
                  "message": "The cells trajectory file could not be read."
                },
                {
                  "status": 350,
                  "message": "The parser raised an unexpected exception."
                },
                {
                  "status": 400,
                  "message": "The calculation stopped prematurely because it ran out of walltime."
                },
                {
                  "status": 450,
                  "message": "SCF cycle did not converge for the given threshold."
                },
                {
                  "status": 500,
                  "message": "The ionic minimization cycle did not converge for the given thresholds."
                },
                {
                  "status": 501,
                  "message": "The maximum number of optimization steps reached."
                }
              ]
            },
            "class": "aiida_cp2k.calculations:Cp2kCalculation"
          }
        },
        "aiida.parsers": {
          "cp2k_advanced_parser": "aiida_cp2k.parsers:Cp2kAdvancedParser",
          "cp2k_base_parser": "aiida_cp2k.parsers:Cp2kBaseParser",
          "cp2k_tools_parser": "aiida_cp2k.parsers:Cp2kToolsParser"
        },
        "aiida.workflows": {
          "cp2k.base": {
            "description": [
              "Workchain to run a CP2K calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cp2k",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The output dictionary containing results of the calculation."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "final_input_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "The input parameters used for the final calculation."
                },
                {
                  "name": "output_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Computed electronic band structure."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "The output trajectory."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "The calculation failed with an unidentified unrecoverable error."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 310,
                  "message": "The calculation failed with a known unrecoverable error."
                },
                {
                  "status": 400,
                  "message": "The calculation didn't produce any data to restart from."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_cp2k.workchains:Cp2kBaseWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 3
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-cp2k",
      "is_installable": "True"
    },
    "aiida-crystal-dft": {
      "code_home": "https://github.com/tilde-lab/aiida-crystal-dft",
      "development_status": "beta",
      "documentation_url": "https://github.com/tilde-lab/aiida-crystal-dft",
      "entry_point_prefix": "crystal_dft",
      "pip_url": "git+https://github.com/tilde-lab/aiida-crystal-dft",
      "name": "aiida-crystal-dft",
      "package_name": "aiida_crystal_dft",
      "hosted_on": "github.com",
      "metadata": {
        "description": "Yet another AiiDA plugin for CRYSTAL code, mainly intended for use with the MPDS online ecosystem",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Intended Audience :: Science/Research",
          "Operating System :: OS Independent",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.14",
          "Programming Language :: Python :: 3.15",
          "Topic :: Scientific/Engineering",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics",
          "Topic :: Scientific/Engineering :: Information Analysis"
        ],
        "author": "Andrey Sobolev"
      },
      "aiida_version": "<2.9.0",
      "entry_points": {
        "aiida.data": {
          "crystal_dft.basis": "aiida_crystal_dft.data.basis:CrystalBasisData",
          "crystal_dft.basis_family": "aiida_crystal_dft.data.basis_family:CrystalBasisFamilyData"
        },
        "aiida.calculations": {
          "crystal_dft.serial": {
            "description": [
              "No description available"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "CrystalBasisData",
                  "info": ""
                },
                {
                  "name": "basis_family",
                  "required": false,
                  "valid_types": "CrystalBasisFamilyData, NoneType",
                  "info": ""
                },
                {
                  "name": "guess_oxistates",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "high_spin_preferred",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "is_magnetic",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "spinlock_steps",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": ""
                },
                {
                  "name": "use_oxistates",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "oxidation_states",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": ""
                },
                {
                  "name": "output_wavefunction",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "SCF calculation not converged"
                },
                {
                  "status": 301,
                  "message": "Geometry optimization failed"
                },
                {
                  "status": 302,
                  "message": "Unit cell not neutral"
                },
                {
                  "status": 303,
                  "message": "Basis set linearly dependent"
                },
                {
                  "status": 304,
                  "message": "Neighbour list too large"
                },
                {
                  "status": 305,
                  "message": "No G-vectors left"
                },
                {
                  "status": 306,
                  "message": "Collapsed geometry"
                },
                {
                  "status": 307,
                  "message": "Closed shell run - spin polarization not allowed"
                },
                {
                  "status": 308,
                  "message": "Parameters for model hessian not defined"
                },
                {
                  "status": 309,
                  "message": "Fermi energy not in interval"
                },
                {
                  "status": 310,
                  "message": "Insufficient indices for Madelung sums"
                },
                {
                  "status": 350,
                  "message": "Internal memory error"
                },
                {
                  "status": 360,
                  "message": "Inadequate elastic calculation: additional optimization needed"
                },
                {
                  "status": 400,
                  "message": "Unknown error"
                },
                {
                  "status": 401,
                  "message": "The retrieved folder data node could not be accessed"
                }
              ]
            },
            "class": "aiida_crystal_dft.calculations.serial:CrystalSerialCalculation"
          },
          "crystal_dft.parallel": {
            "description": [
              "No description available"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "CrystalBasisData",
                  "info": ""
                },
                {
                  "name": "basis_family",
                  "required": false,
                  "valid_types": "CrystalBasisFamilyData, NoneType",
                  "info": ""
                },
                {
                  "name": "guess_oxistates",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "high_spin_preferred",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "is_magnetic",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "spinlock_steps",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": ""
                },
                {
                  "name": "use_oxistates",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "oxidation_states",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": ""
                },
                {
                  "name": "output_wavefunction",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "SCF calculation not converged"
                },
                {
                  "status": 301,
                  "message": "Geometry optimization failed"
                },
                {
                  "status": 302,
                  "message": "Unit cell not neutral"
                },
                {
                  "status": 303,
                  "message": "Basis set linearly dependent"
                },
                {
                  "status": 304,
                  "message": "Neighbour list too large"
                },
                {
                  "status": 305,
                  "message": "No G-vectors left"
                },
                {
                  "status": 306,
                  "message": "Collapsed geometry"
                },
                {
                  "status": 307,
                  "message": "Closed shell run - spin polarization not allowed"
                },
                {
                  "status": 308,
                  "message": "Parameters for model hessian not defined"
                },
                {
                  "status": 309,
                  "message": "Fermi energy not in interval"
                },
                {
                  "status": 310,
                  "message": "Insufficient indices for Madelung sums"
                },
                {
                  "status": 350,
                  "message": "Internal memory error"
                },
                {
                  "status": 360,
                  "message": "Inadequate elastic calculation: additional optimization needed"
                },
                {
                  "status": 400,
                  "message": "Unknown error"
                },
                {
                  "status": 401,
                  "message": "The retrieved folder data node could not be accessed"
                }
              ]
            },
            "class": "aiida_crystal_dft.calculations.parallel:CrystalParallelCalculation"
          },
          "crystal_dft.properties": {
            "description": [
              "AiiDA calculation plugin wrapping the properties executable."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "wavefunction",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": ""
                },
                {
                  "name": "output_bands_down",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": ""
                },
                {
                  "name": "output_dos",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The retrieved folder data node could not be accessed"
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_crystal_dft.calculations.properties:PropertiesCalculation"
          }
        },
        "aiida.parsers": {
          "crystal_dft": "aiida_crystal_dft.parsers.crystal:CrystalParser",
          "crystal_dft.properties": "aiida_crystal_dft.parsers.properties:PropertiesParser"
        },
        "aiida.workflows": {
          "crystal_dft.base": {
            "description": [
              "Run CRYSTAL calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "basis_family",
                  "required": true,
                  "valid_types": "CrystalBasisFamilyData",
                  "info": ""
                },
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Calculation options"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "restart_params",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "output_trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": ""
                },
                {
                  "name": "output_wavefunction",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "oxidation_states",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "primitive_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "CRYSTAL error"
                },
                {
                  "status": 400,
                  "message": "Unknown error"
                }
              ]
            },
            "class": "aiida_crystal_dft.workflows.base:BaseCrystalWorkChain"
          }
        },
        "aiida.cmdline.data": {
          "crystal_dft": "aiida_crystal_dft.cli.basis:basis_set"
        }
      },
      "commits_count": 39,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 3
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/tilde-lab/aiida-crystal-dft",
      "is_installable": "True"
    },
    "aiida-crystal17": {
      "code_home": "https://github.com/aiidaplugins/aiida-crystal17",
      "development_status": "beta",
      "documentation_url": "https://aiida-crystal17.readthedocs.io",
      "entry_point_prefix": "crystal17",
      "pip_url": "aiida-crystal17",
      "plugin_info": "https://raw.githubusercontent.com/aiidaplugins/aiida-crystal17/master/setup.json",
      "name": "aiida-crystal17",
      "package_name": "aiida_crystal17",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-09-29",
        "description": "AiiDA plugin for running the CRYSTAL17 code",
        "author": "Chris Sewell",
        "author_email": "chrisj_sewell@hotmail.com",
        "license": "MIT",
        "home_page": "https://github.com/chrisjsewell/aiida-crystal17",
        "classifiers": [
          "Framework :: AiiDA",
          "Programming Language :: Python",
          "Programming Language :: Python :: 2.7",
          "Programming Language :: Python :: 3.6",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.11.0"
      },
      "aiida_version": ">=1.4.0,<2.0.0",
      "entry_points": {
        "aiida.calculations": {
          "crystal17.basic": "aiida_crystal17.calculations.cry_basic:CryBasicCalculation",
          "crystal17.doss": "aiida_crystal17.calculations.prop_doss:CryDossCalculation",
          "crystal17.ech3": "aiida_crystal17.calculations.prop_ech3:CryEch3Calculation",
          "crystal17.main": "aiida_crystal17.calculations.cry_main:CryMainCalculation",
          "crystal17.newk": "aiida_crystal17.calculations.prop_newk:CryNewkCalculation",
          "crystal17.ppan": "aiida_crystal17.calculations.prop_ppan:CryPpanCalculation"
        },
        "aiida.cmdline.data": {
          "crystal17.basis": "aiida_crystal17.cmndline.basis_set:basisset",
          "crystal17.parse": "aiida_crystal17.cmndline.cmd_parser:parse",
          "crystal17.symmetry": "aiida_crystal17.cmndline.symmetry:symmetry"
        },
        "aiida.data": {
          "crystal17.basisset": "aiida_crystal17.data.basis_set:BasisSetData",
          "crystal17.gcube": "aiida_crystal17.data.gcube:GaussianCube",
          "crystal17.kinds": "aiida_crystal17.data.kinds:KindData",
          "crystal17.parameters": "aiida_crystal17.data.input_params:CryInputParamsData",
          "crystal17.symmetry": "aiida_crystal17.data.symmetry:SymmetryData"
        },
        "aiida.groups": {
          "crystal17.basisset": "aiida_crystal17.data.basis_set:BasisSetFamily"
        },
        "aiida.parsers": {
          "crystal17.doss": "aiida_crystal17.parsers.cry_doss:CryDossParser",
          "crystal17.ech3": "aiida_crystal17.parsers.cry_ech3:CryEch3Parser",
          "crystal17.main": "aiida_crystal17.parsers.cry_main:CryMainParser",
          "crystal17.newk": "aiida_crystal17.parsers.cry_newk:CryNewkParser",
          "crystal17.ppan": "aiida_crystal17.parsers.cry_ppan:CryPpanParser"
        },
        "aiida.workflows": {
          "crystal17.main.base": "aiida_crystal17.workflows.crystal_main.base:CryMainBaseWorkChain",
          "crystal17.properties": "aiida_crystal17.workflows.crystal_props.base:CryPropertiesWorkChain",
          "crystal17.sym3d": "aiida_crystal17.workflows.symmetrise_3d_struct:Symmetrise3DStructure"
        },
        "console_scripts": {
          "mock_crystal17": "aiida_crystal17.tests.mock_crystal17:main",
          "mock_properties17": "aiida_crystal17.tests.mock_properties17:main"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-crystal17<pre>Collecting aiida-crystal17\n  Downloading aiida_crystal17-0.11.0-py3-none-any.whl.metadata (5.8 kB)\nINFO: pip is looking at multiple versions of aiida-crystal17 to determine which version is compatible with other requirements. This could take a while.\n  Downloading aiida-crystal17-0.4.0.tar.gz (120 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 120.8/120.8 kB 9.8 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nERROR: Cannot install aiida-crystal17==0.11.0 and aiida-crystal17==0.4.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-crystal17 0.11.0 depends on aiida-core<2.0.0 and >=1.4.0\n    aiida-crystal17 0.4.0 depends on aiida-core==0.12.2\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 6
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 5
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 5
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 3
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 2
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands, Groups)",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install aiida-crystal17",
      "is_installable": "False"
    },
    "aiida-cusp": {
      "code_home": "https://github.com/aiida-cusp/aiida-cusp",
      "documentation_url": "https://aiida-cusp.readthedocs.io",
      "entry_point_prefix": "cusp",
      "pip_url": "https://pypi.org/project/aiida-cusp",
      "name": "aiida-cusp",
      "package_name": "aiida_cusp",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Andreas Stamminger",
        "author_email": "stammingera@gmail.com",
        "version": "0.1.0b2",
        "description": "Custodian based VASP Plugin for AiiDA",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Scientific/Engineering :: Physics",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Environment :: Plugins",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.3.0,<2.0.0",
      "entry_points": {
        "aiida.data": {
          "cusp.kpoints": "aiida_cusp.data.inputs.vasp_kpoint:VaspKpointData",
          "cusp.poscar": "aiida_cusp.data.inputs.vasp_poscar:VaspPoscarData",
          "cusp.incar": "aiida_cusp.data.inputs.vasp_incar:VaspIncarData",
          "cusp.potcar": "aiida_cusp.data.inputs.vasp_potcar:VaspPotcarData",
          "cusp.vasprun": "aiida_cusp.data.outputs.vasp_vasprun:VaspVasprunData",
          "cusp.outcar": "aiida_cusp.data.outputs.vasp_outcar:VaspOutcarData",
          "cusp.contcar": "aiida_cusp.data.outputs.vasp_contcar:VaspContcarData",
          "cusp.chgcar": "aiida_cusp.data.outputs.vasp_chgcar:VaspChgcarData",
          "cusp.wavecar": "aiida_cusp.data.outputs.vasp_wavecar:VaspWavecarData",
          "cusp.generic": "aiida_cusp.data.outputs.vasp_generic:VaspGenericData",
          "cusp.potcarfile": "aiida_cusp.data.inputs.vasp_potcar:VaspPotcarFile"
        },
        "aiida.calculations": {
          "cusp.vasp": "aiida_cusp.calculators.vasp_calculation:VaspCalculation"
        },
        "aiida.parsers": {
          "cusp.default": "aiida_cusp.parsers.vasp_file_parser:VaspFileParser"
        },
        "aiida.cmdline.data": {
          "potcar": "aiida_cusp.cli.potcar_cmd:potcar"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-cusp<pre>Collecting https://pypi.org/project/aiida-cusp\n  Downloading https://pypi.org/project/aiida-cusp (3.0 kB)\n  ERROR: Cannot unpack file /tmp/pip-unpack-hs_3ecml/aiida-cusp (downloaded from /tmp/pip-req-build-x2q2jb1e, content-type: text/html; charset=utf-8); cannot detect archive format\nERROR: Cannot determine archive format of /tmp/pip-req-build-x2q2jb1e\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'potcar' does not start with prefix 'cusp.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 11
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install https://pypi.org/project/aiida-cusp",
      "is_installable": "False"
    },
    "aiida-dataframe": {
      "entry_point_prefix": "dataframe",
      "plugin_info": "https://raw.github.com/janssenhenning/aiida-dataframe/main/pyproject.toml",
      "code_home": "https://github.com/janssenhenning/aiida-dataframe",
      "version_file": "https://raw.githubusercontent.com/janssenhenning/aiida-dataframe/main/aiida_dataframe/__init__.py",
      "pip_url": "aiida-dataframe",
      "documentation_url": "https://aiida-dataframe.readthedocs.io/en/latest/",
      "name": "aiida-dataframe",
      "package_name": "aiida_dataframe",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-07-17",
        "description": "AiiDA data plugin for pandas DataFrame objects",
        "author_email": "Henning Jan\u00dfen <henning.janssen@gmx.net>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "0.2.0"
      },
      "aiida_version": ">=1.0,<3",
      "entry_points": {
        "aiida.cmdline.data": {
          "dataframe": "aiida_dataframe.cli:data_cli"
        },
        "aiida.data": {
          "dataframe.frame": "aiida_dataframe.data.dataframe:PandasFrameData"
        }
      },
      "commits_count": 4,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-dataframe",
      "is_installable": "True"
    },
    "aiida-ddec": {
      "code_home": "https://github.com/lsmo-epfl/aiida-ddec",
      "entry_point_prefix": "ddec",
      "pip_url": "git+https://github.com/yakutovicha/aiida-ddec",
      "name": "aiida-ddec",
      "package_name": "aiida_ddec",
      "hosted_on": "github.com",
      "metadata": {
        "description": "AiiDA plugin for DDEC code",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11"
        ],
        "author": "Aliaksandr Yakutovich",
        "author_email": "aliaksandr.yakutovich@epfl.ch"
      },
      "aiida_version": "~=2.3",
      "entry_points": {
        "aiida.calculations": {
          "ddec": {
            "description": [
              "AiiDA plugin for the ddec code that performs density derived",
              "    electrostatic and chemical atomic population analysis."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters such as net charge, protocol, atomic densities path, ..."
                },
                {
                  "name": "charge_density_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote folder (for restarts and similar)"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "structure_ddec",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "structure with DDEC charges"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 101,
                  "message": "The retrieved folder does not contain an output file."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_ddec.calculations:DdecCalculation"
          }
        },
        "aiida.parsers": {
          "ddec": "aiida_ddec.parsers:DdecParser"
        },
        "aiida.workflows": {
          "ddec.cp2k_ddec": {
            "description": [
              "A workchain that computes DDEC charges after a single-point",
              "    DFT calculation using Cp2kBaseWorkChain"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cp2k_base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "ddec",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "structure_ddec",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "structure with DDEC charges"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 903,
                  "message": "Error while parsing CP2K output"
                },
                {
                  "status": 904,
                  "message": "Error while parsing DDEC output"
                }
              ]
            },
            "class": "aiida_ddec.workchains:Cp2kDdecWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/yakutovicha/aiida-ddec",
      "is_installable": "True"
    },
    "aiida-defects": {
      "code_home": "https://github.com/epfl-theos/aiida-defects",
      "entry_point_prefix": "defects",
      "pip_url": "aiida-defects",
      "plugin_info": "https://raw.githubusercontent.com/epfl-theos/aiida-defects/master/pyproject.toml",
      "name": "aiida-defects",
      "package_name": "aiida_defects",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-03-29",
        "description": "AiiDA-Defects is a plugin for the AiiDA computational materials science framework, and provides tools and automated workflows for the study of defects in materials.",
        "author": "The AiiDA-Defects developers",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "1.0.1"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.data": {
          "defects.array.stability": "aiida_defects.data.data:StabilityData"
        },
        "aiida.workflows": {
          "defects.formation_energy.chemical_potential": "aiida_defects.formation_energy.chemical_potential.chemical_potential:ChemicalPotentialWorkchain",
          "defects.formation_energy.corrections.gaussian_countercharge": "aiida_defects.formation_energy.corrections.gaussian_countercharge.gaussian_countercharge:GaussianCounterChargeWorkchain",
          "defects.formation_energy.corrections.gaussian_countercharge.model_potential": "aiida_defects.formation_energy.corrections.gaussian_countercharge.model_potential.model_potential:ModelPotentialWorkchain",
          "defects.formation_energy.corrections.point_countercharge": "aiida_defects.formation_energy.corrections.point_countercharge.point_countercharge:PointCounterChargeWorkchain",
          "defects.formation_energy.potential_alignment": "aiida_defects.formation_energy.potential_alignment.potential_alignment:PotentialAlignmentWorkchain",
          "defects.formation_energy.qe": "aiida_defects.formation_energy.formation_energy_qe:FormationEnergyWorkchainQE",
          "defects.formation_energy.siesta": "aiida_defects.formation_energy.formation_energy_siesta:FormatonEnergyWorkchainSiesta"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 7
        }
      ],
      "pip_install_cmd": "pip install aiida-defects",
      "is_installable": "True"
    },
    "aiida-dftk": {
      "code_home": "https://github.com/aiidaplugins/aiida-dftk",
      "entry_point_prefix": "dftk",
      "name": "aiida-dftk",
      "package_name": "aiida_dftk",
      "hosted_on": "github.com",
      "metadata": {
        "description": "AiiDA plugin for DFTK",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12"
        ],
        "author": "Bruno Ploumhans",
        "author_email": "bruno.ploumhans@epfl.ch"
      },
      "aiida_version": ">=2.5",
      "entry_points": {
        "aiida.calculations": {
          "dftk": "aiida_dftk.calculations:DftkCalculation",
          "dftk.precompile": "aiida_dftk.calculations:PrecompileCalculation"
        },
        "aiida.parsers": {
          "dftk": "aiida_dftk.parsers:DftkParser"
        },
        "aiida.workflows": {
          "dftk.base": "aiida_dftk.workflows.base:DftkBaseWorkChain"
        }
      },
      "commits_count": 9,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-diff": {
      "code_home": "https://github.com/aiidateam/aiida-diff",
      "development_status": "stable",
      "documentation_url": "https://aiida-diff.readthedocs.io/",
      "entry_point_prefix": "diff",
      "pip_url": "git+https://github.com/aiidateam/aiida-diff#egg=aiida-diff-0.1.0a0",
      "name": "aiida-diff",
      "package_name": "aiida_diff",
      "hosted_on": "github.com",
      "metadata": {
        "description": "AiiDA demo plugin that wraps the `diff` executable for computing the difference between two files.",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA"
        ],
        "author": "The AiiDA Team"
      },
      "aiida_version": ">=2.5,<3",
      "entry_points": {
        "aiida.data": {
          "diff": "aiida_diff.data:DiffParameters"
        },
        "aiida.calculations": {
          "diff": "aiida_diff.calculations:DiffCalculation"
        },
        "aiida.parsers": {
          "diff": "aiida_diff.parsers:DiffParser"
        },
        "aiida.cmdline.data": {
          "diff": "aiida_diff.cli:data_cli"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-diff<pre>Collecting aiida-diff-0.1.0a0\n  Cloning https://github.com/aiidateam/aiida-diff to /tmp/pip-install-j1hvpaj7/aiida-diff-0-1-0a0_39566c0a986e4a9cb66ac44fa3adfddf\n  Running command git clone --filter=blob:none --quiet https://github.com/aiidateam/aiida-diff /tmp/pip-install-j1hvpaj7/aiida-diff-0-1-0a0_39566c0a986e4a9cb66ac44fa3adfddf\n  Resolved https://github.com/aiidateam/aiida-diff to commit f9b151e11634b16e6a42d5445da23735415872e0\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\n  WARNING: Generating metadata for package aiida-diff-0.1.0a0 produced metadata for project name aiida-diff. Fix your #egg=aiida-diff-0.1.0a0 fragments.\nDiscarding git+https://github.com/aiidateam/aiida-diff#egg=aiida-diff-0.1.0a0: Requested aiida-diff from git+https://github.com/aiidateam/aiida-diff#egg=aiida-diff-0.1.0a0 has inconsistent name: expected 'aiida-diff-0-1-0a0', but metadata has 'aiida-diff'\nERROR: Could not find a version that satisfies the requirement aiida-diff-0-1-0a0 (unavailable) (from versions: none)\nERROR: No matching distribution found for aiida-diff-0-1-0a0 (unavailable)\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W005'>W005</a>: Development status in classifiers (alpha) does not match development_status in metadata (stable)",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/aiidateam/aiida-diff#egg=aiida-diff-0.1.0a0",
      "is_installable": "False"
    },
    "aiida-donothing": {
      "code_home": "https://github.com/atztogo/aiida-donothing",
      "entry_point_prefix": "donothing",
      "name": "aiida-donothing",
      "package_name": "aiida_donothing",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Atsushi Togo",
        "author_email": "atz.togo@gmail.com",
        "version": "0.1",
        "description": "AiiDA calculation plugin for doing nothing",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.6.5,<2.0.0",
      "entry_points": {
        "aiida.calculations": {
          "donothing.donothing": "aiida_donothing.calculations.donothing:DoNothingCalculation"
        },
        "aiida.parsers": {
          "donothing.donothing": "aiida_donothing.parsers.donothing:DoNothingParser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-dynamic-workflows": {
      "code_home": "https://github.com/microsoft/aiida-dynamic-workflows",
      "entry_point_prefix": "dynamic_workflows",
      "name": "aiida-dynamic-workflows",
      "package_name": "aiida_dynamic_workflows",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Cannot fetch all data from PyPI and missing plugin_info key!",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-environ": {
      "code_home": "https://github.com/environ-developers/aiida-environ",
      "entry_point_prefix": "environ",
      "pip_url": "git+https://github.com/environ-developers/aiida-environ",
      "name": "aiida-environ",
      "package_name": "aiida_environ",
      "hosted_on": "github.com",
      "metadata": {
        "version": "1.0.0",
        "description": "AiiDA plugin for Environ",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "author_email": "materialab@unt.edu"
      },
      "aiida_version": ">=1.6",
      "entry_points": {
        "aiida.calculations": {
          "environ.pw": "aiida_environ.calculations.pw:EnvPwCalculation",
          "environ.finite": "aiida_environ.calculations.finite:calculate_finite_differences"
        },
        "aiida.data": {
          "environ.charges": "aiida_environ.data.charge:EnvironChargeData"
        },
        "aiida.parsers": {
          "environ.pw": "aiida_environ.parsers.pw:EnvPwParser"
        },
        "aiida.workflows": {
          "environ.pw.base": "aiida_environ.workflows.pw.base:EnvPwBaseWorkChain",
          "environ.pw.relax": "aiida_environ.workflows.pw.relax:EnvPwRelaxWorkChain",
          "environ.pw.solvation": "aiida_environ.workflows.pw.solvation:PwSolvationWorkChain",
          "environ.pw.force_test": "aiida_environ.workflows.pw.force_test:EnvPwForceTestWorkChain"
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/environ-developers/aiida-environ",
      "is_installable": "True"
    },
    "aiida-eon": {
      "code_home": "https://github.com/HaoZeke/aiida-eon",
      "entry_point_prefix": "eon",
      "name": "aiida-eon",
      "package_name": "aiida_eon",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Cannot fetch all data from PyPI and missing plugin_info key!",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-eonclient": {
      "code_home": "https://github.com/HaoZeke/aiida-eonclient",
      "entry_point_prefix": "eonclient",
      "name": "aiida-eonclient",
      "package_name": "aiida_eonclient",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Cannot fetch all data from PyPI and missing plugin_info key!",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-fans": {
      "entry_point_prefix": "fans",
      "code_home": "https://github.com/ethan-shanahan/aiida-fans",
      "documentation_url": "https://aiida-fans.readthedocs.io/en/latest/",
      "name": "aiida-fans",
      "package_name": "aiida_fans",
      "hosted_on": "github.com",
      "metadata": {
        "description": "AiiDA plugin for FANS, an FFT-based homogenization solver.",
        "classifiers": [
          "Natural Language :: English",
          "Programming Language :: Python",
          "Operating System :: POSIX :: Linux",
          "Intended Audience :: Science/Research",
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA"
        ],
        "author": "Ethan Shanahan",
        "author_email": "ethan.shanahan@gmail.com"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.calculations": {
          "fans": "aiida_fans.calculations:FansCalculation"
        },
        "aiida.parsers": {
          "fans": "aiida_fans.parsers:FansParser"
        }
      },
      "commits_count": 89,
      "development_status": "alpha",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-fenics": {
      "code_home": "https://github.com/broeder-j/aiida-fenics/tree/master",
      "entry_point_prefix": "fenics",
      "pip_url": "git+https://github.com/broeder-j/aiida-fenics",
      "name": "aiida-fenics",
      "package_name": "aiida_fenics",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Sebastiaan P. Huber",
        "author_email": "mail@sphuber.net",
        "version": "0.1.0",
        "description": "AiiDA plugin for the FEniCS computing platform for solving partial differential equations.",
        "classifiers": [
          "Development Status :: 2 - Pre-Alpha",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: POSIX :: Linux",
          "Operating System :: MacOS :: MacOS X",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ]
      },
      "aiida_version": "~=1.6",
      "entry_points": {
        "aiida.workflows": {
          "fenics.geometry_poisson": "aiida_fenics.workflows.geometry_poisson:GeometryPoisson"
        }
      },
      "commits_count": 0,
      "development_status": "pre-alpha",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-fenics<pre>Collecting git+https://github.com/broeder-j/aiida-fenics\n  Cloning https://github.com/broeder-j/aiida-fenics to /tmp/pip-req-build-px710ose\n  Running command git clone --filter=blob:none --quiet https://github.com/broeder-j/aiida-fenics /tmp/pip-req-build-px710ose\n  Resolved https://github.com/broeder-j/aiida-fenics to commit eae053f7c82889a15fe19c3909d303f923fcf79e\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-fenics to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-fenics==0.1.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-fenics 0.1.0 depends on aiida-core~=1.6\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/broeder-j/aiida-fenics",
      "is_installable": "False"
    },
    "aiida-fhiaims": {
      "entry_point_prefix": "fhiaims",
      "code_home": "https://gitlab.com/FHI-aims-club/utilities/aiida-fhiaims",
      "pip_url": "git+https://gitlab.com/FHI-aims-club/utilities/aiida-fhiaims",
      "version_file": "https://gitlab.com/FHI-aims-club/utilities/aiida-fhiaims/-/raw/master/aiida_fhiaims/__init__.py",
      "name": "aiida-fhiaims",
      "package_name": "aiida_fhiaims",
      "hosted_on": "gitlab.com",
      "metadata": {
        "description": "An AiiDA plugin for FHI-aims code",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA"
        ],
        "author": "Andrey Sobolev",
        "author_email": "andrey.n.sobolev@gmail.com"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.cmdline.data": {
          "fhiaims.species_defaults": "aiida_fhiaims.cli.species_defaults:species_defaults"
        },
        "aiida.data": {
          "fhiaims.species_file": "aiida_fhiaims.data.species_file:BasisFile",
          "fhiaims.parameters": "aiida_fhiaims.data.parameters:AimsParameters"
        },
        "aiida.groups": {
          "fhiaims.species_family": "aiida_fhiaims.data.species_family:BasisFamily"
        },
        "aiida.calculations": {
          "fhiaims": {
            "description": [
              "AiiDA calculation plugin wrapping the aims.x executable."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "AimsParameters",
                  "info": "FHI-aims parameters dictionary"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Atomic structure to be calculated"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "fhiaims",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_fhiaims.calculations:AimsCalculation"
          }
        },
        "aiida.parsers": {
          "fhiaims.json": "aiida_fhiaims.parsers.aims_json:AimsJSONParser",
          "fhiaims.out": "aiida_fhiaims.parsers.aims_out:AimsOutParser"
        }
      },
      "commits_count": 0,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands, Groups)",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install git+https://gitlab.com/FHI-aims-club/utilities/aiida-fhiaims",
      "is_installable": "True"
    },
    "aiida-firecrest": {
      "code_home": "https://github.com/aiidateam/aiida-firecrest",
      "entry_point_prefix": "firecrest",
      "pip_url": "aiida-firecrest",
      "plugin_info": "https://raw.githubusercontent.com/aiidateam/aiida-firecrest/main/pyproject.toml",
      "name": "aiida-firecrest",
      "package_name": "aiida_firecrest",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-01-14",
        "description": "AiiDA Transport/Scheduler plugins for interfacing with FirecREST.",
        "author": "AiiDA team",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: Implementation :: CPython",
          "Topic :: Software Development :: Libraries :: Python Modules"
        ],
        "version": "1.0.0"
      },
      "aiida_version": ">=2.7.0",
      "entry_points": {
        "aiida.schedulers": {
          "firecrest": "aiida_firecrest.scheduler:FirecrestScheduler"
        },
        "aiida.transports": {
          "firecrest": "aiida_firecrest.transport:FirecrestTransport"
        },
        "console_scripts": {
          "aiida-firecrest-cli": "aiida_firecrest.cli:main"
        }
      },
      "commits_count": 20,
      "development_status": "alpha",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-firecrest<pre>Collecting aiida-firecrest\n  Downloading aiida_firecrest-1.0.0-py3-none-any.whl.metadata (6.6 kB)\nINFO: pip is looking at multiple versions of aiida-firecrest to determine which version is compatible with other requirements. This could take a while.\n\nThe conflict is caused by:\n    aiida-firecrest 1.0.0 depends on aiida-core>=2.7.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: Cannot install aiida-firecrest==1.0.0 because these package versions have conflicting dependencies.\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Schedulers, Transports)",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-firecrest",
      "is_installable": "False"
    },
    "aiida-fireworks-scheduler": {
      "code_home": "https://github.com/zhubonan/aiida-fireworks-scheduler",
      "development_status": "beta",
      "documentation_url": "https://aiida-fireworks-scheduler.readthedocs.io",
      "entry_point_prefix": "fireworks_scheduler",
      "pip_url": "git+https://github.com/zhubonan/aiida-fireworks-scheduler",
      "name": "aiida-fireworks-scheduler",
      "package_name": "aiida_fireworks_scheduler",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Bonan Zhu",
        "author_email": "zhubonan@outlook.com",
        "version": "1.2.0",
        "description": "AiiDA plugin to allow using `fireworks` as the execution engine for `CalcJob`.",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.schedulers": {
          "fireworks": "aiida_fireworks_scheduler.fwscheduler:FwScheduler",
          "fireworks_scheduler.default": "aiida_fireworks_scheduler.fwscheduler:FwScheduler",
          "fireworks_scheduler.keepenv": "aiida_fireworks_scheduler.fwscheduler:FwSchedulerKeepEnv"
        },
        "aiida.cmdline.data": {
          "fireworks-scheduler": "aiida_fireworks_scheduler.cmdline:fw_cli"
        },
        "console_scripts": {
          "arlaunch": "aiida_fireworks_scheduler.scripts.arlaunch_run:arlaunch"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'fireworks' does not start with prefix 'fireworks_scheduler.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'fireworks-scheduler' does not start with prefix 'fireworks_scheduler.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands, Schedulers)",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/zhubonan/aiida-fireworks-scheduler",
      "is_installable": "True"
    },
    "aiida-fleur": {
      "code_home": "https://github.com/JuDFTteam/aiida-fleur/tree/develop",
      "development_status": "stable",
      "documentation_url": "https://aiida-fleur.readthedocs.io/",
      "entry_point_prefix": "fleur",
      "pip_url": "aiida-fleur",
      "plugin_info": "https://raw.github.com/JuDFTteam/aiida-fleur/develop/setup.json",
      "name": "aiida-fleur",
      "package_name": "aiida_fleur",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-05-03",
        "description": "AiiDA Plugin for running the FLEUR code and its input generator. Also includes high-level workchains and utilities",
        "author_email": "The JuDFT team <j.broeder@fz-juelich.de>",
        "classifiers": [
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "2.0.0"
      },
      "aiida_version": ">=2.0.1,<3.0.0",
      "entry_points": {
        "aiida.calculations": {
          "fleur.fleur": {
            "description": [
              "A CalcJob class that represents FLEUR DFT calculation.",
              "    For more information about the FLEUR-code family go to http://www.flapw.de/"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": "Use a FleurinpData node that specifies the input parametersusually copy from the parent calculation, basically makesthe inp.xml file visible in the db and makes sure it has the files needed."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote or local repository folder as parent folder (also for restarts and similar). It should contain all the needed files for a Fleur calc, only edited files should be uploaded from the repository."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "This parameter data node is used to specify for some advanced features how the plugin behaves. You can add filesthe retrieve list, or add command line switches, for all available features here check the documentation."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "error_params",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_params_complex",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "relax_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "No retrieved folder found."
                },
                {
                  "status": 301,
                  "message": "One of the output files can not be opened."
                },
                {
                  "status": 302,
                  "message": "FLEUR calculation failed for unknown reason."
                },
                {
                  "status": 303,
                  "message": "XML output file was not found."
                },
                {
                  "status": 304,
                  "message": "Parsing of XML output file failed."
                },
                {
                  "status": 305,
                  "message": "Parsing of relax XML output file failed."
                },
                {
                  "status": 310,
                  "message": "FLEUR calculation failed due to lack of memory."
                },
                {
                  "status": 311,
                  "message": "FLEUR calculation failed because an atom spilled to thevacuum during relaxation"
                },
                {
                  "status": 312,
                  "message": "FLEUR calculation failed due to MT overlap."
                },
                {
                  "status": 313,
                  "message": "Overlapping MT-spheres during relaxation."
                },
                {
                  "status": 314,
                  "message": "Problem with cdn is suspected. Consider removing cdn"
                },
                {
                  "status": 315,
                  "message": "The LDA+U density matrix contains invalid elements."
                },
                {
                  "status": 316,
                  "message": "Calculation failed due to time limits."
                },
                {
                  "status": 318,
                  "message": "Calculation failed due to missing dependency ({name}) for given calculation."
                }
              ]
            },
            "class": "aiida_fleur.calculation.fleur:FleurCalculation"
          },
          "fleur.inpgen": {
            "description": [
              "JobCalculationClass for the inpgen, which is a preprocessor for a FLEUR calculation.",
              "    For more information about produced files and the FLEUR-code family, go to http://www.flapw.de/."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Choose the input structure to use"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Use a node that specifies the input parameters for the namelists"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "This parameter data node is used to specify for some advanced features how the plugin behaves. You can add filesthe retrieve list, or add command line switches, for all available features here check the documentation."
                }
              ],
              "outputs": [
                {
                  "name": "fleurinp",
                  "required": true,
                  "valid_types": "FleurinpData",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "No retrieved folder found."
                },
                {
                  "status": 301,
                  "message": "One of the output files can not be opened."
                },
                {
                  "status": 306,
                  "message": "XML input file was not found."
                },
                {
                  "status": 307,
                  "message": "Some required files were not retrieved."
                },
                {
                  "status": 308,
                  "message": "During parsing: FleurinpData could not be initialized, see log. "
                },
                {
                  "status": 309,
                  "message": "During parsing: FleurinpData failed validation."
                },
                {
                  "status": 310,
                  "message": "The profile {profile} is not known to the used inpgen code"
                }
              ]
            },
            "class": "aiida_fleur.calculation.fleurinputgen:FleurinputgenCalculation"
          }
        },
        "aiida.data": {
          "fleur.fleurinp": "aiida_fleur.data.fleurinp:FleurinpData"
        },
        "aiida.parsers": {
          "fleur.fleurinpgenparser": "aiida_fleur.parsers.fleur_inputgen:Fleur_inputgenParser",
          "fleur.fleurparser": "aiida_fleur.parsers.fleur:FleurParser"
        },
        "aiida.workflows": {
          "fleur.banddos": {
            "description": [
              "This workflow calculated a bandstructure from a Fleur calculation",
              "",
              "    :Params: a Fleurcalculation node",
              "    :returns: Success, last result node, list with convergence behavior"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "banddos_calc",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "output_banddos_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_banddos_wc_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": ""
                },
                {
                  "name": "output_banddos_wc_dos",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 233,
                  "message": "Invalid code node specified, check inpgen and fleur code nodes."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 334,
                  "message": "SCF calculation failed."
                },
                {
                  "status": 335,
                  "message": "Found no SCF calculation remote repository."
                }
              ]
            },
            "class": "aiida_fleur.workflows.banddos:FleurBandDosWorkChain"
          },
          "fleur.base": {
            "description": [
              "Workchain to run a FLEUR calculation with automated error handling and restarts"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optional parameters to set up computational details."
                },
                {
                  "name": "add_comp_para",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Gives additional control over computational parametersonly_even_MPI: set to true if you want to suppress odd number of MPI processes in parallelisation.This might speedup a calculation for machines having even number of sockets per node.max_queue_nodes: maximal number of nodes allowed on the remote machine. Used only to automatically solve some FLEUR failures.max_queue_wallclock_sec: maximal wallclock time allowed on the remote machine. Used only to automatically solve some FLEUR failures."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "description",
                  "required": false,
                  "valid_types": "str, NoneType",
                  "info": "Calculation description."
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": "Use a FleurinpData node that specifies the input parametersusually copy from the parent calculation, basically makesthe inp.xml file visible in the db and makes sure it has the files needed."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "label",
                  "required": false,
                  "valid_types": "str, NoneType",
                  "info": "Calculation label."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a remote or local repository folder as parent folder (also for restarts and similar). It should contain all the needed files for a Fleur calc, only edited files should be uploaded from the repository."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "This parameter data node is used to specify for some advanced features how the plugin behaves. You can add filesthe retrieve list, or add command line switches, for all available features here check the documentation."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "error_params",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_params_complex",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "relax_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 311,
                  "message": "FLEUR calculation failed because an atom spilled to thevacuum during relaxation"
                },
                {
                  "status": 313,
                  "message": "Overlapping MT-spheres during relaxation."
                },
                {
                  "status": 388,
                  "message": "Computational resources are not optimal."
                },
                {
                  "status": 389,
                  "message": "Computational resources are not optimal."
                },
                {
                  "status": 390,
                  "message": "Computational resources are not optimal."
                },
                {
                  "status": 399,
                  "message": "FleurCalculation failed and FleurBaseWorkChain has no strategy to resolve this"
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_fleur.workflows.base_fleur:FleurBaseWorkChain"
          },
          "fleur.base_relax": {
            "description": [
              "Workchain to run Relax WorkChain with automated error handling and restarts"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "description",
                  "required": false,
                  "valid_types": "str, NoneType",
                  "info": "Calculation description."
                },
                {
                  "name": "final_scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "label",
                  "required": false,
                  "valid_types": "str, NoneType",
                  "info": "Calculation label."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "last_scf",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "optimized_structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "output_relax_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 399,
                  "message": "FleurRelaxWorkChain failed and FleurBaseRelaxWorkChain has no strategy to resolve this"
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_fleur.workflows.base_relax:FleurBaseRelaxWorkChain"
          },
          "fleur.cfcoeff": {
            "description": [
              "Workflow for calculating rare-earth crystal field coefficients"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "orbcontrol",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "scf_rare_earth_analogue",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_cfcoeff_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_cfcoeff_wc_charge_densities",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "output_cfcoeff_wc_potentials",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 345,
                  "message": "Convergence scf workflow failed."
                },
                {
                  "status": 451,
                  "message": "Convergence orbcontrol workflow failed."
                },
                {
                  "status": 452,
                  "message": "CF calculation failed."
                }
              ]
            },
            "class": "aiida_fleur.workflows.cfcoeff:FleurCFCoeffWorkChain"
          },
          "fleur.corehole": {
            "description": [
              "Turn key solution for a corehole calculation with the FLEUR code.",
              "    Has different protocols for different core-hole types (valence, charge).",
              "",
              "    Calculates supercells. Extracts binding energies",
              "    for certain corelevels from the total energy differences a the calculation with",
              "    corehole and without.",
              "",
              "    Documentation:",
              "    See help for details.",
              "",
              "    Two paths are possible:",
              "",
              "    (1) Start from a structure -> workchains run inpgen first (recommended)",
              "    (2) Start from a Fleurinp data object",
              "",
              "    Also it is recommended to provide a calc parameter node for the structure",
              "",
              "    :param wf_parameters: Dict node, specify, resources and what should be calculated",
              "    :param structure: structureData node, crystal structure",
              "    :param calc_parameters: Dict node, inpgen parameters for the crystal structure",
              "    :param fleurinp:  fleurinpData node,",
              "    :param inpgen: Code node,",
              "    :param fleur: Code node,",
              "",
              "    :return: output_corehole_wc_para Dict node,  successful=True if no error",
              "",
              "    :uses workchains: fleur_scf_wc, fleur_relax_wc",
              "    :uses calcfunctions: supercell, create_corehole_result_node, prepare_struc_corehole_wf"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "inpgen",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_corehole_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 1,
                  "message": "The input resources are invalid."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 2,
                  "message": "Input resources are missing."
                },
                {
                  "status": 3,
                  "message": "The code provided is invalid, or not of the right kind."
                },
                {
                  "status": 4,
                  "message": "Inpgen calculation FAILED, check output"
                },
                {
                  "status": 5,
                  "message": "Changing of the FLEURINP data went wrong, check log."
                },
                {
                  "status": 6,
                  "message": "The FLEUR input file for the calculation did not validate."
                },
                {
                  "status": 7,
                  "message": "At least one FLEUR calculation FAILED, check the output and log."
                },
                {
                  "status": 8,
                  "message": "At least one FLEUR calculation did not/could not reach thedesired convergece Criteria, with the current parameters."
                },
                {
                  "status": 9,
                  "message": "Something went wrong in the determiation what coreholes to calculate, probably the input format was not correct. Check log."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_fleur.workflows.corehole:FleurCoreholeWorkChain"
          },
          "fleur.create_magnetic": {
            "description": [
              "This workflow creates relaxed magnetic film on a substrate."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "distance_suggestion",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "eos",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "eos_output",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "interlayer_dist",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "optimized_structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": ""
                },
                {
                  "name": "relax",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "magnetic_structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 380,
                  "message": "Specified substrate has to be bcc or fcc."
                },
                {
                  "status": 382,
                  "message": "Relaxation calculation failed."
                },
                {
                  "status": 383,
                  "message": "EOS WorkChain failed."
                }
              ]
            },
            "class": "aiida_fleur.workflows.create_magnetic_film:FleurCreateMagneticWorkChain"
          },
          "fleur.dmi": {
            "description": [
              "This workflow calculates DMI energy dispersion of a structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_dmi_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 233,
                  "message": "Invalid code node specified, check inpgen and fleur code nodes."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 334,
                  "message": "Reference calculation failed."
                },
                {
                  "status": 335,
                  "message": "Found no reference calculation remote repository."
                },
                {
                  "status": 336,
                  "message": "Force theorem calculation failed."
                }
              ]
            },
            "class": "aiida_fleur.workflows.dmi:FleurDMIWorkChain"
          },
          "fleur.dos": {
            "description": [
              "DEPRECATED: Use FleurBandDosWorkChain instead (entrypoint fleur.banddos)",
              "    This workflow calculated a DOS from a Fleur calculation",
              "",
              "    :Params: a Fleurcalculation node",
              "    :returns: Success, last result node, list with convergence behavior",
              "",
              "    wf_parameters: {  'tria', 'nkpts', 'sigma', 'emin', 'emax'}",
              "    defaults : tria = True, nkpts = 800, sigma=0.005, emin= -0.3, emax = 0.8"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "remote_data",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_fleur.workflows.dos:fleur_dos_wc"
          },
          "fleur.eos": {
            "description": [
              "This workflow calculates the equation of states of a structure.",
              "    Calculates several unit cells with different volumes.",
              "    A Birch_Murnaghan  equation of states fit determines the Bulk modulus and the",
              "    groundstate volume of the cell.",
              "",
              "    :params wf_parameters: Dict node, optional 'wf_parameters', protocol specifying parameter dict",
              "    :params structure: StructureData node, 'structure' crystal structure",
              "    :params calc_parameters: Dict node, optional 'calc_parameters' parameters for inpgen",
              "    :params inpgen: Code node,",
              "    :params fleur: Code node,",
              "",
              "",
              "    :return output_eos_wc_para: Dict node, contains relevant output information.",
              "                                about general succeed, fit results and so on."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_eos_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "output_eos_wc_structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 400,
                  "message": "At least one of the SCF sub processes did not finish successfully."
                }
              ]
            },
            "class": "aiida_fleur.workflows.eos:FleurEosWorkChain"
          },
          "fleur.init_cls": {
            "description": [
              "Turn key solution for the calculation of core level shift"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "inpgen",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_initial_cls_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_fleur.workflows.initial_cls:FleurInitialCLSWorkChain"
          },
          "fleur.mae": {
            "description": [
              "This workflow calculates the Magnetic Anisotropy Energy of a structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_mae_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 233,
                  "message": "Invalid code node specified, check inpgen and fleur code nodes."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 334,
                  "message": "Reference calculation failed."
                },
                {
                  "status": 335,
                  "message": "Found no reference calculation remote repository."
                },
                {
                  "status": 336,
                  "message": "Force theorem calculation failed."
                }
              ]
            },
            "class": "aiida_fleur.workflows.mae:FleurMaeWorkChain"
          },
          "fleur.mae_conv": {
            "description": [
              "This workflow calculates the Magnetic Anisotropy Energy of a structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_mae_conv_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 343,
                  "message": "Convergence MAE calculation failed for all SQAs."
                },
                {
                  "status": 344,
                  "message": "Convergence MAE calculation failed for some SQAs."
                }
              ]
            },
            "class": "aiida_fleur.workflows.mae_conv:FleurMaeConvWorkChain"
          },
          "fleur.orbcontrol": {
            "description": [
              "Workchain for determining the groundstate density matrix in an DFT+U",
              "    calculation. This is done in 2 or 3 steps:",
              "",
              "        1. Converge the system without DFT+U (a converged calculation can be",
              "           provided to skip this step)",
              "        2. A fixed number of iterations is run with fixed density matrices",
              "           either generated as all distinct permutations for the given occupations",
              "           or the explicitly given configurations",
              "        3. The system and density matrix is relaxed",
              "",
              "    :param wf_parameters: (Dict), Workchain Specifications",
              "    :param scf_no_ldau: (Dict), Inputs to a FleurScfWorkChain providing the initial system",
              "                                either converged or staring from a structure",
              "    :param scf_with_ldau: (Dict), Inputs to a FleurScfWorkChain. Only the wf_parameters are valid",
              "    :param fleurinp: (FleurinpData) FleurinpData to start from if no SCF should be done",
              "    :param remote: (RemoteData) RemoteData to start from if no SCF should be done",
              "    :param structure: (StructureData) Structure to start from if no SCF should be done",
              "    :param calc_parameters: (Dict), Inpgen Parameters",
              "    :param settings: (Dict), additional settings for e.g retrieving files",
              "    :param options: (Dict), Options for the submission of the jobs",
              "    :param inpgen: (Code)",
              "    :param fleur: (Code)"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "fixed_remotes",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "inpgen",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "options_inpgen",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "relaxed_remotes",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "scf_no_ldau",
                  "required": false,
                  "valid_types": "Data",
                  "info": "Inputs for SCF Workchain before adding LDA+U"
                },
                {
                  "name": "scf_with_ldau",
                  "required": false,
                  "valid_types": "Data",
                  "info": "Inputs for SCF Workchain after the LDA+U matrix was fixed"
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "settings_inpgen",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "groundstate_scf",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "output_orbcontrol_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "groundstate_denmat",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 233,
                  "message": "Input codes do not correspond to fleur or inpgen respectively."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 342,
                  "message": "Convergence LDA+U calculation failed for some Initial configurations."
                },
                {
                  "status": 343,
                  "message": "Convergence LDA+U calculation failed for all Initial configurations."
                },
                {
                  "status": 360,
                  "message": "Inpgen calculation failed."
                },
                {
                  "status": 450,
                  "message": "Convergence workflow without LDA+U failed."
                }
              ]
            },
            "class": "aiida_fleur.workflows.orbcontrol:FleurOrbControlWorkChain"
          },
          "fleur.relax": {
            "description": [
              "This workflow performs structure optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "final_scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "last_scf",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "optimized_structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "output_relax_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "If you want to run a final scf inpgen has to be there."
                },
                {
                  "status": 311,
                  "message": "FLEUR calculation failed because an atom spilled to thevacuum during relaxation"
                },
                {
                  "status": 313,
                  "message": "Overlapping MT-spheres during relaxation."
                },
                {
                  "status": 350,
                  "message": "Optimization cycle did not lead to convergence of forces."
                },
                {
                  "status": 351,
                  "message": "SCF Workchains failed for some reason."
                },
                {
                  "status": 352,
                  "message": "Found no relaxed structure info in the output of SCF"
                },
                {
                  "status": 353,
                  "message": "Found no SCF output"
                },
                {
                  "status": 354,
                  "message": "Force is small, switch to BFGS"
                }
              ]
            },
            "class": "aiida_fleur.workflows.relax:FleurRelaxWorkChain"
          },
          "fleur.relax_torque": {
            "description": [
              "This workflow performs spin structure optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "final_scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_relax_torque_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "If you want to run a final scf inpgen has to be there."
                },
                {
                  "status": 350,
                  "message": "Optimization cycle did not lead to convergence."
                },
                {
                  "status": 351,
                  "message": "An SCF Workchain failed for some reason."
                }
              ]
            },
            "class": "aiida_fleur.workflows.relax_torque:FleurRelaxTorqueWorkChain"
          },
          "fleur.scf": {
            "description": [
              "Workchain for converging a FLEUR calculation (SCF).",
              "",
              "    It converges the charge density, total energy or the largest force.",
              "    Two paths are possible:",
              "",
              "    (1) Start from a structure and run the inpgen first optional with calc_parameters",
              "    (2) Start from a Fleur calculation, with optional remoteData",
              "",
              "    :param wf_parameters: (Dict), Workchain Specifications",
              "    :param structure: (StructureData), Crystal structure",
              "    :param calc_parameters: (Dict), Inpgen Parameters",
              "    :param fleurinp: (FleurinpData), to start with a Fleur calculation",
              "    :param remote_data: (RemoteData), from a Fleur calculation",
              "    :param inpgen: (Code)",
              "    :param fleur: (Code)",
              "",
              "    :return: output_scf_wc_para (Dict), Information of workflow results",
              "        like Success, last result node, list with convergence behavior"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "inpgen",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "remote_data",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "settings_inpgen",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "fleurinp",
                  "required": true,
                  "valid_types": "FleurinpData",
                  "info": ""
                },
                {
                  "name": "last_calc",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "output_scf_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 233,
                  "message": "Input codes do not correspond to fleur or inpgen respectively."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 360,
                  "message": "Inpgen calculation failed."
                },
                {
                  "status": 361,
                  "message": "Fleur calculation failed."
                },
                {
                  "status": 362,
                  "message": "SCF cycle did not lead to convergence."
                }
              ]
            },
            "class": "aiida_fleur.workflows.scf:FleurScfWorkChain"
          },
          "fleur.ssdisp": {
            "description": [
              "This workflow calculates spin spiral dispersion of a structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "fleurinp",
                  "required": false,
                  "valid_types": "FleurinpData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "scf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_ssdisp_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 231,
                  "message": "Invalid input configuration."
                },
                {
                  "status": 233,
                  "message": "Invalid code node specified, check inpgen and fleur code nodes."
                },
                {
                  "status": 235,
                  "message": "Input file modification failed."
                },
                {
                  "status": 236,
                  "message": "Input file was corrupted after user's modifications."
                },
                {
                  "status": 334,
                  "message": "Reference calculation failed."
                },
                {
                  "status": 335,
                  "message": "Found no reference calculation remote repository."
                },
                {
                  "status": 336,
                  "message": "Force theorem calculation failed."
                }
              ]
            },
            "class": "aiida_fleur.workflows.ssdisp:FleurSSDispWorkChain"
          },
          "fleur.ssdisp_conv": {
            "description": [
              "This workflow calculates the Spin Spiral Dispersion of a structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_ssdisp_conv_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 230,
                  "message": "Invalid workchain parameters."
                },
                {
                  "status": 340,
                  "message": "Convergence SSDisp calculation failed for all q-vectors."
                },
                {
                  "status": 341,
                  "message": "Convergence SSDisp calculation failed for some q-vectors."
                }
              ]
            },
            "class": "aiida_fleur.workflows.ssdisp_conv:FleurSSDispConvWorkChain"
          },
          "fleur.strain": {
            "description": [
              "This workflow calculates the deformation potential a structure = -BdEg/dP = d(Eg)/d(ln(V)).",
              "    Calculates several unit cells with different volumes.",
              "    A Birch_Murnaghan  equation of states fit determines the Bulk modulus(B) and the",
              "    ground-state volume of the cell.",
              "",
              "    :params wf_parameters: Dict node, optional 'wf_parameters', protocol specifying parameter dict",
              "    :params structure: StructureData node, 'structure' crystal structure",
              "    :params calc_parameters: Dict node, optional 'calc_parameters' parameters for inpgen",
              "    :params inpgen: Code node,",
              "    :params fleur: Code node,",
              "",
              "",
              "    :return output_strain_wc_para: Dict node, contains relevant output information.",
              "                                about general succeed, fit results and so on."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "fleur",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "inpgen",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_strain_wc_para",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 331,
                  "message": "Invalid code node specified, check inpgen and fleur code nodes."
                }
              ]
            },
            "class": "aiida_fleur.workflows.strain:FleurStrainWorkChain"
          }
        },
        "console_scripts": {
          "aiida-fleur": "aiida_fleur.cmdline:cmd_root"
        }
      },
      "commits_count": 4,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 19
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-fleur",
      "is_installable": "True"
    },
    "aiida-flexpart": {
      "code_home": "https://github.com/aiidaplugins/aiida-flexpart",
      "entry_point_prefix": "flexpart",
      "pip_url": "git+https://github.com/aiidaplugins/aiida-flexpart",
      "name": "aiida-flexpart",
      "package_name": "aiida_flexpart",
      "hosted_on": "github.com",
      "metadata": {
        "version": "0.2.1",
        "description": "AiiDA plugin for the FLEXPART code (simulation of atmospheric transport processes).",
        "classifiers": [
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA",
          "Development Status :: 3 - Alpha",
          "Topic :: Scientific/Engineering :: Atmospheric Science",
          "Programming Language :: Python :: 3"
        ],
        "author": ""
      },
      "aiida_version": ">=1.6.5,<3.0.0",
      "entry_points": {
        "aiida.data": {
          "netcdf.data": "aiida_flexpart.data.nc_data:NetCdfData"
        },
        "aiida.calculations": {
          "flexpart.cosmo": {
            "description": [
              "AiiDA calculation plugin wrapping the FLEXPART executable."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "meteo_path",
                  "required": true,
                  "valid_types": "List",
                  "info": "Path to the folder containing the meteorological input data."
                },
                {
                  "name": "model_settings",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "outgrid",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input file for the Lagrangian particle dispersion model FLEXPART."
                },
                {
                  "name": "species",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "land_use",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": "#TODO"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "outgrid_nest",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input file for the Lagrangian particle dispersion model FLEXPART. Nested output grid."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_flexpart.calculations.flexpart_cosmo:FlexpartCosmoCalculation"
          },
          "flexpart.ifs": {
            "description": [
              "AiiDA calculation plugin wrapping the FLEXPART IFS executable."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "meteo_path",
                  "required": true,
                  "valid_types": "List",
                  "info": "Path to the folder containing the meteorological input data."
                },
                {
                  "name": "model_settings",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "outgrid",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input file for the Lagrangian particle dispersion model FLEXPART."
                },
                {
                  "name": "species",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "land_use",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": "#TODO"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "outgrid_nest",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input file for the Lagrangian particle dispersion model FLEXPART. Nested output grid."
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Working directory of a previously ran calculation to restart from."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_flexpart.calculations.flexpart_ifs:FlexpartIfsCalculation"
          },
          "flexpart.post": {
            "description": [
              "AiiDA calculation plugin for post processing."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "input_dir",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "main FLEXPART output dir"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "input_offline_dir",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "offline-nested FLEXPART output dir"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_flexpart.calculations.flexpart_post:PostProcessingCalculation"
          },
          "collect.sensitivities": {
            "description": [
              "AiiDA calculation plugin for the collection of sensitivities.",
              "       The main input are the stashed Netcdf files for the previous FLEXPART",
              "       calculations."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "model",
                  "required": true,
                  "valid_types": "str",
                  "info": ""
                },
                {
                  "name": "outgrid",
                  "required": true,
                  "valid_types": "str",
                  "info": ""
                },
                {
                  "name": "outgrid_n",
                  "required": true,
                  "valid_types": "bool",
                  "info": ""
                },
                {
                  "name": "remote",
                  "required": true,
                  "valid_types": "RemoteStashFolderData",
                  "info": ""
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "name",
                  "required": false,
                  "valid_types": "str, NoneType",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_flexpart.calculations.collect_sens:CollectSensitivitiesCalculation"
          },
          "inversion.calc": {
            "description": [
              "No description available"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "chunk",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Options are 'year' and 'month'. Default is 'year'"
                },
                {
                  "name": "chunk_w",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Width of the individual inversion chunk. These can be wider than\n\t\t\t                 the chunking itself to allow for running average fluxes.,\n                             Possible values are 'year' and '3year' for 'chunk.by=year' and,\n                             'month' and '3month' for 'chunk.by=month'. Default is 'year'\n                         "
                },
                {
                  "name": "end_date",
                  "required": true,
                  "valid_types": "Str",
                  "info": "End date (yyyy-mm-dd)"
                },
                {
                  "name": "inv_params",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "File containing inversion settings, either as R source file or yaml"
                },
                {
                  "name": "observations",
                  "required": true,
                  "valid_types": "NetCdfData",
                  "info": "Dictionary of observations as NetCDF objects"
                },
                {
                  "name": "remotes",
                  "required": true,
                  "valid_types": "NetCdfData",
                  "info": "Dictionary of sensitivities as NetCDF objects"
                },
                {
                  "name": "start_date",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Start date (yyyy-mm-dd)"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_flexpart.calculations.inversion:Inversion"
          }
        },
        "aiida.parsers": {
          "flexpart.cosmo": "aiida_flexpart.parsers.flexpart_cosmo:FlexpartCosmoParser",
          "flexpart.ifs": "aiida_flexpart.parsers.flexpart_ifs:FlexpartIfsParser",
          "flexpart.post": "aiida_flexpart.parsers.flexpart_post:FlexpartPostParser",
          "collect.sensitivities": "aiida_flexpart.parsers.collect_sens:CollectSensParser",
          "inversion.calc": "aiida_flexpart.parsers.inversion:InvesrionParser"
        },
        "aiida.workflows": {
          "flexpart.multi_dates": "aiida_flexpart.workflows.multi_dates_workflow:FlexpartMultipleDatesWorkflow",
          "flexpart.multi_workflow": "aiida_flexpart.workflows.parent_workflow:ParentWorkflow",
          "inspect.workflow": "aiida_flexpart.workflows.inspect:InspectWorkflow",
          "inversion.workflow": "aiida_flexpart.workflows.inversion_workflow:InversionWorkflow"
        }
      },
      "commits_count": 0,
      "development_status": "alpha",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'netcdf.data' does not start with prefix 'flexpart.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'collect.sensitivities' does not start with prefix 'flexpart.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'inversion.calc' does not start with prefix 'flexpart.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'collect.sensitivities' does not start with prefix 'flexpart.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'inversion.calc' does not start with prefix 'flexpart.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'inspect.workflow' does not start with prefix 'flexpart.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'inversion.workflow' does not start with prefix 'flexpart.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 5
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/aiidaplugins/aiida-flexpart",
      "is_installable": "True"
    },
    "aiida-gaussian": {
      "code_home": "https://github.com/nanotech-empa/aiida-gaussian",
      "entry_point_prefix": "gaussian",
      "pip_url": "aiida-gaussian",
      "plugin_info": "https://raw.githubusercontent.com/nanotech-empa/aiida-gaussian/master/pyproject.toml",
      "name": "aiida-gaussian",
      "package_name": "aiida_gaussian",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2024-09-25",
        "description": "AiiDA plugin for the Gaussian quantum chemistry software.",
        "author": "Kristjan Eimre, Pezhman Zarabadi-Poor, Aliaksandr Yakutovich",
        "license": "MIT",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Operating System :: OS Independent",
          "Programming Language :: Python :: 3",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics",
          "Topic :: Software Development :: Libraries :: Python Modules"
        ],
        "version": "2.2.0"
      },
      "aiida_version": ">=2.0.0,<3.0.0",
      "entry_points": {
        "aiida.calculations": {
          "gaussian": {
            "description": [
              "AiiDA calculation plugin wrapping Gaussian",
              "",
              "    Template:",
              "",
              "    parameters = Dict(dict={",
              "        'link0_parameters': {",
              "            '%chk':'aiida.chk',",
              "            '%mem': '1024MB',",
              "            '%nprocshared': '2',",
              "        },",
              "        'functional':'PBE1PBE',",
              "        'basis_set':'6-31g',",
              "        'charge': 0,",
              "        'multiplicity': 1,",
              "        'route_parameters': {",
              "            'scf': {'cdiis': None}",
              "            'nosymm': None,",
              "            'opt': 'tight',",
              "        },",
              "    })"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "the folder of a completed gaussian calculation"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "additional input parameters"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Input structure; will be converted to pymatgen object"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The result parameters of the calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "energy_ev",
                  "required": false,
                  "valid_types": "Float",
                  "info": "Final energy in electronvolts"
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Final optimized structure, if available"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 210,
                  "message": "The retrieved folder did not contain the output file."
                },
                {
                  "status": 211,
                  "message": "The retrieved output log could not be read."
                },
                {
                  "status": 220,
                  "message": "The output file could not be parsed."
                },
                {
                  "status": 301,
                  "message": "The SCF did not converge and the calculation was terminated."
                },
                {
                  "status": 302,
                  "message": "The calculation was terminated due to a logic error in ASyTop."
                },
                {
                  "status": 303,
                  "message": "The calculation was terminated due to an inaccurate quadrature in CalDSu."
                },
                {
                  "status": 390,
                  "message": "The calculation was terminated due to an error."
                },
                {
                  "status": 391,
                  "message": "The log did not contain 'Normal termination' (probably out of time)."
                }
              ]
            },
            "class": "aiida_gaussian.calculations:GaussianCalculation"
          },
          "gaussian.cubegen": {
            "description": [
              "Plugin to run the cubegen utility",
              "",
              "    Example:",
              "",
              "    parameters = {",
              "        \"homo-5\": {",
              "            \"kind\": \"AMO=16\",",
              "            \"npts\": -2,",
              "        },",
              "        \"spin\": {",
              "            \"kind\": \"Spin=SCF\",",
              "            \"npts\": 0,",
              "        },",
              "    }",
              "    Each key corresponds to one produced cube.",
              "    key specifies the name of the output node",
              "",
              "    In case of \"npts\": -1, you have to use the stencil file input:",
              "",
              "        IFlag X0 Y0 Z0  # Output unit number and initial point.",
              "        N1 X1 Y1 Z1     # Number of points and step-size in the X-direction.",
              "        N2 X2 Y2 Z2     # Number of points and step-size in the Y-direction.",
              "        N3 X3 Y3 Z3     # Number of points and step-size in the Z-direction.",
              "",
              "    See more details at https://gaussian.com/cubegen/"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "dictionary containing entries for cubes to be printed."
                },
                {
                  "name": "parent_calc_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "the folder of a containing the .fchk"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "gauss_memdef",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "Set the GAUSS_MEMDEF env variable to set the max memory in MB."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "retrieve_cubes",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "should the cubes be retrieved?"
                },
                {
                  "name": "stencil",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "In case of npts=-1, use this cube specification."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "The retrieved folder could not be accessed."
                },
                {
                  "status": 301,
                  "message": "The retrieved temporary folder could not be accessed."
                }
              ]
            },
            "class": "aiida_gaussian.calculations:CubegenCalculation"
          },
          "gaussian.formchk": {
            "description": [
              "Very simple plugin to run the formchk utility"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parent_calc_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "the folder of a containing the .chk"
                },
                {
                  "name": "chk_name",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "name of the checkpoint file"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "retrieve_fchk",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "retrieve the fchk file"
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_gaussian.calculations:FormchkCalculation"
          }
        },
        "aiida.parsers": {
          "gaussian.advanced": "aiida_gaussian.parsers.gaussian:GaussianAdvancedParser",
          "gaussian.base": "aiida_gaussian.parsers.gaussian:GaussianBaseParser",
          "gaussian.cubegen_base": "aiida_gaussian.parsers.cubegen:CubegenBaseParser"
        },
        "aiida.workflows": {
          "gaussian.base": {
            "description": [
              "Workchain to run a Gaussian calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "gaussian",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 350,
                  "message": "The calculation failed with an unrecoverable SCF convergence error."
                },
                {
                  "status": 399,
                  "message": "The calculation failed with an unrecoverable error."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_gaussian.workchains:GaussianBaseWorkChain"
          },
          "gaussian.cubes": {
            "description": [
              "No description available"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "cubegen_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "formchk_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "gaussian_calc_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "The gaussian calculation output folder."
                },
                {
                  "name": "gaussian_output_params",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The gaussian calculation output parameters."
                },
                {
                  "name": "cubegen_parser_name",
                  "required": false,
                  "valid_types": "str",
                  "info": ""
                },
                {
                  "name": "cubegen_parser_params",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Additional parameters to cubegen parser."
                },
                {
                  "name": "dx",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Cube file spacing [ang]."
                },
                {
                  "name": "edge_space",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Extra cube space in addition to molecule bounding box [ang]."
                },
                {
                  "name": "generate_density",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Generate density cube."
                },
                {
                  "name": "generate_spin_density",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Generate spin density cube (if applicable)."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "natural_orbitals",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "The cube files are natural orbitals."
                },
                {
                  "name": "orbital_index_ref",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "Reference index, possible choices: 'half_num_el', 'abs'."
                },
                {
                  "name": "orbital_indexes",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "Indexes of the orbital cubes to generate."
                },
                {
                  "name": "retrieve_cubes",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "should the cubes be retrieved?"
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 302,
                  "message": "Input options are invalid."
                },
                {
                  "status": 390,
                  "message": "One or more steps of the work chain failed."
                }
              ]
            },
            "class": "aiida_gaussian.workchains:GaussianCubesWorkChain"
          }
        }
      },
      "commits_count": 2,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 3
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 3
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-gaussian",
      "is_installable": "True"
    },
    "aiida-gaussian-datatypes": {
      "code_home": "https://github.com/dev-zero/aiida-gaussian-datatypes",
      "documentation_url": "https://github.com/dev-zero/aiida-gaussian-datatypes/blob/master/README.md",
      "entry_point_prefix": "gaussian",
      "pip_url": "aiida-gaussian-datatypes",
      "plugin_info": "https://raw.github.com/dev-zero/aiida-gaussian-datatypes/master/setup.json",
      "name": "aiida-gaussian-datatypes",
      "package_name": "aiida_gaussian_datatypes",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2022-07-22",
        "description": "AiiDA data plugin to manage gaussian datatypes (basis sets and pseudopotentials) as first-class citizens",
        "author": "Tiziano M\u00fcller",
        "author_email": "tiziano.mueller@chem.uzh.ch",
        "license": "MIT License",
        "home_page": "https://github.com/dev-zero/aiida-gaussian-datatypes",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Operating System :: OS Independent",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Software Development :: Libraries :: Python Modules"
        ],
        "version": "0.5.1"
      },
      "aiida_version": ">=1.6.2",
      "entry_points": {
        "aiida.cmdline.data": {
          "gaussian.basisset": "aiida_gaussian_datatypes.basisset.cli:cli",
          "gaussian.pseudo": "aiida_gaussian_datatypes.pseudopotential.cli:cli"
        },
        "aiida.data": {
          "gaussian.basisset": "aiida_gaussian_datatypes.basisset.data:BasisSet",
          "gaussian.pseudo": "aiida_gaussian_datatypes.pseudopotential.data:Pseudopotential"
        },
        "aiida.groups": {
          "gaussian.basisset": "aiida_gaussian_datatypes.groups:BasisSetGroup",
          "gaussian.pseudo": "aiida_gaussian_datatypes.groups:PseudopotentialGroup"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W009'>W009</a>: Prefix 'gaussian' does not follow naming convention."
      ],
      "summaryinfo": [
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands, Groups)",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install aiida-gaussian-datatypes",
      "is_installable": "True"
    },
    "aiida-gollum": {
      "code_home": "https://github.com/garsua/aiida-gollum/",
      "documentation_url": "https://aiida-gollum.readthedocs.io/",
      "entry_point_prefix": "gollum",
      "pip_url": "git+https://github.com/garsua/aiida-gollum",
      "name": "aiida-gollum",
      "package_name": "aiida_gollum",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Victor M. Garcia-Suarez",
        "author_email": "vm.garcia@cinn.es",
        "version": "0.12.0",
        "description": "A plugin for Gollum functionality within AiiDA framework.",
        "classifiers": [
          "License :: OSI Approved :: MIT License",
          "Framework :: AiiDA",
          "Programming Language :: Python :: 2.7",
          "Development Status :: 1 - Alpha"
        ]
      },
      "aiida_version": ">=0.12.0",
      "entry_points": {
        "aiida.calculations": {
          "gollum.gollum": "aiida_gollum.calculations.gollum:GollumCalculation"
        },
        "aiida.parsers": {
          "gollum.parser": "aiida_gollum.parsers.gollum:GollumParser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/garsua/aiida-gollum"
    },
    "aiida-graphql": {
      "code_home": "https://github.com/dev-zero/aiida-graphql",
      "entry_point_prefix": "graphql",
      "pip_url": "aiida-graphql",
      "name": "aiida-graphql",
      "package_name": "aiida_graphql",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2019-10-28",
        "description": "Strawberry-based GraphQL API Server for AiiDA",
        "author": "Tiziano M\u00fcller",
        "author_email": "tiziano.mueller@chem.uzh.ch",
        "license": "MIT",
        "home_page": "https://github.com/dev-zero/aiida-graphql",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Operating System :: OS Independent",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Software Development :: Libraries :: Python Modules"
        ],
        "version": "0.0.2"
      },
      "aiida_version": ">=1.0.0b6,<2.0.0",
      "entry_points": {},
      "commits_count": 0,
      "development_status": "alpha",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-graphql<pre>Collecting aiida-graphql\n  Downloading aiida_graphql-0.0.2-py3-none-any.whl.metadata (3.3 kB)\nCollecting aiida<2.0.0,>=1.0.0b6 (from aiida-graphql)\n  Downloading aiida-1.0.1.tar.gz (2.8 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting strawberry-graphql<0.17.0,>=0.16.7 (from aiida-graphql)\n  Downloading strawberry_graphql-0.16.10-py3-none-any.whl.metadata (4.0 kB)\nRequirement already satisfied: aiida-core in /opt/conda/lib/python3.10/site-packages (from aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2.5.2)\nCollecting click<8.0,>=7.0 (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading click-7.1.2-py2.py3-none-any.whl.metadata (2.9 kB)\nCollecting graphql-core<4.0.0,>=3.0.0a0 (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading graphql_core-3.3.0rc0-py3-none-any.whl.metadata (11 kB)\nCollecting hupper<2.0,>=1.5 (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading hupper-1.12.1-py3-none-any.whl.metadata (3.7 kB)\nRequirement already satisfied: pygments<3.0,>=2.3 in /opt/conda/lib/python3.10/site-packages (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql) (2.18.0)\nCollecting starlette==0.12.10 (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading starlette-0.12.10.tar.gz (46 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 46.3/46.3 kB 6.6 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting uvicorn==0.10.0 (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading uvicorn-0.10.0.tar.gz (26 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting h11==0.8.* (from uvicorn==0.10.0->strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading h11-0.8.1-py2.py3-none-any.whl.metadata (8.0 kB)\nCollecting websockets==8.* (from uvicorn==0.10.0->strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading websockets-8.1.tar.gz (58 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 58.9/58.9 kB 16.6 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting httptools==0.0.13 (from uvicorn==0.10.0->strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading httptools-0.0.13.tar.gz (104 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 104.2/104.2 kB 13.3 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting uvloop==0.14.0rc2 (from uvicorn==0.10.0->strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading uvloop-0.14.0rc2.tar.gz (2.0 MB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.0/2.0 MB 51.7 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nRequirement already satisfied: alembic~=1.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (1.13.1)\nRequirement already satisfied: archive-path~=0.4.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.4.2)\nRequirement already satisfied: aio-pika~=6.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (6.8.1)\nRequirement already satisfied: circus~=0.18.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.18.0)\nRequirement already satisfied: click-spinner~=0.1.8 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.1.10)\nINFO: pip is looking at multiple versions of aiida-core to determine which version is compatible with other requirements. This could take a while.\nCollecting strawberry-graphql<0.17.0,>=0.16.7 (from aiida-graphql)\n  Downloading strawberry_graphql-0.16.9-py3-none-any.whl.metadata (4.0 kB)\nCollecting uvicorn==0.9.1 (from strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading uvicorn-0.9.1.tar.gz (25 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting uvloop==0.* (from uvicorn==0.9.1->strawberry-graphql<0.17.0,>=0.16.7->aiida-graphql)\n  Downloading uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (4.9 kB)\nCollecting strawberry-graphql<0.17.0,>=0.16.7 (from aiida-graphql)\n  Downloading strawberry_graphql-0.16.8-py3-none-any.whl.metadata (4.0 kB)\n  Downloading strawberry_graphql-0.16.7-py3-none-any.whl.metadata (4.0 kB)\nCollecting aiida<2.0.0,>=1.0.0b6 (from aiida-graphql)\n  Downloading aiida-1.0.0.tar.gz (1.9 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida to determine which version is compatible with other requirements. This could take a while.\n  Downloading aiida-1.0.0b6.tar.gz (2.6 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting aiida-graphql\n  Downloading aiida_graphql-0.0.1-py3-none-any.whl.metadata (3.4 kB)\nRequirement already satisfied: click~=8.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (8.1.7)\nRequirement already satisfied: disk-objectstore~=1.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (1.1.0)\nRequirement already satisfied: docstring-parser in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.16)\nRequirement already satisfied: graphviz~=0.19 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.20.3)\nRequirement already satisfied: ipython>=7 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (8.25.0)\nRequirement already satisfied: jedi<0.19 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.18.2)\nRequirement already satisfied: jinja2~=3.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (3.1.4)\nRequirement already satisfied: kiwipy~=0.7.7 in /opt/conda/lib/python3.10/site-packages (from kiwipy[rmq]~=0.7.7->aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.7.8)\nRequirement already satisfied: importlib-metadata~=6.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (6.11.0)\nRequirement already satisfied: numpy~=1.21 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (1.26.4)\nRequirement already satisfied: paramiko>=2.7.2,~=2.7 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2.12.0)\nRequirement already satisfied: plumpy~=0.21.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.21.10)\nRequirement already satisfied: pgsu~=0.2.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.2.4)\nRequirement already satisfied: psutil~=5.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (5.9.8)\nRequirement already satisfied: psycopg2-binary~=2.8 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2.9.9)\nRequirement already satisfied: pydantic~=2.4 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2.7.3)\nRequirement already satisfied: pytz~=2021.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2021.3)\nRequirement already satisfied: pyyaml~=6.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (6.0.1)\nRequirement already satisfied: requests~=2.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2.32.3)\nRequirement already satisfied: sqlalchemy~=2.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (2.0.30)\nRequirement already satisfied: tabulate~=0.8.5 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.8.10)\nRequirement already satisfied: tqdm~=4.45 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (4.66.4)\nRequirement already satisfied: upf_to_json~=0.9.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (0.9.5)\nRequirement already satisfied: wrapt~=1.11 in /opt/conda/lib/python3.10/site-packages (from aiida-core->aiida<2.0.0,>=1.0.0b6->aiida-graphql) (1.16.0)\nINFO: pip is looking at multiple versions of strawberry-graphql to determine which version is compatible with other requirements. This could take a while.\nCollecting strawberry-graphql<0.17.0,>=0.16.5 (from aiida-graphql)\n  Downloading strawberry_graphql-0.16.6-py3-none-any.whl.metadata (4.0 kB)\n  Downloading strawberry_graphql-0.16.5-py3-none-any.whl.metadata (4.0 kB)\nCollecting aiida-core (from aiida<2.0.0,>=1.0.0b6->aiida-graphql)\n  Downloading aiida_core-2.5.2-py3-none-any.whl.metadata (11 kB)\nINFO: pip is still looking at multiple versions of aiida-core to determine which version is compatible with other requirements. This could take a while.\nCollecting uvicorn==0.9.0 (from strawberry-graphql<0.17.0,>=0.16.5->aiida-graphql)\n  Downloading uvicorn-0.9.0.tar.gz (24 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nERROR: Cannot install aiida-graphql because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida 1.0.0 depends on aiida-core==1.0\n    aiida 1.0.0b6 depends on aiida-core==1.0.0b6\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W020'>W020</a>: Unable to read wheel file from PyPI release: <pre>No entry_points.txt found in wheel</pre>",
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'"
      ],
      "summaryinfo": [],
      "pip_install_cmd": "pip install aiida-graphql",
      "is_installable": "False"
    },
    "aiida-gromacs": {
      "code_home": "https://github.com/CCPBioSim/aiida-gromacs",
      "documentation_url": "https://aiida-gromacs.readthedocs.io/",
      "entry_point_prefix": "gromacs",
      "pip_url": "aiida-gromacs",
      "plugin_info": "https://raw.githubusercontent.com/CCPBioSim/aiida-gromacs/master/pyproject.toml",
      "name": "aiida-gromacs",
      "package_name": "aiida_gromacs",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-03-02",
        "description": "A plugin for using GROMACS with AiiDA for molecular dymanics simulations.",
        "author_email": "James Gebbie-Rayet <james.gebbie@stfc.ac.uk>, Jas Kalayan <jas.kalayan@stfc.ac.uk>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.11"
        ],
        "version": "2.2.1"
      },
      "aiida_version": ">=2.6.1,<=2.6.3",
      "entry_points": {
        "aiida.calculations": {
          "gromacs.editconf": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx editconf' executable.",
              "",
              "    AiiDA plugin wrapper for adding a simulation box to structure file."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input structure file."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "EditconfParameters",
                  "info": "Command line parameters for gmx editconf."
                },
                {
                  "name": "bf_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Generic data file."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "n_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Index file."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output file containing simulation box."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "mead_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Coordination file for MEAD"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.editconf:EditconfCalculation"
          },
          "gromacs.genericMD": {
            "description": [
              "AiiDA calculation plugin wrapping an executable with user defined",
              "    input and output files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "input_files",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Dictionary of input files."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "output_files",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of output file names."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                },
                {
                  "status": 301,
                  "message": "Specified output file not produced by command."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.genericMD:GenericCalculation"
          },
          "gromacs.genion": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx genion' executable.",
              "",
              "    AiiDA plugin wrapper for converting PDB files to GRO files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "GenionParameters",
                  "info": "Command line parameters for gmx genion"
                },
                {
                  "name": "topfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input topology file."
                },
                {
                  "name": "tprfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input tpr file."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "instructions_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Instructions for generating index file"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "n_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Index file."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output gro file with ions added."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "topfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output topology with ions added."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.genion:GenionCalculation"
          },
          "gromacs.grompp": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx grompp' executable.",
              "",
              "    AiiDA plugin wrapper for converting PDB files to GRO files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input structure"
                },
                {
                  "name": "mdpfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "grompp run file."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "GromppParameters",
                  "info": "Command line parameters for gmx grompp"
                },
                {
                  "name": "topfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input topology"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "e_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Energy file"
                },
                {
                  "name": "itp_dirs",
                  "required": false,
                  "valid_types": "FolderData",
                  "info": "Forcefield descriptions"
                },
                {
                  "name": "itp_files",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Restraint files"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "n_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Index file"
                },
                {
                  "name": "qmi_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "QM input file"
                },
                {
                  "name": "r_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Structure file"
                },
                {
                  "name": "rb_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Structure file"
                },
                {
                  "name": "ref_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Full precision trajectory file"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "t_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Full precision trajectory file"
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "tprfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output gro file ready for adding ions."
                },
                {
                  "name": "imd_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Coordinate file in Gromos-87 format"
                },
                {
                  "name": "po_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "grompp input file with MD parameters"
                },
                {
                  "name": "pp_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Topology file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.grompp:GromppCalculation"
          },
          "gromacs.make_ndx": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx make_ndx' executable.",
              "",
              "    AiiDA plugin wrapper for converting PDB files to GRO files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Make_ndxParameters",
                  "info": "Command line parameters for gmx make_ndx"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "grofile",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Structure file: gro g96 pdb brk ent esp tpr"
                },
                {
                  "name": "instructions_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Instructions for generating index file"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "n_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Index file"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "n_file_out",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Index file"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.make_ndx:Make_ndxCalculation"
          },
          "gromacs.mdrun": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx mdrun' executable.",
              "",
              "    AiiDA plugin wrapper for converting PDB files to GRO files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "MdrunParameters",
                  "info": "Command line parameters for gmx mdrun"
                },
                {
                  "name": "tprfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input structure."
                },
                {
                  "name": "awh_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "cpi_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Checkpoint file"
                },
                {
                  "name": "ei_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "ED sampling input"
                },
                {
                  "name": "membed_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Generic data file"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "mn_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Index file"
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "mp_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Topology file"
                },
                {
                  "name": "multidir_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Run directory"
                },
                {
                  "name": "plumed_dirs",
                  "required": false,
                  "valid_types": "FolderData",
                  "info": "path to directory where inputs referenced in plumed input file are"
                },
                {
                  "name": "plumed_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Plumed file"
                },
                {
                  "name": "plumed_inpfiles",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "inputs referenced in plumed input file"
                },
                {
                  "name": "plumed_outfiles",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of plumed output file names."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "rerun_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Trajectory: xtc trr cpt gro g96 pdb tng"
                },
                {
                  "name": "table_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "tableb_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "tablep_file",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "xvgr/xmgr file"
                }
              ],
              "outputs": [
                {
                  "name": "enfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output energy file."
                },
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output structure file."
                },
                {
                  "name": "logfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output log file."
                },
                {
                  "name": "logfile_metadata",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "metadata extracted from gromacs logfile"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "trrfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output trajectory."
                },
                {
                  "name": "cpo_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Checkpoint file."
                },
                {
                  "name": "dhdl_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "eo_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "field_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "if_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "mtx_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Hessian Matrix"
                },
                {
                  "name": "pf_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "px_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "ra_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Log file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "ro_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "rs_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Log file"
                },
                {
                  "name": "rt_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Log file"
                },
                {
                  "name": "swap_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "tpi_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "tpid_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "xvgr/xmgr file"
                },
                {
                  "name": "x_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Compressed trajectory (tng format or portable xdr format)"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.mdrun:MdrunCalculation"
          },
          "gromacs.pdb2gmx": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx pdb2gmx' executable.",
              "",
              "    AiiDA plugin wrapper for converting PDB files to GRO files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Pdb2gmxParameters",
                  "info": "Command line parameters for gmx pdb2gmx"
                },
                {
                  "name": "pdbfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input structure."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output forcefield compliant file."
                },
                {
                  "name": "itpfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output forcefield compliant file."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "topfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output forcefield compliant file."
                },
                {
                  "name": "n_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Output index file"
                },
                {
                  "name": "q_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Output Structure file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.pdb2gmx:Pdb2gmxCalculation"
          },
          "gromacs.solvate": {
            "description": [
              "AiiDA calculation plugin wrapping the 'gmx solvate' executable.",
              "",
              "    AiiDA plugin wrapper for solvating a molecular system."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input structure"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "SolvateParameters",
                  "info": "Command line parameters for gmx solvate."
                },
                {
                  "name": "topfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input topology"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "command",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The command used to execute the job."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "grofile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output solvated gro file."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stdout",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "stdout"
                },
                {
                  "name": "topfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Output topology file."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_gromacs.calculations.solvate:SolvateCalculation"
          }
        },
        "aiida.cmdline.data": {
          "gromacs.provenance": "aiida_gromacs.commands.provenance:provenance"
        },
        "aiida.data": {
          "gromacs.editconf": "aiida_gromacs.data.editconf:EditconfParameters",
          "gromacs.genion": "aiida_gromacs.data.genion:GenionParameters",
          "gromacs.grompp": "aiida_gromacs.data.grompp:GromppParameters",
          "gromacs.make_ndx": "aiida_gromacs.data.make_ndx:Make_ndxParameters",
          "gromacs.mdrun": "aiida_gromacs.data.mdrun:MdrunParameters",
          "gromacs.pdb2gmx": "aiida_gromacs.data.pdb2gmx:Pdb2gmxParameters",
          "gromacs.plumed_input": "aiida_gromacs.data.plumed_input:PlumedInputData",
          "gromacs.solvate": "aiida_gromacs.data.solvate:SolvateParameters"
        },
        "aiida.parsers": {
          "gromacs.editconf": "aiida_gromacs.parsers.editconf:EditconfParser",
          "gromacs.genericMD": "aiida_gromacs.parsers.genericMD:GenericParser",
          "gromacs.genion": "aiida_gromacs.parsers.genion:GenionParser",
          "gromacs.grompp": "aiida_gromacs.parsers.grompp:GromppParser",
          "gromacs.make_ndx": "aiida_gromacs.parsers.make_ndx:Make_ndxParser",
          "gromacs.mdrun": "aiida_gromacs.parsers.mdrun:MdrunParser",
          "gromacs.pdb2gmx": "aiida_gromacs.parsers.pdb2gmx:Pdb2gmxParser",
          "gromacs.solvate": "aiida_gromacs.parsers.solvate:SolvateParser"
        },
        "aiida.workflows": {
          "gromacs.setup": {
            "description": [
              "WorkChain for setting up a gromacs simulation automatically."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "editconfparameters",
                  "required": true,
                  "valid_types": "EditconfParameters",
                  "info": "Command line parameters for gmx editconf"
                },
                {
                  "name": "genionparameters",
                  "required": true,
                  "valid_types": "GenionParameters",
                  "info": "Command line parameters for gmx genion"
                },
                {
                  "name": "gromppionsparameters",
                  "required": true,
                  "valid_types": "GromppParameters",
                  "info": "Command line parameters for gmx grompp"
                },
                {
                  "name": "gromppminparameters",
                  "required": true,
                  "valid_types": "GromppParameters",
                  "info": "Command line parameters for gmx grompp minimisation run"
                },
                {
                  "name": "gromppnptparameters",
                  "required": true,
                  "valid_types": "GromppParameters",
                  "info": "Command line parameters for gmx grompp npt equilibration run"
                },
                {
                  "name": "gromppnvtparameters",
                  "required": true,
                  "valid_types": "GromppParameters",
                  "info": "Command line parameters for gmx grompp nvt equilibration run"
                },
                {
                  "name": "gromppprodparameters",
                  "required": true,
                  "valid_types": "GromppParameters",
                  "info": "Command line parameters for gmx grompp production run"
                },
                {
                  "name": "ionsmdp",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "MD parameters for adding ions."
                },
                {
                  "name": "local_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "mdrunparameters",
                  "required": true,
                  "valid_types": "MdrunParameters",
                  "info": "Command line parameters for gmx mdrun production run"
                },
                {
                  "name": "minimiseparameters",
                  "required": true,
                  "valid_types": "MdrunParameters",
                  "info": "Command line parameters for gmx mdrun minimisation run"
                },
                {
                  "name": "minmdp",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "MD parameters for minimisation."
                },
                {
                  "name": "nptmdp",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "MD parameters for NPT equilibration."
                },
                {
                  "name": "nptparameters",
                  "required": true,
                  "valid_types": "MdrunParameters",
                  "info": "Command line parameters for gmx mdrun npt equilibration run"
                },
                {
                  "name": "nvtmdp",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "MD parameters for NVT equilibration."
                },
                {
                  "name": "nvtparameters",
                  "required": true,
                  "valid_types": "MdrunParameters",
                  "info": "Command line parameters for gmx mdrun nvt equilibration run"
                },
                {
                  "name": "pdb2gmxparameters",
                  "required": true,
                  "valid_types": "Pdb2gmxParameters",
                  "info": "Command line parameters for gmx pdb2gmx"
                },
                {
                  "name": "pdbfile",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Input structure."
                },
                {
                  "name": "prodmdp",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "MD parameters for production run."
                },
                {
                  "name": "solvateparameters",
                  "required": true,
                  "valid_types": "SolvateParameters",
                  "info": "Command line parameters for gmx solvate"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "remote_code",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "result",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_gromacs.workflows.simsetup:SetupWorkChain"
          }
        },
        "console_scripts": {
          "createarchive": "aiida_gromacs.cli.createarchive:cli",
          "genericMD": "aiida_gromacs.cli.genericMD:cli",
          "gmx_editconf": "aiida_gromacs.cli.editconf:cli",
          "gmx_genion": "aiida_gromacs.cli.genion:cli",
          "gmx_grompp": "aiida_gromacs.cli.grompp:cli",
          "gmx_make_ndx": "aiida_gromacs.cli.make_ndx:cli",
          "gmx_mdrun": "aiida_gromacs.cli.mdrun:cli",
          "gmx_pdb2gmx": "aiida_gromacs.cli.pdb2gmx:cli",
          "gmx_solvate": "aiida_gromacs.cli.solvate:cli"
        }
      },
      "commits_count": 164,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 8
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 8
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 8
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 9
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-gromacs",
      "is_installable": "True"
    },
    "aiida-grouppathx": {
      "code_home": "https://github.com/zhubonan/aiida-grouppathx",
      "development_status": "beta",
      "entry_point_prefix": "grouppathx",
      "pip_url": "aiida-grouppathx",
      "plugin_info": "https://raw.githubusercontent.com/zhubonan/aiida-grouppathx/master/pyproject.toml",
      "name": "aiida-grouppathx",
      "package_name": "aiida_grouppathx",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-07-29",
        "description": "AiiDA plugin provides the GroupPathX class",
        "author_email": "Bonan Zhu <zhubonan@outlook.com>",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.2.7"
      },
      "aiida_version": ">=1.6.4,<3",
      "entry_points": {
        "aiida.cmdline.data": {
          "gpx": "aiida_grouppathx.cli:grouppathx_cli"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W005'>W005</a>: Development status in classifiers (alpha) does not match development_status in metadata (beta)",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'gpx' does not start with prefix 'grouppathx.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-grouppathx",
      "is_installable": "True"
    },
    "aiida-gudhi": {
      "code_home": "https://github.com/ltalirz/aiida-gudhi",
      "development_status": "beta",
      "entry_point_prefix": "gudhi",
      "pip_url": "aiida-gudhi",
      "plugin_info": "https://raw.github.com/ltalirz/aiida-gudhi/master/setup.json",
      "name": "aiida-gudhi",
      "package_name": "aiida_gudhi",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2018-06-21",
        "description": "AiiDA plugin for the [GUDHI](http://gudhi.gforge.inria.fr/) library for topological data analysis.",
        "author": "Leopold Talirz",
        "author_email": "leopold.talirz@gmail.com",
        "license": "MIT",
        "home_page": "https://github.com/ltalirz/aiida-gudhi",
        "classifiers": [
          "Programming Language :: Python"
        ],
        "version": "0.1.0a3"
      },
      "aiida_version": "*",
      "entry_points": {
        "aiida.calculations": {
          "gudhi.rdm": "aiida_gudhi.calculations.rips:RipsDistanceMatrixCalculation"
        },
        "aiida.data": {
          "gudhi.rdm": "aiida_gudhi.data.rips:RipsDistanceMatrixParameters"
        },
        "aiida.parsers": {
          "gudhi.rdm": "aiida_gudhi.parsers.rips:RipsParser"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-gudhi",
      "is_installable": "True"
    },
    "aiida-gulp": {
      "code_home": "https://github.com/aiidaplugins/aiida-gulp",
      "development_status": "beta",
      "documentation_url": "https://aiida-gulp.readthedocs.io",
      "entry_point_prefix": "gulp",
      "pip_url": "aiida-gulp",
      "plugin_info": "https://raw.githubusercontent.com/aiidaplugins/aiida-gulp/master/setup.json",
      "name": "aiida-gulp",
      "package_name": "aiida_gulp",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2019-10-30",
        "description": "AiiDA plugin for running the GULP MD code",
        "author": "Chris Sewell",
        "author_email": "chrisj_sewell@hotmail.com",
        "license": "MIT",
        "home_page": "https://github.com/chrisjsewell/aiida-gulp",
        "classifiers": [
          "Framework :: AiiDA",
          "Programming Language :: Python",
          "Programming Language :: Python :: 2.7",
          "Programming Language :: Python :: 3.6",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.10.0b5"
      },
      "aiida_version": "1.0.0b5",
      "entry_points": {
        "aiida.calculations": {
          "gulp.fitting": "aiida_gulp.calculations.gulp_fitting:GulpFittingCalculation",
          "gulp.optimize": "aiida_gulp.calculations.gulp_optimize:GulpOptCalculation",
          "gulp.single": "aiida_gulp.calculations.gulp_single:GulpSingleCalculation"
        },
        "aiida.cmdline.data": {
          "gulp.potentials": "aiida_gulp.cmndline.potentials:potentials"
        },
        "aiida.data": {
          "gulp.potential": "aiida_gulp.data.potential:EmpiricalPotential",
          "gulp.symmetry": "aiida_gulp.data.symmetry:SymmetryData"
        },
        "aiida.parsers": {
          "gulp.fitting": "aiida_gulp.parsers.parse_fitting:GulpFittingParser",
          "gulp.optimize": "aiida_gulp.parsers.parse_opt:GulpOptParser",
          "gulp.single": "aiida_gulp.parsers.parse_single:GulpSingleParser"
        },
        "aiida.workflows": {},
        "console_scripts": {
          "gulp_mock": "aiida_gulp.tests.mock_gulp:main"
        },
        "gulp.potentials": {
          "lj": "aiida_gulp.potentials.lj:PotentialWriterLJ",
          "reaxff": "aiida_gulp.potentials.reaxff:PotentialWriterReaxff"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-gulp<pre>Collecting aiida-gulp\n  Downloading aiida_gulp-0.10.0b5-py3-none-any.whl.metadata (5.4 kB)\nINFO: pip is looking at multiple versions of aiida-gulp to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-gulp==0.10.0b5 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-gulp 0.10.0b5 depends on aiida-core==1.0.0b5\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 3
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 3
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands, Gulp potentials)",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-gulp",
      "is_installable": "False"
    },
    "aiida-hubbard": {
      "code_home": "https://github.com/aiidateam/aiida-hubbard",
      "entry_point_prefix": "quantumespresso.hp",
      "pip_url": "aiida-hubbard",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-hubbard/master/pyproject.toml",
      "name": "aiida-hubbard",
      "package_name": "aiida_hubbard",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-12-19",
        "description": "AiiDA plugin for the first-principles calculation of Hubbard parameters.",
        "author_email": "Lorenzo Bastonero <lbastone@uni-bremen.de>, \"Sebastiaan P. Huber\" <mail@sphuber.net>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: Free To Use But Restricted",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "0.5.0"
      },
      "aiida_version": ">=2.3,<2.6 || >2.6,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "quantumespresso.hp": "aiida_hubbard.calculations.hp:HpCalculation"
        },
        "aiida.parsers": {
          "quantumespresso.hp": "aiida_hubbard.parsers.hp:HpParser"
        },
        "aiida.workflows": {
          "quantumespresso.hp.base": "aiida_hubbard.workflows.hp.base:HpBaseWorkChain",
          "quantumespresso.hp.hubbard": "aiida_hubbard.workflows.hubbard:SelfConsistentHubbardWorkChain",
          "quantumespresso.hp.main": "aiida_hubbard.workflows.hp.main:HpWorkChain",
          "quantumespresso.hp.parallelize_atoms": "aiida_hubbard.workflows.hp.parallelize_atoms:HpParallelizeAtomsWorkChain",
          "quantumespresso.hp.parallelize_qpoints": "aiida_hubbard.workflows.hp.parallelize_qpoints:HpParallelizeQpointsWorkChain"
        },
        "console_scripts": {
          "aiida-hubbard": "aiida_hubbard.cli:cmd_root"
        }
      },
      "commits_count": 7,
      "development_status": "stable",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W009'>W009</a>: Prefix 'quantumespresso.hp' does not follow naming convention."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 5
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-hubbard",
      "is_installable": "True"
    },
    "aiida-icon": {
      "entry_point_prefix": "icon",
      "pip_url": "aiida-icon",
      "documentation_url": "https://aiida-icon.github.io/aiida-icon/",
      "code_home": "https://github.com/aiida-icon/aiida-icon",
      "plugin_info": "https://raw.githubusercontent.com/aiida-icon/aiida-icon/main/pyproject.toml",
      "name": "aiida-icon",
      "package_name": "aiida_icon",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-08-26",
        "description": "AiiDA Plugin to run simulations with the ICON weather & climate model",
        "author_email": "Rico H\u00e4uselmann <rico.haeuselmann@gmail.com>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: Implementation :: CPython"
        ],
        "version": "0.5.0"
      },
      "aiida_version": ">=2.5",
      "entry_points": {
        "aiida.calculations": {
          "icon.icon": {
            "description": [
              "AiiDA calculation to run ICON."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "master_namelist",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "cloud_opt_props",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "dmin_wetgrowth_lookup",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "dynamics_grid_file",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "ecrad_data",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "model_namelist",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": ""
                },
                {
                  "name": "models",
                  "required": false,
                  "valid_types": "SinglefileData, RemoteData",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "restart_file",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "rrtmg_lw",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "rrtmg_sw",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "setup_env",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "A file that is sourced before the execution of ICON and after environment variables passed through the 'metadata' input are set."
                },
                {
                  "name": "wrapper_script",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "all_restart_files",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "finish_status",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "latest_restart_file",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_streams",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": "Output streams of the ICON calculation"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "ICON did not create a restart file or directory."
                },
                {
                  "status": 301,
                  "message": "Could not read the finish.status file."
                },
                {
                  "status": 302,
                  "message": "The final status was not 'OK or RESTART', check the finish_status output."
                },
                {
                  "status": 303,
                  "message": "Could not fully parse due to an unsupported feature, please check the log."
                },
                {
                  "status": 304,
                  "message": "Some outputs might be missing, check the log for explanations."
                },
                {
                  "status": 310,
                  "message": "ICON was expected to produce a restart file but did not."
                }
              ]
            },
            "class": "aiida_icon.calculations:IconCalculation"
          }
        },
        "aiida.parsers": {
          "icon.icon": "aiida_icon.calculations:IconParser"
        }
      },
      "commits_count": 17,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-icon",
      "is_installable": "True"
    },
    "aiida-inq": {
      "entry_point_prefix": "inq",
      "plugin_info": "https://github.com/LLNL/aiida-inq/blob/main/pyproject.toml",
      "code_home": "https://github.com/LLNL/aiida-inq",
      "pip_url": "aiida-inq",
      "name": "aiida-inq",
      "package_name": "aiida_inq",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2024-10-08",
        "description": "The official AiiDA plugin for INQ.",
        "author_email": "Nathan Keilbart <keilbart1@llnl.gov>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Topic :: Scientific/Engineering"
        ],
        "version": "0.1.0"
      },
      "aiida_version": ">=2.0,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "inq.create_kpoints_from_distance": {
            "description": [
              "Generate a kpoint mesh for a given structure.",
              "",
              "    :param structure: StructureData to which the mesh will be applied.",
              "    :param kspacing: Spacing between kpoints in reciprocal space.",
              "",
              "    :returns: KpointsData object with mesh."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kspacing",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Spacing between kpoints in reciprocal space."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "Data",
                  "info": "StructureData to which the mesh will be applied."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_inq.calculations.functions.create_kpoints_from_distance:create_kpoints_from_distance"
          },
          "inq.inq": {
            "description": [
              "Base calculation class for the INQ code."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters for the input file."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Optional working directory of a previous calculation to restart from."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Optional parameters to affect the way the calculation job is performed."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 201,
                  "message": "At minimum the energy cutoff must be specified."
                },
                {
                  "status": 202,
                  "message": "No run type was specified in the input parameters."
                },
                {
                  "status": 203,
                  "message": "Input parameter was not specified for this result."
                }
              ]
            },
            "class": "aiida_inq.calculations.inq:InqCalculation"
          }
        },
        "aiida.parsers": {
          "inq.inq": "aiida_inq.parsers.inq:InqParser"
        },
        "aiida.workflows": {
          "inq.base": {
            "description": [
              "Workchain to run an Inq calculation with automated error handling ",
              "    and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "inq",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to clean all related work folders."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Kpoint grid."
                },
                {
                  "name": "kpoints_spacing",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "The spacing between kpoints in reciprocal space."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_inq.workflows.base:InqBaseWorkChain"
          },
          "inq.convergence": {
            "description": [
              "Workchain to run convergence tests using the Inq calculator."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "clean_workdir",
                  "required": true,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculations will be cleaned at the end of the workflow."
                },
                {
                  "name": "conv",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for the INQ Base Workchain."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The starting structure"
                },
                {
                  "name": "energy_delta",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "The value used to check if the total energy has converged. Since the parser returns values in eV, make sure to scale the value accordingly."
                },
                {
                  "name": "energy_start",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "If provided, will use this energy cutoff as a starting point. Otherwise, the suggested energy cutoffs will be used from the pseudos.yaml protocol file. Units are considered to be Ha."
                },
                {
                  "name": "energy_step",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "Default value for increasing the energy cutoff value. Units considered to be in Ha."
                },
                {
                  "name": "kspacing_start",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Starting kspacing value for convergence testing."
                },
                {
                  "name": "kspacing_step",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Step value for reducing kspacing value."
                },
                {
                  "name": "max_iter",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "Maximum number of iterations to perform for both energy and kspacing calculations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "suggested",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Suggested values for energy cutoff and kspacing."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 401,
                  "message": "An INQ calculation failed."
                },
                {
                  "status": 402,
                  "message": "Reached the maximum number of iterations for the workchain."
                }
              ]
            },
            "class": "aiida_inq.workflows.convergence:InqConvergenceWorkChain"
          },
          "inq.tddft": {
            "description": [
              "Workchain to run convergence tests using the Inq calculator."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "clean_workdir",
                  "required": true,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculations will be cleaned at the end of the workflow."
                },
                {
                  "name": "gs",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for the Ground State calculation."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The starting structure."
                },
                {
                  "name": "tddft",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for the TDDFT calculation."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 401,
                  "message": "An INQ calculation failed."
                }
              ]
            },
            "class": "aiida_inq.workflows.tddft:InqTDDFTWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install aiida-inq",
      "is_installable": "True"
    },
    "aiida-kkr": {
      "code_home": "https://github.com/JuDFTteam/aiida-kkr/tree/develop",
      "development_status": "stable",
      "documentation_url": "https://aiida-kkr.readthedocs.io/",
      "entry_point_prefix": "kkr",
      "pip_url": "aiida-kkr",
      "plugin_info": "https://raw.githubusercontent.com/JuDFTteam/aiida-kkr/master/pyproject.toml",
      "name": "aiida-kkr",
      "package_name": "aiida_kkr",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2024-12-05",
        "description": "AiiDA plugin for the JuKKR codes",
        "author_email": "Philipp Ruessmann <p.ruessmann@fz-juelich.de>, Jens Broeder <j.broeder@fz-juelich.de>, Fabian Bertoldo <f.bertoldo@fz-juelich.de>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "2.3.1"
      },
      "aiida_version": ">=2.0.0,<3.0.0",
      "entry_points": {
        "aiida.calculations": {
          "kkr.kkr": {
            "description": [
              "AiiDA calculation plugin for a KKR calculation."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Use a node that specifies the input parameters"
                },
                {
                  "name": "parent_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "\nUse a remote or local repository folder as parent folder\n(also for restarts and similar). It should contain all the  needed\nfiles for a KKR calc, only edited files should be uploaded from the\nrepository.\n"
                },
                {
                  "name": "anomalous_density",
                  "required": false,
                  "valid_types": "FolderData, NoneType",
                  "info": "\nFolderData that contains anomalous density input files for\nthe KKRhost BdG calculation. If these are not give the code looks\nfor them in the retrieved of the parent calculation and takes them\nfrom there."
                },
                {
                  "name": "bfield",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nNon-collinear exteral B-field used for constraint calculations.\n\nThe Dict node should be of the form\ninitial_noco_angles = Dict(dict={\n    'theta': [theta_at1, theta_at2, ..., theta_atN],\n    # list theta values in degrees (0..180)\n    'phi': [phi_at1, phi_at2, ..., phi_atN],\n    # list phi values in degrees (0..360)\n    'magnitude': [magnitude at_1, ..., magnitude at_N]\n    # list of magnitude of the applied fields in Ry units\n})\nNote: The length of the theta, phi and magnitude lists have to be\nequal to the number of atoms.\n"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "deciout_parent",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "KkrCalculation RemoteData folder from deci-out calculation"
                },
                {
                  "name": "impurity_info",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nUse a Parameter node that specifies properties for a following\nimpurity calculation (e.g. setting of impurity cluster in scoef\nfile that is automatically created)."
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nInitial non-collinear angles for the magnetic moments of\nthe impurities. These values will be written into the\n`kkrflex_angle` input file of KKRimp.\nThe Dict node should be of the form\ninitial_noco_angles = Dict(dict={\n    'theta': [theta_at1, theta_at2, ..., theta_atN],\n    # list theta values in degrees (0..180)\n    'phi': [phi_at1, phi_at2, ..., phi_atN],\n    # list phi values in degrees (0..360)\n    'fix_dir': [True/False at_1, ..., True/False at_N]\n    # list of booleans indicating if the direction of the magnetic\n    # moment should be fixed or is allowed relax (True means keep the\n    # direction of the magnetic moment fixed)\n})\nNote: The length of the theta, phi and fix_dir lists have to be\nequal to the number of atoms.\n"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "\nUse a KpointsData node that specifies the kpoints for which a\nbandstructure (i.e. 'qdos') calculation should be performed."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "retrieve_kkrflex",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "\nFor a GF writeout calculation, determine whether or not\nthe kkrflex_* files are copied to the retrieved (can clutter the\ndatabase) or are ony left in the remote folder.\n"
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nSettings for running a LDA+U calculation. The Dict node should be of the form\n    settings_LDAU = Dict(dict={'iatom=0':{\n        'L': 3,         # l-block which gets U correction (1: p, 2: d, 3: f-electrons)\n        'U': 7.,        # U value in eV\n        'J': 0.75,      # J value in eV\n        'Eref_EF': 0.,  # reference energy in eV relative to the Fermi energy. This is the energy where the projector wavefunctions are calculated (should be close in energy where the states that are shifted lie (e.g. for Eu use the Fermi energy))\n    }})\n    Note: you can add multiple entries like the one for iatom==0 in this example. The atom index refers to the corresponding atom in the impurity cluster.\n"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "results of the KKR calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "KKR output file not found"
                },
                {
                  "status": 302,
                  "message": "KKR parser retuned an error"
                },
                {
                  "status": 303,
                  "message": "Could not find shapefun from voronoi parent"
                }
              ]
            },
            "class": "aiida_kkr.calculations.kkr:KkrCalculation"
          },
          "kkr.kkrimp": {
            "description": [
              "AiiDA calculation plugin for a KKRimp calculation."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "host_Greenfunction_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Use a node that specifies the host KKR calculation contaning the host Green function and tmatrix (KkrCalculation with impurity_info input)."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "host_Greenfunction_folder_Efshift",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a node that specifies the host KKR calculation contaning the host Green function and tmatrix with Fermi level shift (used to set Fermi level)."
                },
                {
                  "name": "impurity_info",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Use a parameter node that specifies properties for a immpurity calculation."
                },
                {
                  "name": "impurity_potential",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Use a node that contains the input potential."
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nInitial non-collinear angles for the magnetic moments of the impurities. These values will be written into the `kkrflex_angle` input file of KKRimp.\nThe Dict node should be of the form\n    initial_noco_angles = Dict({\n        'theta': [theta_at1, theta_at2, ..., theta_atN], # list theta values in degrees (0..180)\n        'phi': [phi_at1, phi_at2, ..., phi_atN],         # list phi values in degrees (0..360)\n        'fix_dir': [True, False, ..., True/False],       # list of booleans indicating of the direction of the magentic moment should be fixed or is allowed to be updated (True means keep the direction of the magnetic moment fixed)\n    })\n\nNote: The length of the theta, phi and fix_dir lists have to be equal to the number of atoms in the impurity cluster.\n"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Use a node that specifies the input parameters (calculation settings)."
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a node that specifies a parent KKRimp calculation."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "rimpshift",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nShift for atoms in the impurity cluster used in U-transformation.\n\nThe Dict node should be of the form\n    rimpshift = Dict({'shifts': [[0., 0., 0.], ... ]})\nwhere the shifts are given in atomic units (i.e. the internal KKR units).\n\nNote: The length of the 'shifts' attribute should be an array with three numbers indicating the shift for each atom in the impurity cluster.\n"
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nSettings for running a LDA+U calculation. The Dict node should be of the form\n    settings_LDAU = Dict({'iatom=0':{\n        'L': 3,         # l-block which gets U correction (1: p, 2: d, 3: f-electrons)\n        'U': 7.,        # U value in eV\n        'J': 0.75,      # J value in eV\n        'Eref_EF': 0.,  # reference energy in eV relative to the Fermi energy. This is the energy where the projector wavefunctions are calculated (should be close in energy where the states that are shifted lie (e.g. for Eu use the Fermi energy))\n    }})\n\nNote: you can add multiple entries like the one for iatom==0 in this example. The atom index refers to the corresponding atom in the impurity cluster.\n"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "results of the KKRimp calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "Retrieved folder of KKRimp calculation not found."
                },
                {
                  "status": 302,
                  "message": "KKRimp parser returned an error."
                }
              ]
            },
            "class": "aiida_kkr.calculations.kkrimp:KkrimpCalculation"
          },
          "kkr.kkrimporter": {
            "description": [
              "Importer dummy calculation for a previous KKR run",
              "",
              "    :param remote_workdir: Absolute path to the directory where the job was run.",
              "        The transport of the computer you link ask input to the calculation is",
              "        the transport that will be used to retrieve the calculation's files.",
              "        Therefore, ``remote_workdir`` should be the absolute path to the job's",
              "        directory on that computer.",
              "    :type remote_workdir: str",
              "    :param input_file_names: The file names of the job's input file.",
              "    :type input_file_name: dict with str entries",
              "    :param output_file_name: The file names of the job's output file (i.e. the",
              "        file containing the stdout of kkr.x).",
              "    :type output_file_name: dict with str entries"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Use a node that specifies the input parameters"
                },
                {
                  "name": "parent_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "\nUse a remote or local repository folder as parent folder\n(also for restarts and similar). It should contain all the  needed\nfiles for a KKR calc, only edited files should be uploaded from the\nrepository.\n"
                },
                {
                  "name": "anomalous_density",
                  "required": false,
                  "valid_types": "FolderData, NoneType",
                  "info": "\nFolderData that contains anomalous density input files for\nthe KKRhost BdG calculation. If these are not give the code looks\nfor them in the retrieved of the parent calculation and takes them\nfrom there."
                },
                {
                  "name": "bfield",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nNon-collinear exteral B-field used for constraint calculations.\n\nThe Dict node should be of the form\ninitial_noco_angles = Dict(dict={\n    'theta': [theta_at1, theta_at2, ..., theta_atN],\n    # list theta values in degrees (0..180)\n    'phi': [phi_at1, phi_at2, ..., phi_atN],\n    # list phi values in degrees (0..360)\n    'magnitude': [magnitude at_1, ..., magnitude at_N]\n    # list of magnitude of the applied fields in Ry units\n})\nNote: The length of the theta, phi and magnitude lists have to be\nequal to the number of atoms.\n"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "deciout_parent",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "KkrCalculation RemoteData folder from deci-out calculation"
                },
                {
                  "name": "impurity_info",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nUse a Parameter node that specifies properties for a following\nimpurity calculation (e.g. setting of impurity cluster in scoef\nfile that is automatically created)."
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nInitial non-collinear angles for the magnetic moments of\nthe impurities. These values will be written into the\n`kkrflex_angle` input file of KKRimp.\nThe Dict node should be of the form\ninitial_noco_angles = Dict(dict={\n    'theta': [theta_at1, theta_at2, ..., theta_atN],\n    # list theta values in degrees (0..180)\n    'phi': [phi_at1, phi_at2, ..., phi_atN],\n    # list phi values in degrees (0..360)\n    'fix_dir': [True/False at_1, ..., True/False at_N]\n    # list of booleans indicating if the direction of the magnetic\n    # moment should be fixed or is allowed relax (True means keep the\n    # direction of the magnetic moment fixed)\n})\nNote: The length of the theta, phi and fix_dir lists have to be\nequal to the number of atoms.\n"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "\nUse a KpointsData node that specifies the kpoints for which a\nbandstructure (i.e. 'qdos') calculation should be performed."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "retrieve_kkrflex",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "\nFor a GF writeout calculation, determine whether or not\nthe kkrflex_* files are copied to the retrieved (can clutter the\ndatabase) or are ony left in the remote folder.\n"
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nSettings for running a LDA+U calculation. The Dict node should be of the form\n    settings_LDAU = Dict(dict={'iatom=0':{\n        'L': 3,         # l-block which gets U correction (1: p, 2: d, 3: f-electrons)\n        'U': 7.,        # U value in eV\n        'J': 0.75,      # J value in eV\n        'Eref_EF': 0.,  # reference energy in eV relative to the Fermi energy. This is the energy where the projector wavefunctions are calculated (should be close in energy where the states that are shifted lie (e.g. for Eu use the Fermi energy))\n    }})\n    Note: you can add multiple entries like the one for iatom==0 in this example. The atom index refers to the corresponding atom in the impurity cluster.\n"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "results of the KKR calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "KKR output file not found"
                },
                {
                  "status": 302,
                  "message": "KKR parser retuned an error"
                },
                {
                  "status": 303,
                  "message": "Could not find shapefun from voronoi parent"
                }
              ]
            },
            "class": "aiida_kkr.calculations.kkrimporter:KkrImporterCalculation"
          },
          "kkr.kkrnano": {
            "description": [
              "AiiDA calculation plugin for a KKRnano calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "convert",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Activate to use together with set up convert code in order to retrieve potential files."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "nocoangles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Dict node that specifies the starting angles for non-colinear calculations                   (only needed in conjunction with non-colinear calculations, i. e. KORBIT=1                   (which is also necessary for SOC calculations!))"
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Dict node that specifies the input parameters for KKRnano (k-point density etc.)"
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a node that specifies a parent KKRnano or voronoi calculation"
                },
                {
                  "name": "passed_lattice_param_angs",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Use a prespecified lattice constant in Angstrom as input for KKRnano, i. e. in the input.conf file.                    Default is the length of the longest Bravais vector in the structure object used for the voronoi calculation.                    This can be useful in the context of treating supercells."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "strucwithpot",
                  "required": false,
                  "valid_types": "StrucWithPotData, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "results of the calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "KKRnano output file not found"
                },
                {
                  "status": 302,
                  "message": "KKRnano parser retuned an error"
                }
              ]
            },
            "class": "aiida_kkr.calculations.kkrnano:KKRnanoCalculation"
          },
          "kkr.voro": {
            "description": [
              "AiiDA calculation plugin for a voronoi calculation (creation of starting potential and shapefun)."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Use a node that specifies the input parameters"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_KKR",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Use a node that specifies a parent KKR calculation"
                },
                {
                  "name": "potential_overwrite",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Use a node that specifies the potential which is used instead of the voronoi output potential"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "shapefun_overwrite",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Use a node that specifies the shapefun which is used instead of the voronoi output"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Use a node that specifies the input crystal structure"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "results of the calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "Voronoi output file not found"
                },
                {
                  "status": 302,
                  "message": "Voronoi parser retuned an error"
                }
              ]
            },
            "class": "aiida_kkr.calculations.voro:VoronoiCalculation"
          }
        },
        "aiida.data": {
          "kkr.strucwithpot": "aiida_kkr.data.strucwithpot:StrucWithPotData"
        },
        "aiida.parsers": {
          "kkr.kkrimporterparser": "aiida_kkr.parsers.kkrimporter:KkrImporterParser",
          "kkr.kkrimpparser": "aiida_kkr.parsers.kkrimp:KkrimpParser",
          "kkr.kkrnanoparser": "aiida_kkr.parsers.kkrnano:KKRnanoParser",
          "kkr.kkrparser": "aiida_kkr.parsers.kkr:KkrParser",
          "kkr.voroparser": "aiida_kkr.parsers.voro:VoronoiParser"
        },
        "aiida.workflows": {
          "kkr.STM": {
            "description": [
              "Workchain for the Simulation of a (superconducting) STM tip around a magnetic impurity.",
              "    The workchain uses the (converged) impurity calculation of a host system and combines them",
              "    with vacuum sites in positions",
              "",
              "    inputs::",
              "        :param options: (Dict), computer options",
              "        :param tip_position: (Dict), specify the position of the STM tip",
              "        :param impurity_info: (Dict), information about the impurity cluster",
              "        :param host_calc: (RemoteData), information about the host structure of the sample",
              "        :param wf_parameters: (Dict), parameters that are used to run the workflow",
              "        :param kkr: (Code), KKR host code for the writing out kkrflex files",
              "        :param kkrimp: (Code), KKR impurity code for the normal state impurity scf and BdG impurity DOS calculation",
              "        :param gf_writeout.params_kkr_overwrite (Dict), overwrite parameters for the GF calculation",
              "        :param kkr_imp_sub.params_overwrite (Dict), overwrite parameters for the impurity calculation",
              "",
              "     returns::",
              "",
              "        :return workflow_info: (Dict), Information of workflow results",
              "                            like success, last result node, list with convergence behavior",
              "        :return STM_dos_data: (XYData), Returns the plot of the lmDOS of the calculation",
              "        :retrun STM_lmdos_data: (XYData), Returns the interpolated lmDOS of the calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "BdG",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "gf_writeout",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "host_remote",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Remote Data containing the remote folder from the outputs of the host calculation"
                },
                {
                  "name": "imp_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Information of the impurity like position in the unit cell, screening cluster, atom type."
                },
                {
                  "name": "imp_potential_node",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Impurity potential node"
                },
                {
                  "name": "kkrimp",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRimp code, always needed."
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nInitial non-collinear angles for the magnetic moments of the impurities. These values will be written into the `kkrflex_angle` input file of KKRimp.\nThe Dict node should be of the form\n    initial_noco_angles = Dict({\n        'theta': [theta_at1, theta_at2, ..., theta_atN], # list theta values in degrees (0..180)\n        'phi': [phi_at1, phi_at2, ..., phi_atN],         # list phi values in degrees (0..360)\n        'fix_dir': [True, False, ..., True/False],       # list of booleans indicating of the direction of the magentic moment should be fixed or is allowed to be updated (True means keep the direction of the magnetic moment fixed)\n    })\n\nNote: The length of the theta, phi and fix_dir lists have to be equal to the number of atoms in the impurity cluster.\n"
                },
                {
                  "name": "kkr",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "KKRhost code, needed if gf_dos_remote is not given."
                },
                {
                  "name": "kkrflex_files",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "with this input we can directly load the gf_dos files without calculating them"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options (resources, quene name, etc.)."
                },
                {
                  "name": "rimpshift",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nShift for atoms in the impurity cluster used in U-transformation.\n\nThe Dict node should be of the form\n    rimpshift = Dict({'shifts': [[0., 0., 0.], ... ]})\nwhere the shifts are given in atomic units (i.e. the internal KKR units).\n\nNote: The length of the 'shifts' attribute should be an array with three numbers indicating the shift for each atom in the impurity cluster.\n"
                },
                {
                  "name": "tip_position",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "How many sites will be scanned in the da and db direction (Bravais Lattice). And the layer that is being scanned."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Workflow parameter (see `kkr_dos_wc.get_wf_defaults()`)."
                }
              ],
              "outputs": [
                {
                  "name": "STM_dos_data",
                  "required": true,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "STM_dos_data_lmdos",
                  "required": true,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "combined_imp_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "combined_imp_potential",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "kkrflexfiles",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "tip_position",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The position provided for the STM probe are incorrect"
                },
                {
                  "status": 101,
                  "message": "The node provided for the impurity info is not valid"
                },
                {
                  "status": 102,
                  "message": "No impurity node has been given in the intput"
                },
                {
                  "status": 103,
                  "message": "No impurity info has been given in the input"
                },
                {
                  "status": 104,
                  "message": "Neither the kkrflex files nor the KKR builder have been given.\nPlease provide already converged kkrflex files, or the kkr builder to evaluate them"
                },
                {
                  "status": 201,
                  "message": "A step in the kkr_imp_dos workflow has failed"
                }
              ]
            },
            "class": "aiida_kkr.workflows.kkr_STM:kkr_STM_wc"
          },
          "kkr.bs": {
            "description": [
              "Workchain for BandStructure calculation, starting from RemoteFolderData of the previous converged KKR calculation remote folder data",
              "",
              "    inputs:",
              "    :param wf_parameters: (Dict), (optional); Workchain Specifications, contains nepts, tempr, emin (in eV relative to EF), emax (in eV),",
              "                          and RCLUSTZ (can be used to increase the screening cluster radius) keys.",
              "",
              "    :param options: (Dict), (optional); Computer Specifications, scheduler command, parallel or serial",
              "    :param kpoints: (KpointsData),(optional); Kpoints data type from the structure,",
              "                                   but not mendatory as it can be extracted from structure internaly from the remote data",
              "    :param remote_data: (RemoteData)(mendaory); From the previous kkr-converged calculation.",
              "    :param kkr: (Code)(mendaory); KKR code specifiaction",
              "    :param label: (Str) (optional) ; label for WC but will be found in the 'result_wf' output",
              "                                     Dict as 'BS_wf_label' key",
              "    :param description: (Str) (optional) : description for WC but will be found in the 'result_wf' output",
              "                                     Dict as 'BS_wf_description' key",
              "",
              "",
              "    returns:",
              "    :out BS_Data : (ArrayData) ; Consist of BlochSpectralFunction, k_points (list), energy_points (list), special_kpoints(dict)",
              "    :out result_wf: (Dict); work_chain_specifications node, BS_data node, remote_folder node"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkr",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRhost code, needed to run the qdos KkrCalculation"
                },
                {
                  "name": "remote_data",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Parent folder of previously converged KkrCalculation"
                },
                {
                  "name": "description",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "description for the workflow"
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Initial non-collinear angles for the magnetic moments. See KkrCalculation for details.\n            If this is found in the input potentially extracted nonco angles from the parent calulation are overwritten!"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "K-points data for the calculation. If not given the seekpath library is used to find the irreducable k-points of a structure."
                },
                {
                  "name": "label",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "label for the workflow"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options (walltime etc.) passed onto KkrCalculation"
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Overwrite some input parameters of the parent KKR calculation."
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nSettings for running a LDA+U calculation. The Dict node should be of the form\n    settings_LDAU = Dict(dict={'iatom=0':{\n        'L': 3,         # l-block which gets U correction (1: p, 2: d, 3: f-electrons)\n        'U': 7.,        # U value in eV\n        'J': 0.75,      # J value in eV\n        'Eref_EF': 0.,  # reference energy in eV relative to the Fermi energy. This is the energy where the projector wavefunctions are calculated (should be close in energy where the states that are shifted lie (e.g. for Eu use the Fermi energy))\n    }})\n    Note: you can add multiple entries like the one for iatom==0 in this example. The atom index refers to the corresponding atom in the impurity cluster.\n"
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Parameters of the bandstructure workflow (see output of kkr_bs_wc.get_wf_default() for more details)."
                }
              ],
              "outputs": [
                {
                  "name": "BS_Data",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "results_wf",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 161,
                  "message": "No remote_data was provided as Input"
                },
                {
                  "status": 162,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 163,
                  "message": "calc_parameters given are not consistent! Hint: did you give an unknown keyword?"
                },
                {
                  "status": 164,
                  "message": "calc_parameters not complete"
                },
                {
                  "status": 165,
                  "message": "KKR Band Structure calculation failed"
                },
                {
                  "status": 166,
                  "message": "No K-POINTS can be extracted from the structure data"
                },
                {
                  "status": 167,
                  "message": "No K-POINTS can be extracted from the primtive structure data rather conventional structure data"
                },
                {
                  "status": 168,
                  "message": "Input remote_data node neither output of a KKR/voronoi calculation nor of kkr_scf_wc workflow"
                }
              ]
            },
            "class": "aiida_kkr.workflows.bs:kkr_bs_wc"
          },
          "kkr.combine_imp": {
            "description": [
              "Workchain that combines 2 converged single-impurity calculations to a bigger impurity,",
              "    reusing the preconverged potentials. This is useful, for example, to study co-doping.",
              "",
              "   Inputs:",
              "    :param impurity1_output_node:(Dict), required, output node from singel impurity wc, and should be one of the",
              "                                 following:",
              "                                 * for `kkr_imp_wc`: single_imp_worlfow.outputs.workflow_info",
              "                                 * for `kkr_imp_sub_wc`: single_imp_worlfow.outputs.workflow_info",
              "                                 * for `KkrimpCalculation`: single_imp_worlfow.outputs.output_parameters",
              "",
              "    :param impurity2_output_node:(Dict), required, output node from second singel impurity wc, and should be one of",
              "                                 the following:",
              "                                 * for `kkr_imp_wc`: single_imp_worlfow.outputs.workflow_info",
              "                                 * for `kkr_imp_sub_wc`: single_imp_worlfow.outputs.workflow_info",
              "                                 * for `KkrimpCalculation`: single_imp_worlfow.outputs.output_parameters",
              "    :offset_imp2:(Dict), required, offset of the second impurity with respect to the first impurity position.",
              "                 e.g. {'index:0 or 1}, the replacement by the second impurity will take place at the same cell",
              "                        or at the next nearest cell respectively.",
              "",
              "    :param scf.kkrimp: (Code), mandatory, KKRimp code needed to submit kkr_imp_wc",
              "    :param scf.wf_parameters: (Dict), optional, KKRimp code needed to submit kkr_imp_sub_wc",
              "    :param scf.options: (Dict), optional, computer options for kkr_imp_sub_wc",
              "",
              "    :param host_gf.kkr: (Code), optional, KKR code for submit kkr_flex_wc, needed if remote_data_gf is not given",
              "    :param host_gf.options: (Dict), optional, computer options for kkr_flex_wc",
              "    :param host_gf.params_kkr_overwrite: (Dict), optional, needed for kkr calculation for GF writeout",
              "",
              "    :param wf_parameters_overwrite: (Dict), optional, specifications for wf_parameters of kkr_imp_sub_wc as well",
              "                                  as well as wf_parameters of kkr_flex_wc.",
              "    :param gf_host_remote: (RemoteData), optional, remote folder of a previous kkrflex writeout step",
              "                          calculations containing the flexfiles and will be used for combine host GF.",
              "",
              "   Returns:",
              "    :return workflow_info: (Dict), Information of workflow results",
              "    :return last_calc_output_parameters: (Dict), link to output parameters of the last called calculation of the",
              "                                        scf kkr_imp_sub_wc.",
              "    :return last_potential: (SingleFileData) link to last output potential of scf kkr_imp_sub_wc step.",
              "    :return last_calc_remote: (RemoteData) link to remote data of last called calculation of the scf step.",
              "    :return remote_data_gf: (RemoteData) link to GF_host_remote of outputs of kkr_flex_wc e.g. gf_writeou",
              "                           step (only present of host GF was generated here).",
              "    :return JijData: (ArrayData) Consists magnetic interaction data among the magnetic impurity atoms,",
              "                    such as vector distance(rx, ry, rz) between atoms, spin interaction magnetude J,",
              "                    Dzyaloshinskii-Moriya vector magnitude, and Dzyaloshinskii-Moriya vector component(Dx, Dy, Dz)",
              "    :return JijInfo :(Dict) Consists description about the JijData."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "impurity1_output_node",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "\nOutput node of a single impurity calculation. This can be the output of either the `kkr_imp_wc`, `kkr_imp_sub_wc`\nworkflows or of an `KkrimpCalculation`.\n\nUse these output Dict nodes:\n  * for `kkr_imp_wc`: single_imp_workfow.outputs.workflow_info\n  * for `kkr_imp_sub_wc`: single_imp_workfow.outputs.workflow_info\n  * for `KkrimpCalculation`: single_imp_workfow.outputs.output_parameters\n"
                },
                {
                  "name": "impurity2_output_node",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Output node of second single impurity calculation. See help string of `impurity1_output_node` for more details."
                },
                {
                  "name": "offset_imp2",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Offset of the secon impurity with respect to the first impurity.\nCan be given either via the 'vector' or the 'index' keys in the dictionary.\nThe 'vector' option allows to give the offset vector in cartesian units and\nthe 'index' option allows to five the offset vector in units of the lattice\nvectors of the host system's structure."
                },
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "gf_host_remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of pre-calculated host Green function (i.e. with kkr_flex_wc).\nIf given then the writeout step of the host GF is omitted."
                },
                {
                  "name": "host_gf",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "wf_parameters_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "To add or edit wf_parameters in scf namespace and add run optioins, if needed"
                }
              ],
              "outputs": [
                {
                  "name": "last_calc_output_parameters",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "last_calc_remote",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "last_potential",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "workflow_info",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "JijData",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "JijInfo",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "remote_data_gf",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 700,
                  "message": "The writeout of the host GF failed"
                },
                {
                  "status": 800,
                  "message": "Impurity input is not a single impurity calculation."
                },
                {
                  "status": 850,
                  "message": "i_neighbor_inplane needs to be positive and bigger than 0 for in-plane neighbors"
                },
                {
                  "status": 900,
                  "message": "Host structures of impurity 1 and impurity 2 are not identical!"
                },
                {
                  "status": 950,
                  "message": "The impurity calculations have different NSPIN values"
                },
                {
                  "status": 999,
                  "message": "ERROR: take a look"
                }
              ]
            },
            "class": "aiida_kkr.workflows._combine_imps:combine_imps_wc"
          },
          "kkr.decimation": {
            "description": [
              "Workchain a decimation calculation with KKR starting from a thick slab (center potential should be bulk-like).",
              "",
              "    The workchain",
              "     - creates the structure nodes of the substrate and decimation region from thick slab structure",
              "     - creates starting potentials of the slab structure",
              "     - runs auxiliary voronoi steps to get starting setup correctly for the KKR calculations",
              "     - runs the deci-out step in serial",
              "     - runs the decimation step",
              "",
              "     The workflow starts either from a converged thick film of from a previous decimation calculation (skips the structure and starting potential setup and the voronoi steps).",
              "",
              "     The workflow parameters input can be:",
              "          {'nkz' : 30,   # number of k-points in z-direction for substrate",
              "           'nprinc': 4,  # number of layer in principle layer",
              "           'nplayer': 4, # number of principle layers (naez deci: nprinc*nplayer)",
              "           'dosmode': False, # run DOS calculation",
              "           'dos_params': {'emin_EF': -5.0, # EMIN-EF in eV",
              "                          'emax_EF':  3.0, # EMAX-EF in eV",
              "                          'nepts': 96,     # number of points in contour",
              "                          'tempr': 100,    # smearing temperature",
              "                          'kmesh': [50, 50, 50]}, # k-mesh used in dos calculation",
              "           }",
              "",
              "    :param wf_parameters: Dict node with workchain parameters (see kkr_decimation_wc.get_wf_defaults())",
              "    :param options: Dict node with specifications for the computer (used in decimation step only)",
              "    :param remote_data: mandatory RemoteData node of either a parent slab or previous decimation calculation",
              "    :param kkr: mandatory Code node with KKR code for running deci-out and decimation steps",
              "    :param voronoi: Code node that is mandatory if starting from slab calculation. Is the voronoi code for auxiliary calculations",
              "    :param kpoints: KpointsData node that triggers a band structure calculation. The kpoints specify the k-point path along which the bandstructure is computed with the qdos mode of KKRhost.",
              "    :param calc_parameters: Dict node that contains KKR parameters which overwrites settings from the slab parent.",
              "",
              "    :returns structure_decimate: StructureData node of the structure of the decimation region.",
              "    :returns structure_substrate: StructureData node of the structure of thesubstrate lattice continuation.",
              "    :returns out_params_calc_deci_out: Dict node of the output parameters of the deci-out calculation.",
              "    :returns out_params_calc_decimate: Dict node of the output parameters of the decimation calculation.",
              "    :returns out_remote_calc_decimate: RemoteData node of the decimation calculation.",
              "    :returns out_retrieved_calc_decimate: retrieved FolderData node of the decimation calculation.",
              "    :returns dos_data: XyData node with the DOS data at finite imaginary part in the energy contour. Only present in DOS mode.",
              "    :returns dos_data_interpol: XyData node with the interpolated DOS data onto the real axis. Only present in DOS mode."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkr",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRhost code."
                },
                {
                  "name": "remote_data",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Parent calculation (either previous decimation calculation, then voronoi steps are skipped or slab calculation)."
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "If given overwrites KKR parameters starting from slab params (can be used to run DOS for instance)."
                },
                {
                  "name": "calc_parameters_decimate",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Overwrite calculation parameters in the decimation step"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "If given this triggers a bandstructure (i.e. qdos) calculation."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options used in the deicmation step (voronoi and deci-out steps run serially but use the walltime given here)."
                },
                {
                  "name": "options_deci_out",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options used in the deci-out step (createion of decifile, if not provided, this step will run in serial)."
                },
                {
                  "name": "shapefun_deci_overwrite",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Use a node that specifies the shapefun which is used instead of the voronoi output for the decimation step"
                },
                {
                  "name": "shapefun_substrate_overwrite",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Use a node that specifies the shapefun which is used instead of the voronoi output for the deci-out step"
                },
                {
                  "name": "voronoi",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "Voronoi code. Only needed if remote_data is slab claculation and not a previous decimation run."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "parameters for decimation setup (used only if not started from previous decimation calculation)."
                }
              ],
              "outputs": [
                {
                  "name": "out_params_calc_deci_out",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Output parameter node of deci-out calculation."
                },
                {
                  "name": "out_params_calc_decimate",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Output parameter node of decimation calculation."
                },
                {
                  "name": "out_remote_calc_decimate",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Remote folder of decimation calculation."
                },
                {
                  "name": "out_retrieved_calc_decimate",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Retrieved folder of decimation calculation."
                },
                {
                  "name": "structure_decimate",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure of decimation region."
                },
                {
                  "name": "structure_substrate",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure of substrate lattice continuation."
                },
                {
                  "name": "dos_data",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "DOS data with finite imaginary part in the energy contour."
                },
                {
                  "name": "dos_data_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "interpolated DOS data onto the real axis."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "Given remote_data is not correct (needs to be a slab or decimation KKR calculation)"
                },
                {
                  "status": 301,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 302,
                  "message": "The code you provided for voronoi does not use the plugin kkr.voro"
                },
                {
                  "status": 303,
                  "message": "The voronoi step for the starting potential of the substrate failed."
                },
                {
                  "status": 304,
                  "message": "The voronoi step for the starting potential of the decimation region failed."
                },
                {
                  "status": 305,
                  "message": "The deci-out step (writeout of continuation GF) failed."
                }
              ]
            },
            "class": "aiida_kkr.workflows._decimation:kkr_decimation_wc"
          },
          "kkr.dos": {
            "description": [
              "Workchain a DOS calculation with KKR starting from the remoteData node",
              "    of a previous calculation (either Voronoi or KKR).",
              "",
              "    :param wf_parameters: (Dict); Workchain specifications",
              "    :param options: (Dict); specifications for the computer",
              "    :param remote_data: (RemoteData), mandatory; from a KKR or Vornoi calculation",
              "    :param kkr: (Code), mandatory; KKR code running the dos calculation",
              "",
              "    :return result_kkr_dos_wc: (Dict), Information of workflow results",
              "        like Success, last result node, list with convergence behavior"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkr",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRhost Code node used to run the DOS calculation."
                },
                {
                  "name": "remote_data",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "RemoteData node of the parent calculation."
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Initial non-collinear angles for the magnetic moments. See KkrCalculation for details.\n            If this is found in the input potentially extracted nonco angles from the parent calulation are overwritten!"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options used by the workflow."
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Overwrite some input parameters of the parent KKR calculation."
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nSettings for running a LDA+U calculation. The Dict node should be of the form\n    settings_LDAU = Dict(dict={'iatom=0':{\n        'L': 3,         # l-block which gets U correction (1: p, 2: d, 3: f-electrons)\n        'U': 7.,        # U value in eV\n        'J': 0.75,      # J value in eV\n        'Eref_EF': 0.,  # reference energy in eV relative to the Fermi energy. This is the energy where the projector wavefunctions are calculated (should be close in energy where the states that are shifted lie (e.g. for Eu use the Fermi energy))\n    }})\n    Note: you can add multiple entries like the one for iatom==0 in this example. The atom index refers to the corresponding atom in the impurity cluster.\n"
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Workflow parameter (see `kkr_dos_wc.get_wf_defaults()`)."
                }
              ],
              "outputs": [
                {
                  "name": "results_wf",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Results collected by the workflow."
                },
                {
                  "name": "dos_data",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "XyData node of the parsed DOS output."
                },
                {
                  "name": "dos_data_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "XyData node of the parsed DOS output, interpolated onto the real axis."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 161,
                  "message": "No remote_data was provided as Input"
                },
                {
                  "status": 162,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 163,
                  "message": "calc_parameters given are not consistent! Hint: did you give an unknown keyword?"
                },
                {
                  "status": 164,
                  "message": "calc_parameters not complete"
                },
                {
                  "status": 165,
                  "message": "dos_params given in wf_params are not valid"
                },
                {
                  "status": 166,
                  "message": "KKR dos calculation failed"
                }
              ]
            },
            "class": "aiida_kkr.workflows.dos:kkr_dos_wc"
          },
          "kkr.eos": {
            "description": [
              "Workchain of an equation of states calculation with KKR.",
              "",
              "    Layout of the workflow:",
              "      1. determine V0, scale_range, etc. from input",
              "      2. run voro_start for V0 and smallest volume",
              "          2.1 get minimum for RMTCORE (needs to be fixed for all calculations to be able to compare total energies",
              "      3. submit kkr_scf calculations for all volumes using RMTCORE setting determined in step 2",
              "      4. collect results"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkr",
                  "required": true,
                  "valid_types": "Code",
                  "info": "\n            Code entry for the KKRhost calculations.\n            "
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "\n            Initial structure for which the EOS will be calculated.\n            "
                },
                {
                  "name": "voronoi",
                  "required": true,
                  "valid_types": "Code",
                  "info": "\n            Code entry for the Voronoi calculations.\n            "
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            KKR input parameters. Everything (except structural factors) which\n            would normally be written in the inputcard.\n            "
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            Workfunction specific parameters, controlling the behavior of the\n            EOS workchain.\n            "
                }
              ],
              "outputs": [
                {
                  "name": "eos_results",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "explicit_kpoints",
                  "required": false,
                  "valid_types": "KpointsData",
                  "info": ""
                },
                {
                  "name": "get_explicit_kpoints_path_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "gs_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 221,
                  "message": "ERROR: inputs invalid"
                },
                {
                  "status": 222,
                  "message": "ERROR: need at least 3 successful calculations"
                },
                {
                  "status": 223,
                  "message": "ERROR: nsteps is smaller than 3, need at least three data points to do fitting"
                },
                {
                  "status": 224,
                  "message": "given fitfunction name not valid"
                },
                {
                  "status": 225,
                  "message": "ERROR: kkr_startpot was not successful. Check you inputs."
                }
              ]
            },
            "class": "aiida_kkr.workflows.eos:kkr_eos_wc"
          },
          "kkr.gf_writeout": {
            "description": [
              "Workchain of a kkr_flex calculation to calculate the Green function with",
              "    KKR starting from the RemoteData node of a previous calculation (either Voronoi or KKR).",
              "",
              "    :param options: (Dict), Workchain specifications",
              "    :param wf_parameters: (Dict), Workflow parameters that deviate from previous KKR RemoteData",
              "    :param remote_data: (RemoteData), mandatory; from a converged KKR calculation",
              "    :param kkr: (Code), mandatory; KKR code running the flexfile writeout",
              "    :param impurity_info: Dict, mandatory: node specifying information",
              "                          of the impurities in the system",
              "",
              "    :return workflow_info: (Dict), Information of workflow results",
              "                            like success, last result node, list with convergence behavior",
              "    :return GF_host_remote: (RemoteData), host GF of the system"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "impurity_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_data",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "kkr",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Set some input parameters of the KKR calculation."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "GF_host_remote",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "workflow_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 101,
                  "message": "ERROR: the 'impurity_info' input Dict node could not be used"
                },
                {
                  "status": 102,
                  "message": "ERROR: the code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 103,
                  "message": "ERROR: No remote_data was provided as Input"
                },
                {
                  "status": 104,
                  "message": "ERROR: calc_parameters given are not consistent! Hint: did you give an unknown keyword?"
                },
                {
                  "status": 105,
                  "message": "ERROR: calc_parameters misses keys"
                },
                {
                  "status": 106,
                  "message": "ERROR: KKR calculation to write out kkrflex files unsuccessful"
                },
                {
                  "status": 107,
                  "message": "ERROR: Could not extract value for Fermi level from parent calculation"
                }
              ]
            },
            "class": "aiida_kkr.workflows.gf_writeout:kkr_flex_wc"
          },
          "kkr.imp": {
            "description": [
              "Workchain of a kkrimp calculation starting either from scratch (with a structure",
              "    and impurity_info node), or with a converged host potential and impurity",
              "    startpotentials, ... to calculate the converged host-impurity potential of the system.",
              "",
              "    :param options: (Dict), Workchain specifications",
              "    :param wf_parameters: (Dict), specifications for the kkr impurity workflow",
              "    :param voro_aux_parameters: (Dict), specification for the auxiliary voronoi calculation for the impurity",
              "    :param kkrimp: (Code), mandatory: KKRimp code converging the host-imp-potential",
              "    :param kkr: (Code), mandatory: KKR code for calculation the host potential",
              "    :param voronoi: (Code), mandatory: Voronoi code to generate the impurity startpot",
              "    :param remote_data_gf: (RemoteData): remote folder of a previous kkrflex",
              "                                         calculation containing the flexfiles ...",
              "    :param remote_data_host: (RemoteData): remote folder of a converged KKR",
              "                                           host calculation",
              "",
              "    :return workflow_info: (Dict), Information of workflow results",
              "    :return last_calc_output_parameters: (Dict), output parameters of",
              "                                         the last called calculation",
              "    :return last_calc_info: (Dict), information of the last called calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "gf_writeout",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "impurity_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Information of the impurity like position in the unit cell, screening cluster, atom type."
                },
                {
                  "name": "kkrimp",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRimp code used to converge the impurity calculation"
                },
                {
                  "name": "scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "voronoi",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Voronoi code used to create the impurity starting potential."
                },
                {
                  "name": "kkr",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "KKRhost code used to run GF writeout step."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Options for running the codes (walltime etc.)."
                },
                {
                  "name": "options_voronoi",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Options for running the Voronoi code (if differing from general `options` node)"
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Set some input parameters of the KKR calculation for the GF writeout step."
                },
                {
                  "name": "remote_data_gf",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of precomputed host Green function."
                },
                {
                  "name": "remote_data_gf_Efshift",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of precomputed host Green function with Fermi level shift (overwrite kkrflex_green and tmat files from first remote_data_gf node."
                },
                {
                  "name": "remote_data_host",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of the converged host calculation. Used to write out the host Green function."
                },
                {
                  "name": "startpot",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Set starting potential (e.g. from preconverged calculation"
                },
                {
                  "name": "voro_aux_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Parameters for the auxiliary voronoi starting potential workflow."
                },
                {
                  "name": "voro_params_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "If given, overwrite the some parameters used as input for auxiliary voronoi calculation of starting potential."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Parameters for the KKRimp selfconsistency workflow."
                }
              ],
              "outputs": [
                {
                  "name": "last_calc_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_calc_output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_data_gf",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "workflow_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "converged_potential",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 141,
                  "message": "ERROR: one or more of the codes you provided do not use the necessary plugins: kkr.voro, kkr.kkr, kkr.kkrimp"
                },
                {
                  "status": 142,
                  "message": "ERROR: since GF writeout step has to be conducted, 'kkrcode' is needed as an input"
                },
                {
                  "status": 143,
                  "message": "ERROR: neither converged host remote nor GF writeout remote is given as an input. One of them is needed to proceed with this workflow!"
                },
                {
                  "status": 144,
                  "message": "ERROR: sub-workflow for KKRimp convergence failed"
                },
                {
                  "status": 145,
                  "message": "ERROR: sub-workflow Kkr_startpot failed (look for failure of voronoi calculation)."
                }
              ]
            },
            "class": "aiida_kkr.workflows.kkr_imp:kkr_imp_wc"
          },
          "kkr.imp_BdG": {
            "description": [
              "Workchain for one-shot BdG impurity DOS calculation from a converged normal state host calculation.",
              "    1) Normal state impurity potential scf",
              "    2) One-shot BdG DOS calcluation",
              "        a) Writing out of the BdG kkrflex DOS files",
              "        b) One-shot BdG impurity DOS",
              "    The intermediate steps (1 & 2a) can be skipped by providing the corresponding nodes as inputs to the workflow.",
              "",
              "    inputs::",
              "        :param options: (Dict), computer options",
              "        :param impurity_info: (Dict), information about the impurity cluster",
              "        :param voronoi: (Code), Voronoi code for creating the impurity starting potential",
              "        :param kkr: (Code), KKR host code for the writing out kkrflex files",
              "        :param kkrimp: (Code), KKR impurity code for the normal state impurity scf and BdG impurity DOS calculation",
              "        :param BdG_settings: (Dict), set BdG parameters",
              "        :param imp_scf.startpot: (SinglefileData), pre-converged impurity potential used to start the impurity scf calculation",
              "        :param imp_scf.converged_potential: (SinglefileData), converged impurity potential, skips the impurity scf calculation if provided",
              "        :param imp_scf.wf_parameters: (Dict), parameters for the kkr impurity scf",
              "        :param imp_scf.gf_writeout.params_kkr_overwrite: (Dict), set some input parameters of the KKR calculation for the GF writeout step of impurity scf workchain",
              "        :param imp_scf.gf_writeout.options: (Dict), computer settings",
              "        :param imp_scf.scf.params_overwrite: (Dict), set some input parameters of the KKR impurity scf",
              "        :param imp_scf.options: (Dict), computer settings",
              "        :param imp_scf.remote_data_host: (RemoteData), parent folder of converged host normal state KkrCalculation",
              "",
              "        :param dos.wf_parameters: (Dict), parameters for the DOS calculation",
              "        :param dos.gf_dos_remote: (RemoteData), node of precomputed host GF for DOS energy contour",
              "        :param dos.gf_writeout.params_kkr_overwrite: (Dict), set some input parameters of the KKR calculation for the GF writeout step of im\u00dfpurity dos workchain",
              "        :param dos.gf_writeout.host_remote: (RemoteData), parent folder of kkrflex writeout step for DOS calculation",
              "        :param dos.gf_writeout.kkr: (Code), KKR code for writing out of kkrflex files for impurity DOS calculation",
              "        :param dos.gf_writeout.options: (Dict), computer settings",
              "        :param dos.options: (Dict), computer settings",
              "",
              "    returns::",
              "        :return workflow_info: (Dict), Information on workflow results",
              "        :return output_parameters: (Dict), output parameters of the workflow",
              "        :return dos_data: (XyData), impurity DOS data output node",
              "        :return dos_data_interpol: (XyData), interpolated DOS data output node",
              "        :return impurity_potential: (SinglefileData), converged normal state impurity potential node",
              "        :return gf_host_BdG: (RemoteData), kkrflex writeout step files of DOS calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "BdG_scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "dos",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "imp_scf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "kkrimp",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRimp code used to converge the impurity calculation"
                },
                {
                  "name": "BdG_settings",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Define BdG parameters"
                },
                {
                  "name": "calc_DOS",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Set this to TRUE to calculate DOS"
                },
                {
                  "name": "impurity_info",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Information of the impurity like position in the unit cell, screening cluster, atom type."
                },
                {
                  "name": "kkr",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "KKRhost code, needed to run the KkrCalculation"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options (walltime etc.) passed onto KkrCalculation, fall back to settings from parent calculation if not given"
                },
                {
                  "name": "voronoi",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "Voronoi code used to create the impurity starting potential."
                }
              ],
              "outputs": [
                {
                  "name": "impurity_potential",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "dos_data",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "dos_data_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "dos_data_lm",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "dos_data_lm_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "gf_host_BdG",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "workflow_info",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 101,
                  "message": "The code you provided for kkrimp does not use the plugin kkr.kkrimp"
                },
                {
                  "status": 102,
                  "message": "The code you provided for voronoi does not use the plugin kkr.voronoi"
                },
                {
                  "status": 200,
                  "message": "Parent calculation is not valid"
                }
              ]
            },
            "class": "aiida_kkr.workflows.imp_BdG:kkrimp_BdG_wc"
          },
          "kkr.imp_dos": {
            "description": [
              "Workchain of a DOS calculation for an impurity system starting from a",
              "    converged impurity calculation or workflow",
              "",
              "    :param options: (Dict), computer options",
              "    :param wf_parameters: (Dict), specifications for the DOS",
              "    :param kkr: (Code), mandatory: KKR code for gf_writeout step",
              "    :param kkrimp: (Code), mandatory: KKRimp code for DOS calculation",
              "    :param imp_host_pot: (SinglefileData), mandatory: impurity startpotential",
              "",
              "    :return workflow_info: (Dict), Information on workflow results",
              "    :return last_calc_output_parameters: (Dict), output parameters of",
              "                                         the last called calculation",
              "    :return last_calc_info: (Dict), information of the last called calculation"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "BdG",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "gf_writeout",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "kkrimp",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRimp code, always needed."
                },
                {
                  "name": "gf_dos_remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of precomputed host GF for DOS energy contour."
                },
                {
                  "name": "host_remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of the (converged) host calculation."
                },
                {
                  "name": "imp_pot_sfd",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "impurity potential single file data. Needs also impurity_info node."
                },
                {
                  "name": "impurity_info",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "impurity info node that specifies the relation between imp_pot_sfd to the host system. Mandatory if imp_pot_sfd is given."
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nInitial non-collinear angles for the magnetic moments of the impurities. These values will be written into the `kkrflex_angle` input file of KKRimp.\nThe Dict node should be of the form\n    initial_noco_angles = Dict({\n        'theta': [theta_at1, theta_at2, ..., theta_atN], # list theta values in degrees (0..180)\n        'phi': [phi_at1, phi_at2, ..., phi_atN],         # list phi values in degrees (0..360)\n        'fix_dir': [True, False, ..., True/False],       # list of booleans indicating of the direction of the magentic moment should be fixed or is allowed to be updated (True means keep the direction of the magnetic moment fixed)\n    })\n\nNote: The length of the theta, phi and fix_dir lists have to be equal to the number of atoms in the impurity cluster.\n"
                },
                {
                  "name": "kkr",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "KKRhost code, needed if gf_dos_remote is not given."
                },
                {
                  "name": "kkrimp_remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "RemoteData node of previous (converged) KKRimp calculation."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options (resources, quene name, etc.)."
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Set some input parameters of the KKR calculation."
                },
                {
                  "name": "rimpshift",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nShift for atoms in the impurity cluster used in U-transformation.\n\nThe Dict node should be of the form\n    rimpshift = Dict({'shifts': [[0., 0., 0.], ... ]})\nwhere the shifts are given in atomic units (i.e. the internal KKR units).\n\nNote: The length of the 'shifts' attribute should be an array with three numbers indicating the shift for each atom in the impurity cluster.\n"
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Settings for LDA+U run (see KkrimpCalculation for details)."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "DOS workflow parameters (energy range, etc.)."
                }
              ],
              "outputs": [
                {
                  "name": "dos_data",
                  "required": true,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "last_calc_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_calc_output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "workflow_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "dos_data_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "dos_data_interpol_lm",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "dos_data_lm",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "gf_dos_remote",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": "RemoteData node of the computed host GF."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 220,
                  "message": "Unknown problem detected."
                },
                {
                  "status": 221,
                  "message": "Unable to find the parent remote_data node that led to the input impurity calculation. You need to specify `host_remote` and `impurity_info` nodes."
                },
                {
                  "status": 222,
                  "message": "The gf_writeout workflow was not succesful, cannot continue."
                },
                {
                  "status": 223,
                  "message": "The input nodes `imp_pot_sfd` and `kkrimp_remote` are given but are mutually exclusive"
                },
                {
                  "status": 224,
                  "message": "KKRhost code node (`inputs.kkr`) is missing if gf_dos_remote is not given."
                },
                {
                  "status": 225,
                  "message": "`host_remote` node is missing if gf_dos_remote is not given."
                },
                {
                  "status": 226,
                  "message": "KKRimp sub-workflow failed."
                }
              ]
            },
            "class": "aiida_kkr.workflows.kkr_imp_dos:kkr_imp_dos_wc"
          },
          "kkr.imp_sub": {
            "description": [
              "Workchain of a kkrimp self consistency calculation starting from the",
              "    host-impurity potential of the system. (Not the entire kkr_imp workflow!)",
              "",
              "    :param options: (Dict), Workchain specifications",
              "    :param wf_parameters: (Dict), specifications for the calculation",
              "    :param host_imp_startpot: (RemoteData), mandatory; input host-impurity potential",
              "    :param kkrimp: (Code), mandatory; KKRimp code converging the host-imp-potential",
              "    :param remote_data: (RemoteData), mandatory; remote folder of a previous",
              "                           kkrflex calculation containing the flexfiles ...",
              "    :param kkrimp_remote: (RemoteData), remote folder of a previous kkrimp calculation",
              "    :param impurity_info: (Dict), Parameter node with information",
              "                          about the impurity cluster",
              "",
              "    :return workflow_info: (Dict), Information of workflow results",
              "                                   like success, last result node, list with",
              "                                   convergence behavior",
              "    :return host_imp_pot: (SinglefileData), output potential of the sytem"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkrimp",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "host_imp_startpot",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": ""
                },
                {
                  "name": "impurity_info",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nInitial non-collinear angles for the magnetic moments of the impurities. These values will be written into the `kkrflex_angle` input file of KKRimp.\nThe Dict node should be of the form\n    initial_noco_angles = Dict({\n        'theta': [theta_at1, theta_at2, ..., theta_atN], # list theta values in degrees (0..180)\n        'phi': [phi_at1, phi_at2, ..., phi_atN],         # list phi values in degrees (0..360)\n        'fix_dir': [True, False, ..., True/False],       # list of booleans indicating of the direction of the magentic moment should be fixed or is allowed to be updated (True means keep the direction of the magnetic moment fixed)\n    })\n\nNote: The length of the theta, phi and fix_dir lists have to be equal to the number of atoms in the impurity cluster.\n"
                },
                {
                  "name": "kkrimp_remote",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "params_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Dict of parameters that are given to the KKRimpCalculation. Overwrites automatically set values!"
                },
                {
                  "name": "remote_data",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "remote_data_Efshift",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": ""
                },
                {
                  "name": "rimpshift",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\nShift for atoms in the impurity cluster used in U-transformation.\n\nThe Dict node should be of the form\n    rimpshift = Dict({'shifts': [[0., 0., 0.], ... ]})\nwhere the shifts are given in atomic units (i.e. the internal KKR units).\n\nNote: The length of the 'shifts' attribute should be an array with three numbers indicating the shift for each atom in the impurity cluster.\n"
                },
                {
                  "name": "settings_LDAU",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "LDA+U settings. See KKRimpCalculation for details."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "workflow_info",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "host_imp_pot",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 121,
                  "message": "ERROR: Not both host-impurity potential and GF remote found in the inputs. Provide either both of them or a RemoteData from a previous kkrimp calculation."
                },
                {
                  "status": 122,
                  "message": "ERROR: The code you provided for KKRimp does not use the plugin kkr.kkrimp"
                },
                {
                  "status": 123,
                  "message": "ERROR: Unable to extract parent paremeter node of input remote folder"
                },
                {
                  "status": 124,
                  "message": "ERROR: No calculation parameters provided"
                },
                {
                  "status": 125,
                  "message": "ERROR: Last KKRcalc in SUBMISSIONFAILED state!\nstopping now"
                },
                {
                  "status": 126,
                  "message": "ERROR: Maximal number of KKR restarts reached. Exiting now!"
                },
                {
                  "status": 127,
                  "message": "ERROR: Last_remote could not be set to a previous succesful calculation"
                },
                {
                  "status": 128,
                  "message": "ERROR: There are still missing calculation parameters"
                },
                {
                  "status": 129,
                  "message": "ERROR: Parameters could not be updated"
                },
                {
                  "status": 130,
                  "message": "ERROR: Last calculation is not in finished state"
                },
                {
                  "status": 131,
                  "message": "The input `remote_data` node has no valid calculation parent."
                },
                {
                  "status": 132,
                  "message": "The parent calculation of the input `remote_data` node was not succesful."
                },
                {
                  "status": 133,
                  "message": "ERROR: Last calculation does not have an output potential."
                }
              ]
            },
            "class": "aiida_kkr.workflows.kkr_imp_sub:kkr_imp_sub_wc"
          },
          "kkr.jij": {
            "description": [
              "Workchain for calculation of exchange coupling constants Jij and Dij if parent calculation used the SOC solver.",
              "",
              "    inputs::",
              "",
              "        :param wf_parameters: optional Dict node of workchain specifications, contains settings like Jij radius cutoff,",
              "                              selection of sites for i and j and numerical cutoffs. None values in the accuracy sub-dict",
              "                              means that values from parent calculation are coptied.",
              "        :param remote_data: mandatory RemoteData node of parent (i.e. converged) KkrCalculation",
              "        :param kkr: optional Code for KKRhost executable (if not given the same as in the parent calculation is used)",
              "        :param options: optional Dict computer options like scheduler command or parallelization",
              "",
              "    returns::",
              "",
              "        :return jij_data: ArrayData with the arrays 'Jij_expanded' (Table of all Jij and Dij pairs) and 'positions_expanded' (positions of all ij pairs)",
              "        :return structure_jij_sites: StructureData"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkr",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRhost code, needed to run the Jij KkrCalculation"
                },
                {
                  "name": "remote_data",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Parent folder of previously converged KkrCalculation"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options (walltime etc.) passed onto KkrCalculation, fall back to settings from parent calculation if not given"
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Overwrite some input parameters of the parent KKR calculation."
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Parameters of the bandstructure workflow (see output of kkr_bs_wc.get_wf_default() for more details)."
                }
              ],
              "outputs": [
                {
                  "name": "jij_data",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "results_wf",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "structure_jij_sites",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 160,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 161,
                  "message": "Parent calculation is not valid"
                },
                {
                  "status": 162,
                  "message": "KKR Band Structure calculation failed"
                },
                {
                  "status": 163,
                  "message": "Parsing of Jij calculations failed"
                }
              ]
            },
            "class": "aiida_kkr.workflows.jijs:kkr_jij_wc"
          },
          "kkr.scf": {
            "description": [
              "Workchain for converging a KKR calculation (SCF).",
              "",
              "    It converges the charge potential.",
              "    Two paths are possible:",
              "",
              "    (1) Start from a structure and run a voronoi calculation first,",
              "    optional with calc_parameters",
              "    (2) Start from an existing Voronoi or KKR calculation, with a remoteData",
              "",
              "    :param wf_parameters: (Dict), Workchain Specifications",
              "    :param options: (Dict); specifications for the computer",
              "    :param structure: (StructureData), Crystal structure",
              "    :param calc_parameters: (Dict), Voronoi/Kkr Parameters",
              "    :param remote_data: (RemoteData), from a KKR, or Voronoi calculation",
              "    :param voronoi: (Code)",
              "    :param kkr: (Code)",
              "",
              "    :return output_kkr_scf_wc_para: (Dict), Information of workflow results",
              "        like Success, last result node, list with convergence behavior",
              "",
              "    minimum input example:",
              "    1. Code1, Code2, Structure, (Parameters), (wf_parameters)",
              "    2. Code2, remote_data, (Parameters), (wf_parameters)",
              "",
              "    maximum input example:",
              "    1. Code1, Code2, Structure, Parameters",
              "        wf_parameters: {'queue_name' : String,",
              "                        'resources' : dict({\"num_machines\": int, \"num_mpiprocs_per_machine\" : int})",
              "                        'walltime' : int}",
              "    2. Code2, (remote-data), wf_parameters as in 1.",
              "",
              "    Hints:",
              "    1. This workflow does not work with local codes!"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kkr",
                  "required": true,
                  "valid_types": "Code",
                  "info": "KKRhost code node which will run the KkrCalculations"
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            KKR-specific calculation parameters (LMAX etc.),\n            usually set up with the help of the `kkrparams` class.\n            "
                },
                {
                  "name": "initial_noco_angles",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            Initial non-collinear angles for the magnetic moments of the\n            impurities. See KkrCalculation for details.\n            "
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            Computer settings used by the calculations in the workflow\n            (see also help string of wf_parameters).\n            "
                },
                {
                  "name": "params_kkr_overwrite",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Set some input parameters of the KKR calculation."
                },
                {
                  "name": "remote_data",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "\n            RemoteFolder node of a preconverged calculation.\n            Can be used as a starting point to skip the Voronoi step.\n            "
                },
                {
                  "name": "startpot_overwrite",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "\n            Potential SinglefileData, can be used to overwrite\n            the starting potential from Voronoi\n            (the shapefun will be used though and thus needs to be compatible).\n            This can be used to construct a better starting potential from a\n            preconverged calculation (e.g. in a smaller unit cell).\n            "
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "\n            Input structure for which a calculation is started with a\n            VoronoiCalculation.\n            Can be skipped if a previous KkrCalculation is given with the\n            `remote_data` input node.\n            "
                },
                {
                  "name": "voronoi",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "\n            Voronoi code node, needed only if `structure` input node is given.\n            "
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            Settings for the workflow. Use `KkrCalculation.get_wf_defaults()`\n            to get the default values and default options.\n            "
                }
              ],
              "outputs": [
                {
                  "name": "output_kkr_scf_wc_ParameterResults",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "final_dosdata_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "last_InputParameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_RemoteData",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "last_calc_out",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_noco_angles",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "results_vorostart",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "starting_dosdata_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 221,
                  "message": "Unable to extract parent paremeter node of input remote folder"
                },
                {
                  "status": 222,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 223,
                  "message": "The code you provided for voronoi does not use the plugin kkr.voro"
                },
                {
                  "status": 224,
                  "message": "ERROR: StructureData was provided, but no voronoi code was provided"
                },
                {
                  "status": 225,
                  "message": "ERROR: No StructureData nor remote_data was provided as Input"
                },
                {
                  "status": 226,
                  "message": "ERROR: kkr_startpot_wc step failed!"
                },
                {
                  "status": 227,
                  "message": "DOS run unsuccessful. Check inputs."
                },
                {
                  "status": 228,
                  "message": "ERROR: calc_parameters given are not consistent! Missing mandatory keys"
                },
                {
                  "status": 229,
                  "message": "ERROR: calc_parameters given are not consistent! Hint: did you give an unknown keyword?"
                },
                {
                  "status": 230,
                  "message": "ERROR: calc_parameters not given as input but are needed!"
                },
                {
                  "status": 231,
                  "message": "ERROR: parameter update unsuccessful: some key, value pair not valid!"
                },
                {
                  "status": 232,
                  "message": "ERROR: calc_parameters misses keys"
                },
                {
                  "status": 233,
                  "message": "ERROR: last_remote could not be set to a previous successful calculation"
                },
                {
                  "status": 234,
                  "message": "ERROR: maximal number of KKR restarts reached. Exiting now!"
                },
                {
                  "status": 235,
                  "message": "ERROR: last KKRcalc in SUBMISSIONFAILED state"
                }
              ]
            },
            "class": "aiida_kkr.workflows.kkr_scf:kkr_scf_wc"
          },
          "kkr.startpot": {
            "description": [
              "Workchain  create starting potential for a KKR calculation by running",
              "    voronoi and getting the starting DOS for first checks on the validity of the input setting.",
              "    Starts from a structure together with a KKR parameter node.",
              "",
              "    :param wf_parameters: (Dict), Workchain specifications",
              "    :param options: (Dict), specifications for the computer",
              "    :param structure: (StructureData), aiida structure node to begin",
              "        calculation from (needs to contain vacancies, if KKR needs empty spheres)",
              "    :param kkr: (Code)",
              "    :param voronoi: (Code)",
              "    :param calc_parameters: (Dict), KKR parameter set, passed on to voronoi run.",
              "",
              "    :return result_kkr_startpot_wc: (Dict), Information of workflow results",
              "        like Success, last result node, dos array data"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "voronoi",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Voronoi code"
                },
                {
                  "name": "calc_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "\n            KKR-specific parameters passed onto the VoronoiCalculation (lmax etc.).\n            "
                },
                {
                  "name": "kkr",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "Kkr code, only needed only if DOS is calculated."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Computer options passed onto the calculations"
                },
                {
                  "name": "parent_KKR",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "\n            RemoteData node of a KKR calculation which is used to overwrite\n            the output potential Voronoi constructs\n            (typically used to increase lmax). Cannot be used with a different\n            structure in the input since the structure is extracted from the\n            parent_KKR.\n            "
                },
                {
                  "name": "startpot_overwrite",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "\n            Potential which can be used instead of the output potential\n            Voronoi constructs.\n            "
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "\n            Structure for which the starting potential should be constructed,\n            not needed if parent_KKR is given (typically used to increase the\n            lmax but use the output potential of the parent_KKR as starting\n            potential).\n            "
                },
                {
                  "name": "wf_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Parameters that control the behavior of the workflow"
                }
              ],
              "outputs": [
                {
                  "name": "results_vorostart_wc",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_doscal_dosdata",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "last_doscal_dosdata_interpol",
                  "required": false,
                  "valid_types": "XyData",
                  "info": ""
                },
                {
                  "name": "last_doscal_results",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_params_voronoi",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "last_voronoi_remote",
                  "required": false,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "last_voronoi_results",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 201,
                  "message": "The code you provided for kkr does not use the plugin kkr.kkr"
                },
                {
                  "status": 202,
                  "message": "The code you provided for voronoi does not use the plugin kkr.voro"
                },
                {
                  "status": 203,
                  "message": "Voronoi calculation unsuccessful. Check inputs"
                },
                {
                  "status": 204,
                  "message": "Voronoi calculation unsuccessful. Check inputs."
                },
                {
                  "status": 205,
                  "message": "Voronoi calculation unsuccessful. Structure inconsistent. Maybe you need empty spheres?"
                },
                {
                  "status": 206,
                  "message": "DOS run unsuccessful. Check inputs."
                },
                {
                  "status": 207,
                  "message": "Can only take either structure or parent_KKR as input."
                },
                {
                  "status": 208,
                  "message": "Need either structure or parent_KKR as input."
                }
              ]
            },
            "class": "aiida_kkr.workflows.voro_start:kkr_startpot_wc"
          }
        },
        "console_scripts": {
          "aiida-kkr": "aiida_kkr.cmdline:cmd_root"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W005'>W005</a>: Development status in classifiers (beta) does not match development_status in metadata (stable)",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 5
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 14
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-kkr",
      "is_installable": "True"
    },
    "aiida-lammps": {
      "code_home": "https://github.com/aiidaplugins/aiida-lammps",
      "development_status": "beta",
      "entry_point_prefix": "lammps",
      "pip_url": "git+https://github.com/aiidaplugins/aiida-lammps",
      "name": "aiida-lammps",
      "package_name": "aiida_lammps",
      "hosted_on": "github.com",
      "metadata": {
        "classifiers": [
          "Development Status :: 4 - Beta",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics",
          "Framework :: AiiDA"
        ],
        "author": "Chris Sewell",
        "author_email": "chrisj_sewell@hotmail.com"
      },
      "aiida_version": "~=2.3",
      "entry_points": {
        "aiida.calculations": {
          "lammps.base": {
            "description": [
              "A basic plugin for performing calculations in ``LAMMPS`` using aiida.",
              "",
              "    The plugin will take the input parameters validate them against a schema",
              "    and then use them to generate the ``LAMMPS`` input file. The input file",
              "    is generated depending on the parameters provided, the type of potential,",
              "    the input structure and whether or not a restart file is provided."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Parameters that control the input script generated for the ``LAMMPS`` calculation"
                },
                {
                  "name": "potential",
                  "required": true,
                  "valid_types": "LammpsPotentialData",
                  "info": "Potential used in the ``LAMMPS`` calculation"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure used in the ``LAMMPS`` calculation"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "input_restartfile",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Input restartfile to continue from a previous ``LAMMPS`` calculation"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "An optional working directory of a previously completed calculation to restart from."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Additional settings that control the ``LAMMPS`` calculation"
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "results",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The data extracted from the lammps output file"
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "time_dependent_computes",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "The data with the time dependent computes parsed from the lammps.out"
                },
                {
                  "name": "trajectories",
                  "required": true,
                  "valid_types": "LammpsTrajectory",
                  "info": "The data extracted from the lammps trajectory file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "restartfile",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The restartfile of a ``LAMMPS`` calculation"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The output structure."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "the retrieved folder data node could not be accessed."
                },
                {
                  "status": 302,
                  "message": "the stdout output file was not found"
                },
                {
                  "status": 303,
                  "message": "the stderr output file was not found"
                },
                {
                  "status": 304,
                  "message": "the output file is missing, it is possible that LAMMPS never ran"
                },
                {
                  "status": 305,
                  "message": "the file with the lammps log was not found"
                },
                {
                  "status": 306,
                  "message": "the file with the final variables was not found"
                },
                {
                  "status": 307,
                  "message": "the file with the trajectories was not found"
                },
                {
                  "status": 308,
                  "message": "the file with the restart information was not found"
                },
                {
                  "status": 309,
                  "message": "The parser detected the lammps error :{error}"
                },
                {
                  "status": 400,
                  "message": "The calculation stopped prematurely because it ran out of walltime."
                },
                {
                  "status": 401,
                  "message": "The energy tolerance was not reached at minimization."
                },
                {
                  "status": 402,
                  "message": "The force tolerance was not reached at minimization."
                },
                {
                  "status": 1001,
                  "message": "error parsing the output file has failed."
                },
                {
                  "status": 1002,
                  "message": "error parsing the final variable file has failed."
                }
              ]
            },
            "class": "aiida_lammps.calculations.base:LammpsBaseCalculation"
          },
          "lammps.raw": {
            "description": [
              "Plugin with minimal interface to run LAMMPS."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "script",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Complete input script to use. If specified, `structure`, `potential` and `parameters` are ignored."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "filenames",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Optional namespace to specify with which filenames the files of ``files`` input should be written."
                },
                {
                  "name": "files",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Optional files that should be written to the working directory."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Additional settings that control the ``LAMMPS`` calculation"
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "results",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The data extracted from the lammps out file"
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 309,
                  "message": "The parser detected the lammps error :{error}"
                },
                {
                  "status": 351,
                  "message": "the file with the lammps out was not found"
                },
                {
                  "status": 1001,
                  "message": "parsing the output file has failed."
                }
              ]
            },
            "class": "aiida_lammps.calculations.raw:LammpsRawCalculation"
          }
        },
        "aiida.parsers": {
          "lammps.base": "aiida_lammps.parsers.base:LammpsBaseParser",
          "lammps.raw": "aiida_lammps.parsers.raw:LammpsRawParser"
        },
        "aiida.data": {
          "lammps.potential": "aiida_lammps.data.potential:LammpsPotentialData",
          "lammps.trajectory": "aiida_lammps.data.trajectory:LammpsTrajectory"
        },
        "aiida.workflows": {
          "lammps.base": {
            "description": [
              "Base workchain for calculations using LAMMPS"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "lammps",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "store_restart",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "\n            Whether to store the restartfile in the repository.\n            "
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "results",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The data extracted from the lammps output file"
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "time_dependent_computes",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "The data with the time dependent computes parsed from the lammps.out"
                },
                {
                  "name": "trajectories",
                  "required": true,
                  "valid_types": "LammpsTrajectory",
                  "info": "The data extracted from the lammps trajectory file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "restartfile",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The restartfile of a ``LAMMPS`` calculation"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The output structure."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "\n            The calculation failed with an unidentified unrecoverable error.\n            "
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_lammps.workflows.base:LammpsBaseWorkChain"
          },
          "lammps.relax": {
            "description": [
              "Workchain to relax a structure using the LAMMPS minimization procedure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "lammps",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "relax",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "store_restart",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "\n            Whether to store the restartfile in the repository.\n            "
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "results",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The data extracted from the lammps output file"
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "time_dependent_computes",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "The data with the time dependent computes parsed from the lammps.out"
                },
                {
                  "name": "trajectories",
                  "required": true,
                  "valid_types": "LammpsTrajectory",
                  "info": "The data extracted from the lammps trajectory file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "restartfile",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The restartfile of a ``LAMMPS`` calculation"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The output structure."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 403,
                  "message": "The underlying LammpsBaseWorkChain failed"
                }
              ]
            },
            "class": "aiida_lammps.workflows.relax:LammpsRelaxWorkChain"
          },
          "lammps.md": {
            "description": [
              "Workchain to perform a LAMMPS MD simulation."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "lammps",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "md",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "store_restart",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "\n            Whether to store the restartfile in the repository.\n            "
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "results",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The data extracted from the lammps output file"
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "time_dependent_computes",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "The data with the time dependent computes parsed from the lammps.out"
                },
                {
                  "name": "trajectories",
                  "required": true,
                  "valid_types": "LammpsTrajectory",
                  "info": "The data extracted from the lammps trajectory file"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "restartfile",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The restartfile of a ``LAMMPS`` calculation"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The output structure."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 403,
                  "message": "The underlying LammpsBaseWorkChain failed"
                }
              ]
            },
            "class": "aiida_lammps.workflows.molecular_dynamics:LammpsMDWorkChain"
          }
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/aiidaplugins/aiida-lammps",
      "is_installable": "True"
    },
    "aiida-lsmo": {
      "code_home": "https://github.com/lsmo-epfl/aiida-lsmo",
      "development_status": "stable",
      "entry_point_prefix": "lsmo",
      "pip_url": "git+https://github.com/lsmo-epfl/aiida-lsmo",
      "name": "aiida-lsmo",
      "package_name": "aiida_lsmo",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Aliaksandr Yakutovich, Daniele Ongari, Leopold Talirz",
        "author_email": "aliaksandr.yakutovich@epfl.ch",
        "version": "1.0.0",
        "description": "AiiDA workflows for the LSMO laboratory at EPFL",
        "classifiers": [
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7"
        ]
      },
      "aiida_version": ">=1.0.0",
      "entry_points": {
        "aiida.calculations": {
          "lsmo.ff_builder": "aiida_lsmo.calcfunctions:ff_builder",
          "lsmo.calc_ch4_working_cap": "aiida_lsmo.calcfunctions:calc_ch4_working_cap",
          "lsmo.calc_h2_working_cap": "aiida_lsmo.calcfunctions:calc_h2_working_cap",
          "lsmo.calc_o2_working_cap": "aiida_lsmo.calcfunctions:calc_o2_working_cap",
          "lsmo.calc_selectivity": "aiida_lsmo.calcfunctions:calc_selectivity"
        },
        "aiida.parsers": {
          "lsmo.cp2k_bsse_parser": "aiida_lsmo.parsers:Cp2kBsseParser",
          "lsmo.cp2k_advanced_parser": "aiida_lsmo.parsers:Cp2kAdvancedParser"
        },
        "aiida.workflows": {
          "lsmo.binding_site": "aiida_lsmo.workchains:BindingSiteWorkChain",
          "lsmo.cp2k_binding_energy": "aiida_lsmo.workchains.cp2k_binding_energy:Cp2kBindingEnergyWorkChain",
          "lsmo.cp2k_multistage": "aiida_lsmo.workchains:Cp2kMultistageWorkChain",
          "lsmo.cp2k_multistage_ddec": "aiida_lsmo.workchains:Cp2kMultistageDdecWorkChain",
          "lsmo.isotherm": "aiida_lsmo.workchains:IsothermWorkChain",
          "lsmo.isotherm_multi_temp": "aiida_lsmo.workchains:IsothermMultiTempWorkChain",
          "lsmo.isotherm_calc_pe": "aiida_lsmo.workchains:IsothermCalcPEWorkChain",
          "lsmo.zeopp_multistage_ddec": "aiida_lsmo.workchains:ZeoppMultistageDdecWorkChain",
          "lsmo.sim_annealing": "aiida_lsmo.workchains.sim_annealing:SimAnnealingWorkChain",
          "lsmo.nanoporous_screening_1": "aiida_lsmo.workchains:NanoporousScreening1WorkChain"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-lsmo<pre>Collecting git+https://github.com/lsmo-epfl/aiida-lsmo\n  Cloning https://github.com/lsmo-epfl/aiida-lsmo to /tmp/pip-req-build-l04udkaa\n  Running command git clone --filter=blob:none --quiet https://github.com/lsmo-epfl/aiida-lsmo /tmp/pip-req-build-l04udkaa\n  Resolved https://github.com/lsmo-epfl/aiida-lsmo to commit 6bf08fa42e545dadf889ea8095d7fcdd8d1be15c\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-lsmo to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-lsmo==1.0.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-lsmo 1.0.0 depends on aiida-core~=1.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 10
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/lsmo-epfl/aiida-lsmo",
      "is_installable": "False"
    },
    "aiida-metavo-scheduler": {
      "code_home": "https://github.com/pzarabadip/aiida-metavo-scheduler",
      "development_status": "stable",
      "entry_point_prefix": "metavo_scheduler",
      "pip_url": "git+https://github.com/pzarabadip/aiida-metavo-scheduler",
      "name": "aiida-metavo-scheduler",
      "package_name": "aiida_metavo_scheduler",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Pezhman Zarabadi-Poor",
        "author_email": "pzarabadip@gmail.com",
        "version": "1.0.0",
        "description": "",
        "classifiers": [
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Scientific/Engineering"
        ]
      },
      "aiida_version": ">=1.0.0,<1.6",
      "entry_points": {
        "aiida.cmdline.computer.configure": {
          "sshmetavo": "aiida_metavo_scheduler.metavo.ssh_metavo:CONFIGURE_SSH_CMD"
        },
        "aiida.schedulers": {
          "pbsprometavo": "aiida_metavo_scheduler.metavo.pbspro_metavo:PbsproSchedulerMetaVO"
        },
        "aiida.transports": {
          "sshmetavo": "aiida_metavo_scheduler.metavo.ssh_metavo:SshTransport"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-metavo-scheduler<pre>Collecting git+https://github.com/pzarabadip/aiida-metavo-scheduler\n  Cloning https://github.com/pzarabadip/aiida-metavo-scheduler to /tmp/pip-req-build-_8977yb_\n  Running command git clone --filter=blob:none --quiet https://github.com/pzarabadip/aiida-metavo-scheduler /tmp/pip-req-build-_8977yb_\n  Resolved https://github.com/pzarabadip/aiida-metavo-scheduler to commit 955697497641ca13e997431a8e925df6ec3a9eea\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-metavo-scheduler to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-metavo-scheduler==1.0.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-metavo-scheduler 1.0.0 depends on aiida_core<1.6 and >=1.0.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'sshmetavo' does not start with prefix 'metavo_scheduler.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'pbsprometavo' does not start with prefix 'metavo_scheduler.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'sshmetavo' does not start with prefix 'metavo_scheduler.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "orange",
          "text": "Other (Cmdline computer configure, Schedulers, Transports)",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/pzarabadip/aiida-metavo-scheduler",
      "is_installable": "False"
    },
    "aiida-mlip": {
      "entry_point_prefix": "mlip",
      "plugin_info": "https://raw.githubusercontent.com/stfc/aiida-mlip/main/pyproject.toml",
      "code_home": "https://github.com/stfc/aiida-mlip",
      "documentation_url": "https://stfc.github.io/aiida-mlip/",
      "pip_url": "aiida-mlip",
      "name": "aiida-mlip",
      "package_name": "aiida_mlip",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-11-17",
        "description": "Machine learning interatomic potentials AiiDA plugin",
        "author": "Federica Zanca, Elliott Kasoar, Jacob Wilkins, Alin M. Elena",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: BSD License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.4.1"
      },
      "aiida_version": ">=2.7,<3",
      "entry_points": {
        "aiida.calculations": {
          "mlip.descriptors": "aiida_mlip.calculations.descriptors:Descriptors",
          "mlip.md": "aiida_mlip.calculations.md:MD",
          "mlip.opt": "aiida_mlip.calculations.geomopt:GeomOpt",
          "mlip.sp": "aiida_mlip.calculations.singlepoint:Singlepoint",
          "mlip.train": "aiida_mlip.calculations.train:Train"
        },
        "aiida.data": {
          "mlip.config": "aiida_mlip.data.config:JanusConfigfile",
          "mlip.modeldata": "aiida_mlip.data.model:ModelData"
        },
        "aiida.parsers": {
          "mlip.descriptors_parser": "aiida_mlip.parsers.descriptors_parser:DescriptorsParser",
          "mlip.md_parser": "aiida_mlip.parsers.md_parser:MDParser",
          "mlip.opt_parser": "aiida_mlip.parsers.opt_parser:GeomOptParser",
          "mlip.sp_parser": "aiida_mlip.parsers.sp_parser:SPParser",
          "mlip.train_parser": "aiida_mlip.parsers.train_parser:TrainParser"
        }
      },
      "commits_count": 39,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 5
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-mlip",
      "is_installable": "True"
    },
    "aiida-mpds": {
      "code_home": "https://github.com/mpds-io/mpds-aiida",
      "development_status": "beta",
      "documentation_url": "https://github.com/mpds-io/mpds-aiida",
      "entry_point_prefix": "mpds",
      "pip_url": "git+https://github.com/mpds-io/mpds-aiida",
      "name": "aiida-mpds",
      "package_name": "aiida_mpds",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 39,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E004'>E004</a>: Unable to retrieve plugin metadata, retrieve plugin info from 'https://raw.githubusercontent.com/mpds-io/mpds-aiida/master/setup.json' failed.<pre>Traceback (most recent call last):\n  File \"/home/runner/work/aiida-registry/aiida-registry/aiida_registry/utils.py\", line 23, in fetch_file\n    response.raise_for_status()\n  File \"/opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages/requests/models.py\", line 1021, in raise_for_status\n    raise HTTPError(http_error_msg, response=self)\nrequests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://raw.githubusercontent.com/mpds-io/mpds-aiida/master/setup.json\n</pre>",
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-mpds<pre>Collecting git+https://github.com/mpds-io/mpds-aiida\n  Cloning https://github.com/mpds-io/mpds-aiida to /tmp/pip-req-build-1a0i6_l_\n  Running command git clone --filter=blob:none --quiet https://github.com/mpds-io/mpds-aiida /tmp/pip-req-build-1a0i6_l_\n  Resolved https://github.com/mpds-io/mpds-aiida to commit a4c7e748af98044f376a7e7b4777ee3aed3f87ab\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting aiida-reoptimize@ git+https://github.com/mpds-io/aiida-reoptimize (from mpds-aiida==0.11.3)\n  Cloning https://github.com/mpds-io/aiida-reoptimize to /tmp/pip-install-xnx1t6td/aiida-reoptimize_d1a645d4d9f94511bb9aa3a21f0112fe\n  Running command git clone --filter=blob:none --quiet https://github.com/mpds-io/aiida-reoptimize /tmp/pip-install-xnx1t6td/aiida-reoptimize_d1a645d4d9f94511bb9aa3a21f0112fe\n  Resolved https://github.com/mpds-io/aiida-reoptimize to commit 6e1055e34416ca13c57b435fe8a65f9d6edbbce0\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting reentry>=1.3.1 (from mpds-aiida==0.11.3)\n  Using cached reentry-1.3.3-py3-none-any.whl.metadata (10 kB)\nRequirement already satisfied: numpy>=1.17.5 in /opt/conda/lib/python3.10/site-packages (from mpds-aiida==0.11.3) (1.26.4)\nCollecting ase>=3.19 (from mpds-aiida==0.11.3)\n  Downloading ase-3.29.0-py3-none-any.whl.metadata (4.4 kB)\nCollecting jsonschema<=3.2.0 (from mpds-aiida==0.11.3)\n  Downloading jsonschema-3.2.0-py2.py3-none-any.whl.metadata (7.8 kB)\nCollecting phonopy==2.19.1 (from mpds-aiida==0.11.3)\n  Downloading phonopy-2.19.1.tar.gz (3.7 MB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 3.7/3.7 MB 54.4 MB/s eta 0:00:00\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting yascheduler>=1.0.12 (from mpds-aiida==0.11.3)\n  Downloading yascheduler-1.5.0-py3-none-any.whl.metadata (13 kB)\nCollecting aiida-phonopy>=1.2.0 (from mpds-aiida==0.11.3)\n  Downloading aiida_phonopy-1.7.0-py3-none-any.whl.metadata (6.6 kB)\nCollecting aiida-fleur>=2.0.0 (from mpds-aiida==0.11.3)\n  Downloading aiida_fleur-2.0.0-py3-none-any.whl.metadata (33 kB)\nRequirement already satisfied: aiida-core<2.9.0 in /opt/conda/lib/python3.10/site-packages (from mpds-aiida==0.11.3) (2.5.2)\nCollecting aiida_crystal_dft (from mpds-aiida==0.11.3)\n  Downloading aiida_crystal_dft-0.9.4.tar.gz (571 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 571.4/571.4 kB 75.2 MB/s eta 0:00:00\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting mpds_client (from mpds-aiida==0.11.3)\n  Downloading mpds_client-0.24.tar.gz (9.7 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nRequirement already satisfied: PyYAML in /opt/conda/lib/python3.10/site-packages (from phonopy==2.19.1->mpds-aiida==0.11.3) (6.0.1)\nCollecting matplotlib>=2.2.2 (from phonopy==2.19.1->mpds-aiida==0.11.3)\n  Downloading matplotlib-3.10.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (52 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 52.8/52.8 kB 19.4 MB/s eta 0:00:00\nCollecting h5py (from phonopy==2.19.1->mpds-aiida==0.11.3)\n  Downloading h5py-3.16.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.0 kB)\nCollecting spglib (from phonopy==2.19.1->mpds-aiida==0.11.3)\n  Downloading spglib-2.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (4.2 kB)\nRequirement already satisfied: alembic~=1.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (1.13.1)\nRequirement already satisfied: archive-path~=0.4.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.4.2)\nRequirement already satisfied: aio-pika~=6.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (6.8.1)\nRequirement already satisfied: circus~=0.18.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.18.0)\nRequirement already satisfied: click-spinner~=0.1.8 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.1.10)\nRequirement already satisfied: click~=8.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (8.1.7)\nRequirement already satisfied: disk-objectstore~=1.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (1.1.0)\nRequirement already satisfied: docstring-parser in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.16)\nRequirement already satisfied: graphviz~=0.19 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.20.3)\nRequirement already satisfied: ipython>=7 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (8.25.0)\nRequirement already satisfied: jedi<0.19 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.18.2)\nRequirement already satisfied: jinja2~=3.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (3.1.4)\nRequirement already satisfied: kiwipy~=0.7.7 in /opt/conda/lib/python3.10/site-packages (from kiwipy[rmq]~=0.7.7->aiida-core<2.9.0->mpds-aiida==0.11.3) (0.7.8)\nRequirement already satisfied: importlib-metadata~=6.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (6.11.0)\nRequirement already satisfied: paramiko>=2.7.2,~=2.7 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (2.12.0)\nRequirement already satisfied: plumpy~=0.21.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.21.10)\nRequirement already satisfied: pgsu~=0.2.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.2.4)\nRequirement already satisfied: psutil~=5.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (5.9.8)\nRequirement already satisfied: psycopg2-binary~=2.8 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (2.9.9)\nRequirement already satisfied: pydantic~=2.4 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (2.7.3)\nRequirement already satisfied: pytz~=2021.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (2021.3)\nRequirement already satisfied: requests~=2.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (2.32.3)\nRequirement already satisfied: sqlalchemy~=2.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (2.0.30)\nRequirement already satisfied: tabulate~=0.8.5 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.8.10)\nRequirement already satisfied: tqdm~=4.45 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (4.66.4)\nRequirement already satisfied: upf_to_json~=0.9.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (0.9.5)\nRequirement already satisfied: wrapt~=1.11 in /opt/conda/lib/python3.10/site-packages (from aiida-core<2.9.0->mpds-aiida==0.11.3) (1.16.0)\nCollecting lxml~=4.8 (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading lxml-4.9.4-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.7 kB)\nCollecting sympy (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)\nCollecting masci-tools~=0.13 (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading masci_tools-0.15.0-py3-none-any.whl.metadata (5.8 kB)\nCollecting future (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading future-1.0.0-py3-none-any.whl.metadata (4.0 kB)\nCollecting pyhull (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading pyhull-2015.2.1.tar.gz (318 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 318.8/318.8 kB 85.5 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nCollecting more_itertools (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading more_itertools-11.1.0-py3-none-any.whl.metadata (41 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 41.4/41.4 kB 14.8 MB/s eta 0:00:00\nCollecting MarkupSafe<2.1.0 (from aiida-fleur>=2.0.0->mpds-aiida==0.11.3)\n  Downloading MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (3.2 kB)\nINFO: pip is looking at multiple versions of aiida-phonopy to determine which version is compatible with other requirements. This could take a while.\nCollecting aiida-phonopy>=1.2.0 (from mpds-aiida==0.11.3)\n  Downloading aiida_phonopy-1.6.0-py3-none-any.whl.metadata (6.6 kB)\n  Downloading aiida_phonopy-1.5.0-py3-none-any.whl.metadata (6.5 kB)\n  Downloading aiida_phonopy-1.4.0-py3-none-any.whl.metadata (6.3 kB)\n  Downloading aiida_phonopy-1.3.0-py3-none-any.whl.metadata (6.3 kB)\n  Downloading aiida_phonopy-1.2.1-py3-none-any.whl.metadata (6.2 kB)\nCollecting aiida-pythonjob~=0.1 (from aiida-phonopy>=1.2.0->mpds-aiida==0.11.3)\n  Downloading aiida_pythonjob-0.5.2-py3-none-any.whl.metadata (4.6 kB)\nCollecting seekpath (from aiida-phonopy>=1.2.0->mpds-aiida==0.11.3)\n  Downloading seekpath-2.2.1-py3-none-any.whl.metadata (4.7 kB)\nCollecting scipy>=1.8.1 (from ase>=3.19->mpds-aiida==0.11.3)\n  Downloading scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 62.0/62.0 kB 22.8 MB/s eta 0:00:00\nCollecting typing_extensions>=4.13.1 (from ase>=3.19->mpds-aiida==0.11.3)\n  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting attrs>=17.4.0 (from jsonschema<=3.2.0->mpds-aiida==0.11.3)\n  Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)\nCollecting pyrsistent>=0.14.0 (from jsonschema<=3.2.0->mpds-aiida==0.11.3)\n  Downloading pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (27 kB)\nRequirement already satisfied: setuptools in /opt/conda/lib/python3.10/site-packages (from jsonschema<=3.2.0->mpds-aiida==0.11.3) (70.0.0)\nRequirement already satisfied: six>=1.11.0 in /opt/conda/lib/python3.10/site-packages (from jsonschema<=3.2.0->mpds-aiida==0.11.3) (1.16.0)\nCollecting aiohttp~=3.8 (from yascheduler>=1.0.12->mpds-aiida==0.11.3)\n  Downloading aiohttp-3.14.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.3 kB)\nCollecting asyncssh~=2.11 (from yascheduler>=1.0.12->mpds-aiida==0.11.3)\n  Downloading asyncssh-2.24.0-py3-none-any.whl.metadata (9.8 kB)\nCollecting asyncstdlib~=3.10 (from yascheduler>=1.0.12->mpds-aiida==0.11.3)\n  Downloading asyncstdlib-3.14.0-py3-none-any.whl.metadata (3.8 kB)\nCollecting backoff~=2.1.2 (from yascheduler>=1.0.12->mpds-aiida==0.11.3)\n  Downloading backoff-2.1.2-py3-none-any.whl.metadata (13 kB)\nCollecting pg8000~=1.19 (from yascheduler>=1.0.12->mpds-aiida==0.11.3)\n  Downloading pg8000-1.31.5-py3-none-any.whl.metadata (88 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 88.8/88.8 kB 31.3 MB/s eta 0:00:00\nCollecting python-daemon~=2.3 (from yascheduler>=1.0.12->mpds-aiida==0.11.3)\n  Downloading python_daemon-2.3.2-py3-none-any.whl.metadata (2.0 kB)\nINFO: pip is looking at multiple versions of aiida-crystal-dft to determine which version is compatible with other requirements. This could take a while.\nCollecting aiida_crystal_dft (from mpds-aiida==0.11.3)\n  Downloading aiida-crystal-dft-0.4.tar.gz (48 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 49.0/49.0 kB 19.6 MB/s eta 0:00:00\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI.\naiida_crystal_dft depends on pycrystal@ git+https://github.com/tilde-lab/pycrystal.git\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [],
      "pip_install_cmd": "pip install git+https://github.com/mpds-io/mpds-aiida",
      "is_installable": "False"
    },
    "aiida-muon": {
      "entry_point_prefix": "muon",
      "code_home": "https://github.com/positivemuon/aiida-muon",
      "version_file": "https://raw.githubusercontent.com/positivemuon/aiida-muon/main/aiida_muon/__init__.py",
      "pip_url": "git+https://github.com/positivemuon/aiida-muon",
      "name": "aiida-muon",
      "package_name": "aiida_muon",
      "hosted_on": "github.com",
      "metadata": {
        "description": "aiida-muon is allows to find candidate muon implantation sites and hyperfine field by DFT supercell relaxations and from further symmetry and kinetics analysis.  ",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Free To Use But Restricted",
          "Natural Language :: English",
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA"
        ],
        "author": "Muon group Parma"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.workflows": {
          "muon.find_muon": {
            "description": [
              "FindMuonWorkChain finds the candidate implantation site for a positive muon.",
              "    It first performs DFT relaxation calculations for a set of initial muon sites.",
              "    It then analyzes the results of these calculations and finds candidate muon sites.",
              "    If there are magnetic inequivalent sites not initially, they are recalculated",
              "    It further calculates the muon contact hyperfine field at these candidate sites."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "relax",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for SCF calculations."
                },
                {
                  "name": "ML_pre_relax",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "To run ML pre-relaxation or not"
                },
                {
                  "name": "charge_supercell",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "To run charged supercell for positive muon or not (neutral supercell)"
                },
                {
                  "name": "gamma_pre_relax",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "To run gamma pre-relaxation or not"
                },
                {
                  "name": "hubbard",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "To check and get Hubbard U value or not"
                },
                {
                  "name": "hubbard_dict",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Dictionary of Hubbard U values"
                },
                {
                  "name": "impuritysupercellconv",
                  "required": false,
                  "valid_types": "Data",
                  "info": "the preprocess IsolatedImpurityWorkChain step, if needed."
                },
                {
                  "name": "impuritysupercellconv_metadata",
                  "required": false,
                  "valid_types": "dict, NoneType",
                  "info": " Preferred metadata and scheduler options for impuritysupercellconv"
                },
                {
                  "name": "kpoints_distance",
                  "required": false,
                  "valid_types": "Float",
                  "info": "The minimum desired distance in 1/\u00c5 between k-points in reciprocal space."
                },
                {
                  "name": "magmom",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of 3D magnetic moments in Bohr magneton of the corresponding input structure if magnetic"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "mu_spacing",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Minimum distance in Angstrom between two starting muon positions  generated on a grid."
                },
                {
                  "name": "pp_code",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "The pp.x code-computer for post processing only if magmom is supplied"
                },
                {
                  "name": "pp_metadata",
                  "required": false,
                  "valid_types": "dict, NoneType",
                  "info": " Preferred metadata and scheduler options for pp.x"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The label of the pseudo family"
                },
                {
                  "name": "pwscf",
                  "required": false,
                  "valid_types": "Data",
                  "info": "Inputs for final SCF calculation with the muon at the origin."
                },
                {
                  "name": "qe_settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": " Preferred settings for the calc, otherwise default is used"
                },
                {
                  "name": "sc_matrix",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": " List of length 1 for supercell size "
                },
                {
                  "name": "skip_dft_relax",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "To skip DFT relaxation or not"
                },
                {
                  "name": "spin_pol_dft",
                  "required": false,
                  "valid_types": "Bool, NoneType",
                  "info": "Spin-polarised DFT simulation or not"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, HubbardStructureData, NoneType",
                  "info": "Input initial structure"
                },
                {
                  "name": "supercells_list",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": "List of supercells to be used for the relaxation"
                }
              ],
              "outputs": [
                {
                  "name": "all_index_uuid",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "all_sites",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "unique_sites",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Unique sites after clustering"
                },
                {
                  "name": "unique_sites_dipolar",
                  "required": false,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "unique_sites_hyperfine",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 404,
                  "message": "The IsolatedImpurityWorkChain subprocesses failed"
                },
                {
                  "status": 405,
                  "message": "One of the PwRelaxWorkChain subprocesses failed"
                },
                {
                  "status": 406,
                  "message": "One of the PwBaseWorkChain subprocesses failed"
                },
                {
                  "status": 407,
                  "message": "One of the PPWorkChain subprocesses failed"
                },
                {
                  "status": 407,
                  "message": "No supercells available: try to decrease mu_spacing."
                }
              ]
            },
            "class": "aiida_muon.workflows.find_muon:FindMuonWorkChain"
          }
        }
      },
      "commits_count": 5,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/positivemuon/aiida-muon",
      "is_installable": "True"
    },
    "aiida-musconv": {
      "entry_point_prefix": "musconv",
      "code_home": "https://github.com/positivemuon/aiida-musconv",
      "version_file": "raw.githubusercontent.com/positivemuon/aiida-musconv/main/aiida_musconv/__init__.py",
      "pip_url": "git+https://github.com/positivemuon/aiida-musconv",
      "name": "aiida-musconv",
      "package_name": "aiida_musconv",
      "hosted_on": "github.com",
      "metadata": {
        "description": "aiida-impuritysupercellconv is a plugin that allows to obtain converged supercell size for an interstitial impurity calculation.",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Free To Use But Restricted",
          "Natural Language :: English",
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA"
        ],
        "author": "Muon group Parma"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.workflows": {
          "impuritysupercellconv": "aiida_impuritysupercellconv.workflows.impuritysupercellconv:IsolatedImpurityWorkChain"
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E002'>E002</a>: Failed to import package aiida_musconv<pre>Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nModuleNotFoundError: No module named 'aiida_musconv'\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'impuritysupercellconv' does not start with prefix 'musconv.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/positivemuon/aiida-musconv",
      "is_installable": "True"
    },
    "aiida-nanotech-empa": {
      "code_home": "https://github.com/nanotech-empa/aiida-nanotech-empa",
      "development_status": "beta",
      "entry_point_prefix": "nanotech_empa",
      "pip_url": "git+https://github.com/nanotech-empa/aiida-nanotech-empa",
      "name": "aiida-nanotech-empa",
      "package_name": "aiida_nanotech_empa",
      "hosted_on": "github.com",
      "metadata": {
        "description": "AiiDA plugins and workflows developed at nanotech@surfaces group from Empa.",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Topic :: Scientific/Engineering"
        ],
        "author": "nanotech@surfaces"
      },
      "aiida_version": ">=2.6,<2.8",
      "entry_points": {
        "aiida.parsers": {
          "nanotech_empa.pp": "aiida_nanotech_empa.parsers:PpParser",
          "nanotech_empa.cp2k_gw_parser": "aiida_nanotech_empa.parsers:Cp2kGwParser",
          "nanotech_empa.cp2k_neb_parser": "aiida_nanotech_empa.parsers:Cp2kNebParser",
          "nanotech_empa.gaussian.cubegen_pymol": "aiida_nanotech_empa.parsers.cubegen_pymol_parser:CubegenPymolParser",
          "nanotech_empa.gaussian.casscf": "aiida_nanotech_empa.parsers:GaussianCasscfParser"
        },
        "aiida.calculations": {
          "nanotech_empa.stm": "aiida_nanotech_empa.plugins:StmCalculation",
          "nanotech_empa.overlap": "aiida_nanotech_empa.plugins:OverlapCalculation",
          "nanotech_empa.afm": "aiida_nanotech_empa.plugins:AfmCalculation",
          "nanotech_empa.hrstm": "aiida_nanotech_empa.plugins:HrstmCalculation",
          "nanotech_empa.cubehandler": "aiida_nanotech_empa.plugins:CubeHandlerCalculation"
        },
        "aiida.workflows": {
          "nanotech_empa.nanoribbon": "aiida_nanotech_empa.workflows.qe:NanoribbonWorkChain",
          "nanotech_empa.gaussian.scf": "aiida_nanotech_empa.workflows.gaussian:GaussianScfWorkChain",
          "nanotech_empa.gaussian.relax": "aiida_nanotech_empa.workflows.gaussian:GaussianRelaxWorkChain",
          "nanotech_empa.gaussian.delta_scf": "aiida_nanotech_empa.workflows.gaussian:GaussianDeltaScfWorkChain",
          "nanotech_empa.gaussian.natorb": "aiida_nanotech_empa.workflows.gaussian:GaussianNatOrbWorkChain",
          "nanotech_empa.gaussian.spin": "aiida_nanotech_empa.workflows.gaussian:GaussianSpinWorkChain",
          "nanotech_empa.gaussian.hf_mp2": "aiida_nanotech_empa.workflows.gaussian:GaussianHfMp2WorkChain",
          "nanotech_empa.gaussian.constr_opt_chain": "aiida_nanotech_empa.workflows.gaussian:GaussianConstrOptChainWorkChain",
          "nanotech_empa.gaussian.casscf": "aiida_nanotech_empa.workflows.gaussian:GaussianCasscfWorkChain",
          "nanotech_empa.gaussian.casscf_series": "aiida_nanotech_empa.workflows.gaussian:GaussianCasscfSeriesWorkChain",
          "nanotech_empa.gaussian.nics": "aiida_nanotech_empa.workflows.gaussian:GaussianNicsWorkChain",
          "nanotech_empa.cp2k.geo_opt": "aiida_nanotech_empa.workflows.cp2k:Cp2kGeoOptWorkChain",
          "nanotech_empa.cp2k.fragment_separation": "aiida_nanotech_empa.workflows.cp2k:Cp2kFragmentSeparationWorkChain",
          "nanotech_empa.cp2k.ads_gw_ic": "aiida_nanotech_empa.workflows.cp2k:Cp2kAdsorbedGwIcWorkChain",
          "nanotech_empa.cp2k.molecule_gw": "aiida_nanotech_empa.workflows.cp2k:Cp2kMoleculeGwWorkChain",
          "nanotech_empa.cp2k.mol_opt_gw": "aiida_nanotech_empa.workflows.cp2k:Cp2kMoleculeOptGwWorkChain",
          "nanotech_empa.cp2k.pdos": "aiida_nanotech_empa.workflows.cp2k:Cp2kPdosWorkChain",
          "nanotech_empa.cp2k.orbitals": "aiida_nanotech_empa.workflows.cp2k:Cp2kOrbitalsWorkChain",
          "nanotech_empa.cp2k.stm": "aiida_nanotech_empa.workflows.cp2k:Cp2kStmWorkChain",
          "nanotech_empa.cp2k.afm": "aiida_nanotech_empa.workflows.cp2k:Cp2kAfmWorkChain",
          "nanotech_empa.cp2k.hrstm": "aiida_nanotech_empa.workflows.cp2k:Cp2kHrstmWorkChain",
          "nanotech_empa.cp2k.diag": "aiida_nanotech_empa.workflows.cp2k:Cp2kDiagWorkChain",
          "nanotech_empa.cp2k.replica": "aiida_nanotech_empa.workflows.cp2k:Cp2kReplicaWorkChain",
          "nanotech_empa.cp2k.neb": "aiida_nanotech_empa.workflows.cp2k:Cp2kNebWorkChain",
          "nanotech_empa.cp2k.phonons": "aiida_nanotech_empa.workflows.cp2k:Cp2kPhononsWorkChain",
          "nanotech_empa.cp2k.reftraj": "aiida_nanotech_empa.workflows.cp2k:Cp2kRefTrajWorkChain"
        },
        "aiida.schedulers": {
          "slurm_ethz_euler": "aiida_nanotech_empa.schedulers:ETHZEulerSlurmScheduler"
        }
      },
      "commits_count": 11,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-nanotech-empa<pre>Collecting git+https://github.com/nanotech-empa/aiida-nanotech-empa\n  Cloning https://github.com/nanotech-empa/aiida-nanotech-empa to /tmp/pip-req-build-crzlnwcw\n  Running command git clone --filter=blob:none --quiet https://github.com/nanotech-empa/aiida-nanotech-empa /tmp/pip-req-build-crzlnwcw\n  Resolved https://github.com/nanotech-empa/aiida-nanotech-empa to commit b7f0c4f7edc93e6796d7c58bc6ef8ef10bea3ac9\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-nanotech-empa to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-nanotech-empa==1.0.0b12 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-nanotech-empa 1.0.0b12 depends on aiida-core<2.8 and >=2.6\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W005'>W005</a>: Development status in classifiers (stable) does not match development_status in metadata (beta)",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'slurm_ethz_euler' does not start with prefix 'nanotech_empa.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 5
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 5
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 26
        },
        {
          "colorclass": "orange",
          "text": "Other (Schedulers)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/nanotech-empa/aiida-nanotech-empa",
      "is_installable": "False"
    },
    "aiida-nims-scheduler": {
      "code_home": "https://github.com/atztogo/aiida-nims-scheduler",
      "development_status": "stable",
      "documentation_url": "https://github.com/atztogo/aiida-nims-scheduler",
      "entry_point_prefix": "nims_scheduler",
      "pip_url": "git+https://github.com/atztogo/aiida-nims-scheduler",
      "name": "aiida-nims-scheduler",
      "package_name": "aiida_nims_scheduler",
      "hosted_on": "github.com",
      "metadata": {
        "description": "NIMS supercomputer scheduler",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA"
        ],
        "author": "Atsushi Togo"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.schedulers": {
          "nims_scheduler": "aiida_nims_scheduler.schedulers.pbs_nims:PbsNimsScheduler"
        }
      },
      "commits_count": 15,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W005'>W005</a>: Development status in classifiers (alpha) does not match development_status in metadata (stable)",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "orange",
          "text": "Other (Schedulers)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/atztogo/aiida-nims-scheduler",
      "is_installable": "True"
    },
    "aiida-nwchem": {
      "code_home": "https://github.com/aiidateam/aiida-nwchem",
      "documentation_url": "https://aiida-nwchem.readthedocs.io/",
      "entry_point_prefix": "nwchem",
      "pip_url": "aiida-nwchem",
      "plugin_info": "https://raw.githubusercontent.com/aiidateam/aiida-nwchem/master/setup.json",
      "name": "aiida-nwchem",
      "package_name": "aiida_nwchem",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-08-22",
        "description": "The official AiiDA plugin for NWChem",
        "author_email": "The AiiDA team <developers@aiida.net>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering"
        ],
        "version": "3.0.1"
      },
      "aiida_version": ">=2.0,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "nwchem.base": {
            "description": [
              "Base calculation class for NWChem."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "input_file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "NWChem input file"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "restart_folder",
                  "required": false,
                  "valid_types": "RemoteData, FolderData, NoneType",
                  "info": "Remote directory of a completed NWChem calculation to restart from."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Required output files are missing."
                },
                {
                  "status": 301,
                  "message": "The retrieved temporary folder could not be accessed."
                },
                {
                  "status": 302,
                  "message": "The retrieved folder did not contain the required stdout output file."
                },
                {
                  "status": 310,
                  "message": "The stdout output file could not be read."
                },
                {
                  "status": 312,
                  "message": "The stdout output file was incomplete."
                },
                {
                  "status": 313,
                  "message": "The stdout contains multiple calculations"
                },
                {
                  "status": 340,
                  "message": "The calculation stopped prematurely because it ran out of walltime but the job was killed by the scheduler before the files were safely written to disk for a potential restart."
                },
                {
                  "status": 350,
                  "message": "The parser raised an unexpected exception."
                }
              ]
            },
            "class": "aiida_nwchem.calculations.nwchem:NwchemBaseCalculation"
          },
          "nwchem.nwchem": {
            "description": [
              "Base calculation class for NWChem.",
              "",
              "    Synthesizes NWChem input file from parameter dictionary and StructureData."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure, with or without a cell"
                },
                {
                  "name": "add_cell",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "The input structure, with or without a cell"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "restart_folder",
                  "required": false,
                  "valid_types": "RemoteData, FolderData, NoneType",
                  "info": "Remote directory of a completed NWChem calculation to restart from."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Required output files are missing."
                },
                {
                  "status": 301,
                  "message": "The retrieved temporary folder could not be accessed."
                },
                {
                  "status": 302,
                  "message": "The retrieved folder did not contain the required stdout output file."
                },
                {
                  "status": 310,
                  "message": "The stdout output file could not be read."
                },
                {
                  "status": 312,
                  "message": "The stdout output file was incomplete."
                },
                {
                  "status": 313,
                  "message": "The stdout contains multiple calculations"
                },
                {
                  "status": 340,
                  "message": "The calculation stopped prematurely because it ran out of walltime but the job was killed by the scheduler before the files were safely written to disk for a potential restart."
                },
                {
                  "status": 350,
                  "message": "The parser raised an unexpected exception."
                }
              ]
            },
            "class": "aiida_nwchem.calculations.nwchem:NwchemCalculation"
          }
        },
        "aiida.parsers": {
          "nwchem.nwchem": "aiida_nwchem.parsers.nwchem:NwchemBaseParser"
        },
        "aiida.workflows": {
          "nwchem.base": {
            "description": [
              "Workchain to run an NWChem calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "nwchem",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The relaxed output structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_nwchem.workflows.base:NwchemBaseWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-nwchem",
      "is_installable": "True"
    },
    "aiida-octopus": {
      "code_home": "https://gitlab.com/octopus-code/aiida-octopus",
      "entry_point_prefix": "octopus",
      "pip_url": "aiida-octopus",
      "plugin_info": "https://gitlab.com/octopus-code/aiida-octopus/-/raw/main/pyproject.toml",
      "name": "aiida-octopus",
      "package_name": "aiida_octopus",
      "hosted_on": "gitlab.com",
      "metadata": {
        "release_date": "2026-05-05",
        "description": "AiiDA plugin for running and parsing Octopus calculations",
        "author_email": "Alexander Buccheri <alexander.buccheri@mpsd.mpg.de>",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Topic :: Scientific/Engineering"
        ],
        "version": "0.1.0"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.calculations": {
          "octopus.ground_state": {
            "description": [
              "AiiDA calculation plugin wrapping the Octopus executable",
              "    for a ground state calculation."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "AbstractCode",
                  "info": "The Octopus binary"
                },
                {
                  "name": "inp",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Octopus input file"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "convergence",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "forces",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "octopus",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did return any output files."
                },
                {
                  "status": 301,
                  "message": "Calculation did not exit cleanly."
                },
                {
                  "status": 310,
                  "message": "Failed to parse static/convergence."
                },
                {
                  "status": 311,
                  "message": "Failed to parse static/forces."
                }
              ]
            },
            "class": "aiida_octopus.calculations.ground_state:OctopusGSCalculation"
          }
        },
        "aiida.parsers": {
          "octopus.ground_state": "aiida_octopus.parsers.ground_state:OctopusGSParser"
        }
      },
      "commits_count": 14,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-octopus",
      "is_installable": "True"
    },
    "aiida-open_circuit_voltage": {
      "entry_point_prefix": "quantumespresso.ocv",
      "code_home": "https://github.com/tsthakur/aiida-open_circuit_voltage",
      "name": "aiida-open_circuit_voltage",
      "package_name": "aiida_open_circuit_voltage",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 9,
      "development_status": "planning",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E004'>E004</a>: Unable to retrieve plugin metadata, retrieve plugin info from 'https://raw.githubusercontent.com/tsthakur/aiida-open_circuit_voltage/main/setup.json' failed.<pre>Traceback (most recent call last):\n  File \"/home/runner/work/aiida-registry/aiida-registry/aiida_registry/utils.py\", line 23, in fetch_file\n    response.raise_for_status()\n  File \"/opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages/requests/models.py\", line 1021, in raise_for_status\n    raise HTTPError(http_error_msg, response=self)\nrequests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://raw.githubusercontent.com/tsthakur/aiida-open_circuit_voltage/main/setup.json\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W009'>W009</a>: Prefix 'quantumespresso.ocv' does not follow naming convention."
      ],
      "summaryinfo": [],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-optimize": {
      "code_home": "https://github.com/greschd/aiida-optimize",
      "documentation_url": "https://aiida-optimize.readthedocs.io",
      "entry_point_prefix": "optimize",
      "pip_url": "aiida-optimize",
      "plugin_info": "https://raw.githubusercontent.com/greschd/aiida-optimize/master/setup.json",
      "name": "aiida-optimize",
      "package_name": "aiida_optimize",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-03-30",
        "description": "AiiDA Plugin for running optimization algorithms.",
        "author": "Dominik Gresch",
        "author_email": "greschd@gmx.ch",
        "license": "Apache 2.0",
        "home_page": "https://aiida-optimize.readthedocs.io/",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Apache Software License",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "1.0.2"
      },
      "aiida_version": ">=2.0.0,<3.0.0",
      "entry_points": {
        "aiida.workflows": {
          "optimize.optimize": {
            "description": [
              "Runs an optimization procedure, given an optimization engine that defines the optimization",
              "    algorithm, and a process which evaluates the function to be optimized."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "engine",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Engine that runs the optimization."
                },
                {
                  "name": "engine_kwargs",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Keyword arguments passed to the optimization engine."
                },
                {
                  "name": "evaluate_process",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Process which produces the result to be optimized."
                },
                {
                  "name": "evaluate",
                  "required": false,
                  "valid_types": "",
                  "info": "Inputs that are passed to all evaluation processes."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "optimal_process_output",
                  "required": true,
                  "valid_types": "",
                  "info": "Output value of the optimal evaluation process."
                },
                {
                  "name": "optimal_process_uuid",
                  "required": true,
                  "valid_types": "",
                  "info": "UUID of the optimal evaluation process."
                },
                {
                  "name": "engine_outputs",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "optimal_process_input",
                  "required": false,
                  "valid_types": "",
                  "info": "Input value of the optimal evaluation process."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 201,
                  "message": "Optimization failed because one of the evaluate processes did not finish ok."
                },
                {
                  "status": 202,
                  "message": "Optimization failed because the engine did not finish ok."
                }
              ]
            },
            "class": "aiida_optimize._optimization_workchain:OptimizationWorkChain"
          },
          "optimize.wrappers.add_inputs": {
            "description": [
              "Wrapper workchain that takes inputs as keys and values and passes it",
              "    on to a sub-process. This enables taking a process which was not",
              "    designed to be used in optimization, and optimize with respect to",
              "    some arbitrary input. Inputs which always remain the same can be",
              "    specified in the ``inputs`` namespace, whereas the inputs to be",
              "    optimized are given through the ``added_input_keys`` and",
              "    ``added_input_values`` inputs.",
              "",
              "    The outputs of the wrapper workchain are the same as those of",
              "    the wrapped process.",
              "",
              "    The \"added\" inputs can only be BaseType sub-classes, or",
              "    attributes of a Dict. For each input, its port location is given",
              "    in the \"added_input_keys\" input. For example, ``x.y`` would set",
              "    the ``y`` input in the ``x`` namespace.",
              "",
              "    For cases where the input is a Dict attribute, the (possibly nested) attribute name is given after a colon. That means ``x:a.b`` would",
              "    set the ``['a']['b']`` attribute of the ``Dict`` given in the ``x``",
              "    input.",
              "",
              "    In cases where only a single input needs to be added, they can be",
              "    specified directly instead of wrapped in a List."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "added_input_keys",
                  "required": true,
                  "valid_types": "List, Str",
                  "info": "Specifies the location of each added input."
                },
                {
                  "name": "added_input_values",
                  "required": true,
                  "valid_types": "List, BaseType",
                  "info": "Values of the added inputs to be passed into the sub-process."
                },
                {
                  "name": "sub_process",
                  "required": true,
                  "valid_types": "Str",
                  "info": "The class of the process that should be wrapped."
                },
                {
                  "name": "inputs",
                  "required": false,
                  "valid_types": "",
                  "info": "Inputs to be passed on to the sub-process."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 201,
                  "message": "Workchain failed because the sub-process did not finish ok."
                }
              ]
            },
            "class": "aiida_optimize.wrappers._add_inputs:AddInputsWorkChain"
          },
          "optimize.wrappers.concatenate": {
            "description": [
              "Allows concatenating an arbitrary number of sub-processes.",
              "",
              "    A wrapper workchain that allows concatenating an arbitrary number",
              "    of sub-processes. Outputs of one processes can be configured to",
              "    be passed to the next one."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "output_input_mappings",
                  "required": true,
                  "valid_types": "List",
                  "info": "Defines how inputs are passed between sub-processes. Each list entry entry has the form `((process_label_a, process_label_b), mapping)`, and defines outputs of process A to be passed to process B. The `mapping` values are dictionaries `{'output_name': 'input_name'}` giving the output name (in process A) and input name (in process B) for each value to pass."
                },
                {
                  "name": "process_inputs",
                  "required": true,
                  "valid_types": "",
                  "info": "Inputs which are passed on to the sub-processes. The inputs should be grouped into a namespace identified by the process label."
                },
                {
                  "name": "process_labels",
                  "required": true,
                  "valid_types": "List",
                  "info": "A list of pairs (label, process_name). The labels can be any string, the process_name needs to be loadable by `aiida_optimize.process_inputs.load_object`, and defines which process is being run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "process_outputs",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 200,
                  "message": "Workchain failed because a sub-process failed."
                }
              ]
            },
            "class": "aiida_optimize.wrappers._concatenate:ConcatenateWorkChain"
          },
          "optimize.wrappers.create_evaluate": {
            "description": [
              "Wrapper workchain to combine two processes: The first process _creates_",
              "    a result, and the second _evaluates_ that result.",
              "",
              "    The purpose of this workchain is to facilitate optimization of processes",
              "    which don't natively produce an output that can be optimized, by only",
              "    having to add the 'evaluation' part."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "create",
                  "required": true,
                  "valid_types": "",
                  "info": "Inputs which are passed on to the create sub-process."
                },
                {
                  "name": "create_process",
                  "required": true,
                  "valid_types": "Str",
                  "info": "The sub-process which performs the create step."
                },
                {
                  "name": "evaluate_process",
                  "required": true,
                  "valid_types": "Str",
                  "info": "The sub-process which performs the evaluate step."
                },
                {
                  "name": "output_input_mapping",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "A mapping from output names of the create process to input names of the evaluate process. These outputs (if present) are forwarded to the evaluate process."
                },
                {
                  "name": "evaluate",
                  "required": false,
                  "valid_types": "",
                  "info": "Inputs which are passed on to the evaluate sub-process."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "create",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "evaluate",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 201,
                  "message": "Workchain failed because the 'create' sub-process failed."
                },
                {
                  "status": 202,
                  "message": "Workchain failed because the 'evaluate' sub-process failed."
                }
              ]
            },
            "class": "aiida_optimize.wrappers._create_evaluate:CreateEvaluateWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install aiida-optimize",
      "is_installable": "True"
    },
    "aiida-orca": {
      "code_home": "https://github.com/pzarabadip/aiida-orca",
      "development_status": "stable",
      "documentation_url": "https://aiida-orca.readthedocs.io/",
      "entry_point_prefix": "orca",
      "pip_url": "git+https://github.com/pzarabadip/aiida-orca",
      "name": "aiida-orca",
      "package_name": "aiida_orca",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Pezhman Zarabadi-Poor",
        "author_email": "pzarabadip@gmail.com",
        "version": "0.5.1",
        "description": "AiiDA plugin for ORCA code",
        "classifiers": [
          "Environment :: Plugins",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.0.0,<2.0.0",
      "entry_points": {
        "aiida.calculations": {
          "orca_main": "aiida_orca.calculations:OrcaCalculation",
          "orca_asa": "aiida_orca.calculations:OrcaAsaCalculation"
        },
        "aiida.parsers": {
          "orca_base_parser": "aiida_orca.parsers:OrcaBaseParser"
        },
        "aiida.workflows": {
          "orca.base": {
            "description": [
              "Workchain to run a orca calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "orca",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "the results of the calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "relaxed_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "relaxed structure"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "The calculation failed with an unidentified unrecoverable error."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 301,
                  "message": "The calculation failed with an unrecoverable error coming from aiida-orca."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_orca.workchains:OrcaBaseWorkChain"
          }
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/pzarabadip/aiida-orca",
      "is_installable": "True"
    },
    "aiida-phonopy": {
      "code_home": "https://github.com/aiida-phonopy/aiida-phonopy",
      "documentation_url": "https://aiida-phonopy.readthedocs.io/",
      "entry_point_prefix": "phonopy",
      "pip_url": "aiida-phonopy",
      "plugin_info": "https://raw.githubusercontent.com/aiida-phonopy/aiida-phonopy/master/setup.json",
      "name": "aiida-phonopy",
      "package_name": "aiida_phonopy",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-05-04",
        "description": "The official AiiDA plugin for Phonopy",
        "author_email": "Lorenzo Bastonero <bastonero.lorenzo@gmail.com>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.14",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "1.7.0"
      },
      "aiida_version": ">=2.8,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "phonopy.phonopy": {
            "description": [
              "Base `CalcJob` implementation for Phonopy post-processing."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Phonopy parameters (`setting tags`) for post processing. The following tags, along their type, are allowed:\nPRIMITIVE_AXES\nPRIMITIVE_AXIS\nEIGENVECTORS\nBAND\nBAND_PATHS\nBAND_POINTS\nBAND_LABELS\nBAND_CONNECTION\nBAND_INDICES\nMESH\nMP\nMESH_NUMBERS\nMP_SHIFT\nGAMMA_CENTER\nWRITE_MESH\nDOS\nDOS_RANGE\nFMIN\nFMAX\nFPITCH\nPDOS\nPROJECTION_DIRECTION\nXYZ_DIRECTION\nSIGMA\nDEBYE_MODEL\nMOMEMT\nMOMENT_ORDER\nTPROP\nTMIN\nTMAX\nTSTEP\nPRETEND_REAL\nCUTOFF_FREQUENCY\nTDISP\nTDISPMAT\nTDISPMAT_CIF\nQPOINTS\nWRITEDM\nNAC_METHOD\nQ_DIRECTION\nGROUP_VELOCITY\nGV_DELTA_Q\nSYMMETRY_TOLERANCE\nSYMMETRY\nMESH_SYMMETRY\nFC_SYMMETRY\nFULL_FORCE_CONSTANTS\nWRITE_FORCE_CONSTANTS\nANIME_TYPE\nANIME\nMODULATION\nIRREPS\nSHOW_IRREPS\nLITTLE_COGROUP"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "force_constants",
                  "required": false,
                  "valid_types": "ForceConstantsData, NoneType",
                  "info": "Force constants of the input structure."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "phonopy_data",
                  "required": false,
                  "valid_types": "PhonopyData, NoneType",
                  "info": "The preprocess output info of a previous ForceConstantsWorkChain."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Settings for phonopy calculation."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "irreducible_representations",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Irreducible representation output."
                },
                {
                  "name": "modulation",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Modulation information."
                },
                {
                  "name": "output_force_constants",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Calculated force constants."
                },
                {
                  "name": "output_parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Sum up info of phonopy calculation."
                },
                {
                  "name": "phonon_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Calculated phonon band structure."
                },
                {
                  "name": "projected_phonon_dos",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "Calculated projected DOS."
                },
                {
                  "name": "qpoints",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Calculated qpoints."
                },
                {
                  "name": "qpoints_mesh",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Calculated qpoint mesh."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "thermal_displacement_matrices",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Calculated thermal displacements matrices."
                },
                {
                  "name": "thermal_displacements",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Calculated thermal displacements."
                },
                {
                  "name": "thermal_properties",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "Calculated thermal properties."
                },
                {
                  "name": "total_phonon_dos",
                  "required": false,
                  "valid_types": "XyData",
                  "info": "Calculated total DOS."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 301,
                  "message": "The retrieved temporary folder could not be accessed."
                },
                {
                  "status": 302,
                  "message": "The retrieved folder did not contain the required stdout output file."
                },
                {
                  "status": 303,
                  "message": "The retrieved folder did not contain the required phonopy file."
                },
                {
                  "status": 304,
                  "message": "The retrieved folder did not contain one or more expected output files."
                },
                {
                  "status": 305,
                  "message": "No run mode has been selected."
                },
                {
                  "status": 310,
                  "message": "The stdout output file could not be read."
                },
                {
                  "status": 311,
                  "message": "The stdout output file could not be parsed."
                },
                {
                  "status": 312,
                  "message": "The stdout output file was incomplete probably because the calculation got interrupted."
                },
                {
                  "status": 320,
                  "message": "The loading of yaml file got an unexpected error."
                },
                {
                  "status": 321,
                  "message": "The file loading via numpy got an unexpected error."
                },
                {
                  "status": 350,
                  "message": "The parser raised an unexpected exception."
                },
                {
                  "status": 400,
                  "message": "The parser was not able to parse one or more files."
                }
              ]
            },
            "class": "aiida_phonopy.calculations.phonopy:PhonopyCalculation"
          }
        },
        "aiida.data": {
          "phonopy.force_constants": "aiida_phonopy.data.force_constants:ForceConstantsData",
          "phonopy.phonopy": "aiida_phonopy.data.phonopy:PhonopyData",
          "phonopy.preprocess": "aiida_phonopy.data.preprocess:PreProcessData",
          "phonopy.raw": "aiida_phonopy.data.raw:RawData"
        },
        "aiida.parsers": {
          "phonopy.phonopy": "aiida_phonopy.parsers.phonopy:PhonopyParser"
        },
        "aiida.workflows": {
          "phonopy.ase": "aiida_phonopy.workflows.ase:PhonopyAseWorkChain",
          "phonopy.phonopy": "aiida_phonopy.workflows.phonopy:PhonopyWorkChain"
        }
      },
      "commits_count": 18,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 4
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-phonopy",
      "is_installable": "True"
    },
    "aiida-phtools": {
      "code_home": "https://github.com/ltalirz/aiida-phtools",
      "entry_point_prefix": "phtools",
      "pip_url": "aiida-phtools",
      "plugin_info": "https://raw.github.com/ltalirz/aiida-phtools/master/setup.json",
      "name": "aiida-phtools",
      "package_name": "aiida_phtools",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2018-06-21",
        "description": "AiiDA plugin for persistence homology tools, used to analyze nanoporous materials.",
        "author": "Leopold Talirz",
        "author_email": "leopold.talirz@gmail.com",
        "license": "MIT",
        "home_page": "https://github.com/ltalirz/aiida-phtools",
        "classifiers": [
          "Programming Language :: Python"
        ],
        "version": "0.1.0a1"
      },
      "aiida_version": "*",
      "entry_points": {
        "aiida.calculations": {
          "phtools.dmatrix": "aiida_phtools.calculations.distance_matrix:DistanceMatrixCalculation",
          "phtools.surface": "aiida_phtools.calculations.pore_surface:PoreSurfaceCalculation"
        },
        "aiida.data": {
          "phtools.surface": "aiida_phtools.data.pore_surface:PoreSurfaceParameters"
        },
        "aiida.parsers": {
          "phtools.dmatrix": "aiida_phtools.parsers.distance_matrix:DistanceMatrixParser",
          "phtools.surface": "aiida_phtools.parsers.pore_surface:PoreSurfaceParser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-phtools"
    },
    "aiida-plumed": {
      "code_home": "https://github.com/ConradJohnston/aiida-plumed",
      "entry_point_prefix": "plumed",
      "pip_url": "aiida-plumed",
      "plugin_info": "https://raw.github.com/ConradJohnston/aiida-plumed/AiiDA-v1.0-compatibility/setup.json",
      "name": "aiida-plumed",
      "package_name": "aiida_plumed",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2019-09-16",
        "description": "AiiDA plugin providing support for Plumed2",
        "author": "Conrad Johnston",
        "author_email": "conrad.s.johnston@googlemail.com",
        "license": "MIT",
        "home_page": "https://github.com/ConradJohnston/aiida-plumed",
        "classifiers": [
          "Development Status :: 2 - Pre-Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.1.0a0"
      },
      "aiida_version": ">=1.0.0b3,<2.0.0",
      "entry_points": {
        "aiida.calculations": {
          "plumed": "aiida_plumed.calculations:DiffCalculation"
        },
        "aiida.cmdline.data": {
          "plumed": "aiida_plumed.cli:data_cli"
        },
        "aiida.data": {
          "plumed": "aiida_plumed.data:DiffParameters"
        },
        "aiida.parsers": {
          "plumed": "aiida_plumed.parsers:DiffParser"
        }
      },
      "commits_count": 0,
      "development_status": "pre-alpha",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-plumed<pre>Collecting aiida-plumed\n  Downloading aiida-plumed-0.1.0a0.tar.gz (11 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-plumed to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-plumed==0.1.0a0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-plumed 0.1.0a0 depends on aiida-core<2.0.0 and >=1.0.0b3\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-plumed",
      "is_installable": "False"
    },
    "aiida-porousmaterials": {
      "code_home": "https://github.com/pzarabadip/aiida-porousmaterials",
      "development_status": "stable",
      "entry_point_prefix": "porousmaterials",
      "pip_url": "aiida-porousmaterials",
      "name": "aiida-porousmaterials",
      "package_name": "aiida_porousmaterials",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-03-05",
        "description": "AiiDA plugin for PorousMaterials code",
        "author": "Pezhman Zarabadi-Poor",
        "author_email": "pzarabadip@gmail.com",
        "license": "MIT",
        "home_page": "https://github.com/pzarabadip/aiida-porousmaterials",
        "classifiers": [
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8"
        ],
        "version": "1.0.0a3"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.calculations": {
          "porousmaterials": "aiida_porousmaterials.calculations:PorousMaterialsCalculation"
        },
        "aiida.parsers": {
          "porousmaterials": "aiida_porousmaterials.parser:PorousMaterialsParser"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-porousmaterials<pre>Collecting aiida-porousmaterials\n  Downloading aiida-porousmaterials-1.0.0a3.tar.gz (5.7 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-porousmaterials to determine which version is compatible with other requirements. This could take a while.\n  Downloading aiida_porousmaterials-1.0.0a2-py3-none-any.whl.metadata (2.6 kB)\n  Downloading aiida_porousmaterials-1.0.0a1-py3-none-any.whl.metadata (2.6 kB)\nERROR: Cannot install aiida-porousmaterials==1.0.0a1, aiida-porousmaterials==1.0.0a2 and aiida-porousmaterials==1.0.0a3 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-porousmaterials 1.0.0a3 depends on aiida_core<2.0.0 and >=1.0.0\n    aiida-porousmaterials 1.0.0a2 depends on aiida-core<2.0.0 and >=1.0.0\n    aiida-porousmaterials 1.0.0a1 depends on aiida-core<2.0.0 and >=1.0.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-porousmaterials",
      "is_installable": "False"
    },
    "aiida-pseudo": {
      "code_home": "https://github.com/aiidateam/aiida-pseudo",
      "entry_point_prefix": "pseudo",
      "pip_url": "aiida-pseudo",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-pseudo/master/setup.cfg",
      "name": "aiida-pseudo",
      "package_name": "aiida_pseudo",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-10-05",
        "description": "AiiDA plugin that simplifies working with pseudo potentials.",
        "author_email": "\"Sebastiaan P. Huber\" <mail@sphuber.net>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "1.8.0"
      },
      "aiida_version": ">=2.6,<3.0",
      "entry_points": {
        "aiida.data": {
          "pseudo": "aiida_pseudo.data.pseudo.pseudo:PseudoPotentialData",
          "pseudo.jthxml": "aiida_pseudo.data.pseudo.jthxml:JthXmlData",
          "pseudo.psf": "aiida_pseudo.data.pseudo.psf:PsfData",
          "pseudo.psml": "aiida_pseudo.data.pseudo.psml:PsmlData",
          "pseudo.psp8": "aiida_pseudo.data.pseudo.psp8:Psp8Data",
          "pseudo.upf": "aiida_pseudo.data.pseudo.upf:UpfData",
          "pseudo.vps": "aiida_pseudo.data.pseudo.vps:VpsData"
        },
        "aiida.groups": {
          "pseudo.family": "aiida_pseudo.groups.family.pseudo:PseudoPotentialFamily",
          "pseudo.family.cutoffs": "aiida_pseudo.groups.family.cutoffs:CutoffsPseudoPotentialFamily",
          "pseudo.family.pseudo_dojo": "aiida_pseudo.groups.family.pseudo_dojo:PseudoDojoFamily",
          "pseudo.family.sssp": "aiida_pseudo.groups.family.sssp:SsspFamily"
        },
        "console_scripts": {
          "aiida-pseudo": "aiida_pseudo.cli:cmd_root"
        }
      },
      "commits_count": 5,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "red",
          "text": "Data",
          "count": 7
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Groups)",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install aiida-pseudo",
      "is_installable": "True"
    },
    "aiida-psi4": {
      "code_home": "https://github.com/ltalirz/aiida-psi4/tree/master",
      "development_status": "beta",
      "entry_point_prefix": "psi4",
      "pip_url": "git+https://github.com/ltalirz/aiida-psi4",
      "name": "aiida-psi4",
      "package_name": "aiida_psi4",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Leopold Talirz",
        "author_email": "leopold.talirz@gmail.com",
        "version": "0.1.0a0",
        "description": "AiiDA plugin for the Psi4 Quantum Chemistry package.",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.6.4,<2.0.0",
      "entry_points": {
        "aiida.data": {
          "psi4.atomic_input": "aiida_psi4.data:AtomicInput"
        },
        "aiida.calculations": {
          "psi4": "aiida_psi4.calculations:Psi4Calculation"
        },
        "aiida.parsers": {
          "psi4": "aiida_psi4.parsers:QCSchemaParser"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-psi4<pre>Collecting git+https://github.com/ltalirz/aiida-psi4\n  Cloning https://github.com/ltalirz/aiida-psi4 to /tmp/pip-req-build-mm9b5rj7\n  Running command git clone --filter=blob:none --quiet https://github.com/ltalirz/aiida-psi4 /tmp/pip-req-build-mm9b5rj7\n  Resolved https://github.com/ltalirz/aiida-psi4 to commit 637e6b0b29e724a158014269d55d9091c6af48c7\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Installing backend dependencies: started\n  Installing backend dependencies: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-psi4 to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-psi4==0.1.0a0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-psi4 0.1.0a0 depends on aiida-core<2.0.0 and >=1.6.4\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/ltalirz/aiida-psi4",
      "is_installable": "False"
    },
    "aiida-pyscf": {
      "code_home": "https://github.com/microsoft/aiida-pyscf",
      "entry_point_prefix": "pyscf",
      "pip_url": "aiida-pyscf",
      "plugin_info": "https://raw.githubusercontent.com/microsoft/aiida-pyscf/main/pyproject.toml",
      "name": "aiida-pyscf",
      "package_name": "aiida_pyscf",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2024-01-03",
        "description": "AiiDA plugin for the Python-based Simulations of Chemistry Framework (PySCF).",
        "author_email": "\"Sebastiaan P. Huber\" <mail@sphuber.net>, Adam Grofe <v-adamgrofe@microsoft.com>",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering"
        ],
        "version": "0.5.1"
      },
      "aiida_version": ">=2.5,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "pyscf.base": {
            "description": [
              "``CalcJob`` plugin for PySCF."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure with molecular structure definition."
                },
                {
                  "name": "checkpoint",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "Checkpoint of a previously completed calculation that failed to converge."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input parameters used to render the PySCF script template."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "checkpoint",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The checkpoint file in case the calculation did not converge. Can be used as an input for a restart."
                },
                {
                  "name": "cubegen",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "fcidump",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Computed fcidump files."
                },
                {
                  "name": "hessian",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "The computed Hessian."
                },
                {
                  "name": "model",
                  "required": false,
                  "valid_types": "PickledData",
                  "info": "The model in serialized form. Can be deserialized and used without having to run the kernel again."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Various computed properties parsed from the `FILENAME_RESULTS` output file."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The optimized structure if the input parameters contained the `optimizer` key."
                },
                {
                  "name": "trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "The geometry optimization trajectory if the input parameters contained the `optimizer` key."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 302,
                  "message": "The stdout output file was not retrieved."
                },
                {
                  "status": 303,
                  "message": "The results JSON file was not retrieved."
                },
                {
                  "status": 410,
                  "message": "The electronic minimization cycle did not reach self-consistency."
                },
                {
                  "status": 500,
                  "message": "The ionic minimization cycle did not converge for the given thresholds."
                }
              ]
            },
            "class": "aiida_pyscf.calculations.base:PyscfCalculation"
          }
        },
        "aiida.parsers": {
          "pyscf.base": "aiida_pyscf.parsers.base:PyscfParser"
        },
        "aiida.workflows": {
          "pyscf.base": {
            "description": [
              "Workchain to run a pyscf calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "pyscf",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "checkpoint",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The checkpoint file in case the calculation did not converge. Can be used as an input for a restart."
                },
                {
                  "name": "cubegen",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "fcidump",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Computed fcidump files."
                },
                {
                  "name": "hessian",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "The computed Hessian."
                },
                {
                  "name": "model",
                  "required": false,
                  "valid_types": "PickledData",
                  "info": "The model in serialized form. Can be deserialized and used without having to run the kernel again."
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Various computed properties parsed from the `FILENAME_RESULTS` output file."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "The optimized structure if the input parameters contained the `optimizer` key."
                },
                {
                  "name": "trajectory",
                  "required": false,
                  "valid_types": "TrajectoryData",
                  "info": "The geometry optimization trajectory if the input parameters contained the `optimizer` key."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 300,
                  "message": "The calculation failed with an unrecoverable error."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 310,
                  "message": "The calculation failed and did not retrieve a checkpoint file from which can be restarted."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_pyscf.workflows.base:PyscfBaseWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-pyscf",
      "is_installable": "True"
    },
    "aiida-python": {
      "entry_point_prefix": "aiida-python",
      "development_status": "beta",
      "code_home": "https://github.com/addman2/aiida-python",
      "pip_url": "aiida-python",
      "documentation_url": "https://aiida-python.readthedocs.io",
      "name": "aiida-python",
      "package_name": "aiida_python",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-11-03",
        "description": "AiiDA Python",
        "author": "Ot(t)o Kohul\u00e1k",
        "author_email": "otto.kohulak@dontemail.me",
        "license": "MIT",
        "home_page": "https://todo.nothing/",
        "classifiers": [
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.0.6"
      },
      "aiida_version": ">=2.1.0",
      "entry_points": {
        "aiida.calculations": {
          "python.calc": "aiida_python.calc:CalcJobPython"
        },
        "aiida.parsers": {
          "python.parser": "aiida_python.parser:ParserPython"
        },
        "aiida_python.serializers": {
          "int": "aiida_python.serializers:SerializerInt",
          "float": "aiida_python.serializers:SerializerFloat",
          "str": "aiida_python.serializers:SerializerStr",
          "list": "aiida_python.serializers:SerializerList",
          "arraydata": "aiida_python.serializers:SerializerArrayData"
        },
        "aiida.data": {}
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W009'>W009</a>: Prefix 'aiida-python' does not follow naming convention.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'python.calc' does not start with prefix 'aiida-python.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'python.parser' does not start with prefix 'aiida-python.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Aiida python serializers)",
          "count": 5
        }
      ],
      "pip_install_cmd": "pip install aiida-python",
      "is_installable": "True"
    },
    "aiida-pythonjob": {
      "code_home": "https://github.com/aiidateam/aiida-pythonjob",
      "entry_point_prefix": "pythonjob",
      "pip_url": "aiida-pythonjob",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-pythonjob/master/pyproject.toml",
      "name": "aiida-pythonjob",
      "package_name": "aiida_pythonjob",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-03-01",
        "description": "Run Python functions on a remote computer.",
        "author_email": "Xing Wang <xingwang1991@gmail.com>",
        "license": "MIT License\n        \n        Copyright (c) 2024 AiiDA team\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.5.2"
      },
      "aiida_version": ">=2.7.1,<3",
      "entry_points": {
        "aiida.calculations": {
          "pythonjob.pythonjob": "aiida_pythonjob.calculations.pythonjob:PythonJob"
        },
        "aiida.data": {
          "pythonjob.ase.atoms.Atoms": "aiida_pythonjob.data.atoms:AtomsData",
          "pythonjob.builtins.NoneType": "aiida_pythonjob.data.common_data:NoneData",
          "pythonjob.builtins.function": "aiida_pythonjob.data.common_data:FunctionData",
          "pythonjob.datetime.datetime": "aiida_pythonjob.data.common_data:DateTimeData",
          "pythonjob.jsonable_data": "aiida_pythonjob.data.jsonable_data:JsonableData"
        },
        "aiida.parsers": {
          "pythonjob.pythonjob": "aiida_pythonjob.parsers.pythonjob:PythonJobParser"
        }
      },
      "commits_count": 49,
      "development_status": "alpha",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E002'>E002</a>: Failed to import package aiida_pythonjob<pre>Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/opt/conda/lib/python3.10/site-packages/aiida_pythonjob/__init__.py\", line 8, in <module>\n    from .decorator import pyfunction\n  File \"/opt/conda/lib/python3.10/site-packages/aiida_pythonjob/decorator.py\", line 16, in <module>\n    from aiida_pythonjob.launch import create_inputs, prepare_pyfunction_inputs\n  File \"/opt/conda/lib/python3.10/site-packages/aiida_pythonjob/launch.py\", line 9, in <module>\n    from node_graph.node_spec import BaseHandle\nModuleNotFoundError: No module named 'node_graph.node_spec'\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 5
        }
      ],
      "pip_install_cmd": "pip install aiida-pythonjob",
      "is_installable": "True"
    },
    "aiida-qeq": {
      "code_home": "https://github.com/ltalirz/aiida-qeq",
      "development_status": "stable",
      "entry_point_prefix": "qeq",
      "pip_url": "aiida-qeq",
      "plugin_info": "https://raw.githubusercontent.com/ltalirz/aiida-qeq/master/setup.json",
      "name": "aiida-qeq",
      "package_name": "aiida_qeq",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2018-11-21",
        "description": "AiiDA plugin for computing electronic charges on atoms using equilibration-type models (QEq, EQEq, ...).",
        "author": "Leopold Talirz, Daniele Ongari",
        "author_email": "leopold.talirz@gmail.com",
        "license": "MIT",
        "home_page": "https://github.com/ltalirz/aiida-qeq",
        "classifiers": [
          "Programming Language :: Python"
        ],
        "version": "0.1.0"
      },
      "aiida_version": ">=0.12.2,<1.0.0",
      "entry_points": {
        "aiida.calculations": {
          "qeq.eqeq": "aiida_qeq.calculations.eqeq:EQeqCalculation",
          "qeq.qeq": "aiida_qeq.calculations.qeq:QeqCalculation"
        },
        "aiida.data": {
          "qeq.eqeq": "aiida_qeq.data.eqeq:EQeqParameters",
          "qeq.qeq": "aiida_qeq.data.qeq:QeqParameters"
        },
        "aiida.parsers": {
          "qeq.eqeq": "aiida_qeq.parsers.eqeq:EQeqParser",
          "qeq.qeq": "aiida_qeq.parsers.qeq:QeqParser"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-qeq<pre>Collecting aiida-qeq\n  Downloading aiida-qeq-0.1.0.tar.gz (10 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-qeq to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-qeq==0.1.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-qeq 0.1.0 depends on aiida-core<1.0.0 and >=0.12.2\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-qeq",
      "is_installable": "False"
    },
    "aiida-qp2": {
      "code_home": "https://github.com/TREX-CoE/aiida-qp2",
      "entry_point_prefix": "qp2",
      "pip_url": "aiida-qp2",
      "documentation_url": "https://trex-coe.github.io/aiida-qp2/index.html",
      "name": "aiida-qp2",
      "package_name": "aiida_qp2",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2022-02-26",
        "description": "AiiDA plugin for the Quantum Package 2.0",
        "author": "Evgeny Posenitskiy",
        "author_email": "posenitskiy@irsamc.ups-tlse.fr",
        "license": "MIT",
        "home_page": "https://github.com/TREX-CoE/aiida-qp2",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python"
        ],
        "version": "0.2.0"
      },
      "aiida_version": null,
      "entry_points": {
        "console_scripts": {
          "aqp": "aiida_qp2.cli:cli_root"
        },
        "aiida.cmdline.data": {
          "qp2.cli": "aiida_qp2.cli:cli_root"
        },
        "aiida.calculations": {
          "qp2": "aiida_qp2.calculations:QP2Calculation",
          "qp2.create": "aiida_qp2.create.calculation:QP2CreateCalculation",
          "qp2.run": "aiida_qp2.run.calculation:QP2RunCalculation",
          "qp2.qmcchemrun": "aiida_qp2.run.qmcchem_calculation:QP2QmcchemRunCalculation"
        },
        "aiida.parsers": {
          "qp2": "aiida_qp2.parsers:QP2Parser",
          "qp2.create": "aiida_qp2.create.parser:QP2CreateParser",
          "qp2.run": "aiida_qp2.run.parser:QP2RunParser",
          "qp2.qmcchemrun": "aiida_qp2.run.qmcchem_parser:QP2QmcchemRunParser"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-qp2<pre>Collecting aiida-qp2\n  Downloading aiida-qp2-0.2.0.tar.gz (9.8 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Installing backend dependencies: started\n  Installing backend dependencies: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-qp2 to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-qp2==0.2.0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-qp2 0.2.0 depends on aiida-core<2.0.0 and >=1.1.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 4
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 4
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Data commands)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-qp2",
      "is_installable": "False"
    },
    "aiida-quantumespresso": {
      "code_home": "https://github.com/aiidateam/aiida-quantumespresso",
      "documentation_url": "https://aiida-quantumespresso.readthedocs.io/",
      "entry_point_prefix": "quantumespresso",
      "pip_url": "aiida-quantumespresso",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-quantumespresso/master/setup.json",
      "name": "aiida-quantumespresso",
      "package_name": "aiida_quantumespresso",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-05-13",
        "description": "The official AiiDA plugin for Quantum ESPRESSO",
        "author_email": "The AiiDA team <developers@aiida.net>",
        "license": "The MIT License (MIT)\n        \n        Copyright (c), 2015-2020, ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE\n        (Theory and Simulation of Materials (THEOS) and National Centre for\n        Computational Design and Discovery of Novel Materials (NCCR MARVEL)).\n        All rights reserved.\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in\n        all copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n        THE SOFTWARE.",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.14"
        ],
        "version": "5.0.0"
      },
      "aiida_version": ">=2.8,<3.0",
      "entry_points": {
        "console_scripts": {
          "aiida-quantumespresso": "aiida_quantumespresso.cli:cmd_root"
        },
        "aiida.calculations": {
          "quantumespresso.bands": "aiida_quantumespresso.calculations.bands:BandsCalculation",
          "quantumespresso.cp": "aiida_quantumespresso.calculations.cp:CpCalculation",
          "quantumespresso.create_kpoints_from_distance": "aiida_quantumespresso.calculations.functions.create_kpoints_from_distance:create_kpoints_from_distance",
          "quantumespresso.create_magnetic_configuration": "aiida_quantumespresso.calculations.functions.create_magnetic_configuration:create_magnetic_configuration",
          "quantumespresso.dos": "aiida_quantumespresso.calculations.dos:DosCalculation",
          "quantumespresso.matdyn": "aiida_quantumespresso.calculations.matdyn:MatdynCalculation",
          "quantumespresso.merge_ph_outputs": "aiida_quantumespresso.calculations.functions.merge_ph_outputs:merge_ph_outputs",
          "quantumespresso.namelists": "aiida_quantumespresso.calculations.namelists:NamelistsCalculation",
          "quantumespresso.neb": "aiida_quantumespresso.calculations.neb:NebCalculation",
          "quantumespresso.open_grid": "aiida_quantumespresso.calculations.open_grid:OpenGridCalculation",
          "quantumespresso.ph": "aiida_quantumespresso.calculations.ph:PhCalculation",
          "quantumespresso.pp": "aiida_quantumespresso.calculations.pp:PpCalculation",
          "quantumespresso.projwfc": "aiida_quantumespresso.calculations.projwfc:ProjwfcCalculation",
          "quantumespresso.pw": "aiida_quantumespresso.calculations.pw:PwCalculation",
          "quantumespresso.pw2gw": "aiida_quantumespresso.calculations.pw2gw:Pw2gwCalculation",
          "quantumespresso.pw2wannier90": "aiida_quantumespresso.calculations.pw2wannier90:Pw2wannier90Calculation",
          "quantumespresso.pwimmigrant": "aiida_quantumespresso.calculations.pwimmigrant:PwimmigrantCalculation",
          "quantumespresso.q2r": "aiida_quantumespresso.calculations.q2r:Q2rCalculation",
          "quantumespresso.seekpath_structure_analysis": "aiida_quantumespresso.calculations.functions.seekpath_structure_analysis:seekpath_structure_analysis"
        },
        "aiida.data": {
          "quantumespresso.force_constants": "aiida_quantumespresso.data.force_constants:ForceConstantsData",
          "quantumespresso.hubbard_structure": "aiida_quantumespresso.data.hubbard_structure:HubbardStructureData"
        },
        "aiida.parsers": {
          "quantumespresso.bands": "aiida_quantumespresso.parsers.bands:BandsParser",
          "quantumespresso.cp": "aiida_quantumespresso.parsers.cp:CpParser",
          "quantumespresso.dos": "aiida_quantumespresso.parsers.dos:DosParser",
          "quantumespresso.matdyn": "aiida_quantumespresso.parsers.matdyn:MatdynParser",
          "quantumespresso.neb": "aiida_quantumespresso.parsers.neb:NebParser",
          "quantumespresso.open_grid": "aiida_quantumespresso.parsers.open_grid:OpenGridParser",
          "quantumespresso.ph": "aiida_quantumespresso.parsers.ph:PhParser",
          "quantumespresso.pp": "aiida_quantumespresso.parsers.pp:PpParser",
          "quantumespresso.projwfc": "aiida_quantumespresso.parsers.projwfc:ProjwfcParser",
          "quantumespresso.pw": "aiida_quantumespresso.parsers.pw:PwParser",
          "quantumespresso.pw2gw": "aiida_quantumespresso.parsers.pw2gw:Pw2gwParser",
          "quantumespresso.pw2wannier90": "aiida_quantumespresso.parsers.pw2wannier90:Pw2wannier90Parser",
          "quantumespresso.q2r": "aiida_quantumespresso.parsers.q2r:Q2rParser"
        },
        "aiida.tools.calculations": {
          "quantumespresso.pw": "aiida_quantumespresso.tools.calculations.pw:PwCalculationTools"
        },
        "aiida.tools.data.orbitals": {
          "noncollinearhydrogen": "aiida_quantumespresso.tools.data.orbital.noncollinearhydrogen:NoncollinearHydrogenOrbital",
          "spinorbithydrogen": "aiida_quantumespresso.tools.data.orbital.spinorbithydrogen:SpinorbitHydrogenOrbital"
        },
        "aiida.workflows": {
          "quantumespresso.bands.base": "aiida_quantumespresso.workflows.bands.base:BandsBaseWorkChain",
          "quantumespresso.matdyn.base": "aiida_quantumespresso.workflows.matdyn.base:MatdynBaseWorkChain",
          "quantumespresso.neb.base": "aiida_quantumespresso.workflows.neb.base:NebBaseWorkChain",
          "quantumespresso.pdos": "aiida_quantumespresso.workflows.pdos:PdosWorkChain",
          "quantumespresso.ph.base": "aiida_quantumespresso.workflows.ph.base:PhBaseWorkChain",
          "quantumespresso.pw.bands": "aiida_quantumespresso.workflows.pw.bands:PwBandsWorkChain",
          "quantumespresso.pw.base": "aiida_quantumespresso.workflows.pw.base:PwBaseWorkChain",
          "quantumespresso.pw.relax": "aiida_quantumespresso.workflows.pw.relax:PwRelaxWorkChain",
          "quantumespresso.q2r.base": "aiida_quantumespresso.workflows.q2r.base:Q2rBaseWorkChain"
        }
      },
      "commits_count": 128,
      "development_status": "stable",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'noncollinearhydrogen' does not start with prefix 'quantumespresso.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'spinorbithydrogen' does not start with prefix 'quantumespresso.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 19
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 13
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 9
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        },
        {
          "colorclass": "orange",
          "text": "Other (Tools calculations, Tools data orbitals)",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install aiida-quantumespresso",
      "is_installable": "True"
    },
    "aiida-raspa": {
      "code_home": "https://github.com/yakutovicha/aiida-raspa",
      "entry_point_prefix": "raspa",
      "pip_url": "aiida-raspa",
      "plugin_info": "https://raw.github.com/yakutovicha/aiida-raspa/master/setup.json",
      "name": "aiida-raspa",
      "package_name": "aiida_raspa",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-08-26",
        "description": "AiiDA plugin for RASPA code",
        "author_email": "Aliaksandr Yakutovich <aliaksandr.yakutovich@epfl.ch>, Miriam Pougin <miriam.pougin@epfl.ch>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "2.0.0"
      },
      "aiida_version": ">=2.3,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "raspa": {
            "description": [
              "This is a RaspaCalculation, subclass of CalcJob, to prepare input for RASPA code.",
              "    For information on RASPA, refer to: https://github.com/iraspa/raspa2."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "block_pocket",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Zeo++ block pocket file"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Additional input file(s)"
                },
                {
                  "name": "framework",
                  "required": false,
                  "valid_types": "CifData",
                  "info": "Input framework(s)"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote folder used to continue the same simulation stating from the binary restarts."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "retrieved_parent_folder",
                  "required": false,
                  "valid_types": "FolderData, NoneType",
                  "info": "To use an old calculation as a starting poing for a new one."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Additional input parameters"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The results of a calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "warnings",
                  "required": false,
                  "valid_types": "List",
                  "info": "Warnings that appeared during the calculation"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 101,
                  "message": "The retrieved folder does not contain an output file."
                },
                {
                  "status": 102,
                  "message": "The output does not contain \"Starting simulation\"."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 500,
                  "message": "The calculation could not be completed due to the lack of time."
                }
              ]
            },
            "class": "aiida_raspa.calculations:RaspaCalculation"
          }
        },
        "aiida.parsers": {
          "raspa": "aiida_raspa.parsers:RaspaParser"
        },
        "aiida.workflows": {
          "raspa.base": {
            "description": [
              "Workchain to run a RASPA calculation with automated error handling and restarts."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "raspa",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The results of a calculation"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                },
                {
                  "name": "warnings",
                  "required": false,
                  "valid_types": "List",
                  "info": "Warnings that appeared during the calculation"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                }
              ]
            },
            "class": "aiida_raspa.workchains:RaspaBaseWorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-raspa",
      "is_installable": "True"
    },
    "aiida-reoptimize": {
      "code_home": "https://github.com/mpds-io/aiida-reoptimize",
      "entry_point_prefix": "reoptimize",
      "pip_url": "git+https://github.com/mpds-io/aiida-reoptimize",
      "documentation_url": "https://mpds-io.github.io/aiida-reoptimize/",
      "name": "aiida-reoptimize",
      "package_name": "aiida_reoptimize",
      "hosted_on": "github.com",
      "metadata": {
        "version": "0.8.14",
        "description": "Algorithms for external optimization of crystal structures",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "Operating System :: OS Independent",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.14",
          "Programming Language :: Python :: 3.15",
          "Topic :: Scientific/Engineering",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics",
          "Topic :: Scientific/Engineering :: Information Analysis"
        ],
        "author": "Anton Domnin",
        "author_email": "a.v.daomnin@gmail.com"
      },
      "aiida_version": ">=2.5,<3",
      "entry_points": {
        "aiida.workflows": {
          "reoptimize.AdamFleurRelaxOptimizer": {
            "description": [
              "Adam optimizer registered for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:AdamFleurRelaxOptimizer"
          },
          "reoptimize.RMSpropFleurRelaxOptimizer": {
            "description": [
              "RMSprop optimizer registered for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:RMSpropFleurRelaxOptimizer"
          },
          "reoptimize.BFGSFleurRelaxOptimizer": {
            "description": [
              "BFGS optimizer registered for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:BFGSFleurRelaxOptimizer"
          },
          "reoptimize.PyMOOFleurRelaxOptimizer": {
            "description": [
              "PyMOO-backed optimizer registered for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Algorithm name."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:PyMOOFleurRelaxOptimizer"
          },
          "reoptimize.G3PCXFleurRelaxOptimizer": {
            "description": [
              "Fixed G3PCX PyMOO optimizer for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Fixed PyMOO algorithm name (G3PCX)."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:G3PCXFleurRelaxOptimizer"
          },
          "reoptimize.NRBOFleurRelaxOptimizer": {
            "description": [
              "Fixed NRBO PyMOO optimizer for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Fixed PyMOO algorithm name (NRBO)."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:NRBOFleurRelaxOptimizer"
          },
          "reoptimize.CDGFleurRelaxOptimizer": {
            "description": [
              "Conjugate-gradient optimizer registered for FLEUR relax lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurRelax:CDGFleurRelaxOptimizer"
          },
          "reoptimize.AdamFleurSCFOptimizer": {
            "description": [
              "Adam optimizer registered for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:AdamFleurSCFOptimizer"
          },
          "reoptimize.RMSpropFleurSCFOptimizer": {
            "description": [
              "RMSprop optimizer registered for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:RMSpropFleurSCFOptimizer"
          },
          "reoptimize.BFGSFleurSCFOptimizer": {
            "description": [
              "BFGS optimizer registered for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:BFGSFleurSCFOptimizer"
          },
          "reoptimize.PyMOOFleurSCFOptimizer": {
            "description": [
              "PyMOO-backed optimizer registered for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Algorithm name."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:PyMOOFleurSCFOptimizer"
          },
          "reoptimize.G3PCXFleurSCFOptimizer": {
            "description": [
              "Fixed G3PCX PyMOO optimizer for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Fixed PyMOO algorithm name (G3PCX)."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:G3PCXFleurSCFOptimizer"
          },
          "reoptimize.NRBOFleurSCFOptimizer": {
            "description": [
              "Fixed NRBO PyMOO optimizer for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Fixed PyMOO algorithm name (NRBO)."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:NRBOFleurSCFOptimizer"
          },
          "reoptimize.CDGFleurSCFOptimizer": {
            "description": [
              "Conjugate-gradient optimizer registered for FLEUR SCF lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.FleurSCF:CDGFleurSCFOptimizer"
          },
          "reoptimize.AdamCrystalOptimizer": {
            "description": [
              "Adam optimizer registered for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:AdamCrystalOptimizer"
          },
          "reoptimize.CDGCrystalOptimizer": {
            "description": [
              "Conjugate-gradient optimizer registered for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:CDGCrystalOptimizer"
          },
          "reoptimize.RMSpropCrystalOptimizer": {
            "description": [
              "RMSprop optimizer registered for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:RMSpropCrystalOptimizer"
          },
          "reoptimize.BFGSCrystalOptimizer": {
            "description": [
              "BFGS optimizer registered for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmax",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 496,
                  "message": "Optimization did not converge within the maximum iterations."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                },
                {
                  "status": 498,
                  "message": "Optimizer stuck: step rate reached minimum or too many consecutive worse objectives."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:BFGSCrystalOptimizer"
          },
          "reoptimize.PyMOOCrystalOptimizer": {
            "description": [
              "PyMOO-backed optimizer registered for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Algorithm name."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:PyMOOCrystalOptimizer"
          },
          "reoptimize.G3PCXCrystalOptimizer": {
            "description": [
              "Fixed G3PCX PyMOO optimizer for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Fixed PyMOO algorithm name (G3PCX)."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:G3PCXCrystalOptimizer"
          },
          "reoptimize.NRBOCrystalOptimizer": {
            "description": [
              "Fixed NRBO PyMOO optimizer for CRYSTAL lattice optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "algorithm_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Fixed PyMOO algorithm name (NRBO)."
                },
                {
                  "name": "itmax",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Optimization parameters including bounds, optional tol, and algorithm settings."
                },
                {
                  "name": "get_best",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Whether to return the best result node identifier."
                },
                {
                  "name": "itmin",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData, NoneType",
                  "info": "Chemical structure for the optimization."
                }
              ],
              "outputs": [
                {
                  "name": "final_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Final value of the objective function."
                },
                {
                  "name": "optimized_parameters",
                  "required": true,
                  "valid_types": "List",
                  "info": "Optimized parameters."
                },
                {
                  "name": "history",
                  "required": false,
                  "valid_types": "List",
                  "info": "Optimization history."
                },
                {
                  "name": "result_node_pk",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Primary key of the best result node."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 494,
                  "message": "Evaluator WorkChain failed before returning evaluation results."
                },
                {
                  "status": 495,
                  "message": "Optimization parameters are incompatible with the optimizer or input structure."
                },
                {
                  "status": 497,
                  "message": "Optimization failed to find a valid solution."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Optimization.Crystal:NRBOCrystalOptimizer"
          },
          "reoptimize.FleurSCFLatticeProblem": {
            "description": [
              "Evaluate lattice perturbations with the FLEUR SCF workchain.",
              "",
              "    The workflow accepts the generic static evaluator inputs and forwards the",
              "    resolved builder parameters to ``FleurScfWorkChain``."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "calculator_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Parameters for the calculator workchain"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure to evaluate with the workchain"
                },
                {
                  "name": "targets",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of structural parameter sets to evaluate"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure_keyword",
                  "required": false,
                  "valid_types": "List",
                  "info": "Path to the structure input in the calculator builder."
                }
              ],
              "outputs": [
                {
                  "name": "evaluation_results",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of evaluation results for each target"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 490,
                  "message": "Target parameter vector is incompatible with the structure Bravais lattice."
                },
                {
                  "status": 491,
                  "message": "Generated structure could not be standardized with spglib."
                },
                {
                  "status": 492,
                  "message": "Generated structure magnetic moments could not be preserved."
                },
                {
                  "status": 493,
                  "message": "Generated structure could not be assembled before calculator submission."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Evaluation.fleur_evaluators:FleurSCFLatticeProblem"
          },
          "reoptimize.FleurRelaxLatticeProblem": {
            "description": [
              "Evaluate lattice perturbations with the FLEUR relax workchain.",
              "",
              "    The workflow accepts the generic static evaluator inputs and forwards the",
              "    resolved builder parameters to ``FleurRelaxWorkChain``."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "calculator_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Parameters for the calculator workchain"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure to evaluate with the workchain"
                },
                {
                  "name": "targets",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of structural parameter sets to evaluate"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure_keyword",
                  "required": false,
                  "valid_types": "List",
                  "info": "Path to the structure input in the calculator builder."
                }
              ],
              "outputs": [
                {
                  "name": "evaluation_results",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of evaluation results for each target"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 490,
                  "message": "Target parameter vector is incompatible with the structure Bravais lattice."
                },
                {
                  "status": 491,
                  "message": "Generated structure could not be standardized with spglib."
                },
                {
                  "status": 492,
                  "message": "Generated structure magnetic moments could not be preserved."
                },
                {
                  "status": 493,
                  "message": "Generated structure could not be assembled before calculator submission."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Evaluation.fleur_evaluators:FleurRelaxLatticeProblem"
          },
          "reoptimize.CrystalLatticeProblem": {
            "description": [
              "Evaluate lattice perturbations with the CRYSTAL base workchain.",
              "",
              "    Inputs inherited from :class:`StaticEvalLatticeProblem`:",
              "    - ``structure``: source crystal structure.",
              "    - ``targets``: list of lattice parameter perturbations.",
              "    - ``calculator_parameters``: inputs forwarded to CRYSTAL.",
              "    - ``structure_keyword``: path to the structure input in the builder."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "calculator_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Parameters for the calculator workchain"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure to evaluate with the workchain"
                },
                {
                  "name": "targets",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of structural parameter sets to evaluate"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "structure_keyword",
                  "required": false,
                  "valid_types": "List",
                  "info": "Path to the structure input in the calculator builder."
                }
              ],
              "outputs": [
                {
                  "name": "evaluation_results",
                  "required": true,
                  "valid_types": "List",
                  "info": "List of evaluation results for each target"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 490,
                  "message": "Target parameter vector is incompatible with the structure Bravais lattice."
                },
                {
                  "status": 491,
                  "message": "Generated structure could not be standardized with spglib."
                },
                {
                  "status": 492,
                  "message": "Generated structure magnetic moments could not be preserved."
                },
                {
                  "status": 493,
                  "message": "Generated structure could not be assembled before calculator submission."
                }
              ]
            },
            "class": "aiida_reoptimize.workflows.Evaluation.crystal_evaluation:CrystalLatticeProblem"
          }
        }
      },
      "commits_count": 151,
      "development_status": "beta",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 24
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/mpds-io/aiida-reoptimize",
      "is_installable": "True"
    },
    "aiida-shell": {
      "code_home": "https://github.com/sphuber/aiida-shell",
      "entry_point_prefix": "core",
      "pip_url": "aiida-shell",
      "plugin_info": "https://raw.github.com/sphuber/aiida-shell/master/pyproject.toml",
      "name": "aiida-shell",
      "package_name": "aiida_shell",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-01-14",
        "description": "AiiDA plugin that makes running shell commands easy.",
        "author_email": "\"Sebastiaan P. Huber\" <mail@sphuber.net>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering"
        ],
        "version": "0.8.2"
      },
      "aiida_version": ">=2.6.1,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "core.shell": {
            "description": [
              "Implementation of :class:`aiida.engine.CalcJob` to run a simple shell command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "arguments",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": ""
                },
                {
                  "name": "filenames",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "nodes",
                  "required": false,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "outputs",
                  "required": false,
                  "valid_types": "List, NoneType",
                  "info": ""
                },
                {
                  "name": "parser",
                  "required": false,
                  "valid_types": "EntryPointData, PickledData, NoneType",
                  "info": ""
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Exit status could not be determined: exit status file was not retrieved."
                },
                {
                  "status": 301,
                  "message": "Exit status could not be determined: exit status file does not contain a valid integer."
                },
                {
                  "status": 302,
                  "message": "The stdout file was not retrieved."
                },
                {
                  "status": 303,
                  "message": "One or more output files defined in the `outputs` input were not retrieved: {missing_filepaths}."
                },
                {
                  "status": 310,
                  "message": "Callable specified in the `parser` input excepted: {exception}."
                },
                {
                  "status": 400,
                  "message": "The command exited with a non-zero status: {status} {stderr}."
                },
                {
                  "status": 410,
                  "message": "The command exited with a zero status but the stderr was not empty."
                }
              ]
            },
            "class": "aiida_shell.calculations.shell:ShellJob"
          }
        },
        "aiida.data": {
          "core.code.installed.shell": "aiida_shell.data.code:ShellCode",
          "core.entry_point": "aiida_shell.data.entry_point:EntryPointData",
          "core.pickled": "aiida_shell.data.pickled:PickledData"
        },
        "aiida.parsers": {
          "core.shell": "aiida_shell.parsers.shell:ShellParser"
        }
      },
      "commits_count": 4,
      "development_status": "beta",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W009'>W009</a>: Prefix 'core' does not follow naming convention."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install aiida-shell",
      "is_installable": "True"
    },
    "aiida-siesta": {
      "code_home": "https://github.com/siesta-project/aiida_siesta_plugin/tree/master",
      "documentation_url": "https://aiida-siesta-plugin.readthedocs.io/",
      "entry_point_prefix": "siesta",
      "pip_url": "aiida-siesta",
      "name": "aiida-siesta",
      "package_name": "aiida_siesta",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2022-07-17",
        "description": "A plugin for Siesta's basic functionality within the AiiDA framework.",
        "author_email": "Albero Garcia <albertog@icmab.es>, \"Victor M. Garcia-Suarez\" <garciavictor@uniovi.es>, Emanuele Bosoni <ebosoni@icmab.es>, Vladimir Dikan <vdikan@icmab.es>, Pol Febrer <pol.febrer@icn2.cat>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "2.0.0"
      },
      "aiida_version": ">=2.0.0,<3.0.0",
      "entry_points": {
        "aiida.calculations": {
          "siesta.siesta": {
            "description": [
              "Siesta calculator class for AiiDA."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The calculation results"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Optional band structure"
                },
                {
                  "name": "forces_and_stress",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional forces and stress"
                },
                {
                  "name": "ion_files",
                  "required": false,
                  "valid_types": "IonData",
                  "info": ""
                },
                {
                  "name": "optical_eps2",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional eps2 optical data"
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Optional relaxed structure"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 350,
                  "message": "Statement \"Job completed\" not detected, unknown error"
                },
                {
                  "status": 448,
                  "message": "Problems in the polarization of a basis element"
                },
                {
                  "status": 449,
                  "message": "Split_norm parameter too small"
                },
                {
                  "status": 450,
                  "message": "Calculation did not reach scf convergence!"
                },
                {
                  "status": 451,
                  "message": "Calculation did not reach geometry convergence!"
                },
                {
                  "status": 452,
                  "message": "Bands analysis was requested, but file is not present"
                },
                {
                  "status": 453,
                  "message": "Failure while parsing the bands file"
                },
                {
                  "status": 454,
                  "message": "Optical calculation requested, but file is not present"
                }
              ]
            },
            "class": "aiida_siesta.calculations.siesta:SiestaCalculation"
          },
          "siesta.stm": {
            "description": [
              "Plugin for the \"plstm\" program in the Siesta distribution.",
              "",
              "    The \"plstm\" program takes the .LDOS file and generates a plot file with a simulated STM image.",
              "    It supports both the old \"plstm\" versions (inputs in a files) and the new ones (inputs in the command",
              "    line). Spin options are supported only in recent \"plstm\" versions, therefore ignored otherwise."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "ldos_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Parent folder"
                },
                {
                  "name": "mode",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Allowed values are \"constant-height\" or \"constant-current\""
                },
                {
                  "name": "value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Value of height in Ang or value of current in e/bohr**3"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                },
                {
                  "name": "spin_option",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Spin option follows plstm sintax: \"q\" no spin, \"s\" total spin, \"x\",\"y\",\"z\" the three spin components"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "For the moment only parser version and name of .STM file"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "stm_array",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "The contour data for the STM image"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 101,
                  "message": "The retrieved folder does not contain a CH.STM file"
                },
                {
                  "status": 102,
                  "message": "The .STM file can not be read"
                },
                {
                  "status": 102,
                  "message": "The array containing the STM data can not be produced"
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_siesta.calculations.stm:STMCalculation"
          }
        },
        "aiida.parsers": {
          "siesta.parser": "aiida_siesta.parsers.siesta:SiestaParser",
          "siesta.stm": "aiida_siesta.parsers.stm:STMParser"
        },
        "aiida.workflows": {
          "siesta.base": {
            "description": [
              "Base Workchain to launch a total energy calculation via Siesta."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The calculation results"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Optional band structure"
                },
                {
                  "name": "forces_and_stress",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional forces and stress"
                },
                {
                  "name": "ion_files",
                  "required": false,
                  "valid_types": "IonData",
                  "info": ""
                },
                {
                  "name": "optical_eps2",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional eps2 optical data"
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Optional relaxed structure"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                },
                {
                  "status": 403,
                  "message": "Basis polarization problem."
                },
                {
                  "status": 404,
                  "message": "Error in the parsing of bands"
                }
              ]
            },
            "class": "aiida_siesta.workflows.base:SiestaBaseWorkChain"
          },
          "siesta.eos": {
            "description": [
              "WorkChain to calculate the equation of state of a solid.",
              "",
              "    The cell shape is fixed, only the volume is rescaled.",
              "    In particular the volumes considered are 7 equidistant volumes",
              "    around a starting volume. The starting volume is",
              "    an optional input of the WorkChain (called volume_per_atom).",
              "    If not specified, the input structure volume is used with no modifications.",
              "    All the SiestaBaseWorkChain inputs are other inputs of the workchain.",
              "    This WorkChain also tries to perform a Birch_Murnaghan fit",
              "    on the calculatad E(V) data."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "batch_size",
                  "required": false,
                  "valid_types": "Int",
                  "info": "The maximum number of simulations that should run at the same time.\n            You can set this to a very large number to make sure that all simulations run in\n            one single batch if you want."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "iterate_mode",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Indicates the way the parameters should be iterated.\n            Currently allowed values are:\n            - 'zip': zips all the parameters together (all parameters should\n              have the same number of values!)\n            - 'product': performs a cartesian product of the parameters. That is,\n              all possible combinations of parameters and values are explored.\n            "
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "scales",
                  "required": false,
                  "valid_types": "",
                  "info": "\n            Factors by which the structure should be scaled.\n            "
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                },
                {
                  "name": "volume_per_atom",
                  "required": false,
                  "valid_types": "Float, NoneType",
                  "info": "Volume per atom around which to perform the EqOfState"
                }
              ],
              "outputs": [
                {
                  "name": "results_dict",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Containing the calculated E(V) data and, if the fit is sucessfull, the resulting fit parameters"
                },
                {
                  "name": "equilibrium_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Equilibrium volume structure. Returned only if the fit is succesfull"
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_siesta.workflows.eos:EqOfStateFixedCellShape"
          },
          "siesta.bandgap": {
            "description": [
              "Workchain to obtain the bands and bandgap of a structure through Siesta.",
              "",
              "    If \"bandskpoints\" are set in inputs, it behaves like `SiestaBaseWorkChain`",
              "    adding just the bandgap calculation at the end. If no bandskpoints",
              "    was specified, the bands are computed anyway on a kpoints path automatically",
              "    assigned using seekpath and the input (output) structure",
              "    of the single-point (relaxation/md) calculation."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "seekpath_dict",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "dictionary of seekpath parameters that are pased to `get_explicit_kpoints_path`"
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The calculation results"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "band_gap_info",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Optional band structure"
                },
                {
                  "name": "forces_and_stress",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional forces and stress"
                },
                {
                  "name": "ion_files",
                  "required": false,
                  "valid_types": "IonData",
                  "info": ""
                },
                {
                  "name": "optical_eps2",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional eps2 optical data"
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Optional relaxed structure"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 200,
                  "message": "The main SiestaBaseWorkChain failed"
                },
                {
                  "status": 201,
                  "message": "The SiestaBaseWorkChain to obtain the bands failed"
                }
              ]
            },
            "class": "aiida_siesta.workflows.bandgap:BandgapWorkChain"
          },
          "siesta.stm": {
            "description": [
              "STM Workchain.",
              "",
              "    This workchain runs a DFT calculation with siesta, calculates",
              "    the local density of states in an energy window specified by the user (stored",
              "    in a .LDOS file) and post-process it in order to produce simulated STM images."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "emax",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Higher boundary energy (in eV respect to Ef) for LDOS calculation"
                },
                {
                  "name": "emin",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Lower boundary energy (in eV respect to Ef) for LDOS calculation"
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "stm_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "STM plstm code"
                },
                {
                  "name": "stm_mode",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Allowed values are \"constant-height\" or \"constant-current\""
                },
                {
                  "name": "stm_spin",
                  "required": true,
                  "valid_types": "Str",
                  "info": "Allowed values are \"none\", \"collinear\" or \"non-collinear\""
                },
                {
                  "name": "stm_value",
                  "required": true,
                  "valid_types": "Float",
                  "info": "Value of height in Ang or value of current in e/bohr**3"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                },
                {
                  "name": "stm_options",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "STM plstm code resources and options"
                }
              ],
              "outputs": [
                {
                  "name": "stm_array",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": ""
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 200,
                  "message": "The main SiestaBaseWorkChain failed"
                },
                {
                  "status": 201,
                  "message": "The SiestaBaseWorkChain to obtain the .LDOS file failed"
                },
                {
                  "status": 202,
                  "message": "The STM post-process failed"
                }
              ]
            },
            "class": "aiida_siesta.workflows.stm:SiestaSTMWorkChain"
          },
          "siesta.baseneb": {
            "description": [
              "Workchain to run a NEB MEP optimization starting from a guessed path.",
              "",
              "    In theory, such task can be accomplished using directly the SiestaCalculation",
              "    and passing the guessed path as xyz files in lua.input_files input (see",
              "    `examples/plugins/siesta/example_neb.py`). Here, instead, the",
              "    guessed path must be specified as a set of structures in a `TrajectoryData` object.",
              "    The structures in `TrajectoryData` are then transformed in xyz files and placed",
              "    in a directory that is the passed to lua.input_files when the SiestaCalculation is called.",
              "    This better preserves the provenance. Moreover allows cleaner use of ghost (often necessaries)",
              "    Finally, we have a dedicated output containing all the NEB quantities.",
              "    This workchain can also become the place where to deal with possible errors due",
              "    to the lua features."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "neb_script",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "Lua script for NEB engine"
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Options"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "starting_path",
                  "required": true,
                  "valid_types": "TrajectoryData",
                  "info": "Starting Path"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                },
                {
                  "name": "spring_constant",
                  "required": false,
                  "valid_types": "Float",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "neb_output_package",
                  "required": true,
                  "valid_types": "TrajectoryData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 201,
                  "message": "The NEB calculation failed"
                },
                {
                  "status": 202,
                  "message": "The .xyz files or the NEB.results file could not be retrieved"
                }
              ]
            },
            "class": "aiida_siesta.workflows.neb_base:SiestaBaseNEBWorkChain"
          },
          "siesta.epsilon": {
            "description": [
              "Workchain to obtain the electronic contribution to the static dielectric constant using Siesta."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "optical",
                  "required": true,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "options",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The calculation results"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "Optional band structure"
                },
                {
                  "name": "epsilon",
                  "required": false,
                  "valid_types": "Float",
                  "info": "Low-frequency dielectric constant"
                },
                {
                  "name": "forces_and_stress",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional forces and stress"
                },
                {
                  "name": "ion_files",
                  "required": false,
                  "valid_types": "IonData",
                  "info": ""
                },
                {
                  "name": "optical_eps2",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "Optional eps2 optical data"
                },
                {
                  "name": "output_structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Optional relaxed structure"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 301,
                  "message": "The sub process excepted."
                },
                {
                  "status": 302,
                  "message": "The sub process was killed."
                },
                {
                  "status": 401,
                  "message": "The maximum number of iterations was exceeded."
                },
                {
                  "status": 402,
                  "message": "The process failed for an unknown reason, twice in a row."
                },
                {
                  "status": 403,
                  "message": "Basis polarization problem."
                },
                {
                  "status": 404,
                  "message": "Error in the parsing of bands"
                }
              ]
            },
            "class": "aiida_siesta.workflows.epsilon:EpsilonWorkChain"
          },
          "siesta.iterator": {
            "description": [
              "Iterator for the SietaBaseWorkChain.",
              "",
              "    The iterator is extended to iterate over any Siesta keyword.",
              "    WARNING: if a keyword not recognized by Siesta is used in `iterate_over`, the iterator will not",
              "    complain. It will just add the keyword to the parameters dict and run the calculation!"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "iterate_over",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "A dictionary where each key is the name of a parameter we want to iterate\n                over (str) and each value is a list with all the values to iterate over for\n                that parameter. Each value in the list can be either a node (unstored or stored)\n                or a simple python object (str, float, int, bool).\n                Note that each subclass might parse this keys and values differently, so you should\n                know how they do it.\n                "
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "batch_size",
                  "required": false,
                  "valid_types": "Int",
                  "info": "The maximum number of simulations that should run at the same time.\n            You can set this to a very large number to make sure that all simulations run in\n            one single batch if you want."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "iterate_mode",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Indicates the way the parameters should be iterated.\n            Currently allowed values are:\n            - 'zip': zips all the parameters together (all parameters should\n              have the same number of values!)\n            - 'product': performs a cartesian product of the parameters. That is,\n              all possible combinations of parameters and values are explored.\n            "
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_siesta.workflows.iterate:SiestaIterator"
          },
          "siesta.converger": {
            "description": [
              "Only connects the two parent classes."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "iterate_over",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "A dictionary where each key is the name of a parameter we want to iterate\n                over (str) and each value is a list with all the values to iterate over for\n                that parameter. Each value in the list can be either a node (unstored or stored)\n                or a simple python object (str, float, int, bool).\n                Note that each subclass might parse this keys and values differently, so you should\n                know how they do it.\n                "
                },
                {
                  "name": "bandskpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints for bands"
                },
                {
                  "name": "basis",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input basis"
                },
                {
                  "name": "batch_size",
                  "required": false,
                  "valid_types": "Int",
                  "info": "The maximum number of simulations that should run at the same time.\n            You can set this to a very large number to make sure that all simulations run in\n            one single batch if you want."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "Code",
                  "info": "Input code"
                },
                {
                  "name": "handler_overrides",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Mapping where keys are process handler names and the values are a dictionary, where each dictionary can define the ``enabled`` and ``priority`` key, which can be used to toggle the values set on the original process handler declaration."
                },
                {
                  "name": "ions",
                  "required": false,
                  "valid_types": "IonData",
                  "info": "Input ion file"
                },
                {
                  "name": "iterate_mode",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Indicates the way the parameters should be iterated.\n            Currently allowed values are:\n            - 'zip': zips all the parameters together (all parameters should\n              have the same number of values!)\n            - 'product': performs a cartesian product of the parameters. That is,\n              all possible combinations of parameters and values are explored.\n            "
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "Input kpoints"
                },
                {
                  "name": "lua",
                  "required": false,
                  "valid_types": "",
                  "info": "Script and files for the Lua engine"
                },
                {
                  "name": "max_iterations",
                  "required": false,
                  "valid_types": "Int",
                  "info": "Maximum number of iterations the work chain will restart the process to finish successfully."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "optical",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Specifications for optical properties"
                },
                {
                  "name": "options",
                  "required": false,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "parameters",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Input parameters"
                },
                {
                  "name": "parent_calc_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Parent folder"
                },
                {
                  "name": "pseudo_family",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": ""
                },
                {
                  "name": "pseudos",
                  "required": false,
                  "valid_types": "PsfData, PsmlData",
                  "info": "Input pseudo potentials"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Input settings"
                },
                {
                  "name": "structure",
                  "required": false,
                  "valid_types": "StructureData",
                  "info": "Input structure"
                },
                {
                  "name": "target",
                  "required": false,
                  "valid_types": "Str, NoneType",
                  "info": "The parameter that you want to track."
                },
                {
                  "name": "threshold",
                  "required": false,
                  "valid_types": "Int, Float",
                  "info": "The maximum difference between two consecutive steps to consider that convergence is reached"
                }
              ],
              "outputs": [
                {
                  "name": "converged",
                  "required": true,
                  "valid_types": "",
                  "info": "Whether the target has converged"
                },
                {
                  "name": "converged_parameters",
                  "required": false,
                  "valid_types": "",
                  "info": "The values for the parameters that was enough to achieve convergence. If converged is not achieved, it won't be returned"
                },
                {
                  "name": "converged_target_value",
                  "required": false,
                  "valid_types": "",
                  "info": "The value of the target with convergence reached."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_siesta.workflows.converge:SiestaConverger"
          },
          "siesta.sequential_converger": {
            "description": [
              "An iterator of convergers."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "converger_inputs",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "iterate_over",
                  "required": true,
                  "valid_types": "List",
                  "info": "A dictionary where each key is the name of a parameter we want to iterate\n                over (str) and each value is a list with all the values to iterate over for\n                that parameter. Each value in the list can be either a node (unstored or stored)\n                or a simple python object (str, float, int, bool).\n                Note that each subclass might parse this keys and values differently, so you should\n                know how they do it.\n                "
                },
                {
                  "name": "batch_size",
                  "required": false,
                  "valid_types": "Int",
                  "info": "The maximum number of simulations that should run at the same time.\n            You can set this to a very large number to make sure that all simulations run in\n            one single batch if you want."
                },
                {
                  "name": "iterate_mode",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Indicates the way the parameters should be iterated.\n            Currently allowed values are:\n            - 'zip': zips all the parameters together (all parameters should\n              have the same number of values!)\n            - 'product': performs a cartesian product of the parameters. That is,\n              all possible combinations of parameters and values are explored.\n            "
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "converged_parameters",
                  "required": true,
                  "valid_types": "",
                  "info": "The values for the parameters that was enough to achieve convergence. If convergence is not achieved, it will be an empty dictionary"
                },
                {
                  "name": "converged_target_value",
                  "required": false,
                  "valid_types": "",
                  "info": "The value of the target with convergence reached."
                },
                {
                  "name": "unconverged_parameters",
                  "required": false,
                  "valid_types": "",
                  "info": "The list of unconverged parameters."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_siesta.workflows.converge:SiestaSequentialConverger"
          },
          "siesta.forbasisopt": {
            "description": [
              "Wrapper of SiestaBaseWorkChain.",
              "",
              "    Class wrapping the SiestaBaseWorkChain with the scope of",
              "    assigning the variables of the optimization process to the right",
              "    input of the SiestaBaseWorkChain."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "lower_bounds",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "out_name",
                  "required": true,
                  "valid_types": "Str",
                  "info": ""
                },
                {
                  "name": "siesta_base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "the_names",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "the_values",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "upper_bounds",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "ene",
                  "required": true,
                  "valid_types": "Float",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_siesta.workflows._for_optimization:ForBasisOptWorkChain"
          },
          "siesta.simplex_basis": {
            "description": [
              "Workchain running a simple NelderMead optimization (simplex) varing variables defined in the basis dictionaries."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "siesta_base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "simplex",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "last_simplex",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "optimal_process_output",
                  "required": true,
                  "valid_types": "",
                  "info": "Output value of the optimal evaluation process."
                },
                {
                  "name": "optimal_process_uuid",
                  "required": true,
                  "valid_types": "",
                  "info": "UUID of the optimal evaluation process."
                },
                {
                  "name": "optimal_process_input",
                  "required": false,
                  "valid_types": "",
                  "info": "Input value of the optimal evaluation process."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 200,
                  "message": "The OptimizationWorkChain did not finished"
                }
              ]
            },
            "class": "aiida_siesta.workflows.simplex_basis:SimplexBasisOptimization"
          },
          "siesta.two_step_basis_opt": {
            "description": [
              "Optimization that is more similar to the simplex code in the siesta utils.",
              "",
              "    The optimization has two levels, a \"marcrostep\" that consists in the restart of",
              "    a simplex with gradual reduction of the dimention of the initial simplex."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "macrostep",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "siesta_base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "simplex",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "last_simplex",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "optimal_process_output",
                  "required": true,
                  "valid_types": "",
                  "info": "Output value of the optimal evaluation process."
                },
                {
                  "name": "optimal_process_uuid",
                  "required": true,
                  "valid_types": "",
                  "info": "UUID of the optimal evaluation process."
                },
                {
                  "name": "optimal_process_input",
                  "required": false,
                  "valid_types": "",
                  "info": "Input value of the optimal evaluation process."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_siesta.workflows.two_steps_optimization:TwoStepsBasisOpt"
          },
          "siesta.basis_optimization": {
            "description": [
              "WorkChain for basis optimization."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "optimization_schema",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "siesta_base",
                  "required": true,
                  "valid_types": "Data",
                  "info": ""
                },
                {
                  "name": "simplex",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "add_orbital",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": ""
                },
                {
                  "name": "basis_sizes",
                  "required": false,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "sizes_monitored_quantity",
                  "required": false,
                  "valid_types": "Str",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "optimal_basis_block",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 200,
                  "message": "The SiestaIterator running pao sizes failed"
                },
                {
                  "status": 201,
                  "message": "The basis optimization failed, probably not sufficient steps"
                },
                {
                  "status": 202,
                  "message": "The basis optimization failed, probably not sufficient steps"
                }
              ]
            },
            "class": "aiida_siesta.workflows.basis_optimization:BasisOptimizationWorkChain"
          }
        },
        "aiida.data": {
          "siesta.ion": "aiida_siesta.data.ion:IonData"
        },
        "aiida.tools.data.orbitals": {
          "siesta.atomic_orbital": "aiida_siesta.data.atomic_orbitals:SislAtomicOrbital"
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 13
        },
        {
          "colorclass": "orange",
          "text": "Other (Tools data orbitals)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-siesta",
      "is_installable": "True"
    },
    "aiida-skeaf": {
      "code_home": "https://github.com/aiidaplugins/aiida-skeaf",
      "entry_point_prefix": "skeaf",
      "pip_url": "aiida-skeaf",
      "plugin_info": "https://raw.github.com/aiidaplugins/aiida-skeaf/main/pyproject.toml",
      "documentation_url": "https://aiida-skeaf.readthedocs.io/en/latest/",
      "name": "aiida-skeaf",
      "package_name": "aiida_skeaf",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-06-22",
        "description": "AiiDA plugin for the Supercell K-space Extremal Area Finder (SKEAF) code",
        "author_email": "Junfeng Qiao <qiaojunfeng@outlook.com>",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.2.0"
      },
      "aiida_version": ">=1.6.4,<3",
      "entry_points": {
        "aiida.calculations": {
          "skeaf.create_bxsf_from_file": {
            "description": [
              "Create an ``RemoteData`` representing a single bxsf file from a file path.",
              "",
              "    :param remote_path: An ``Str`` containing the path for a remote bxsf file.",
              "    :type remote_path: aiida.orm.RemoteData",
              "    :param computer: The label of remote computer (``calcfunction`` does not accept ``Computer`` as input).",
              "    :type computer: aiida.orm.Str",
              "    :return: An ``RemoteData`` representing a single bxsf file, for ``SkeafCalculation.inputs.bxsf``.",
              "    :rtype: aiida.orm.RemoteData"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "computer",
                  "required": true,
                  "valid_types": "Str",
                  "info": "The label of remote computer (``calcfunction`` does not accept ``Computer`` as input)."
                },
                {
                  "name": "remote_path",
                  "required": true,
                  "valid_types": "Str",
                  "info": "An ``Str`` containing the path for a remote bxsf file."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_skeaf.calculations.functions:create_bxsf_from_file"
          },
          "skeaf.create_bxsf_from_wannier90": {
            "description": [
              "Create an ``RemoteData`` representing a single bxsf file from a ``Wannier90Calculation.outputs.remote_folder``.",
              "",
              "    :param remote_folder: A ``RemoteData`` e.g. ``Wannier90Calculation.outputs.remote_folder``.",
              "    :type remote_folder: aiida.orm.RemoteData",
              "    :return: An ``RemoteData`` representing a single bxsf file, for ``SkeafCalculation.inputs.bxsf``.",
              "    :rtype: aiida.orm.RemoteData"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "A ``RemoteData`` e.g. ``Wannier90Calculation.outputs.remote_folder``."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_skeaf.calculations.functions:create_bxsf_from_wannier90"
          },
          "skeaf.skeaf": {
            "description": [
              "AiiDA calculation plugin wrapping the SKEAF executable.",
              "",
              "    Simple AiiDA plugin wrapper for 'diffing' two files."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "bxsf",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input BXSF file."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters for SKEAF"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "frequency",
                  "required": true,
                  "valid_types": "ArrayData",
                  "info": "Output Frequency arrays."
                },
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Output parameters."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                }
              ]
            },
            "class": "aiida_skeaf.calculations.skeaf:SkeafCalculation"
          },
          "skeaf.wan2skeaf": {
            "description": [
              "AiiDA calculation plugin wrapping the ``wan2skeaf.py``."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "bxsf",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input BXSF file."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters for wan2skeaf.py"
                },
                {
                  "name": "settings",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "bxsf_filename",
                  "required": false,
                  "valid_types": "Str",
                  "info": "Input BXSF filename of the RemoteData."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "output_bxsf",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Output bxsf for each band."
                },
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Output parameters."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                },
                {
                  "status": 301,
                  "message": "Parsing output failed."
                },
                {
                  "status": 302,
                  "message": "Input file is missing."
                },
                {
                  "status": 303,
                  "message": "Calculation did not finish correctly."
                },
                {
                  "status": 304,
                  "message": "The bisection algorithm to compute Fermi level could not converge within the tolerance in number of electrons.\nTry increasing the tolerance by setting `tol_n_electrons` in the input parameters."
                }
              ]
            },
            "class": "aiida_skeaf.calculations.wan2skeaf:Wan2skeafCalculation"
          }
        },
        "aiida.parsers": {
          "skeaf.skeaf": "aiida_skeaf.parsers.skeaf:SkeafParser",
          "skeaf.wan2skeaf": "aiida_skeaf.parsers.wan2skeaf:Wan2skeafParser"
        },
        "aiida.workflows": {
          "skeaf.skeaf": {
            "description": [
              "Workchain to run ``Wan2skeafCalculation`` and ``SkeafCalculation``.",
              "",
              "    Given a wannier90 generated ``RemoteData`` containing a bxsf file,",
              "    run skeaf on all the bands in the bxsf."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "bxsf",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input BXSF file or the output remote_folder of Wannier90Calculation."
                },
                {
                  "name": "skeaf",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for the `Wan2skeafCalculation`."
                },
                {
                  "name": "wan2skeaf",
                  "required": true,
                  "valid_types": "Data",
                  "info": "Inputs for the `Wan2skeafCalculation`."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [
                {
                  "name": "skeaf",
                  "required": true,
                  "valid_types": "",
                  "info": "Output SkeafCalculation for each band."
                },
                {
                  "name": "wan2skeaf",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 401,
                  "message": "Unrecoverable error when running wan2skeaf."
                },
                {
                  "status": 402,
                  "message": "Unrecoverable error when running skeaf."
                },
                {
                  "status": 500,
                  "message": "Invalid input parameters. Fermi energy is not consistent between skeaf and wan2skeaf."
                },
                {
                  "status": 501,
                  "message": "Invalid input parameters. Fermi energy shift can't be specified together with fermi_energy."
                }
              ]
            },
            "class": "aiida_skeaf.workflows:SkeafWorkChain"
          }
        }
      },
      "commits_count": 13,
      "development_status": "alpha",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 4
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-skeaf",
      "is_installable": "True"
    },
    "aiida-spex": {
      "code_home": "https://github.com/JuDFTteam/aiida-spex",
      "entry_point_prefix": "spex",
      "pip_url": "git+https://github.com/JuDFTteam/aiida-spex",
      "name": "aiida-spex",
      "package_name": "aiida_spex",
      "hosted_on": "github.com",
      "metadata": {
        "author": "The SPEX Team",
        "author_email": "a.chandran@fz-juelich.de",
        "version": "1.1.2",
        "description": "AiiDA plugin for SPEX code",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.0.0b3,<3.0.0",
      "entry_points": {
        "aiida.calculations": {
          "spex.spex": "aiida_spex.calculations.spex:SpexCalculation"
        },
        "aiida.data": {
          "spex.spexinp": "aiida_spex.data.spexinp:SpexinpData"
        },
        "aiida.parsers": {
          "spex.spexparser": "aiida_spex.parsers.spex:SpexParser"
        },
        "aiida.workflows": {
          "spex.job": "aiida_spex.workflows.job:SpexJobWorkchain"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/JuDFTteam/aiida-spex"
    },
    "aiida-spirit": {
      "code_home": "https://github.com/JuDFTteam/aiida-spirit/tree/main",
      "documentation_url": "https://aiida-spirit.readthedocs.io/",
      "entry_point_prefix": "spirit",
      "name": "aiida-spirit",
      "pip_url": "aiida-spirit",
      "package_name": "aiida_spirit",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-06-23",
        "description": "AiiDA plugin for the spirit code",
        "author": "The JuDFT Team",
        "author_email": "p.ruessmann@fz-juelich.de",
        "license": "MIT",
        "home_page": "https://github.com/JuDFTteam/aiida-spirit",
        "classifiers": [
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.2.2"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.calculations": {
          "spirit": "aiida_spirit.calculations:SpiritCalculation"
        },
        "aiida.parsers": {
          "spirit": "aiida_spirit.parsers:SpiritParser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-spirit"
    },
    "aiida-ssh2win": {
      "entry_point_prefix": "ssh2win",
      "code_home": "https://github.com/edan-bainglass/aiida-ssh2win",
      "version_file": "https://raw.githubusercontent.com/edan-bainglass/aiida-ssh2win/develop/aiida_ssh2win/__init__.py",
      "pip_url": "git+https://github.com/edan-bainglass/aiida-ssh2win",
      "name": "aiida-ssh2win",
      "package_name": "aiida_ssh2win",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Cannot fetch all data from PyPI and missing plugin_info key!",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [],
      "pip_install_cmd": "pip install git+https://github.com/edan-bainglass/aiida-ssh2win"
    },
    "aiida-sshonly": {
      "code_home": "https://github.com/adegomme/aiida-sshonly",
      "development_status": "beta",
      "entry_point_prefix": "sshonly",
      "pip_url": "aiida-sshonly",
      "plugin_info": "https://raw.github.com/adegomme/aiida-sshonly/master/setup.json",
      "name": "aiida-sshonly",
      "package_name": "aiida_sshonly",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-10-07",
        "description": "AiiDA plugin adding a sshonly transport option, using only SSH to transfer files, avoiding SFTP, in case it's blocked or non functional on a remote system",
        "author": "adegomme",
        "license": "MIT",
        "home_page": "https://github.com/adegomme/aiida-sshonly",
        "classifiers": [
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.1.0a3"
      },
      "aiida_version": ">=1.3.0,<2.0.0",
      "entry_points": {
        "aiida.transports": {
          "ssh_only": "aiida_sshonly.transports.sshonly:SshOnlyTransport"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-sshonly<pre>Collecting aiida-sshonly\n  Downloading aiida-sshonly-0.1.0a3.tar.gz (19 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-sshonly to determine which version is compatible with other requirements. This could take a while.\n  Downloading aiida_sshonly-0.1.0a2-py3-none-any.whl.metadata (3.4 kB)\n  Downloading aiida_sshonly-0.1.0a1-py3-none-any.whl.metadata (3.4 kB)\n  Downloading aiida-sshonly-0.1.0a0.tar.gz (19 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nERROR: Cannot install aiida-sshonly==0.1.0a0, aiida-sshonly==0.1.0a1, aiida-sshonly==0.1.0a2 and aiida-sshonly==0.1.0a3 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-sshonly 0.1.0a3 depends on aiida-core<2.0.0 and >=1.3.0\n    aiida-sshonly 0.1.0a2 depends on aiida-core<2.0.0 and >=1.3.0\n    aiida-sshonly 0.1.0a1 depends on aiida-core<2.0.0 and >=1.3.0\n    aiida-sshonly 0.1.0a0 depends on aiida-core<2.0.0 and >=1.1.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'ssh_only' does not start with prefix 'sshonly.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "orange",
          "text": "Other (Transports)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-sshonly",
      "is_installable": "False"
    },
    "aiida-statefile-schedulers": {
      "code_home": "https://github.com/dev-zero/aiida-statefile-schedulers",
      "development_status": "beta",
      "entry_point_prefix": "statefile_schedulers",
      "pip_url": "aiida-statefile-schedulers",
      "name": "aiida-statefile-schedulers",
      "package_name": "aiida_statefile_schedulers",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2021-11-23",
        "description": "Simple statefile-driven task schedulers for AiiDA",
        "author": "Tiziano M\u00fcller",
        "author_email": "tm@dev-zero.ch",
        "license": "MIT",
        "home_page": "https://github.com/dev-zero/aiida-statefile-schedulers",
        "classifiers": [
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.2.1"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.schedulers": {
          "statefile_schedulers.direct": "aiida_statefile_schedulers.schedulers.direct:StatefileDirectScheduler"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "orange",
          "text": "Other (Schedulers)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-statefile-schedulers",
      "is_installable": "True"
    },
    "aiida-strain": {
      "code_home": "https://github.com/greschd/aiida-strain",
      "documentation_url": "https://aiida-strain.readthedocs.io",
      "entry_point_prefix": "strain",
      "pip_url": "aiida-strain",
      "name": "aiida-strain",
      "package_name": "aiida_strain",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2019-11-22",
        "description": "AiiDA Plugin for applying strain to structures",
        "author": "Dominik Gresch",
        "author_email": "greschd@gmx.ch",
        "license": "Apache 2.0",
        "home_page": "https://aiida-strain.readthedocs.io",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Apache Software License",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.2.0"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.workflows": {
          "strain.apply_strains": {
            "description": [
              "Workchain to create strained structures from a given input structure."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "strain_kind",
                  "required": true,
                  "valid_types": "Str",
                  "info": ""
                },
                {
                  "name": "strain_parameters",
                  "required": true,
                  "valid_types": "Str",
                  "info": ""
                },
                {
                  "name": "strain_strengths",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_strain:ApplyStrains"
          },
          "strain.apply_strains_with_symmetry": {
            "description": [
              "Workchain to create strained structures from an input structure, and select the symmetries which are compatible with the strained structure from a set of given input symmetries."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "strain_kind",
                  "required": true,
                  "valid_types": "Str",
                  "info": ""
                },
                {
                  "name": "strain_parameters",
                  "required": true,
                  "valid_types": "Str",
                  "info": ""
                },
                {
                  "name": "strain_strengths",
                  "required": true,
                  "valid_types": "List",
                  "info": ""
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": ""
                },
                {
                  "name": "symmetries",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "symmetry_repr_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": ""
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                }
              ],
              "outputs": [],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_strain:ApplyStrainsWithSymmetry"
          }
        }
      },
      "commits_count": 0,
      "development_status": "alpha",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 2
        }
      ],
      "pip_install_cmd": "pip install aiida-strain",
      "is_installable": "True"
    },
    "aiida-supercell": {
      "code_home": "https://github.com/pzarabadip/aiida-supercell",
      "development_status": "stable",
      "documentation_url": "https://aiida-supercell.readthedocs.io/",
      "entry_point_prefix": "supercell",
      "pip_url": "git+https://github.com/pzarabadip/aiida-supercell",
      "name": "aiida-supercell",
      "package_name": "aiida_supercell",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Pezhman Zarabadi-Poor",
        "author_email": "pzarabadip@gmail.com",
        "version": "1.0.1",
        "description": "AiiDA Plugin for Supercell program",
        "classifiers": [
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ]
      },
      "aiida_version": ">=1.0.0,<2.0",
      "entry_points": {
        "aiida.calculations": {
          "supercell": "aiida_supercell.calculations:SupercellCalculation"
        },
        "aiida.parsers": {
          "supercell": "aiida_supercell.parsers:SupercellParser"
        }
      },
      "commits_count": 0,
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-supercell<pre>Collecting git+https://github.com/pzarabadip/aiida-supercell\n  Cloning https://github.com/pzarabadip/aiida-supercell to /tmp/pip-req-build-kygzhfm4\n  Running command git clone --filter=blob:none --quiet https://github.com/pzarabadip/aiida-supercell /tmp/pip-req-build-kygzhfm4\n  Resolved https://github.com/pzarabadip/aiida-supercell to commit 24a89f990fcf84584a51f49b53311a5c6db18347\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'done'\nINFO: pip is looking at multiple versions of aiida-supercell to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-supercell==1.0.1 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-supercell 1.0.1 depends on aiida-core<2.0 and >=1.0.0\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/pzarabadip/aiida-supercell",
      "is_installable": "False"
    },
    "aiida-symmetry-representation": {
      "code_home": "https://github.com/greschd/aiida_symmetry_representation",
      "documentation_url": "https://aiida-symmetry-representation.readthedocs.io",
      "entry_point_prefix": "symmetry_representation",
      "pip_url": "aiida-symmetry-representation",
      "name": "aiida-symmetry-representation",
      "package_name": "aiida_symmetry_representation",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2019-11-18",
        "description": "AiiDA Plugin for symmetry representations.",
        "author": "Dominik Gresch",
        "author_email": "greschd@gmx.ch",
        "license": "Apache 2.0",
        "home_page": "https://aiida-symmetry-representation.readthedocs.io",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Apache Software License",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.2.0"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.calculations": {
          "symmetry_representation.filter_symmetries": {
            "description": [
              "Calculation class to run the ``symmetry-repr filter_symmetries`` command."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "Structure with which the filtered symmetries should be compatible."
                },
                {
                  "name": "symmetries",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "File containing the symmetries (in HDF5 format)."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "symmetries",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": "The HDF5 file containing the symmetries which are compatible with the structure."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_symmetry_representation.calculations.filter_symmetries:FilterSymmetriesCalculation"
          }
        },
        "aiida.parsers": {
          "symmetry_representation.symmetry": "aiida_symmetry_representation.parsers.symmetries:SymmetriesParser"
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-symmetry-representation",
      "is_installable": "True"
    },
    "aiida-tbextraction": {
      "code_home": "https://github.com/greschd/aiida-tbextraction",
      "documentation_url": "https://aiida-tbextraction.readthedocs.io/",
      "entry_point_prefix": "tbextraction",
      "pip_url": "aiida-tbextraction",
      "name": "aiida-tbextraction",
      "package_name": "aiida_tbextraction",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-02-25",
        "description": "AiiDA Plugin for extracting tight-binding models",
        "author": "Dominik Gresch",
        "author_email": "greschd@gmx.ch",
        "license": "Apache 2.0",
        "home_page": "https://aiida-tbextraction.readthedocs.io",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Apache Software License",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.2.0b1"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.workflows": {
          "tbextraction.fp_run.base": "aiida_tbextraction.fp_run:FirstPrinciplesRunBase",
          "tbextraction.fp_run.reference_bands.base": "aiida_tbextraction.fp_run.reference_bands:ReferenceBandsBase",
          "tbextraction.fp_run.wannier_input.base": "aiida_tbextraction.fp_run.wannier_input:WannierInputBase",
          "tbextraction.calculate_tb": "aiida_tbextraction.calculate_tb:TightBindingCalculation",
          "tbextraction.model_evaluation.base": "aiida_tbextraction.model_evaluation:ModelEvaluationBase",
          "tbextraction.model_evaluation.band_difference": "aiida_tbextraction.model_evaluation:BandDifferenceModelEvaluation",
          "tbextraction.energy_windows.run_window": "aiida_tbextraction.energy_windows.run_window:RunWindow",
          "tbextraction.energy_windows.window_search": "aiida_tbextraction.energy_windows.window_search:WindowSearch",
          "tbextraction.optimize_fp_tb": "aiida_tbextraction.optimize_fp_tb:OptimizeFirstPrinciplesTightBinding",
          "tbextraction.optimize_strained_fp_tb": "aiida_tbextraction.optimize_strained_fp_tb:OptimizeStrainedFirstPrinciplesTightBinding"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-tbextraction<pre>Collecting aiida-tbextraction\n  Downloading aiida-tbextraction-0.2.0b1.tar.gz (19 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'error'\n  error: subprocess-exited-with-error\n  \n  \u00d7 python setup.py egg_info did not run successfully.\n  \u2502 exit code: 1\n  \u2570\u2500> [20 lines of output]\n      /opt/conda/lib/python3.10/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.\n      !!\n      \n              ********************************************************************************\n              Requirements should be satisfied by a PEP 517 installer.\n              If you are using pip, you can try `pip install --use-pep517`.\n              ********************************************************************************\n      \n      !!\n        dist.fetch_build_eggs(dist.setup_requires)\n      [ REENTRY ] registering entry points with reentry...\n      [ REENTRY ] ... registered to /home/aiida/.config/reentry/data/5d9e5327e684dbfa000493a11d0110f0abb5242e20a9b88369b9910dfe0d9564\n      [ REENTRY ] Following entrypoints were registered\n      \n          aiida-tbextraction -> {'aiida.workflows': {'tbextraction.fp_run.base': 'tbextraction.fp_run.base = aiida_tbextraction.fp_run:FirstPrinciplesRunBase', 'tbextraction.fp_run.reference_bands.base': 'tbextraction.fp_run.reference_bands.base = aiida_tbextraction.fp_run.reference_bands:ReferenceBandsBase', 'tbextraction.fp_run.wannier_input.base': 'tbextraction.fp_run.wannier_input.base = aiida_tbextraction.fp_run.wannier_input:WannierInputBase', 'tbextraction.calculate_tb': 'tbextraction.calculate_tb = aiida_tbextraction.calculate_tb:TightBindingCalculation', 'tbextraction.model_evaluation.base': 'tbextraction.model_evaluation.base = aiida_tbextraction.model_evaluation:ModelEvaluationBase', 'tbextraction.model_evaluation.band_difference': 'tbextraction.model_evaluation.band_difference = aiida_tbextraction.model_evaluation:BandDifferenceModelEvaluation', 'tbextraction.energy_windows.run_window': 'tbextraction.energy_windows.run_window = aiida_tbextraction.energy_windows.run_window:RunWindow', 'tbextraction.energy_windows.window_search': 'tbextraction.energy_windows.window_search = aiida_tbextraction.energy_windows.window_search:WindowSearch', 'tbextraction.optimize_fp_tb': 'tbextraction.optimize_fp_tb = aiida_tbextraction.optimize_fp_tb:OptimizeFirstPrinciplesTightBinding', 'tbextraction.optimize_strained_fp_tb': 'tbextraction.optimize_strained_fp_tb = aiida_tbextraction.optimize_strained_fp_tb:OptimizeStrainedFirstPrinciplesTightBinding'}}\n      [ REENTRY ] Current entry point map at /home/aiida/.config/reentry/data/5d9e5327e684dbfa000493a11d0110f0abb5242e20a9b88369b9910dfe0d9564:\n          aiida-tbextraction -> {'aiida.workflows': {'tbextraction.fp_run.base': 'tbextraction.fp_run.base = aiida_tbextraction.fp_run:FirstPrinciplesRunBase', 'tbextraction.fp_run.reference_bands.base': 'tbextraction.fp_run.reference_bands.base = aiida_tbextraction.fp_run.reference_bands:ReferenceBandsBase', 'tbextraction.fp_run.wannier_input.base': 'tbextraction.fp_run.wannier_input.base = aiida_tbextraction.fp_run.wannier_input:WannierInputBase', 'tbextraction.calculate_tb': 'tbextraction.calculate_tb = aiida_tbextraction.calculate_tb:TightBindingCalculation', 'tbextraction.model_evaluation.base': 'tbextraction.model_evaluation.base = aiida_tbextraction.model_evaluation:ModelEvaluationBase', 'tbextraction.model_evaluation.band_difference': 'tbextraction.model_evaluation.band_difference = aiida_tbextraction.model_evaluation:BandDifferenceModelEvaluation', 'tbextraction.energy_windows.run_window': 'tbextraction.energy_windows.run_window = aiida_tbextraction.energy_windows.run_window:RunWindow', 'tbextraction.energy_windows.window_search': 'tbextraction.energy_windows.window_search = aiida_tbextraction.energy_windows.window_search:WindowSearch', 'tbextraction.optimize_fp_tb': 'tbextraction.optimize_fp_tb = aiida_tbextraction.optimize_fp_tb:OptimizeFirstPrinciplesTightBinding', 'tbextraction.optimize_strained_fp_tb': 'tbextraction.optimize_strained_fp_tb = aiida_tbextraction.optimize_strained_fp_tb:OptimizeStrainedFirstPrinciplesTightBinding'}}\n      error in aiida-tbextraction setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Expected end or semicolon (after version specifier)\n          aiida-core>=1.0.0<2\n                    ~~~~~~~^\n      [end of output]\n  \n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n\n\u00d7 Encountered error while generating package metadata.\n\u2570\u2500> See above for output.\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for details.\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 10
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-tbextraction",
      "is_installable": "False"
    },
    "aiida-tbmodels": {
      "code_home": "https://github.com/greschd/aiida-tbmodels",
      "documentation_url": "https://aiida-tbmodels.readthedocs.io",
      "entry_point_prefix": "tbmodels",
      "pip_url": "aiida-tbmodels",
      "name": "aiida-tbmodels",
      "package_name": "aiida_tbmodels",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-03-03",
        "description": "AiiDA Plugin for running TBmodels",
        "author": "Dominik Gresch",
        "author_email": "greschd@gmx.ch",
        "license": "Apache 2.0",
        "home_page": "https://aiida-tbmodels.readthedocs.io",
        "classifiers": [
          "Development Status :: 3 - Alpha",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: Apache Software License",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Programming Language :: Python :: 3.8",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "0.3.0"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.calculations": {
          "tbmodels.eigenvals": "aiida_tbmodels.calculations.eigenvals:EigenvalsCalculation",
          "tbmodels.parse": "aiida_tbmodels.calculations.parse:ParseCalculation",
          "tbmodels.slice": "aiida_tbmodels.calculations.slice:SliceCalculation",
          "tbmodels.symmetrize": "aiida_tbmodels.calculations.symmetrize:SymmetrizeCalculation"
        },
        "aiida.parsers": {
          "tbmodels.model": "aiida_tbmodels.parsers.model:ModelParser"
        }
      },
      "commits_count": 0,
      "development_status": "alpha",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-tbmodels<pre>Collecting aiida-tbmodels\n  Downloading aiida-tbmodels-0.3.0.tar.gz (8.8 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'error'\n  error: subprocess-exited-with-error\n  \n  \u00d7 python setup.py egg_info did not run successfully.\n  \u2502 exit code: 1\n  \u2570\u2500> [20 lines of output]\n      /opt/conda/lib/python3.10/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.\n      !!\n      \n              ********************************************************************************\n              Requirements should be satisfied by a PEP 517 installer.\n              If you are using pip, you can try `pip install --use-pep517`.\n              ********************************************************************************\n      \n      !!\n        dist.fetch_build_eggs(dist.setup_requires)\n      [ REENTRY ] registering entry points with reentry...\n      [ REENTRY ] ... registered to /home/aiida/.config/reentry/data/5d9e5327e684dbfa000493a11d0110f0abb5242e20a9b88369b9910dfe0d9564\n      [ REENTRY ] Following entrypoints were registered\n      \n          aiida-tbmodels -> {'aiida.calculations': {'tbmodels.eigenvals': 'tbmodels.eigenvals = aiida_tbmodels.calculations.eigenvals:EigenvalsCalculation', 'tbmodels.parse': 'tbmodels.parse = aiida_tbmodels.calculations.parse:ParseCalculation', 'tbmodels.slice': 'tbmodels.slice = aiida_tbmodels.calculations.slice:SliceCalculation', 'tbmodels.symmetrize': 'tbmodels.symmetrize = aiida_tbmodels.calculations.symmetrize:SymmetrizeCalculation'}, 'aiida.parsers': {'tbmodels.model': 'tbmodels.model = aiida_tbmodels.parsers.model:ModelParser'}}\n      [ REENTRY ] Current entry point map at /home/aiida/.config/reentry/data/5d9e5327e684dbfa000493a11d0110f0abb5242e20a9b88369b9910dfe0d9564:\n          aiida-tbmodels -> {'aiida.calculations': {'tbmodels.eigenvals': 'tbmodels.eigenvals = aiida_tbmodels.calculations.eigenvals:EigenvalsCalculation', 'tbmodels.parse': 'tbmodels.parse = aiida_tbmodels.calculations.parse:ParseCalculation', 'tbmodels.slice': 'tbmodels.slice = aiida_tbmodels.calculations.slice:SliceCalculation', 'tbmodels.symmetrize': 'tbmodels.symmetrize = aiida_tbmodels.calculations.symmetrize:SymmetrizeCalculation'}, 'aiida.parsers': {'tbmodels.model': 'tbmodels.model = aiida_tbmodels.parsers.model:ModelParser'}}\n      error in aiida-tbmodels setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Expected end or semicolon (after version specifier)\n          aiida-core>=1.1.0<2.0.0\n                    ~~~~~~~^\n      [end of output]\n  \n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n\n\u00d7 Encountered error while generating package metadata.\n\u2570\u2500> See above for output.\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for details.\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W019'>W019</a>: No <code>bdist_wheel</code> available for PyPI release.",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 4
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-tbmodels",
      "is_installable": "False"
    },
    "aiida-tcod": {
      "code_home": "https://github.com/aiidateam/aiida-tcod",
      "development_status": "beta",
      "entry_point_prefix": "tcod",
      "pip_url": "git+https://github.com/aiidateam/aiida-tcod",
      "name": "aiida-tcod",
      "package_name": "aiida_tcod",
      "hosted_on": "github.com",
      "metadata": {
        "author": "The AiiDA team",
        "author_email": "developers@aiida.net",
        "version": "0.1.0a0",
        "description": "AiiDA plugin to interact with the TCOD",
        "classifiers": [
          "Programming Language :: Python"
        ]
      },
      "aiida_version": ">=1.0.0b1",
      "entry_points": {
        "aiida.tools.dbexporters": {
          "tcod": "aiida.tools.dbexporters.tcod"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W003'>W003</a>: Missing classifier 'Framework :: AiiDA'",
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "orange",
          "text": "Other (Database Exporters)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/aiidateam/aiida-tcod",
      "is_installable": "True"
    },
    "aiida-uppasd": {
      "code_home": "https://github.com/uppasd/aiida-uppasd",
      "documentation_url": "https://github.com/uppasd/aiida-uppasd/blob/master/README.md",
      "entry_point_prefix": "uppasd",
      "pip_url": "git+https://github.com/unkcpz/aiida-uppasd",
      "name": "aiida-uppasd",
      "package_name": "aiida_uppasd",
      "hosted_on": "github.com",
      "metadata": {
        "author": "Qichen Xu, Anders Bergman, Anna Delin, Jonathan Chico",
        "author_email": "qichenx@kth.se",
        "version": "0.1.0",
        "description": "Interface for UppASD and AiiDA",
        "classifiers": [
          "Programming Language :: Python",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Framework :: AiiDA"
        ]
      },
      "aiida_version": ">=1.1.0,<2.0.0",
      "entry_points": {
        "aiida.calculations": {
          "UppASD_core_calculations": "UppASD_AiiDA.calculations.core_calcs:UppASD"
        },
        "aiida.parsers": {
          "UppASD_core_parsers": "UppASD_AiiDA.parsers.core_parser:SpinDynamic_core_parser"
        }
      },
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'UppASD_core_calculations' does not start with prefix 'uppasd.'",
        "<a href='https://github.com/aiidateam/aiida-registry#W010'>W010</a>: Entry point 'UppASD_core_parsers' does not start with prefix 'uppasd.'"
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/unkcpz/aiida-uppasd"
    },
    "aiida-vasp": {
      "code_home": "https://github.com/aiida-vasp/aiida-vasp",
      "documentation_url": "https://aiida-vasp.readthedocs.io/",
      "entry_point_prefix": "vasp",
      "pip_url": "aiida-vasp",
      "plugin_info": "https://raw.githubusercontent.com/aiida-vasp/aiida-vasp/master/setup.json",
      "name": "aiida-vasp",
      "package_name": "aiida_vasp",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-06-18",
        "description": "AiiDA plugin for running VASP calculations and workflows.",
        "author_email": "Espen Flage-Larsen <espen.flage-larsen@sigma2.no>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "5.1.0"
      },
      "aiida_version": ">=2.6",
      "entry_points": {
        "aiida.calculations": {
          "vasp.immigrant": "aiida_vasp.calcs.immigrant:VaspImmigrant",
          "vasp.neb": "aiida_vasp.calcs.neb:VaspNEBCalculation",
          "vasp.vasp": "aiida_vasp.calcs.vasp:VaspCalculation",
          "vasp.vasp2w90": "aiida_vasp.calcs.vasp2w90:Vasp2w90Calculation"
        },
        "aiida.calculations.monitors": {
          "vasp.loop_time": "aiida_vasp.calcs.monitors:monitor_loop_time",
          "vasp.stdout": "aiida_vasp.calcs.monitors:monitor_stdout"
        },
        "aiida.data": {
          "vasp.archive": "aiida_vasp.data.archive:ArchiveData",
          "vasp.chargedensity": "aiida_vasp.data.chargedensity:ChargedensityData",
          "vasp.potcar": "aiida_vasp.data.potcar:PotcarData",
          "vasp.potcar_file": "aiida_vasp.data.potcar:PotcarFileData",
          "vasp.wavefun": "aiida_vasp.data.wavefun:WavefunData"
        },
        "aiida.groups": {
          "vasp.potcar": "aiida_vasp.data.potcar:PotcarGroup"
        },
        "aiida.parsers": {
          "vasp.neb": "aiida_vasp.parsers.neb:NebParser",
          "vasp.vasp": "aiida_vasp.parsers.vasp:VaspParser"
        },
        "aiida.workflows": {
          "vasp.bands": "aiida_vasp.workchains.v2.bands:VaspBandsWorkChain",
          "vasp.converge": "aiida_vasp.workchains.v2.converge:VaspConvergenceWorkChain",
          "vasp.hybrid_bands": "aiida_vasp.workchains.v2.bands:VaspHybridBandsWorkChain",
          "vasp.neb": "aiida_vasp.workchains.v2.neb:VaspNEBWorkChain",
          "vasp.relax": "aiida_vasp.workchains.v2.relax:VaspRelaxWorkChain",
          "vasp.v2.bands": "aiida_vasp.workchains.v2.bands:VaspBandsWorkChain",
          "vasp.v2.converge": "aiida_vasp.workchains.v2.converge:VaspConvergenceWorkChain",
          "vasp.v2.hybrid_bands": "aiida_vasp.workchains.v2.bands:VaspHybridBandsWorkChain",
          "vasp.v2.relax": "aiida_vasp.workchains.v2.relax:VaspRelaxWorkChain",
          "vasp.v2.vasp": "aiida_vasp.workchains.v2.vasp:VaspWorkChain",
          "vasp.vasp": "aiida_vasp.workchains.v2.vasp:VaspWorkChain"
        },
        "console_scripts": {
          "aiida-vasp": "aiida_vasp.commands:cmd_aiida_vasp",
          "dryrun-vasp": "aiida_vasp.commands.dryrun_vasp:cmd_dryrun_vasp",
          "mock-vasp": "aiida_vasp.commands.mock_vasp:mock_vasp",
          "mock-vasp-loose": "aiida_vasp.commands.mock_vasp:mock_vasp_loose"
        }
      },
      "commits_count": 100,
      "development_status": "stable",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E003'>E003</a>: Failed to fetch entry point metadata for package aiida_vasp<pre>Traceback (most recent call last):\n  File \"/tmp/scripts/./bin/analyze_entrypoints.py\", line 196, in <module>\n    cli()  # pylint: disable=no-value-for-parameter\n  File \"/opt/conda/lib/python3.10/site-packages/click/core.py\", line 1157, in __call__\n    return self.main(*args, **kwargs)\n  File \"/opt/conda/lib/python3.10/site-packages/click/core.py\", line 1078, in main\n    rv = self.invoke(ctx)\n  File \"/opt/conda/lib/python3.10/site-packages/click/core.py\", line 1434, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File \"/opt/conda/lib/python3.10/site-packages/click/core.py\", line 783, in invoke\n    return __callback(*args, **kwargs)\n  File \"/tmp/scripts/./bin/analyze_entrypoints.py\", line 186, in cli\n    result[ep_group] = document_entry_point_group(ep_group)\n  File \"/tmp/scripts/./bin/analyze_entrypoints.py\", line 75, in document_entry_point_group\n    process_info = document_entry_point(entry_point_group, entry_point)\n  File \"/tmp/scripts/./bin/analyze_entrypoints.py\", line 94, in document_entry_point\n    plugin = load_entry_point(entry_point_group, entry_point)\n  File \"/opt/conda/lib/python3.10/site-packages/aiida/plugins/entry_point.py\", line 278, in load_entry_point\n    loaded_entry_point = entry_point.load()\n  File \"/opt/conda/lib/python3.10/site-packages/importlib_metadata/__init__.py\", line 213, in load\n    return functools.reduce(getattr, attrs, module)\nAttributeError: module 'aiida_vasp.calcs.immigrant' has no attribute 'VaspImmigrant'\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 4
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 5
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 11
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 4
        },
        {
          "colorclass": "orange",
          "text": "Other (Calculations monitors, Groups)",
          "count": 3
        }
      ],
      "pip_install_cmd": "pip install aiida-vasp",
      "is_installable": "True"
    },
    "aiida-vibroscopy": {
      "entry_point_prefix": "vibroscopy",
      "plugin_info": "https://raw.githubusercontent.com/bastonero/aiida-vibroscopy/main/pyproject.toml",
      "code_home": "https://github.com/bastonero/aiida-vibroscopy",
      "version_file": "https://raw.githubusercontent.com/bastonero/aiida-vibroscopy/main/src/aiida_vibroscopy/__init__.py",
      "pip_url": "aiida-vibroscopy",
      "documentation_url": "https://aiida-vibroscopy.readthedocs.io/en/latest/",
      "name": "aiida-vibroscopy",
      "package_name": "aiida_vibroscopy",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-03-24",
        "description": "AiiDA plugin for vibrational spectoscopy using Quantum ESPRESSO.",
        "author_email": "Lorenzo Bastonero <bastonero.lorenzo@gmail.com>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: Other/Proprietary License",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.14"
        ],
        "version": "1.5.0"
      },
      "aiida_version": ">=2.8,<3.0",
      "entry_points": {
        "aiida.data": {
          "vibroscopy.fp": "aiida_vibroscopy.data.vibro_fp:VibrationalFrozenPhononData",
          "vibroscopy.vibrational": "aiida_vibroscopy.data.vibro_lr:VibrationalData"
        },
        "aiida.workflows": {
          "vibroscopy.dielectric": "aiida_vibroscopy.workflows.dielectric.base:DielectricWorkChain",
          "vibroscopy.dielectric.numerical_derivatives": "aiida_vibroscopy.workflows.dielectric.numerical_derivatives:NumericalDerivativesWorkChain",
          "vibroscopy.phonons.harmonic": "aiida_vibroscopy.workflows.phonons.harmonic:HarmonicWorkChain",
          "vibroscopy.phonons.phonon": "aiida_vibroscopy.workflows.phonons.base:PhononWorkChain",
          "vibroscopy.spectra.intensities_average": "aiida_vibroscopy.workflows.spectra.intensities_average:IntensitiesAverageWorkChain",
          "vibroscopy.spectra.iraman": "aiida_vibroscopy.workflows.spectra.iraman:IRamanSpectraWorkChain"
        },
        "console_scripts": {
          "aiida-vibroscopy": "aiida_vibroscopy.cli:cmd_root"
        }
      },
      "commits_count": 12,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "red",
          "text": "Data",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 6
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-vibroscopy",
      "is_installable": "True"
    },
    "aiida-wannier90": {
      "code_home": "https://github.com/aiidateam/aiida-wannier90",
      "documentation_url": "https://aiida-wannier90.readthedocs.io/",
      "entry_point_prefix": "wannier90",
      "pip_url": "aiida-wannier90",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-wannier90/master/setup.json",
      "name": "aiida-wannier90",
      "package_name": "aiida_wannier90",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2024-05-10",
        "description": "AiiDA Plugin for the Wannier90 code",
        "author": "Junfeng Qiao, Dominik Gresch, Antimo Marrazzo, Daniel Marchand, Giovanni Pizzi, Norma Rivano, The AiiDA team",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "2.2.0"
      },
      "aiida_version": ">=2.0,<3",
      "entry_points": {
        "aiida.calculations": {
          "wannier90.postw90": {
            "description": [
              "Plugin for Wannier90.",
              "",
              "    Wannier90 is a code for computing maximally-localized Wannier functions.",
              "    See http://www.wannier.org/ for more details."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters for the Wannier90 code"
                },
                {
                  "name": "parent_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Get input files (``.amn``, ``.mmn``, ...) from a class ``RemoteData`` possibly stored in a remote computer."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "input crystal structure"
                },
                {
                  "name": "bands_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "A list of k-points along a path to be used for bands interpolation; it should contain `labels`. Specify either this or `kpoint_path`."
                },
                {
                  "name": "clean_workdir",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "If `True`, work directories of all called calculation jobs will be cleaned at the end of execution."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "kpoint_path",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Description of the k-points path to be used for bands interpolation; it should contain two properties: a list ``path`` of length-2 tuples with the labels of the endpoints of the path; and a dictionary ``point_coords`` giving the scaled coordinates for each high-symmetry endpoint."
                },
                {
                  "name": "kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "k-point mesh used in the NSCF calculation."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "projections",
                  "required": false,
                  "valid_types": "OrbitalData, Dict, List, NoneType",
                  "info": "Starting projections for the Wannierisation procedure."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Additional settings to manage the Wannier90 calculation."
                }
              ],
              "outputs": [
                {
                  "name": "boltzwann",
                  "required": true,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The ``output_parameters`` output node of the successful calculation."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "interpolated_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "The interpolated band structure by Wannier90 (if any)."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 210,
                  "message": "The retrieved folder did not contain the required stdout output file."
                },
                {
                  "status": 300,
                  "message": "A Wannier90 error file (.werr) has been found."
                },
                {
                  "status": 400,
                  "message": "The string \"Exiting...\" has been found in the Wannier90 output (some partial output might have been parsed)."
                },
                {
                  "status": 401,
                  "message": "An error related to bvectors has been found in the Wannier90 output."
                },
                {
                  "status": 402,
                  "message": "Energy window contains fewer states than number of target WFs."
                },
                {
                  "status": 403,
                  "message": "Error plotting Wanier functions in cube format."
                },
                {
                  "status": 404,
                  "message": "The stdout output file was incomplete probably because the calculation got interrupted."
                },
                {
                  "status": 405,
                  "message": "Some output files were missing probably because the calculation got interrupted."
                },
                {
                  "status": 406,
                  "message": "The retrieved temporary folder could not be accessed."
                }
              ]
            },
            "class": "aiida_wannier90.calculations:Postw90Calculation"
          },
          "wannier90.wannier90": {
            "description": [
              "Plugin for Wannier90.",
              "",
              "    Wannier90 is a code for computing maximally-localized Wannier functions.",
              "    See http://www.wannier.org/ for more details."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kpoints",
                  "required": true,
                  "valid_types": "KpointsData",
                  "info": "k-point mesh used in the NSCF calculation."
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Input parameters for the Wannier90 code"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "input crystal structure"
                },
                {
                  "name": "bands_kpoints",
                  "required": false,
                  "valid_types": "KpointsData, NoneType",
                  "info": "A list of k-points along a path to be used for bands interpolation; it should contain `labels`. Specify either this or `kpoint_path`."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "kpoint_path",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Description of the k-points path to be used for bands interpolation; it should contain two properties: a list ``path`` of length-2 tuples with the labels of the endpoints of the path; and a dictionary ``point_coords`` giving the scaled coordinates for each high-symmetry endpoint."
                },
                {
                  "name": "local_input_folder",
                  "required": false,
                  "valid_types": "FolderData, NoneType",
                  "info": "Get input files (``.amn``, ``.mmn``, ...) from a class ``FolderData`` stored in the AiiDA repository."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "projections",
                  "required": false,
                  "valid_types": "OrbitalData, Dict, List, NoneType",
                  "info": "Starting projections for the Wannierisation procedure."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "remote_input_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Get input files (``.amn``, ``.mmn``, ...) from a class ``RemoteData`` possibly stored in a remote computer."
                },
                {
                  "name": "settings",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Additional settings to manage the Wannier90 calculation."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The ``output_parameters`` output node of the successful calculation."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "interpolated_bands",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "The interpolated band structure by Wannier90 (if any)."
                },
                {
                  "name": "nnkp_file",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "The ``.nnkp`` file, produced only in -pp (postproc) mode."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 200,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 210,
                  "message": "The retrieved folder did not contain the required stdout output file."
                },
                {
                  "status": 300,
                  "message": "A Wannier90 error file (.werr) has been found."
                },
                {
                  "status": 400,
                  "message": "The string \"Exiting...\" has been found in the Wannier90 output (some partial output might have been parsed)."
                },
                {
                  "status": 401,
                  "message": "An error related to bvectors has been found in the Wannier90 output."
                },
                {
                  "status": 402,
                  "message": "Energy window contains fewer states than number of target WFs."
                },
                {
                  "status": 403,
                  "message": "Error plotting Wanier functions in cube format."
                },
                {
                  "status": 404,
                  "message": "The stdout output file was incomplete probably because the calculation got interrupted."
                }
              ]
            },
            "class": "aiida_wannier90.calculations:Wannier90Calculation"
          }
        },
        "aiida.parsers": {
          "wannier90.postw90": "aiida_wannier90.parsers:Postw90Parser",
          "wannier90.wannier90": "aiida_wannier90.parsers:Wannier90Parser"
        },
        "aiida.workflows": {
          "wannier90.minimal": {
            "description": [
              "Workchain to run a full stack of Quantum ESPRESSO + Wannier90 for GaAs.",
              "",
              "    Note that this is mostly to be used as an example, as there is no",
              "    error checking and runs directly Quantum ESPRESSO calculations rather",
              "    than the base workflows."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "kpoint_path",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "The kpoints path for the NSCF run and Wannierisation."
                },
                {
                  "name": "kpoints_nscf",
                  "required": true,
                  "valid_types": "KpointsData",
                  "info": "The kpoints for the NSCF run and Wannierisation."
                },
                {
                  "name": "kpoints_scf",
                  "required": true,
                  "valid_types": "KpointsData",
                  "info": "The kpoints for the SCF run."
                },
                {
                  "name": "projections",
                  "required": true,
                  "valid_types": "OrbitalData",
                  "info": "The projections for the Wannierisation."
                },
                {
                  "name": "pseudo_family",
                  "required": true,
                  "valid_types": "Str",
                  "info": "The name of a pseudopotential family to use."
                },
                {
                  "name": "pw2wannier90_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "The `pw2wannier90.x` code to use for the `Pw2Wannier90Calculation`s."
                },
                {
                  "name": "pw_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "The `pw.x` code to use for the `PwCalculation`s."
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "StructureData",
                  "info": "The input structure."
                },
                {
                  "name": "wannier_code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "The `wannier90.x` code to use for the `Wannier90Calculation`s."
                },
                {
                  "name": "max_wallclock_seconds",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "Maximum wallclock time in seconds"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "num_machines",
                  "required": false,
                  "valid_types": "Int, NoneType",
                  "info": "The number of machines (nodes) to use"
                }
              ],
              "outputs": [
                {
                  "name": "matrices_folder",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": ""
                },
                {
                  "name": "nnkp_file",
                  "required": true,
                  "valid_types": "SinglefileData",
                  "info": ""
                },
                {
                  "name": "nscf_output",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "p2wannier_output",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "pw2wan_remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": ""
                },
                {
                  "name": "scf_output",
                  "required": true,
                  "valid_types": "Dict",
                  "info": ""
                },
                {
                  "name": "wannier_bands",
                  "required": true,
                  "valid_types": "BandsData",
                  "info": ""
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                }
              ]
            },
            "class": "aiida_wannier90.workflows.minimal:MinimalW90WorkChain"
          }
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 2
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 2
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-wannier90",
      "is_installable": "True"
    },
    "aiida-wannier90-workflows": {
      "code_home": "https://github.com/aiidateam/aiida-wannier90-workflows",
      "development_status": "stable",
      "entry_point_prefix": "wannier90_workflows",
      "pip_url": "aiida-wannier90-workflows",
      "plugin_info": "https://raw.github.com/aiidateam/aiida-wannier90-workflows/master/setup.json",
      "name": "aiida-wannier90-workflows",
      "package_name": "aiida_wannier90_workflows",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2026-05-08",
        "description": "Advanced AiiDA workflows for Wannier90",
        "author_email": "The AiiDA team <developers@aiida.net>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: Free To Use But Restricted",
          "Natural Language :: English",
          "Operating System :: MacOS :: MacOS X",
          "Operating System :: POSIX :: Linux",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "2.7.1"
      },
      "aiida_version": ">=2.5,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "wannier90_workflows.split": {
            "description": [
              "AiiDA calculation plugin wrapping the split AMN/MMN/EIG script."
            ],
            "spec": {
              "inputs": [
                {
                  "name": "num_val",
                  "required": true,
                  "valid_types": "Int",
                  "info": "Number of valence WFs."
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "parent_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote folder containing win/amn/mmn/eig/unk files."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                },
                {
                  "name": "rotate_unk",
                  "required": false,
                  "valid_types": "Bool",
                  "info": "Number of valence WFs."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Output parameters."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "remote_folder_cond",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Remote folder for conduction."
                },
                {
                  "name": "remote_folder_val",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Remote folder for valence."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "Calculation did not produce all expected output files."
                },
                {
                  "status": 301,
                  "message": "The retrieved temporary folder could not be accessed."
                }
              ]
            },
            "class": "aiida_wannier90_workflows.calculations.split:Wannier90SplitCalculation"
          }
        },
        "aiida.data": {
          "wannier90_workflows.MagneticStructureData": "aiida_wannier90_workflows.data.structure:MagneticStructureData"
        },
        "aiida.parsers": {
          "wannier90_workflows.split": "aiida_wannier90_workflows.parsers.split:Wannier90SplitParser"
        },
        "aiida.workflows": {
          "wannier90_workflows.bands": "aiida_wannier90_workflows.workflows.bands:Wannier90BandsWorkChain",
          "wannier90_workflows.base.open_grid": "aiida_wannier90_workflows.workflows.base.open_grid:OpenGridBaseWorkChain",
          "wannier90_workflows.base.projwfc": "aiida_wannier90_workflows.workflows.base.projwfc:ProjwfcBaseWorkChain",
          "wannier90_workflows.base.pw2wannier90": "aiida_wannier90_workflows.workflows.base.pw2wannier90:Pw2wannier90BaseWorkChain",
          "wannier90_workflows.base.wannier90": "aiida_wannier90_workflows.workflows.base.wannier90:Wannier90BaseWorkChain",
          "wannier90_workflows.open_grid": "aiida_wannier90_workflows.workflows.open_grid:Wannier90OpenGridWorkChain",
          "wannier90_workflows.optimize": "aiida_wannier90_workflows.workflows.optimize:Wannier90OptimizeWorkChain",
          "wannier90_workflows.projwfcbands": "aiida_wannier90_workflows.workflows.projwfcbands:ProjwfcBandsWorkChain",
          "wannier90_workflows.split": "aiida_wannier90_workflows.workflows.split:Wannier90SplitWorkChain",
          "wannier90_workflows.wannier90": "aiida_wannier90_workflows.workflows.wannier90:Wannier90WorkChain"
        },
        "console_scripts": {
          "aiida-wannier90-workflows": "aiida_wannier90_workflows.cli:cmd_root"
        }
      },
      "commits_count": 32,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 10
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-wannier90-workflows",
      "is_installable": "True"
    },
    "aiida-wien2k": {
      "code_home": "https://github.com/rubel75/aiida-wien2k",
      "entry_point_prefix": "wien2k",
      "name": "aiida-wien2k",
      "package_name": "aiida_wien2k",
      "hosted_on": "github.com",
      "metadata": {},
      "aiida_version": null,
      "entry_points": {},
      "commits_count": 0,
      "development_status": "planning",
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Cannot fetch all data from PyPI and missing plugin_info key!",
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [],
      "pip_install_cmd": "See source code repository."
    },
    "aiida-yambo": {
      "code_home": "https://github.com/yambo-code/yambo-aiida/",
      "development_status": "stable",
      "entry_point_prefix": "yambo",
      "pip_url": "aiida-yambo",
      "plugin_info": "https://raw.github.com/yambo-code/yambo-aiida/master/setup.json",
      "name": "aiida-yambo",
      "package_name": "aiida_yambo",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2020-11-05",
        "description": "YAMBO plugin and workflows for AiiDA",
        "author": "Miki Bonacci, Michael Atambo, Antimo Marrazzo, Prandini Gianluca",
        "author_email": "miki.bonacci@unimore.it",
        "license": "MIT",
        "home_page": "https://github.com/yambo-code/yambo-aiida",
        "classifiers": [
          "Environment :: Plugins",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Topic :: Scientific/Engineering :: Physics"
        ],
        "version": "1.3.0"
      },
      "aiida_version": ">=1.0.0a2",
      "entry_points": {
        "aiida.calculations": {
          "yambo.yambo": {
            "description": [
              "AiiDA plugin for the Yambo code.",
              "    For more information, refer to http://www.yambo-code.org/",
              "    https://github.com/yambo-code/yambo-aiida and http://aiida-yambo.readthedocs.io/en/latest/"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "code",
                  "required": true,
                  "valid_types": "Code",
                  "info": "Use a main code for yambo calculation"
                },
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Use a node that specifies the input parameters"
                },
                {
                  "name": "parent_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Use a remote folder as parent folder (for \"restarts and similar\""
                },
                {
                  "name": "settings",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "Use an additional node for special settings"
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "precode_parameters",
                  "required": false,
                  "valid_types": "Dict, NoneType",
                  "info": "Use a node that specifies the input parameters for the yambo precode"
                },
                {
                  "name": "preprocessing_code",
                  "required": false,
                  "valid_types": "Code, NoneType",
                  "info": "Use a preprocessing code for starting yambo"
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "returns the output parameters"
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "array_alpha",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the alpha array"
                },
                {
                  "name": "array_alpha_array",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the alpha array"
                },
                {
                  "name": "array_alpha_bands",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the alpha array bands"
                },
                {
                  "name": "array_eels",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the eels array"
                },
                {
                  "name": "array_eps",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the eps array"
                },
                {
                  "name": "array_ndb",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the array for ndb"
                },
                {
                  "name": "array_ndb_HFlocXC",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the array ndb for HFlocXC"
                },
                {
                  "name": "array_ndb_QP",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the array for ndbQP"
                },
                {
                  "name": "array_qp",
                  "required": false,
                  "valid_types": "ArrayData",
                  "info": "returns the quasiparticle array band structure"
                },
                {
                  "name": "bands_quasiparticle",
                  "required": false,
                  "valid_types": "BandsData",
                  "info": "returns the quasiparticle band structure"
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                },
                {
                  "status": 300,
                  "message": "The retrieved folder data node could not be accessed."
                },
                {
                  "status": 301,
                  "message": "time exceeded the max walltime"
                },
                {
                  "status": 302,
                  "message": "failed calculation for some reason: could be a low number of conduction bands"
                },
                {
                  "status": 303,
                  "message": "Unexpected behavior of YamboFolder"
                },
                {
                  "status": 304,
                  "message": "parallelization error"
                },
                {
                  "status": 305,
                  "message": "memory issues"
                }
              ]
            },
            "class": "aiida_yambo.calculations.yambo:YamboCalculation"
          }
        },
        "aiida.data": {},
        "aiida.parsers": {
          "yambo.yambo": "aiida_yambo.parsers.parsers:YamboParser"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-yambo",
      "is_installable": "True"
    },
    "aiida-yambo-wannier90": {
      "code_home": "https://github.com/aiidaplugins/aiida-yambo-wannier90",
      "entry_point_prefix": "yambo_wannier90",
      "pip_url": "aiida-yambo-wannier90",
      "plugin_info": "https://raw.githubusercontent.com/aiidaplugins/aiida-yambo-wannier90/main/pyproject.toml",
      "documentation_url": "https://aiida-yambo-wannier90.readthedocs.io/en/latest/",
      "version_file": "https://raw.githubusercontent.com/aiidaplugins/aiida-yambo-wannier90/main/aiida_yambo_wannier90/__init__.py",
      "name": "aiida-yambo-wannier90",
      "package_name": "aiida_yambo_wannier90",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2022-07-06",
        "description": "Plugin to combine Wannier90 interpolations with GW corrections computed by Yambo",
        "author": "The AiiDA Team",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Natural Language :: English",
          "Programming Language :: Python"
        ],
        "version": "0.1.0b0"
      },
      "aiida_version": ">=1.6.4,<3",
      "entry_points": {
        "aiida.calculations": {
          "yambo_wannier90.gw2wannier90": "aiida_yambo_wannier90.calculations.gw2wannier90:Gw2wannier90Calculation"
        },
        "aiida.parsers": {
          "yambo_wannier90.gw2wannier90": "aiida_yambo_wannier90.parsers.gw2wannier90:Gw2wannier90Parser"
        },
        "aiida.workflows": {
          "yambo_wannier90": "aiida_yambo_wannier90.workflows:YamboWannier90WorkChain"
        },
        "console_scripts": {
          "aiida-yambo-wannier90": "aiida_yambo_wannier90.cli:cmd_root"
        }
      },
      "commits_count": 0,
      "development_status": "beta",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-yambo-wannier90<pre>Collecting aiida-yambo-wannier90\n  Downloading aiida_yambo_wannier90-0.1.0b0-py3-none-any.whl.metadata (3.4 kB)\nRequirement already satisfied: aiida-core<3,>=1.6.4 in /opt/conda/lib/python3.10/site-packages (from aiida-yambo-wannier90) (2.5.2)\nCollecting voluptuous (from aiida-yambo-wannier90)\n  Downloading voluptuous-0.16.0-py3-none-any.whl.metadata (20 kB)\nCollecting aiida-yambo>=1.3.0 (from aiida-yambo-wannier90)\n  Downloading aiida_yambo-1.3.0-py3-none-any.whl.metadata (1.1 kB)\nCollecting aiida-wannier90-workflows>=1.0.1 (from aiida-yambo-wannier90)\n  Downloading aiida_wannier90_workflows-2.7.1-py3-none-any.whl.metadata (5.6 kB)\nRequirement already satisfied: alembic~=1.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (1.13.1)\nRequirement already satisfied: archive-path~=0.4.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.4.2)\nRequirement already satisfied: aio-pika~=6.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (6.8.1)\nRequirement already satisfied: circus~=0.18.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.18.0)\nRequirement already satisfied: click-spinner~=0.1.8 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.1.10)\nRequirement already satisfied: click~=8.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (8.1.7)\nRequirement already satisfied: disk-objectstore~=1.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (1.1.0)\nRequirement already satisfied: docstring-parser in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.16)\nRequirement already satisfied: graphviz~=0.19 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.20.3)\nRequirement already satisfied: ipython>=7 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (8.25.0)\nRequirement already satisfied: jedi<0.19 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.18.2)\nRequirement already satisfied: jinja2~=3.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (3.1.4)\nRequirement already satisfied: kiwipy~=0.7.7 in /opt/conda/lib/python3.10/site-packages (from kiwipy[rmq]~=0.7.7->aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.7.8)\nRequirement already satisfied: importlib-metadata~=6.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (6.11.0)\nRequirement already satisfied: numpy~=1.21 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (1.26.4)\nRequirement already satisfied: paramiko>=2.7.2,~=2.7 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (2.12.0)\nRequirement already satisfied: plumpy~=0.21.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.21.10)\nRequirement already satisfied: pgsu~=0.2.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.2.4)\nRequirement already satisfied: psutil~=5.6 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (5.9.8)\nRequirement already satisfied: psycopg2-binary~=2.8 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (2.9.9)\nRequirement already satisfied: pydantic~=2.4 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (2.7.3)\nRequirement already satisfied: pytz~=2021.1 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (2021.3)\nRequirement already satisfied: pyyaml~=6.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (6.0.1)\nRequirement already satisfied: requests~=2.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (2.32.3)\nRequirement already satisfied: sqlalchemy~=2.0 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (2.0.30)\nRequirement already satisfied: tabulate~=0.8.5 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.8.10)\nRequirement already satisfied: tqdm~=4.45 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (4.66.4)\nRequirement already satisfied: upf_to_json~=0.9.2 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (0.9.5)\nRequirement already satisfied: wrapt~=1.11 in /opt/conda/lib/python3.10/site-packages (from aiida-core<3,>=1.6.4->aiida-yambo-wannier90) (1.16.0)\nCollecting aiida-pseudo>=0.6 (from aiida-wannier90-workflows>=1.0.1->aiida-yambo-wannier90)\n  Downloading aiida_pseudo-1.8.0-py3-none-any.whl.metadata (10 kB)\nCollecting aiida-quantumespresso>=4.4 (from aiida-wannier90-workflows>=1.0.1->aiida-yambo-wannier90)\n  Downloading aiida_quantumespresso-5.0.0-py3-none-any.whl.metadata (27 kB)\nCollecting aiida-wannier90>=2.2 (from aiida-wannier90-workflows>=1.0.1->aiida-yambo-wannier90)\n  Downloading aiida_wannier90-2.2.0-py3-none-any.whl.metadata (4.0 kB)\nRequirement already satisfied: colorama in /opt/conda/lib/python3.10/site-packages (from aiida-wannier90-workflows>=1.0.1->aiida-yambo-wannier90) (0.4.6)\nINFO: pip is looking at multiple versions of aiida-yambo to determine which version is compatible with other requirements. This could take a while.\nCollecting aiida-wannier90-workflows>=1.0.1 (from aiida-yambo-wannier90)\n  Downloading aiida_wannier90_workflows-2.7.0-py3-none-any.whl.metadata (5.6 kB)\n  Downloading aiida_wannier90_workflows-2.6.0-py3-none-any.whl.metadata (5.6 kB)\n  Downloading aiida_wannier90_workflows-2.5.0-py3-none-any.whl.metadata (5.6 kB)\n  Downloading aiida_wannier90_workflows-2.4.0-py3-none-any.whl.metadata (5.6 kB)\n  Downloading aiida_wannier90_workflows-2.3.0-py3-none-any.whl.metadata (5.6 kB)\n  Downloading aiida_wannier90_workflows-2.2.0-py3-none-any.whl.metadata (5.4 kB)\n  Downloading aiida_wannier90_workflows-2.1.0-py3-none-any.whl.metadata (4.7 kB)\nINFO: pip is still looking at multiple versions of aiida-yambo to determine which version is compatible with other requirements. This could take a while.\n  Downloading aiida_wannier90_workflows-1.0.2-py3-none-any.whl.metadata (969 bytes)\nINFO: pip is looking at multiple versions of aiida-wannier90-workflows to determine which version is compatible with other requirements. This could take a while.\n  Downloading aiida_wannier90_workflows-1.0.1-py2.py3-none-any.whl.metadata (925 bytes)\nERROR: Cannot install aiida-yambo-wannier90 and aiida-yambo-wannier90==0.1.0b0 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-yambo-wannier90 0.1.0b0 depends on aiida-core<3 and >=1.6.4\n    aiida-wannier90-workflows 1.0.2 depends on aiida-core<2 and >=1.1.1\n    aiida-yambo-wannier90 0.1.0b0 depends on aiida-core<3 and >=1.6.4\n    aiida-wannier90-workflows 1.0.1 depends on aiida-core<2 and >=1.1.1\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 1
        },
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install --pre aiida-yambo-wannier90",
      "is_installable": "False"
    },
    "aiida-yascheduler": {
      "code_home": "https://github.com/tilde-lab/yascheduler",
      "documentation_url": "https://github.com/tilde-lab/yascheduler",
      "entry_point_prefix": "yascheduler",
      "pip_url": "yascheduler",
      "plugin_info": "https://raw.githubusercontent.com/tilde-lab/yascheduler/master/pyproject.toml",
      "name": "aiida-yascheduler",
      "package_name": "aiida_yascheduler",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2025-05-23",
        "description": "Yet another computing scheduler and cloud orchestration engine",
        "author_email": "Sergei Korolev <knopki@duck.com>, Andrey Sobolev <as@tilde.pro>, Evgeny Blokhin <eb@tilde.pro>",
        "classifiers": [
          "Development Status :: 4 - Beta",
          "Framework :: AiiDA",
          "Intended Audience :: Science/Research",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Programming Language :: Python :: 3.13",
          "Programming Language :: Python :: 3.9",
          "Topic :: Scientific/Engineering :: Chemistry",
          "Topic :: Scientific/Engineering :: Information Analysis",
          "Topic :: Scientific/Engineering :: Physics",
          "Topic :: Software Development :: Libraries :: Python Modules"
        ],
        "version": "1.5.0"
      },
      "aiida_version": null,
      "entry_points": {
        "aiida.schedulers": {
          "yascheduler": "yascheduler.aiida_plugin:YaScheduler"
        },
        "console_scripts": {
          "yainit": "yascheduler.utils:init",
          "yanodes": "yascheduler.utils:show_nodes",
          "yascheduler": "yascheduler.utils:daemonize",
          "yasetnode": "yascheduler.utils:manage_node",
          "yastatus": "yascheduler.utils:check_status",
          "yasubmit": "yascheduler.utils:submit"
        }
      },
      "commits_count": 30,
      "development_status": "beta",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E002'>E002</a>: Failed to import package aiida_yascheduler<pre>Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nModuleNotFoundError: No module named 'aiida_yascheduler'\n</pre>"
      ],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W002'>W002</a>: AiiDA version not found"
      ],
      "summaryinfo": [
        {
          "colorclass": "purple",
          "text": "Console scripts",
          "count": 6
        },
        {
          "colorclass": "orange",
          "text": "Other (Schedulers)",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install yascheduler",
      "is_installable": "True"
    },
    "aiida-z2pack": {
      "code_home": "https://github.com/AntimoMarrazzo/aiida-z2pack",
      "entry_point_prefix": "z2pack",
      "pip_url": "git+https://github.com/AntimoMarrazzo/aiida-z2pack",
      "name": "aiida-z2pack",
      "package_name": "aiida_z2pack",
      "hosted_on": "github.com",
      "metadata": {
        "description": "The official AiiDA plugin for z2pack",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11"
        ],
        "author": "Antimo Marrazzo",
        "author_email": "antimo.marrazzo@epfl.ch"
      },
      "aiida_version": ">=2.1.2,<=2.2.2",
      "entry_points": {
        "aiida.calculations": {
          "z2pack.z2pack": "aiida_z2pack.calculations.z2pack:Z2packCalculation"
        },
        "aiida.parsers": {
          "z2pack.z2pack": "aiida_z2pack.parsers.z2pack:Z2packParser"
        },
        "aiida.workflows": {
          "z2pack.base": "aiida_z2pack.workchains.base:Z2packBaseWorkChain",
          "z2pack.qsh": "aiida_z2pack.workchains.parity:Z2QSHworkchain",
          "z2pack.3DChern": "aiida_z2pack.workchains.chern:Z2pack3DChernWorkChain",
          "z2pack.refine": "aiida_z2pack.workchains.refine:RefineCrossingsPosition"
        }
      },
      "commits_count": 0,
      "development_status": "stable",
      "errors": [
        "<a href='https://github.com/aiidateam/aiida-registry#E001'>E001</a>: Failed to install plugin aiida-z2pack<pre>Collecting git+https://github.com/AntimoMarrazzo/aiida-z2pack\n  Cloning https://github.com/AntimoMarrazzo/aiida-z2pack to /tmp/pip-req-build-xr3ra29g\n  Running command git clone --filter=blob:none --quiet https://github.com/AntimoMarrazzo/aiida-z2pack /tmp/pip-req-build-xr3ra29g\n  Resolved https://github.com/AntimoMarrazzo/aiida-z2pack to commit 01a06de726c8b3eab7d18d1a36b4631ad8216f8b\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nRequirement already satisfied: numpy in /opt/conda/lib/python3.10/site-packages (from aiida-z2pack==3.0.1) (1.26.4)\nCollecting z2pack==2.1.1 (from aiida-z2pack==3.0.1)\n  Downloading z2pack-2.1.1-py3-none-any.whl.metadata (2.3 kB)\nINFO: pip is looking at multiple versions of aiida-z2pack to determine which version is compatible with other requirements. This could take a while.\nERROR: Cannot install aiida-z2pack==3.0.1 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n    aiida-z2pack 3.0.1 depends on aiida-core<=2.2.2 and >=2.1.2\n    The user requested (constraint) aiida-core==2.5.2\n\nTo fix this you could try to:\n1. loosen the range of package versions you've specified\n2. remove package versions to allow pip attempt to solve the dependency conflict\n\nERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts\n</pre>"
      ],
      "warnings": [],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "green",
          "text": "Workflows",
          "count": 4
        }
      ],
      "pip_install_cmd": "pip install git+https://github.com/AntimoMarrazzo/aiida-z2pack",
      "is_installable": "False"
    },
    "aiida-zeopp": {
      "code_home": "https://github.com/lsmo-epfl/aiida-zeopp",
      "development_status": "stable",
      "entry_point_prefix": "zeopp",
      "pip_url": "aiida-zeopp",
      "plugin_info": "https://raw.github.com/lsmo-epfl/aiida-zeopp/master/setup.json",
      "name": "aiida-zeopp",
      "package_name": "aiida_zeopp",
      "hosted_on": "github.com",
      "metadata": {
        "release_date": "2023-08-26",
        "description": "AiiDA plugin for zeo++",
        "author_email": "Leopold Talirz <leopold.talirz@epfl.ch>, Miriam Pougin <miriam.pougin@epfl.ch>",
        "classifiers": [
          "Development Status :: 5 - Production/Stable",
          "Framework :: AiiDA",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9"
        ],
        "version": "2.0.0"
      },
      "aiida_version": ">=2.3,<3.0",
      "entry_points": {
        "aiida.calculations": {
          "zeopp.network": {
            "description": [
              "AiiDA calculation plugin for the zeo++ network binary"
            ],
            "spec": {
              "inputs": [
                {
                  "name": "parameters",
                  "required": true,
                  "valid_types": "NetworkParameters",
                  "info": "command line parameters for zeo++"
                },
                {
                  "name": "structure",
                  "required": true,
                  "valid_types": "CifData",
                  "info": "input structure to be analyzed"
                },
                {
                  "name": "atomic_radii",
                  "required": false,
                  "valid_types": "SinglefileData, NoneType",
                  "info": "atomic radii file"
                },
                {
                  "name": "code",
                  "required": false,
                  "valid_types": "AbstractCode, NoneType",
                  "info": "The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run."
                },
                {
                  "name": "metadata",
                  "required": false,
                  "valid_types": "",
                  "info": ""
                },
                {
                  "name": "monitors",
                  "required": false,
                  "valid_types": "Dict",
                  "info": "Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job."
                },
                {
                  "name": "remote_folder",
                  "required": false,
                  "valid_types": "RemoteData, NoneType",
                  "info": "Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual."
                }
              ],
              "outputs": [
                {
                  "name": "output_parameters",
                  "required": true,
                  "valid_types": "Dict",
                  "info": "key-value pairs parsed from zeo++ output file(s)."
                },
                {
                  "name": "remote_folder",
                  "required": true,
                  "valid_types": "RemoteData",
                  "info": "Input files necessary to run the process will be stored in this folder node."
                },
                {
                  "name": "retrieved",
                  "required": true,
                  "valid_types": "FolderData",
                  "info": "Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`."
                },
                {
                  "name": "block",
                  "required": false,
                  "valid_types": "SinglefileData",
                  "info": "Blocked pockets fileoutput file."
                },
                {
                  "name": "remote_stash",
                  "required": false,
                  "valid_types": "RemoteStashData",
                  "info": "Contents of the `stash.source_list` option are stored in this remote folder after job completion."
                }
              ],
              "exit_codes": [
                {
                  "status": 0,
                  "message": "Calculation completed successfully."
                },
                {
                  "status": 1,
                  "message": "The process has failed with an unspecified error."
                },
                {
                  "status": 2,
                  "message": "The process failed with legacy failure mode."
                },
                {
                  "status": 10,
                  "message": "The process returned an invalid output."
                },
                {
                  "status": 11,
                  "message": "The process did not register a required output."
                },
                {
                  "status": 100,
                  "message": "The process did not have the required `retrieved` output."
                },
                {
                  "status": 101,
                  "message": "Not all expected output files were found."
                },
                {
                  "status": 102,
                  "message": "Empty block file. This indicates the calculation of blocked pockets did not finish."
                },
                {
                  "status": 110,
                  "message": "The job ran out of memory."
                },
                {
                  "status": 120,
                  "message": "The job ran out of walltime."
                },
                {
                  "status": 131,
                  "message": "The specified account is invalid."
                },
                {
                  "status": 140,
                  "message": "The node running the job failed."
                },
                {
                  "status": 150,
                  "message": "{message}"
                }
              ]
            },
            "class": "aiida_zeopp.calculations.network:NetworkCalculation"
          }
        },
        "aiida.data": {
          "zeopp.parameters": "aiida_zeopp.data.parameters:NetworkParameters"
        },
        "aiida.parsers": {
          "zeopp.network": "aiida_zeopp.parsers.network:NetworkParser"
        }
      },
      "commits_count": 0,
      "errors": [],
      "warnings": [
        "<a href='https://github.com/aiidateam/aiida-registry#W006'>W006</a>: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead."
      ],
      "summaryinfo": [
        {
          "colorclass": "blue",
          "text": "Calculations",
          "count": 1
        },
        {
          "colorclass": "brown",
          "text": "Parsers",
          "count": 1
        },
        {
          "colorclass": "red",
          "text": "Data",
          "count": 1
        }
      ],
      "pip_install_cmd": "pip install aiida-zeopp",
      "is_installable": "True"
    }
  },
  "globalsummary": [
    {
      "name": "Calculations",
      "colorclass": "blue",
      "num_entries": 74,
      "total_num": 180
    },
    {
      "name": "Parsers",
      "colorclass": "brown",
      "num_entries": 75,
      "total_num": 155
    },
    {
      "name": "Data",
      "colorclass": "red",
      "num_entries": 41,
      "total_num": 133
    },
    {
      "name": "Workflows",
      "colorclass": "green",
      "num_entries": 52,
      "total_num": 242
    },
    {
      "name": "Console scripts",
      "colorclass": "purple",
      "num_entries": 21,
      "total_num": 43
    },
    {
      "name": "Other",
      "tooltip": "Aenet potentials, Aiida python serializers, Aiidalab qe properties, ...",
      "colorclass": "orange",
      "num_entries": 34,
      "total_num": 122
    }
  ],
  "status_dict": {
    "planning": [
      "Not yet ready to use. Developers welcome!",
      "status-planning-d9644d.svg"
    ],
    "pre-alpha": [
      "Not yet ready to use. Developers welcome!",
      "status-planning-d9644d.svg"
    ],
    "alpha": [
      "Adds new functionality, not yet ready for production. Testing welcome!",
      "status-alpha-d6af23.svg"
    ],
    "beta": [
      "Adds new functionality, not yet ready for production. Testing welcome!",
      "status-beta-d6af23.svg"
    ],
    "stable": [
      "Ready for production calculations. Bug reports welcome!",
      "status-stable-4cc61e.svg"
    ],
    "mature": [
      "Ready for production calculations. Bug reports welcome!",
      "status-stable-4cc61e.svg"
    ],
    "inactive": [
      "No longer maintained.",
      "status-inactive-bbbbbb.svg"
    ]
  },
  "entrypointtypes": {
    "aiida.calculations": "CalcJobs and calculation functions",
    "aiida.parsers": "CalcJob parsers",
    "aiida.data": "Data node types",
    "aiida.cmdline.data": "verdi data commands",
    "aiida.groups": "Group types",
    "aiida.workflows": "WorkChains and work functions",
    "aiida.schedulers": "Job scheduler support",
    "aiida.transports": "Data transport protocols",
    "aiida.tests": "Development test modules",
    "aiida.tools.dbexporters": "Support for exporting to external databases",
    "aiida.tools.dbimporters": "Support for importing from external databases",
    "console_scripts": "Console scripts"
  }
}