CLI: Fix error in aiida.cmdline.utils.log.CliFormatter
#5957
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
CliFormatter
could raise an exception if the record message contained named parameters, but theargs
is a tuple. An example is when theQueryBuilder
would log the prepared SQL statement, e.g.:The
%(pk_1)s
here is indeed a named parameter, but not intended to be formatted for the log message itself, but to be kept as is. However, the log formatter does not know this and would attempt to format it with the givenargs
, which would be the empty tuple. This would raise:The
CliFormatter.format
didn't account for this case. Instead of fixing it there, the class now just refers to the baseFormatter
class to format the record, which does the right thing in this case, and theCliFormatter
simply adds the prefix to the formatted message if necessary.