home / github

Menu
  • GraphQL API
  • Search all tables

issues

Table actions
  • GraphQL API for issues

5 rows where repo = 13221727, type = "pull" and user = 32801740 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 1

  • pull · 5 ✖

state 1

  • closed 5

repo 1

  • xarray · 5 ✖
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
1292142108 PR_kwDOAMm_X846vvTZ 6746 improve typing of DataArray and Dataset reductions rhkleijn 32801740 closed 0     6 2022-07-02T21:06:41Z 2023-09-16T18:18:03Z 2023-09-14T12:13:58Z CONTRIBUTOR   0 pydata/xarray/pulls/6746

This PR makes the typing of reduction methods (count, all, any, max, min, mean, prod, sum, std, var, median) for Dataset and DataArray consistent with the typing of most other methods of Dataset and DataArray after the great recent improvements by @headtr1ck in e.g. #6661.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/6746/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
807764700 MDExOlB1bGxSZXF1ZXN0NTcyOTQ4MDQ3 4904 add typing to unary and binary arithmetic operators rhkleijn 32801740 closed 0     21 2021-02-13T15:01:59Z 2021-04-14T16:01:06Z 2021-04-14T15:59:59Z CONTRIBUTOR   0 pydata/xarray/pulls/4904
  • [x] Closes #4054
  • [x] Passes pre-commit run --all-files
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst

This draft PR is for soliciting feedback on an approach to adding typing to unary and binary operators for xarray classes. The approach involves generating a stub file using a simple script.

In order to untangle the various helper classes implementing arithmetic throughout the code base I have refactored the code, thereby getting rid of the injection of the operators after class definition. It now inserts the operators during construction of the subclasses leveraging Python's __init_subclass__ mechanism.

For this example python file:

``` from typing import TYPE_CHECKING from xarray import DataArray # noqa: F401 from xarray import Dataset # noqa: F401 from xarray import Variable # noqa: F401 ds = Dataset({"v": ("x", [2])}) da = DataArray([3], dims="x") var = Variable("x", [4]) ds00 = -ds ds01 = ds + ds ds02 = da - ds ds03 = ds * da ds04 = var / ds ds05 = ds // var ds06 = ds & 1 ds07 = 2 | ds ds08 = ds == ds ds09 = ds != da ds10 = da <= ds ds11 = ds > var ds12 = var >= ds da0 = +da da1 = da % da da2 = da ** var da3 = var ^ da da4 = da & 123 da5 = 1.23 * da da6 = da == da da7 = da != var da8 = var < da var0 = ~var var1 = var + var var2 = var & 1 var3 = 3 ^ var var4 = var != var if TYPE_CHECKING: reveal_locals() # noqa: F821 for k, v in tuple(vars().items()): if k[0].islower(): print(k, type(v)) ```

the status quo gives this mypy output:

``` temp.py:11: error: Unsupported operand type for unary - ("Dataset") temp.py:18: error: Unsupported operand types for | ("int" and "Dataset") temp.py:25: error: Unsupported operand type for unary + ("DataArray") temp.py:30: error: Unsupported operand types for * ("float" and "DataArray") temp.py:35: error: Unsupported operand type for ~ ("Variable") temp.py:38: error: Unsupported operand types for ^ ("int" and "Variable") temp.py:42: note: Revealed local types are: temp.py:42: note: TYPE_CHECKING: builtins.bool temp.py:42: note: da: xarray.core.dataarray.DataArray temp.py:42: note: da0: Any temp.py:42: note: da1: Any temp.py:42: note: da2: Any temp.py:42: note: da3: Any temp.py:42: note: da4: Any temp.py:42: note: da5: builtins.float temp.py:42: note: da6: Any temp.py:42: note: da7: Any temp.py:42: note: da8: Any temp.py:42: note: ds: xarray.core.dataset.Dataset temp.py:42: note: ds00: Any temp.py:42: note: ds01: Any temp.py:42: note: ds02: Any temp.py:42: note: ds03: Any temp.py:42: note: ds04: Any temp.py:42: note: ds05: Any temp.py:42: note: ds06: Any temp.py:42: note: ds07: builtins.int temp.py:42: note: ds08: Any temp.py:42: note: ds09: Any temp.py:42: note: ds10: Any temp.py:42: note: ds11: Any temp.py:42: note: ds12: Any temp.py:42: note: var: xarray.core.variable.Variable temp.py:42: note: var0: Any temp.py:42: note: var1: Any temp.py:42: note: var2: Any temp.py:42: note: var3: builtins.int temp.py:42: note: var4: Any Found 6 errors in 1 file (checked 127 source files) ```

With this PR the output now becomes:

``` temp.py:42: note: Revealed local types are: temp.py:42: note: da: xarray.core.dataarray.DataArray temp.py:42: note: da0: xarray.core.dataarray.DataArray* temp.py:42: note: da1: xarray.core.dataarray.DataArray* temp.py:42: note: da2: xarray.core.dataarray.DataArray* temp.py:42: note: da3: xarray.core.dataarray.DataArray* temp.py:42: note: da4: xarray.core.dataarray.DataArray* temp.py:42: note: da5: xarray.core.dataarray.DataArray* temp.py:42: note: da6: xarray.core.dataarray.DataArray* temp.py:42: note: da7: xarray.core.dataarray.DataArray* temp.py:42: note: da8: xarray.core.dataarray.DataArray* temp.py:42: note: ds: xarray.core.dataset.Dataset temp.py:42: note: ds00: xarray.core.dataset.Dataset* temp.py:42: note: ds01: xarray.core.dataset.Dataset* temp.py:42: note: ds02: xarray.core.dataset.Dataset* temp.py:42: note: ds03: xarray.core.dataset.Dataset* temp.py:42: note: ds04: xarray.core.dataset.Dataset* temp.py:42: note: ds05: xarray.core.dataset.Dataset* temp.py:42: note: ds06: xarray.core.dataset.Dataset* temp.py:42: note: ds07: xarray.core.dataset.Dataset* temp.py:42: note: ds08: xarray.core.dataset.Dataset* temp.py:42: note: ds09: xarray.core.dataset.Dataset* temp.py:42: note: ds10: xarray.core.dataset.Dataset* temp.py:42: note: ds11: xarray.core.dataset.Dataset* temp.py:42: note: ds12: xarray.core.dataset.Dataset* temp.py:42: note: var: xarray.core.variable.Variable temp.py:42: note: var0: xarray.core.variable.Variable* temp.py:42: note: var1: xarray.core.variable.Variable* temp.py:42: note: var2: xarray.core.variable.Variable* temp.py:42: note: var3: xarray.core.variable.Variable* temp.py:42: note: var4: xarray.core.variable.Variable* ```
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/4904/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
780955224 MDExOlB1bGxSZXF1ZXN0NTUwNzYyNjMx 4774 improve typing of OrderedSet rhkleijn 32801740 closed 0     1 2021-01-07T01:20:56Z 2021-01-07T23:28:53Z 2021-01-07T23:28:48Z CONTRIBUTOR   0 pydata/xarray/pulls/4774
  • [x] Passes isort . && black . && mypy . && flake8

Small patch to improve typing of OrderedSet: allowing more general input type in its constructor and .update method (Iterator instead of AbstractSet) helps to get rid of # type: ignore.

Side-effect: some performance gain in micro-benchmark (before and after): %timeit xr.core.utils.OrderedSet(range(10)) 3.46 µs ± 5.37 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) 2.06 µs ± 6.39 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/4774/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
776542812 MDExOlB1bGxSZXF1ZXN0NTQ3MDEzNjY0 4742 speedup attribute style access and tab completion rhkleijn 32801740 closed 0     2 2020-12-30T16:45:03Z 2021-01-05T23:00:34Z 2021-01-05T23:00:29Z CONTRIBUTOR   0 pydata/xarray/pulls/4742
  • [x] Closes #4741
  • [x] Passes isort . && black . && mypy . && flake8
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst

  • make _attr_sources and _item_sources lazy

  • make lookup of virtual dimension coordinates lazy
  • make helper class more general so it can be used for lookup of both virtual dimension and level coordinates
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/4742/reactions",
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
763149369 MDExOlB1bGxSZXF1ZXN0NTM3NjMyNjUz 4683 Readd order and subok parameters to astype (GH4644) rhkleijn 32801740 closed 0     3 2020-12-12T01:27:35Z 2020-12-24T16:38:49Z 2020-12-16T16:33:00Z CONTRIBUTOR   0 pydata/xarray/pulls/4683
  • [x] Closes #4644
  • [x] Tests added
  • [x] Passes isort . && black . && mypy . && flake8
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/4683/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull

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