home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

10 rows where issue = 552500673 and user = 35968931 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: reactions, created_at (date)

user 1

  • TomNicholas · 10 ✖

issue 1

  • Feature Proposal: `xarray.interactive` module · 10 ✖

author_association 1

  • MEMBER 10
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
962130417 https://github.com/pydata/xarray/issues/3709#issuecomment-962130417 https://api.github.com/repos/pydata/xarray/issues/3709 IC_kwDOAMm_X845WPHx TomNicholas 35968931 2021-11-05T18:42:00Z 2021-11-05T18:42:00Z MEMBER

Just for completeness. You can find @philippjfr PyData 2021 .interactive talk here

Oh awesome! Can I watch this talk anywhere? That link just seems to have a summary.

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
889249897 https://github.com/pydata/xarray/issues/3709#issuecomment-889249897 https://api.github.com/repos/pydata/xarray/issues/3709 IC_kwDOAMm_X841AOBp TomNicholas 35968931 2021-07-29T15:37:20Z 2021-07-29T15:37:20Z MEMBER

@jbednar that all looks amazing! Can't wait to properly try it out.

Given that much of what I imagined is now available in holoviews, I will close this issue now. But if you would like to raise a PR pointing towards this functionality somewhere in xarray's docs (maybe either as a more detailed description in the Ecosystem page or as a note in the plotting page of the user guide) then that would be welcome!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
619522107 https://github.com/pydata/xarray/issues/3709#issuecomment-619522107 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDYxOTUyMjEwNw== TomNicholas 35968931 2020-04-26T10:05:15Z 2020-04-26T10:05:15Z MEMBER

@philippjfr that looks incredible!

The accessor syntax is exactly what I was imagining too, great job.

requires some small fixes in HoloViews

I would love to have a go, plus I had a few other ideas I would like to try out - is there a branch somewhere I could check out to get it going locally?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
610608787 https://github.com/pydata/xarray/issues/3709#issuecomment-610608787 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDYxMDYwODc4Nw== TomNicholas 35968931 2020-04-07T20:39:38Z 2020-04-07T20:39:38Z MEMBER

This looks absolutely great @philippjfr ! I would be keen to help you and @jbednar with making the syntax as intuitive and familiar as possible for xarray users. If you have any relevant issues/PR's in holoviews or here then please tag me :)

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
577690923 https://github.com/pydata/xarray/issues/3709#issuecomment-577690923 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDU3NzY5MDkyMw== TomNicholas 35968931 2020-01-23T13:53:55Z 2020-01-23T13:53:55Z MEMBER

It sounds like you're hoping for something that is independent of plotting (like Panel) and provides interactive widgets (like Panel) but also has specific support for multidimensional arrays (like HoloViews)? I don't think that's much code, but it could be useful to provide for Xarray in a convenient API.

Thanks @jbednar , I think that's a good summary of most of what I was imagining.

I think the real power in this proposal is in the ability to chain operations on interactive components using an API that will be familiar to xarray users.

Yes exactly. There will be a lot of users who do their work in xarray and being able to achieve interactivity in their existing workflows with almost exactly the same API would improve their experience without presenting much of a barrier to adoption.

Thanks for the (impressive) example @philippjfr !

I think there should be some explicit way to declare which parts are interactive

I was imagining that functions/methods following the .interactive accessor was the only place where interactivity occurred, but it might well be possible to do it more generally than that and still keep it intuitive.

I didn't appreciate exactly how much of this panels/holoviews can already do - I think I need to go away and experiment with using/wrapping them but aiming for an xarray-like syntax.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
576765849 https://github.com/pydata/xarray/issues/3709#issuecomment-576765849 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDU3Njc2NTg0OQ== TomNicholas 35968931 2020-01-21T16:33:58Z 2020-01-21T16:33:58Z MEMBER

Thanks @dcherian , I hadn't seen those.

I think the difference between what I'm proposing here and what already exists (e.g. in holoviews, xrviz, etc.) is considering interactivity as something that is useful independent of plotting.

The aim would be to allow interactive parameterization of arbitrary functions, which could (and often would) be plotting functions, but could actually be anything. That way analysis can be interactively parameterized, and the plotting can be handled by any library. (Plotting libraries could also choose to reuse these interactivity functions, but wouldn't have to.) I think that approach would integrate well with being able to change plotting backends too (#3553).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
576735778 https://github.com/pydata/xarray/issues/3709#issuecomment-576735778 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDU3NjczNTc3OA== TomNicholas 35968931 2020-01-21T15:31:20Z 2020-01-21T15:31:20Z MEMBER

This looks really cool and I like the API!

Great!

I'll have to give it a try to give more detailed feedback.

Thanks, but it's definitely not ready for that yet, I'll post here and tag you when it is.

What do you mean by this? hvPlot does let you explore n-dimensional data using widgets, what is the limitation you were seeing there?

I had a go with hvPlot's gridded data classes and although it worked well for plotting variation along one dimension with a single slider, I got some errors when I tried to plot N-D data with multiple slider widgets along more than one dimension. It looks like that might have been user error though... I'll compare more closely and raise issues if necessary.

I'm not yet entirely clear on how your proposed APIs would deal with this.

I'm referring to the discussion on method chaining: that proposed API (using an InteractiveDataArray) would allow you to interactively select a subset of data python ida = da.interactive.isel(lat=50, lon=60) before specifying the analysis to perform on it python ida = (ida - ida.mean('time')).std(dim='time') and an ida.plot() or compute call on the same object later would still be tied to the original sliders. That's quite different to only being able to create the sliders in the final call.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
576670981 https://github.com/pydata/xarray/issues/3709#issuecomment-576670981 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDU3NjY3MDk4MQ== TomNicholas 35968931 2020-01-21T13:02:34Z 2020-01-21T13:02:34Z MEMBER

IMHO, I would rather see this maintained in a separate project

Yeah that's a fair point. I think this is another case where the ecosystem of packages orbiting xarray could do with being more explicitly organised.

Reasons for direct integration in xarray: - Availability to all users: Functionality should be of general interest to anyone using xarray with jupyter, it's not domain-specific at all, - Makes writing robust code a bit easier because can then rely on private xarray methods for parsing indexers and so on

Reasons for a separate xarray-interactive repository: - Keeps developer maintenance / issue tracking separate - If plotting library-specific interfaces are desired they can be adding without cluttering main repo

I guess either way I could just write it in a separate repo and if in future we decided to include it in xarray master then move it.

@philippjfr @rabernat would be interested in your perspectives as developers/users of these downstream libraries? Would this be useful or not really?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
576430472 https://github.com/pydata/xarray/issues/3709#issuecomment-576430472 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDU3NjQzMDQ3Mg== TomNicholas 35968931 2020-01-20T21:07:44Z 2020-01-21T00:06:48Z MEMBER

(also I realise that the suggestion at the end is similar to a task graph of dask.delayed objects, but I assume something will go wrong if I try to wrap dask arrays with xarray dataarrays with dask delayed?)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673
576424752 https://github.com/pydata/xarray/issues/3709#issuecomment-576424752 https://api.github.com/repos/pydata/xarray/issues/3709 MDEyOklzc3VlQ29tbWVudDU3NjQyNDc1Mg== TomNicholas 35968931 2020-01-20T20:43:29Z 2020-01-20T20:43:29Z MEMBER

Difficulties with method chaining

Arbitraily long method chaining would be great, i.e. python da.interactive.isel(time=10).mean('time').plot() but I think it will be considerably more complicated.

The problem is that the way the ipywidgets.interactive() function works means that each time a widget value is altered (e.g. a slider dragged to a new position), then the function wrapped by interactive must be recomputed. For single functions that's fine, but for method chaining it means the final .plot() method has to know about all the previous methods back up to the .interactive input.

I've found a way to get around this, but I'd like some feedback on the approach because it might be needlessly complicated.

I would like to do it by subclassing to create an InteractiveDataArray, which you could create with an interactive accessor method like python ida = da.interactive.isel(time=10) This class would store the widgets and decorate it's inherited methods to either propagate them (e.g. through ida.reduce()) or display them (e.g. after ida.plot()). It would define the _ipython_display_() method so that calling display(ida) revealed the widgets.

To allow for the final method to recompute all the previous steps, each inherited computation method would be wrapped by a decorator which records the function used and it's arguments. That way the final method (which really you know will either be .plot(), or __print__()) can revaluate it's whole history when the slider tells it to recompute.

I've got a very rough example of this working, but as I said there might be a much easier way...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Feature Proposal: `xarray.interactive` module 552500673

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
);
CREATE INDEX [idx_issue_comments_issue]
    ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
    ON [issue_comments] ([user]);
Powered by Datasette · Queries took 960.09ms · About: xarray-datasette