home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

3 rows where author_association = "MEMBER", issue = 338662554 and user = 6815844 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

user 1

  • fujiisoup · 3 ✖

issue 1

  • A special function for unpickling old xarray object? · 3 ✖

author_association 1

  • MEMBER · 3 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
403271908 https://github.com/pydata/xarray/issues/2269#issuecomment-403271908 https://api.github.com/repos/pydata/xarray/issues/2269 MDEyOklzc3VlQ29tbWVudDQwMzI3MTkwOA== fujiisoup 6815844 2018-07-08T08:31:21Z 2018-07-08T08:31:21Z MEMBER

@jhamman

Perhaps, after the data model and api have really stabilized, this would make sense, but it strikes me as something that is going to be more work than its worth to maintain.

Agreed.

In my experience, surprisingly many people (including my students) are using pickle without notifying its potential risk. Is it too redundant to issue a warning when xarray object is being pickled (maybe in getstate method)? It is annoying for the short term usage by advanced users though.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  A special function for unpickling old xarray object? 338662554
403125304 https://github.com/pydata/xarray/issues/2269#issuecomment-403125304 https://api.github.com/repos/pydata/xarray/issues/2269 MDEyOklzc3VlQ29tbWVudDQwMzEyNTMwNA== fujiisoup 6815844 2018-07-06T19:24:41Z 2018-07-06T19:24:41Z MEMBER

We are pretty clear in the docs that pickle isn't supported for long term storage, so this is a problem they somewhat brought upon themselves.

That makes sense. Actually, I was also one of the victims of pickle, so I prefer to be friendly to beginners. pandas looks to have their unpickling method that is more robust against the subclass changes. Maybe in the long term, we can have the similar method.

OK. I will add a patch to their repo and try to see how much burden is required to maintain it.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  A special function for unpickling old xarray object? 338662554
403076034 https://github.com/pydata/xarray/issues/2269#issuecomment-403076034 https://api.github.com/repos/pydata/xarray/issues/2269 MDEyOklzc3VlQ29tbWVudDQwMzA3NjAzNA== fujiisoup 6815844 2018-07-06T16:01:25Z 2018-07-06T16:01:25Z MEMBER

Some additional explanations

I was consulted by an onwer of a project that is using xarray inside it, the way to load xarray objects that is pickled with older-version xarray.

They does not recommend to use pickle, but some users actually do this and have troubles to restore old pickled files.

In partiular, xarray renamed Coordinate to IndexVariable in some point between v0.7 to v0.8. There might be another module/class name changes too, and these result in the (uninformed) error python UnpicklingError: NEWOBJ class argument isn't a type object

What I would like to propose here is to provide a workaround to unpickle old xarray objects. The function would look like ```python def unpickle_legacy(filename): """ Unpickle old xarray objects. """ class RenamingUnpickler(pickle.Unpickler): def find_class(self, module, name): if name == 'Coordinate': name = 'IndexVariable' return super().find_class(module, name)

with open(filename, 'rb') as f:
    return RenamingUnpickler(f).load()

``` for all the previous releases.

Continuously supporting such a function might be an additional task, but it will emphasize the robustness of our project.

Any comments are welcome.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  A special function for unpickling old xarray object? 338662554

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