home / github

Menu
  • GraphQL API
  • Search all tables

issues

Table actions
  • GraphQL API for issues

2 rows where state = "closed" and user = 3092444 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

type 2

  • issue 1
  • pull 1

state 1

  • closed · 2 ✖

repo 1

  • xarray 2
id node_id number title user state locked assignee milestone comments created_at updated_at ▲ closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
1725525753 PR_kwDOAMm_X85RVEiR 7874 Changed duck typing exception to: (ImportError, AttributeError) vhaasteren 3092444 closed 0     2 2023-05-25T10:15:39Z 2023-05-26T16:19:39Z 2023-05-26T16:19:35Z CONTRIBUTOR   0 pydata/xarray/pulls/7874
  • [x] closes #7870

As described in issue #7870, there is a name-collision with the astrophysics package pint-pulsar, which is used to do high-precision pulsar timing. That other package would get imported as pint, and an AttributeError is thrown because that imported package is not the expected package.

By generalizing the duck typing exception to catch an ImportError and an AttributeError, we catch such name-collisions. It fits the idea and goal of duck typing.

This PR is a single-line change

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/7874/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1722614979 I_kwDOAMm_X85mrQTD 7870 Name collision with Pulsar Timing package 'PINT' vhaasteren 3092444 closed 0     4 2023-05-23T18:54:18Z 2023-05-26T16:19:37Z 2023-05-26T16:19:37Z CONTRIBUTOR      

What is your issue?

In the astrophysics community of pulsar timers, there is an analysis package called PINT. PINT is widely used in that community. As you can see on their github, they have been aware of the name collision and on pip/conda the package is available as pint-pulsar. This has not been a problem so far, because most if not all astrophysicists use the great astropy to keep track of units where necessary.

However, Bayesian modeling through PyMC is becoming more and more popular, meaning that arviz and xarray are now getting installed alongside pint-pulsar, giving obvious issues.

A very simple workaround would be to change line 37 in https://github.com/pydata/xarray/blob/main/xarray/core/pycompat.py to something like:

except (ImportError, AttributeError):

This means that pint-pulsar would get imported through mod), and the AttributeError gets caught, and all should be well. It fits the design of duck-typing, since the package doesn't Quack like pint should. Would xarray be willing to accommodate the pulsar timing community this way? As you are all aware, changing the name of a package that is integral in projects with many dependencies is kind of painful.

EDIT: fixed typo

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/7870/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed xarray 13221727 issue

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [active_lock_reason] TEXT,
   [draft] INTEGER,
   [pull_request] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [state_reason] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
);
CREATE INDEX [idx_issues_repo]
    ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
    ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
    ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
    ON [issues] ([user]);
Powered by Datasette · Queries took 109.062ms · About: xarray-datasette