home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

6 rows where author_association = "MEMBER" and issue = 954574705 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 3

  • dcherian 3
  • TomNicholas 2
  • spencerkclark 1

issue 1

  • Fix performance bug from cftime import · 6 ✖

author_association 1

  • MEMBER · 6 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
930318312 https://github.com/pydata/xarray/pull/5640#issuecomment-930318312 https://api.github.com/repos/pydata/xarray/issues/5640 IC_kwDOAMm_X843c4fo dcherian 2448579 2021-09-29T16:05:53Z 2021-09-29T16:05:53Z MEMBER

Thanks @lusewell and @spencerkclark

Unfortunately we don't do backports.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Fix performance bug from cftime import 954574705
916860922 https://github.com/pydata/xarray/pull/5640#issuecomment-916860922 https://api.github.com/repos/pydata/xarray/issues/5640 IC_kwDOAMm_X842pi_6 spencerkclark 6628425 2021-09-10T12:16:45Z 2021-09-10T12:16:45Z MEMBER

Thanks for catching that additional spot.

Its only a performance issue to attempt to import cftime repeatedly. Having it fail once in the top level import is not a big problem.

Yes, understood. I just prefer that we are consistent across the code base -- either we use this pattern only where absolutely necessary or we use it everywhere. In light of that do you mind introducing this pattern in times.py as well? There are two places where cftime is imported within functions there too:

https://github.com/pydata/xarray/blob/7bfee3eaa8fd731494cf6b406d6abb4bec061001/xarray/coding/times.py#L167

https://github.com/pydata/xarray/blob/7bfee3eaa8fd731494cf6b406d6abb4bec061001/xarray/coding/times.py#L417

I think we don't have to worry about the tests, because they already follow this pattern to an extent; in building the requires_cftime decorator, a cftime import is only attempted once.

After that, just fix the linting error and add a what's new entry, and I think this should be ready to go from my perspective.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Fix performance bug from cftime import 954574705
888434763 https://github.com/pydata/xarray/pull/5640#issuecomment-888434763 https://api.github.com/repos/pydata/xarray/issues/5640 IC_kwDOAMm_X8409HBL dcherian 2448579 2021-07-28T16:08:31Z 2021-07-28T16:08:31Z MEMBER

doesn't look like it?

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 1
}
  Fix performance bug from cftime import 954574705
888411101 https://github.com/pydata/xarray/pull/5640#issuecomment-888411101 https://api.github.com/repos/pydata/xarray/issues/5640 IC_kwDOAMm_X8409BPd TomNicholas 35968931 2021-07-28T15:37:06Z 2021-07-28T15:37:55Z MEMBER

But in both cases we always check for the existence of cftime via import cftime, so if python is clever enough to remember that cftime doesn't exist the second time it's asked to import it, then where is the opportunity for speedup?

Hopefully @lusewell can enlighten us :sweat_smile:

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Fix performance bug from cftime import 954574705
888403170 https://github.com/pydata/xarray/pull/5640#issuecomment-888403170 https://api.github.com/repos/pydata/xarray/issues/5640 IC_kwDOAMm_X8408_Ti dcherian 2448579 2021-07-28T15:26:20Z 2021-07-28T15:26:20Z MEMBER

I guess it always tries importing if the module doesn't exist and so that's a slowdown?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Fix performance bug from cftime import 954574705
888379766 https://github.com/pydata/xarray/pull/5640#issuecomment-888379766 https://api.github.com/repos/pydata/xarray/issues/5640 IC_kwDOAMm_X84085l2 TomNicholas 35968931 2021-07-28T14:57:11Z 2021-07-28T14:57:11Z MEMBER

Thanks for the suggestion @lusewell .

I'm a bit confused as to how exactly this improves performance though - you've moved the location of the import cftime statement to the top of the file, but I was under the impression that python doesn't ever import a module more than once, because after the first time it's a fast hash lookup. So surely in both cases we only look for the existence of cftime once? Perhaps I've misunderstood though?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Fix performance bug from cftime import 954574705

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