home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

18 rows where 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 6

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

author_association 2

  • MEMBER 11
  • CONTRIBUTOR 7

issue 1

  • Error when supplying a tuple of dimensions to DataArray.sortby() · 18 ✖
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
860240046 https://github.com/pydata/xarray/issues/4821#issuecomment-860240046 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg2MDI0MDA0Ng== thomashirtz 37740986 2021-06-13T16:49:05Z 2021-06-13T16:51:36Z CONTRIBUTOR

Ok, I think I understand better now Almost finished, I just have one test that fails currently, it is this one: https://github.com/pydata/xarray/blob/e17cf595c84dffdd73c668f6d945c1b0eeba13d6/xarray/tests/test_dataset.py#L3299-L3306

The error changed from a KeyError to the error that I wrote in the constructor : ```

          raise TypeError(f'The dimension provided is a tuple, you may intended to pass a list')

E TypeError: The dimension provided is a tuple, you may intended to pass a list ```

I am not sure what I should do with it, should I delete it ?

(Thanks for your help :))

{
    "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
859736218 https://github.com/pydata/xarray/issues/4821#issuecomment-859736218 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1OTczNjIxOA== thomashirtz 37740986 2021-06-11T17:35:28Z 2021-06-11T17:35:28Z CONTRIBUTOR

I think I am quite confused by the fact that 'one' dimension can be a tuple (also I couldn't find a way to successfully create a dataset with a dim being a tuple, even by tweaking your example using list)

Was it what you imagined for the dataset construction ? (If I understand right, a virtual variable can't be a tuple) ``` def _construct_dataarray(self, name: Hashable) -> "DataArray": """Construct a DataArray by indexing this dataset""" from .dataarray import DataArray

    try:
        variable = self._variables[name]
    except KeyError:
        if isinstance(name, tuple):
            raise TypeError(f'The dimension "{name}" provided is a tuple, you may be intended to pass it as a list')
        else:
        _, name, variable = _get_virtual_variable(
            self._variables, name, self._level_coords, self.dims
        )

```

{
    "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
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
859678312 https://github.com/pydata/xarray/issues/4821#issuecomment-859678312 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1OTY3ODMxMg== thomashirtz 37740986 2021-06-11T15:56:22Z 2021-06-11T15:56:22Z CONTRIBUTOR

You seemed to all agree on the solution 1:

Explicitly allow tuples as dimension and variable names. This is probably the most mypy-compatible, since we use Hashable in lots of places

If you allow explicitly tuple, doesn't it mean I need to edit this part (as mentioned by @mathause) : if not isinstance(variables, (list, tuple)): variables = [variables] (I tried and it works well)

But you said after :

If it's a tuple, that message can suggest passing it as a list.

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

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

Also the code you mentioned is for one dim, but in this case we can have a list of dims, it does means that I need to do a 'for loop' for checking the existence of the dims, right ?

{
    "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
856538266 https://github.com/pydata/xarray/issues/4821#issuecomment-856538266 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1NjUzODI2Ng== mesejo 8579156 2021-06-08T07:43:43Z 2021-06-08T07:43:43Z CONTRIBUTOR

@thomashirtz Feel free to work on it.

{
    "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
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
855278196 https://github.com/pydata/xarray/issues/4821#issuecomment-855278196 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1NTI3ODE5Ng== thomashirtz 37740986 2021-06-05T18:31:00Z 2021-06-05T19:07:03Z CONTRIBUTOR

(@max-sixty , I originally took this one because I wanted to do one more ~easy PR. I just saw you modified the tags, lmk if this one is problematic or if you know other issues I could tackle)

{
    "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
855201627 https://github.com/pydata/xarray/issues/4821#issuecomment-855201627 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDg1NTIwMTYyNw== thomashirtz 37740986 2021-06-05T07:54:57Z 2021-06-05T07:54:57Z CONTRIBUTOR

@mesejo Do you still work on it ? If not, I am interested to work on it

{
    "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
765891555 https://github.com/pydata/xarray/issues/4821#issuecomment-765891555 https://api.github.com/repos/pydata/xarray/issues/4821 MDEyOklzc3VlQ29tbWVudDc2NTg5MTU1NQ== mesejo 8579156 2021-01-23T08:55:42Z 2021-01-23T08:55:42Z CONTRIBUTOR

I would like to work on this

{
    "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 13.491ms · About: xarray-datasette