home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

11 rows where author_association = "MEMBER" and issue = 787847449 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 4

  • max-sixty 5
  • keewis 3
  • mathause 2
  • dcherian 1

issue 1

  • Error when supplying a tuple of dimensions to DataArray.sortby() · 11 ✖

author_association 1

  • MEMBER · 11 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
860244940 https://github.com/pydata/xarray/issues/4821#issuecomment-860244940 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg2MDI0NDk0MA== max-sixty 5635139 2021-06-13T17:28:13Z 2021-06-13T17:28:13Z MEMBER

Yes, we want to replace that test with your test — either in the same test function or a new test function.

Though it maybe it should still be a KeyError, I think probably it should be. But feel free to submit the PR and it's easiest to review there.

Thanks!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
859802038 https://github.com/pydata/xarray/issues/4821#issuecomment-859802038 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1OTgwMjAzOA== keewis 14808389 2021-06-11T19:45:26Z 2021-06-11T19:45:26Z MEMBER

here's an example: python In [2]: xr.Dataset({"a": ([("a", "b")], [1])}) Out[2]: <xarray.Dataset> Dimensions: (('a', 'b'): 1) Dimensions without coordinates: ('a', 'b') Data variables: a (('a', 'b')) int64 1

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
859690070 https://github.com/pydata/xarray/issues/4821#issuecomment-859690070 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1OTY5MDA3MA== max-sixty 5635139 2021-06-11T16:14:15Z 2021-06-11T16:14:15Z MEMBER

If you allow explicitly tuple, doesn't it mean I need to edit this part

Yes!

(I find it a little bit weird to give dimensions in list, no ? I thought that generally tuples were more adapted to provide dims)

Yes, I feel similarly. For one xr.Dataset(dict(var=(('a','b'), np.random.rand(3)))) is an error, rather than a one-dimensioned dataset with a single dim called ('a','b'). But OTOH I can very much empathize with accepting any Hashable for dim names most functions, which includes tuples. So I am fine formalizing this (apart from the constructor).

Can you tell me which test-case I can implement to fulfill all the requirements needed ? I can't think of test cases that I can implement except the one suggested first, and that one passes with the first modification

How about a test that checks the example above suggests a list, rather than raising a vanilla KeyError?

Cheers @thomashirtz

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
855287336 https://github.com/pydata/xarray/issues/4821#issuecomment-855287336 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1NTI4NzMzNg== max-sixty 5635139 2021-06-05T19:49:24Z 2021-06-05T19:51:19Z MEMBER

Great, agree @dcherian . So maybe we: - Check whether the dim exists (there could be a dim with tuple), which is already done in 1371 below - If it doesn't exist, then check whether it's a string before passing it to _get_virtual_variable below. If it's a tuple, that message can suggest passing it as a list. - Or we do the check in _get_virtual_variable?

python 1366 def _construct_dataarray(self, name: Hashable) -> "DataArray": 1367 """Construct a DataArray by indexing this dataset""" 1368 from .dataarray import DataArray 1369 1370 try: 1371 variable = self._variables[name] 1372 except KeyError: -> 1373 _, name, variable = _get_virtual_variable( 1374 self._variables, name, self._level_coords, self.dims 1375 )

@thomashirtz changing the labels back! Thanks in advance!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
855286432 https://github.com/pydata/xarray/issues/4821#issuecomment-855286432 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1NTI4NjQzMg== dcherian 2448579 2021-06-05T19:41:34Z 2021-06-05T19:41:34Z MEMBER

I think 2 and 3 become really confusing with swap_dims (for e.g.) So my vote is for 1. In all three cases, the solution to this issue is to suggest passing lists in the error message?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
855276547 https://github.com/pydata/xarray/issues/4821#issuecomment-855276547 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1NTI3NjU0Nw== max-sixty 5635139 2021-06-05T18:16:38Z 2021-06-05T18:16:38Z MEMBER

Any thoughts from others on what we should do, of the three options above? CC @pydata/xarray

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
766234825 https://github.com/pydata/xarray/issues/4821#issuecomment-766234825 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDc2NjIzNDgyNQ== keewis 14808389 2021-01-23T23:50:40Z 2021-01-23T23:50:53Z MEMBER

All of these options are breaking changes so we would probably have to go through a deprecation cycle. 1 might be the most consistent and least confusing, but if we want to keep the current behavior we could require wrapping a tuple in another sequence to access dimension names.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
766166088 https://github.com/pydata/xarray/issues/4821#issuecomment-766166088 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDc2NjE2NjA4OA== max-sixty 5635139 2021-01-23T19:26:54Z 2021-01-23T19:26:54Z MEMBER

I would propose we either: - Explicitly allow tuples as dimension and variable names. This is probably the most mypy-compatible, since we use Hashable in lots of places - Force dimension names to be strings, but allow variable names to be Hashable. This might be the most practical. - Disallow tuples for dimension names, but otherwise allow Hashable. Then tuples work the same as lists when supplied as arguments.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
762710092 https://github.com/pydata/xarray/issues/4821#issuecomment-762710092 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDc2MjcxMDA5Mg== mathause 10194086 2021-01-19T09:17:07Z 2021-01-19T09:17:07Z MEMBER

Ah yes you are right... However, we are not consistent with this, e.g. that works for reductions air.mean(("lat", "lon"))

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
762523614 https://github.com/pydata/xarray/issues/4821#issuecomment-762523614 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDc2MjUyMzYxNA== keewis 14808389 2021-01-19T00:11:25Z 2021-01-19T00:12:04Z MEMBER

I think it's the way it is because tuple is hashable, so it can be used as a name: python ds = xr.Dataset({("a", 0): ("x", [1, 0])}) ds.sortby(("a", 0)) not sure if there's a particular use case where supporting this is crucial

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449
762521955 https://github.com/pydata/xarray/issues/4821#issuecomment-762521955 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDc2MjUyMTk1NQ== mathause 10194086 2021-01-19T00:04:30Z 2021-01-19T00:04:30Z MEMBER

Yes, I am marking that as a bug. The problem is here:

https://github.com/pydata/xarray/blob/295606707a0464cd13727794a979f5b709cd92a1/xarray/core/dataset.py#L5612-L5613

as the tuple is not a list it ends up as [('x', 'y')]. That should probably be python if isinstance(variables, str): variables = [variables] or python if not isinstance(variables, (list, tuple)): variables = [variables]

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Error when supplying a tuple of dimensions to DataArray.sortby() 787847449

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 20.842ms · About: xarray-datasette
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows