home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

29 rows where issue = 1363829843 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: reactions, created_at (date), updated_at (date)

user 6

  • headtr1ck 10
  • TomNicholas 7
  • JessicaS11 5
  • dcherian 3
  • snowman2 2
  • Illviljan 2

author_association 3

  • MEMBER 17
  • COLLABORATOR 10
  • CONTRIBUTOR 2

issue 1

  • list available backends and basic descriptors · 29 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
1281111474 https://github.com/pydata/xarray/pull/7000#issuecomment-1281111474 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85MXDWy headtr1ck 43316012 2022-10-17T16:07:15Z 2022-10-17T16:07:15Z COLLABORATOR

@headtr1ck the typing changes didn't work. Can you send in a separate PR for that please?

Ok, weird. But can do :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1281108096 https://github.com/pydata/xarray/pull/7000#issuecomment-1281108096 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85MXCiA dcherian 2448579 2022-10-17T16:04:49Z 2022-10-17T16:04:49Z MEMBER

@headtr1ck the typing changes didn't work. Can you send in a separate PR for that please?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1279051058 https://github.com/pydata/xarray/pull/7000#issuecomment-1279051058 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85MPMUy headtr1ck 43316012 2022-10-14T14:01:09Z 2022-10-14T14:01:09Z COLLABORATOR

@headtr1ck GitHub is unhelpfully not showing me any comments. Can you share a screen shot or something so I can address them? Thanks!

Forgot to click the ok button, haha

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1279048760 https://github.com/pydata/xarray/pull/7000#issuecomment-1279048760 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85MPLw4 JessicaS11 11756442 2022-10-14T13:59:06Z 2022-10-14T13:59:06Z MEMBER

Couple of minor comments, then we can merge.

@headtr1ck GitHub is unhelpfully not showing me any comments. Can you share a screen shot or something so I can address them? Thanks!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1278530999 https://github.com/pydata/xarray/pull/7000#issuecomment-1278530999 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85MNNW3 headtr1ck 43316012 2022-10-14T06:11:18Z 2022-10-14T06:11:18Z COLLABORATOR

Couple of minor comments, then we can merge.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1275127741 https://github.com/pydata/xarray/pull/7000#issuecomment-1275127741 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85MAOe9 headtr1ck 43316012 2022-10-11T18:47:36Z 2022-10-11T18:47:36Z COLLABORATOR

@JessicaS11 if you merge master and solve the conflicts this should be enough for a merge :)

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1267353500 https://github.com/pydata/xarray/pull/7000#issuecomment-1267353500 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85Likec headtr1ck 43316012 2022-10-04T17:51:52Z 2022-10-04T17:51:52Z COLLABORATOR

Looks like they are - every subclass of BackendEntryPoint seems to define .available. In each case it points to the corresponding has_[package] flag. I think it might be safe to set .available to default to True in the base class? That way if the backend requires no special dependencies it would by default return True. If we think that makes sense then I'm happy to add a commit doing that so this can be merged.

EDIT: (Actually we should wait to put tests in too really)

In #7114 I have added this class attribute with default = True. Maybe we can merge this first?

Which tests did you want to see?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1266031250 https://github.com/pydata/xarray/pull/7000#issuecomment-1266031250 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85LdhqS dcherian 2448579 2022-10-03T20:50:18Z 2022-10-03T20:50:18Z MEMBER

We discussed this with Jessica in the xarray community meeting today

Did you discuss adding xr.show_engines() or are we pointing all users to xr.backends.list_engines()?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1261359689 https://github.com/pydata/xarray/pull/7000#issuecomment-1261359689 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85LLtJJ TomNicholas 35968931 2022-09-28T19:16:04Z 2022-09-29T21:38:09Z MEMBER

Does anyone know if the backentrypoints are supposed to have an available attribute?

Looks like they are - every subclass of BackendEntryPoint seems to define .available. In each case it points to the corresponding has_[package] flag. I think it might be safe to set .available to default to True in the base class? That way if the backend requires no special dependencies it would by default return True. If we think that makes sense then I'm happy to add a commit doing that so this can be merged.

EDIT: (Actually we should wait to put tests in too really)

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1257279210 https://github.com/pydata/xarray/pull/7000#issuecomment-1257279210 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85K8I7q headtr1ck 43316012 2022-09-25T21:03:21Z 2022-09-25T21:03:21Z COLLABORATOR

Does anyone know if the backentrypoints are supposed to have an available attribute? This: https://github.com/pydata/xarray/blob/212a5d7909e8dd54446b08574a0683e2477f2b40/xarray/backends/plugins.py#L89 seems to require one.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1247111973 https://github.com/pydata/xarray/pull/7000#issuecomment-1247111973 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KVWsl TomNicholas 35968931 2022-09-14T17:52:12Z 2022-09-14T17:52:12Z MEMBER

We discussed this with Jessica in the xarray community meeting today and I think the conclusion was to return a dict of backend objects with nice reprs to begin with, and if there is appetite then prettify it later, likely with a custom mutable mapping with special repr.

{
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1244548660 https://github.com/pydata/xarray/pull/7000#issuecomment-1244548660 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KLk40 snowman2 8699967 2022-09-12T21:51:15Z 2022-09-12T21:51:15Z CONTRIBUTOR

We have other plans to eventually make pandas an optional import too

That makes not using a data frame make a lot of sense.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1244529390 https://github.com/pydata/xarray/pull/7000#issuecomment-1244529390 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KLgLu TomNicholas 35968931 2022-09-12T21:40:06Z 2022-09-12T21:43:34Z MEMBER

If the dict repr from list_engines is still not good enough maybe replacing the dict with a custom MutableMapping with a good repr format could be a way forward?

I like this idea more than using a pd.dataframe, which is quite a heavy dependency to use for just displaying some strings. (We have other plans to eventually make pandas an optional import too). That would also be consistent with the approach we use for ds.coords and similar.

EDIT: This would also be a good thing to split out into an (optional) future PR though, and merge returning a dict of objects with nice individual reprs for now.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1244517611 https://github.com/pydata/xarray/pull/7000#issuecomment-1244517611 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KLdTr snowman2 8699967 2022-09-12T21:33:30Z 2022-09-12T21:33:30Z CONTRIBUTOR

I think show_engines provides a simple user friendly interface that is valuable for users in it's current state.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1244499083 https://github.com/pydata/xarray/pull/7000#issuecomment-1244499083 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KLYyL Illviljan 14371165 2022-09-12T21:22:31Z 2022-09-12T21:22:31Z MEMBER

My 2 cents is that list_engines should be good enough and the issue is the lack of a good repr on the backend classes.

If the dict repr from list_engines is still not good enough maybe replacing the dict with a custom MutableMapping with a good repr format could be a way forward?

{
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1244154384 https://github.com/pydata/xarray/pull/7000#issuecomment-1244154384 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KKEoQ JessicaS11 11756442 2022-09-12T18:49:37Z 2022-09-12T18:49:37Z MEMBER

add list_backends under Advanced API

Turns out it was already available so I added it to the Advance API docs as well as https://docs.xarray.dev/en/stable/internals/how-to-add-new-backend.html.

@dcherian I'll bookmark adding it to https://tutorial.xarray.dev/advanced/backends/backends.html.

@Illviljan, in case you didn't see this prior discussion:

So what would the return type need to be to get a nice table representation, but also allow you to select out individual backend objects? A pandas object containing the backend objects? Some kind of BackendList class?

... I haven't dreamed up an answer to this question yet. We could set it up so that __str__ instead returns a pandas series, but I don't see another way we can have a pretty __str__ that will also directly feed into a nicely formated table for avail_engines().

Do you have any suggestions?

Note: avail_engines() has been renamed to show_engines()

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1244125614 https://github.com/pydata/xarray/pull/7000#issuecomment-1244125614 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KJ9mu Illviljan 14371165 2022-09-12T18:21:05Z 2022-09-12T18:21:05Z MEMBER

```

xr.backends.plugins.list_engines() {'scipy': <xarray.backends.scipy_.ScipyBackendEntrypoint object at 0x101ec4ee0>, 'rasterio': <rioxarray.xarray_plugin.RasterioBackend object at 0x10217de70>, 'store': <xarray.backends.store.StoreBackendEntrypoint object at 0x10217de10>} ``` I wonder if these classes had a proper repr wouldn't that be enough?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1243941285 https://github.com/pydata/xarray/pull/7000#issuecomment-1243941285 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KJQml dcherian 2448579 2022-09-12T15:51:34Z 2022-09-12T15:51:34Z MEMBER

Thanks Jessica!

"I'm a developer who is trying to add a new backend and I want to see all the actual BackendEntrypoint objects".

We could also just document using xr.backends.plugins.list_engines() in https://docs.xarray.dev/en/stable/internals/how-to-add-new-backend.html and https://tutorial.xarray.dev/advanced/backends/backends.html

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1243873325 https://github.com/pydata/xarray/pull/7000#issuecomment-1243873325 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KJAAt TomNicholas 35968931 2022-09-12T15:01:07Z 2022-09-12T15:01:07Z MEMBER

We can certainly change the name of avail_engines() to display_backends(). Is there then a dev need to have another version of list_backends(), or would a "see also" to list_engines() be a solution here?

I think exposing a backends.display_backends() (defined in backends.api like BackendEntrypoint is) and then also pointing from there to the lower-level xr.backends.plugins.list_engines() would be great. That way there is only one more function listed in xarray's main API docs, and list_backends can be for dev use if necessary.

Expanding on that, we could put display_backends in the API docs under IO / conversion and add list_backends under Advanced API. That would keep distinct the two use cases of (1) "I'm a user and want to know what backends are installed for use as engine=...", and (2) "I'm a developer who is trying to add a new backend and I want to see all the actual BackendEntrypoint objects".

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1243848597 https://github.com/pydata/xarray/pull/7000#issuecomment-1243848597 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KI5-V JessicaS11 11756442 2022-09-12T14:43:04Z 2022-09-12T14:43:04Z MEMBER

we also probably don't want to pollute xarray's public namespace with multiple functions that do basically the same thing. Though maybe as it's all behind the backends namespace that doesn't matter so much? Then we might have list_backends and display_backends or something?

Currently there is this method: ```

xr.backends.plugins.list_engines() {'scipy': <xarray.backends.scipy_.ScipyBackendEntrypoint object at 0x101ec4ee0>, 'rasterio': <rioxarray.xarray_plugin.RasterioBackend object at 0x10217de70>, 'store': <xarray.backends.store.StoreBackendEntrypoint object at 0x10217de10>} and here we're adding (essentially to more effectively and prettily surface the above results to the user): xr.backends.api.avail_engines() Engine Description Documentation scipy
rasterio
store `` The goal that led us (@snowman2 @dcherian @scottyhq) to create the initial issue was giving the user an easy, obvious way to find out what engines were actually available to them in their current environment. In the process of figuring out how to do this, @snowman2 and I discovered thatlist_engines()already existed, we just needed to add the attributes we wanted to display, make it pretty, and put it somewhere a user might look for it. We can certainly change the name ofavail_engines()todisplay_backends(). Is there then a dev need to have another version oflist_backends(), or would a "see also" tolist_engines()` be a solution here?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1243754342 https://github.com/pydata/xarray/pull/7000#issuecomment-1243754342 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KIi9m TomNicholas 35968931 2022-09-12T13:35:37Z 2022-09-12T13:35:37Z MEMBER

Agreed. I added a str to the BackendEntrypoint class, but...

This is helpful already, thank you.

Does it need to be the same method? Why not a method that simply returns a list of classes and another method that prints a nicely formatted list?

I guess not, but we also probably don't want to pollute xarray's public namespace with multiple functions that do basically the same thing. Though maybe as it's all behind the backends namespace that doesn't matter so much? Then we might have list_backends and display_backends or something?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1242724087 https://github.com/pydata/xarray/pull/7000#issuecomment-1242724087 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85KEnb3 headtr1ck 43316012 2022-09-10T13:02:22Z 2022-09-10T13:02:22Z COLLABORATOR

So what would the return type need to be to get a nice table representation, but also allow you to select out individual backend objects? A pandas object containing the backend objects? Some kind of BackendList class?

Does it need to be the same method? Why not a method that simply returns a list of classes and another method that prints a nicely formatted list?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1241174924 https://github.com/pydata/xarray/pull/7000#issuecomment-1241174924 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J-tOM JessicaS11 11756442 2022-09-08T20:03:11Z 2022-09-08T20:03:11Z MEMBER

That would not display in a nice table though. But might be anyway nice to add ;)

Agreed. I added a __str__ to the BackendEntrypoint class, but...

So what would the return type need to be to get a nice table representation, but also allow you to select out individual backend objects? A pandas object containing the backend objects? Some kind of BackendList class?

... I haven't dreamed up an answer to this question yet. We could set it up so that __str__ instead returns a pandas series, but I don't see another way we can have a pretty __str__ that will also directly feed into a nicely formated table for avail_engines().

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1240937440 https://github.com/pydata/xarray/pull/7000#issuecomment-1240937440 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J9zPg headtr1ck 43316012 2022-09-08T16:19:43Z 2022-09-08T16:19:43Z COLLABORATOR

Correct me if I'm wrong, but if a subclassed ZarrBackend object was added as an entrypoint under the key "zarr", wouldn't type(self).__name__ return "ZarrBackend" rather than "zarr", even though "zarr" is what the user would actually have to pass to the engine kwarg of open_dataset to use that backend? Not ideal :/

You're right. But this mapping has to be somewhere.

{
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1240920968 https://github.com/pydata/xarray/pull/7000#issuecomment-1240920968 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J9vOI TomNicholas 35968931 2022-09-08T16:05:01Z 2022-09-08T16:09:05Z MEMBER

That would not display in a nice table though. But might be anyway nice to add ;)

So what would the return type need to be to get a nice table representation, but also allow you to select out individual backend objects? A pandas object containing the backend objects? Some kind of BackendList class?

What about type(self).__name__

Correct me if I'm wrong, but if a subclassed ZarrBackend object was added as an entrypoint under the key "zarr", wouldn't type(self).__name__ return "ZarrBackend" rather than "zarr", even though "zarr" is what the user would actually have to pass to the engine kwarg of open_dataset to use that backend? Not ideal :/

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1240912040 https://github.com/pydata/xarray/pull/7000#issuecomment-1240912040 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J9tCo headtr1ck 43316012 2022-09-08T15:57:39Z 2022-09-08T15:57:39Z COLLABORATOR

One approach might be to add a nice __str__, __repr__, (or even _repr_html_) to the BackendEntrypoint class. That way printing a list (or better a dict) of the engine-specific subclasses would automatically look decent.

That would not display in a nice table though. But might be anyway nice to add ;)

What might be clearer is if this backend class knew it's own name, but I'm not sure it can, hmmm

What about type(self).__name__

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1240883537 https://github.com/pydata/xarray/pull/7000#issuecomment-1240883537 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J9mFR TomNicholas 35968931 2022-09-08T15:34:11Z 2022-09-08T15:34:11Z MEMBER

Hey @JessicaS11! Nice to see you here. This is a going to be a great first-time contribution!

I know that it is more work but I think it would be more beneficial to have this information formated nicely than simply returning some lists. Maybe similar to a pandas dataframe?

One approach might be to add a nice __str__, __repr__, (or even _repr_html_) to the BackendEntrypoint class. That way printing a list (or better a dict) of the engine-specific subclasses would automatically look decent. Something roughly like

```python class BackendEntryPoint: ...

def __str__(self) -> str:
    txt += self.backend_description
    if self.backend_url:
        txt += f"\nFind more info at {self.backend_url}"
    return txt

```

What might be clearer is if this backend class knew it's own name, but I'm not sure it can, hmmm

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1239824690 https://github.com/pydata/xarray/pull/7000#issuecomment-1239824690 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J5jky JessicaS11 11756442 2022-09-07T20:12:51Z 2022-09-07T20:12:51Z MEMBER

I know that it is more work but I think it would be more beneficial to have this information formated nicely than simply returning some lists.

Sounds good - I'll make that happen!

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843
1238932679 https://github.com/pydata/xarray/pull/7000#issuecomment-1238932679 https://api.github.com/repos/pydata/xarray/issues/7000 IC_kwDOAMm_X85J2JzH headtr1ck 43316012 2022-09-07T05:45:09Z 2022-09-07T05:45:09Z COLLABORATOR

I know that it is more work but I think it would be more beneficial to have this information formated nicely than simply returning some lists. Maybe similar to a pandas dataframe?

{
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  list available backends and basic descriptors 1363829843

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 14.345ms · About: xarray-datasette