home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 749311511

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions performed_via_github_app issue
https://github.com/pydata/xarray/pull/4622#issuecomment-749311511 https://api.github.com/repos/pydata/xarray/issues/4622 749311511 MDEyOklzc3VlQ29tbWVudDc0OTMxMTUxMQ== 2272878 2020-12-22T03:04:48Z 2020-12-22T03:04:48Z CONTRIBUTOR

@mathause

Sorry for the delay, I have been swamped at work. I probably won't have any time to work on this before Christmas.

I have finished implementing the cat and join methods, and I implemented +, *, and % operator support.

I am currently working on improving the vectorization of some of the functions. The idea is that some arguments, like for example the regular expression pattern or the number of repetitions in rep, will be able to be given an array-like, with the dimensions being broadcast against the original DataArray.

This can be useful, for example, if a DataArray combines data of different formats along a dimension (ideally this wouldn't be the case but people don't always have that much control over the data they get). Or it could be used to create an ASCII bar chart where the number of symbols is equal to the value in an array element.

However, this could lead to conflicts if the DataArray already has a dimension with that name, which would be a particular problem if people chained together multiple such operations.

That should raise a KeyError, no?

Yes, but I think it would be strange if using the default parameters once works fine, but using them twice or more in a row somehow returns an exception. I think the defaults should either work generally or not be defaults at all. That is just my opinion. More fundamentally, it is just inconsistent with how xarray works elsewhere and so I think it would be unexpected.

  • Some of the tests could probably be simplified, to make them easier to read. E.g. when you try to raise an error.

Please point out the specific cases if you haven't already done so.

  • we usually add a match to the pytest.raises. This also helps to understand what you are testing.

I will add this.

  • assert_equal should raise an error if the dtype does not match, so you should not need to add all the assert result.dtype == expected.dtype.

It doesn't work with an object dtype:

```python

import numpy as np import xarray as xr

a = xr.DataArray(np.array("a", dtype=np.str_)) b = a.astype(np.object_)
a.dtype == b.dtype
False a.equals(b) True xr.testing.assert_equal(a, b) ```

This does not raise an exception on my machine at least. I ran into several cases where I was incorrectly getting object dtypes and the tests weren't catching it, hence the dtype checks.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  753097418
Powered by Datasette · Queries took 0.778ms · About: xarray-datasette