Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

verdi plugin list: Show full help for input and output ports #5711

Merged
merged 2 commits into from
Oct 24, 2022

Conversation

sphuber
Copy link
Contributor

@sphuber sphuber commented Oct 21, 2022

Fixes #5683

The help message for input and output ports in the formatted process
spec was being cropped to 75 characters and any excess info was replaced
by an ellipsis.

The help messages of each port are now shown in its entirety while
wrapping the string to 100 columns at most.

@sphuber sphuber requested a review from ltalirz October 21, 2022 15:07
@sphuber
Copy link
Contributor Author

sphuber commented Oct 21, 2022

@ltalirz this one builds on top of #5709 and #5710 which should be reviewed and merged first.

@sphuber sphuber force-pushed the fix/5683/verdi-plugin-list-ellipsis branch 2 times, most recently from ef868c4 to 79b513f Compare October 21, 2022 17:59
Copy link
Member

@ltalirz ltalirz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this @sphuber !

Some minor nitpicks: here is the output for the quantumespresso.pw plugin

  • width for inputs and outputs is not aligned (this is indeed minor, you can ignore it if you want) I see now that they are wrapped to (roughly?) the same total width
  • exit code output seems not wrapped
$ verdi plugin list aiida.calculations quantumespresso.pw
Description:

    `CalcJob` implementation for the pw.x code of Quantum ESPRESSO.

Inputs:
Required inputs are displayed in bold red

        kpoints  KpointsData       kpoint mesh or kpoint path
     parameters  Dict              The input parameters that are to be used to construct the input file.
        pseudos  UpfData, UpfData  A mapping of `UpfData` nodes onto the kind name to which they should apply.
      structure  StructureData     The input structure.
           code  AbstractCode      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.
   hubbard_file  SinglefileData    SinglefileData node containing the output Hubbard parameters from a
                                   HpCalculation
       metadata
parallelization  Dict              Parallelization options. The following flags are allowed: npool  : The
                                   number of 'pools', each taking care of a group of k-points. nband  : The
                                   number of 'band groups', each taking care of a group of Kohn-Sham orbitals.
                                   ntg    : The number of 'task groups' across which the FFT planes are
                                   distributed. ndiag  : The number of 'linear algebra groups' used when
                                   parallelizing the subspace diagonalization / iterative orthonormalization.
                                   By default, no parameter is passed to Quantum ESPRESSO, meaning it will use
                                   its default.
  parent_folder  RemoteData        An optional working directory of a previously completed calculation to
                                   restart from.
  remote_folder  RemoteData        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.
       settings  Dict              Optional parameters to affect the way the calculation job and the parsing
                                   are performed.
      vdw_table  SinglefileData    Optional van der Waals table contained in a `SinglefileData`.

Outputs:
Required outputs are displayed in bold red

        output_parameters  Dict             The `output_parameters` output node of the successful calculation.
            remote_folder  RemoteData       Input files necessary to run the process will be stored in this folder
                                            node.
                retrieved  FolderData       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`.
output_atomic_occupations  Dict
              output_band  BandsData        The `output_band` output node of the successful calculation if present.
           output_kpoints  KpointsData
         output_structure  StructureData    The `output_structure` output node of the successful calculation if
                                            present.
        output_trajectory  TrajectoryData
             remote_stash  RemoteStashData  Contents of the `stash.source_list` option are stored in this remote folder
                                            after job completion.

Exit codes:
Exit codes that invalidate the cache are marked in bold red

  1  The process has failed with an unspecified error.
  2  The process failed with legacy failure mode.
 10  The process returned an invalid output.
 11  The process did not register a required output.
100  The process did not have the required `retrieved` output.
110  The job ran out of memory.
120  The job ran out of walltime.
301  The retrieved temporary folder could not be accessed.
302  The retrieved folder did not contain the required stdout output file.
303  The retrieved folder did not contain the required XML file.
304  The retrieved folder contained multiple XML files.
305  Both the stdout and XML output files could not be read or parsed.
310  The stdout output file could not be read.
311  The stdout output file could not be parsed.
312  The stdout output file was incomplete probably because the calculation got interrupted.
320  The XML output file could not be read.
321  The XML output file could not be parsed.
322  The XML output file has an unsupported format.
340  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.
350  The parser raised an unexpected exception: {exception}
400  The calculation stopped prematurely because it ran out of walltime.
410  The electronic minimization cycle did not reach self-consistency.
461  The code failed with negative dexx in the exchange calculation.
462  The code failed during the cholesky factorization.
463  Too many bands failed to converge during the diagonalization.
481  The k-point parallelization "npools" is too high, some nodes have no k-points.
500  The ionic minimization cycle did not converge for the given thresholds.
501  Then ionic minimization cycle converged but the thresholds are exceeded in the final SCF.
502  The ionic minimization cycle did not converge after the maximum number of steps.
510  The electronic minimization cycle failed during an ionic minimization cycle.
511  The ionic minimization cycle converged, but electronic convergence was not reached in the final SCF.
520  The ionic minimization cycle terminated prematurely because of two consecutive failures in the BFGS algorithm.
521  The ionic minimization cycle terminated prematurely because of two consecutive failures in the BFGS algorithm and electronic convergence failed in the final SCF.
531  The electronic minimization cycle did not reach self-consistency.
541  The variable cell optimization broke the symmetry of the k-points.
710  The electronic minimization cycle did not reach self-consistency, but `scf_must_converge` is `False` and/or `electron_maxstep` is 0.

@sphuber sphuber force-pushed the fix/5683/verdi-plugin-list-ellipsis branch from 79b513f to 1265186 Compare October 24, 2022 14:50
The help message for input and output ports in the formatted process
spec was being cropped to 75 characters and any excess info was replaced
by an ellipsis.

The help messages of each port are now shown in its entirety while
wrapping the string to 100 columns at most.
Also move required messages for inputs/outputs to bottom.
@sphuber sphuber force-pushed the fix/5683/verdi-plugin-list-ellipsis branch from 1265186 to 3bae980 Compare October 24, 2022 14:51
@sphuber
Copy link
Contributor Author

sphuber commented Oct 24, 2022

Thanks @ltalirz . Wrapped the exit code messages.

I see now that they are wrapped to (roughly?) the same total width

They are wrapped to the same width, it is just that they are pushed to the right by the name and valid type of the port. These are not aligned across the inputs and outputs, but just within each block. But aligning those would be a lot of additional work, for little gain, so if you don't mind I won't spend time on that.

@sphuber
Copy link
Contributor Author

sphuber commented Oct 24, 2022

Also, seems that pip or PyPI having some issues. All of a sudden it cannot find certain dependencies anymore.

@sphuber sphuber requested a review from ltalirz October 24, 2022 15:02
Copy link
Member

@ltalirz ltalirz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, thanks!

I guess I was looking at an intermediate version when the different presentation of the exit codes just had been merged.
All good now.

@sphuber sphuber merged commit 9dc32d8 into aiidateam:main Oct 24, 2022
@sphuber sphuber deleted the fix/5683/verdi-plugin-list-ellipsis branch October 24, 2022 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot read the documentation of verdi plugin list on a terminal (line too long)
2 participants