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.
This gives you full integration with the Queryverse.jl. So you get file IO (CSV, Feather, Excel, SAS, SPSS, STATA, Parquet), plotting (VegaLite.jl, StatsPlots.jl, Gadfly.jl, DataVoyager.jl), conversion to and from other tables (pretty much all table types, DataFrames, IndexedTables, TimeSeries, Temporal, Pandas) and it works with Query.jl, and I probably forgot something ;)
In case you are worried about taking on additional dependencies, here is the landscape on that: IteratorInterfaceExtensions.jl and TableTraits.jl are super stable. I haven't changed anything (apart from the julia 0.7 update) about these in about 1.5 years, and I plan to make zero changes going forward. They are also super minimal (take a look), so I think there is no risk in taking a dependency on these (and I think I have a track record at this point for not breaking stuff, ask e.g. Chris Rackauckas what his experience has been with taking the same dependency for his ecosystem). TableTraitsUtils.jl is getting changes as I improve the implementation there, but I am also not breaking packages that use it. It is also not really necessary to play in the Queryverse, it really is just a shortcut to make it a bit easier to implement the interface. So if this dependency was not welcome, one could remove it down the road (but then would need a bit more code here in the repo).
The whole TableTraits.jl story is documented here. There is one twist, and that is that
isiterabletable
can now returnmissing
. The code in this PR doesn't handle that yet. At this point there are no sources that lead to this, so it shouldn't be an issue, and I would follow up and fix this later.Should also say that I like everything I see here A LOT! I think there is also room for a much deeper integration between Query.jl and this stuff here, with a custom Query.jl backend that makes use of the acceleration stuff you have. But we could try to figure that out in a second step.