add compatibility with vscode tableviewer #510
Merged
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 vscode tableviewer guide is incorrect when it says it works with all Tables.jl compatible types. In fact it requires the type's iterator to be a named tuple and uses two further packages for this.
It uses TableTraits.jl isiterabletable(x) to determine if the table x is iterable. This checks the eltype of the table x requiring it to be a NamedTuple.
It also uses IteratorInterfaceExtensions.jl getiterator(x) to retrieve the iterator for the interface.
This commit implements a fix for #508 in the way that DataFrames.jl implements tables.jl by overloading the above methods. I've also overloaded IteratorInterfaceExtensions.isiterable(x) but this may be unnecessary.