home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

10 rows where issue = 148765426 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

  • mcgibbon 4
  • shoyer 2
  • jhamman 2
  • pwolfram 2

author_association 2

  • CONTRIBUTOR 6
  • MEMBER 4

issue 1

  • keep_attrs for Dataset.resample and DataArray.resample · 10 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
210925025 https://github.com/pydata/xarray/issues/825#issuecomment-210925025 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDkyNTAyNQ== shoyer 1217238 2016-04-16T23:46:26Z 2016-04-16T23:46:26Z MEMBER

I think it's best to make first and last consist with the other resample methods rather than making them inconsistent. Feel free to consider that a bug.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210923242 https://github.com/pydata/xarray/issues/825#issuecomment-210923242 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDkyMzI0Mg== mcgibbon 12307589 2016-04-16T23:29:06Z 2016-04-16T23:29:06Z CONTRIBUTOR

It turns out the bug was line 323 of groupby.py, _concat_shortcut silently copies the metadata of the array doing the concatenation to the result. I've removed that line and now the tests are passing.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210711180 https://github.com/pydata/xarray/issues/825#issuecomment-210711180 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDcxMTE4MA== mcgibbon 12307589 2016-04-16T01:58:53Z 2016-04-16T02:00:28Z CONTRIBUTOR

It turns out that in addition, first and last in ops don't accept keep_attrs as a keyword argument, so right now they always preserve attributes. A side effect of this is that the keep_attrs arguments passed around by _first_and_last and whatnot in groupby actually don't do anything (though their default value, True, reflects what happens).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210701860 https://github.com/pydata/xarray/issues/825#issuecomment-210701860 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDcwMTg2MA== mcgibbon 12307589 2016-04-16T01:06:27Z 2016-04-16T01:06:27Z CONTRIBUTOR

@shoyer the default keep_attrs isn't the problem here, the issue is that there is currently no keep_attrs option at all for resampling.

I've implemented a solution, but now test TestDataset.test_resample_and_first is failing. This is because for how="first" and how="last", attributes are currently kept (keep_attrs=True). This may break some code if resample is given a default of keep_attrs=False. Using a default of keep_attrs=True for how in ('first', 'last') results in the test passing.

Alternatively I could make it so the default behavior is to not pass any keep_attrs value on to the grouper function, which would keep the current defaults of those groupers. The code would be a bit uglier but it's not hard, and it would prevent breaking scripts. What do we want for the default behavior?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210697873 https://github.com/pydata/xarray/issues/825#issuecomment-210697873 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDY5Nzg3Mw== shoyer 1217238 2016-04-16T00:34:42Z 2016-04-16T00:34:42Z MEMBER

This keeps coming up, but I don't know what the obvious solution is.

We certainly could add an option that would change the default for keep_attrs to True for every operation. Then you could write xr.set_options(keep_attrs=True) at the top of your scripts to guarantee that metadata is preserved.

When merging datasets, concat and merge currently just take attributes from the first argument. We could imagine adding options for more sophisticated attribute merge strategies (e.g., join all non-conflicting attributes).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210697338 https://github.com/pydata/xarray/issues/825#issuecomment-210697338 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDY5NzMzOA== jhamman 2443309 2016-04-16T00:29:23Z 2016-04-16T00:29:23Z MEMBER

The attrs attribute on the Dataset and DataArray is just a dictionary so one can just assign directly.

Python da_resampled = da.resample(...) da_resampled.attrs = da.attrs

Or you could just copy them over one by one. Either way, I don't think we need much more of a utility than that.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210695712 https://github.com/pydata/xarray/issues/825#issuecomment-210695712 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDY5NTcxMg== mcgibbon 12307589 2016-04-16T00:21:44Z 2016-04-16T00:21:44Z CONTRIBUTOR

@pwolfram I use xarray within a wrapper for my own work, and have already written this transfer-attributes functionality into that for my short-term solution. But it makes sense to have the same keep_attrs flag that many other xarray functions have.

@jhamman I'll try to put the PR together.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210685190 https://github.com/pydata/xarray/issues/825#issuecomment-210685190 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDY4NTE5MA== pwolfram 4295853 2016-04-15T23:36:54Z 2016-04-15T23:36:54Z CONTRIBUTOR

Thanks @jhamman. You are correct that this could get challenging without proper notions of units. Do we have a utility to transfer attributes from one Dataset to another? If not, perhaps that is the simplest, short term resolution to this issue that is even more general than addition of a keep_attrs flag. I don't think it would be to hard to write although it may be out of xarray scope.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210671507 https://github.com/pydata/xarray/issues/825#issuecomment-210671507 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDY3MTUwNw== jhamman 2443309 2016-04-15T22:37:23Z 2016-04-15T22:37:23Z MEMBER

@mcgibbon - yes, we can add a keep_attrs keyword argument to resample. Would you be interested in putting together a PR for that feature?

@pwolfram - we had a lot of discussion early on about what to do with attributes after an object had been manipulated. The consensus was to force the user to maintain the attributes to the extent he/she desired. xarray doesn't have any notion of units (one example of an attribute) and this led us to trend away from religiously keeping passing attributes on to new objects.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426
210647514 https://github.com/pydata/xarray/issues/825#issuecomment-210647514 https://api.github.com/repos/pydata/xarray/issues/825 MDEyOklzc3VlQ29tbWVudDIxMDY0NzUxNA== pwolfram 4295853 2016-04-15T21:10:36Z 2016-04-15T21:10:36Z CONTRIBUTOR

@mcgibbon, I would agree that in general attributes should be preserved to maintain provenance of DataArrays or Datasets unless there is a really good reason to drop them.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  keep_attrs for Dataset.resample and DataArray.resample 148765426

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