[pyobj-] catch AttributeError viewing columns list #2631
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.
Viewing a sheet's columns with
^X
sheet.columns
gives an error trying to readformatted_help
that causes all the attributes to fail to be displayed.A simpler way to solve this problem would be to replace
self.help
withgetattr(self, 'help', '')
, but that would break the guide formatting behavior.formatted_help
was designed to be accessed when handling a format string for a guide:{sheet.cursorCol.formatted_help}"
. In that context,MissingAttrFormatter()
looks forAttributeError
to know when to fall back to displaying the format string unaltered:visidata/visidata/utils.py
Lines 195 to 199 in 37f0a0c
So this PR changes the way
PyobjColumns
accesses attributes, to be compatible with theMissingAttrFormatter
design.