issue_comments
25 rows where author_association = "CONTRIBUTOR" and user = 32801740 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: issue_url, reactions, created_at (date), updated_at (date)
user 1
- rhkleijn · 25 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | performed_via_github_app | issue |
---|---|---|---|---|---|---|---|---|---|---|---|
1264322604 | https://github.com/pydata/xarray/issues/7111#issuecomment-1264322604 | https://api.github.com/repos/pydata/xarray/issues/7111 | IC_kwDOAMm_X85LXAgs | rhkleijn 32801740 | 2022-10-01T10:40:48Z | 2022-10-01T10:40:48Z | CONTRIBUTOR | To avoid code duplication you may consider moving all logic from the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New deep copy behavior in 2022.9.0 causes maximum recursion error 1392878100 | |
1264014472 | https://github.com/pydata/xarray/issues/7111#issuecomment-1264014472 | https://api.github.com/repos/pydata/xarray/issues/7111 | IC_kwDOAMm_X85LV1SI | rhkleijn 32801740 | 2022-09-30T20:52:28Z | 2022-09-30T20:54:25Z | CONTRIBUTOR |
yes, |
{ "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New deep copy behavior in 2022.9.0 causes maximum recursion error 1392878100 | |
1263689036 | https://github.com/pydata/xarray/issues/7108#issuecomment-1263689036 | https://api.github.com/repos/pydata/xarray/issues/7108 | IC_kwDOAMm_X85LUl1M | rhkleijn 32801740 | 2022-09-30T15:01:42Z | 2022-09-30T15:01:42Z | CONTRIBUTOR | Pandas docs seem stricter than the implementation. From this snippet from pandas source code monotonicity is only required after My concern with checking first is that code like below will stop working (if I understand correctly). Is has unique but (alphabetically) unsorted coords (although its order may have meaning for the user). I regularly select a slice by specifying the labels corresponding to the first and last elements I want to extract. I would suggest in this case to just try while catching any
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.sel return errors when using floats for no apparent reason 1391699976 | |
1263288581 | https://github.com/pydata/xarray/issues/6941#issuecomment-1263288581 | https://api.github.com/repos/pydata/xarray/issues/6941 | IC_kwDOAMm_X85LTEEF | rhkleijn 32801740 | 2022-09-30T08:43:47Z | 2022-09-30T08:50:06Z | CONTRIBUTOR | The last run reports (development) version 2022.9.1.dev3+g341f1302 of xarray (derived from the most recent tag 2022.9.0). I assume you have seen version 0.18.x in your personal fork. I have seen similar problems where version 0.16.x of xarray was shown. The culprit seems to be that the github button for syncing your fork with the upstream repo doesn't update tags. It only contains the tags from back when you created the fork. I updated the tags manually using something like
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
⚠️ Nightly upstream-dev CI failed ⚠️ 1345644028 | |
1195752253 | https://github.com/pydata/xarray/issues/6827#issuecomment-1195752253 | https://api.github.com/repos/pydata/xarray/issues/6827 | IC_kwDOAMm_X85HRbs9 | rhkleijn 32801740 | 2022-07-26T17:10:02Z | 2022-07-26T18:15:38Z | CONTRIBUTOR | In the example the naming and meaning of the arguments of the Subclassing is often more reliable when it adheres to the Liskov Substitution Principle which states that objects of a superclass should be replaceable with objects of its subclasses and in other words: a subclass should only add functionality and not reduce it. There are some other workarounds though: If all you need is a convenient custom constructor then you could add a Another option is to convert your where your subclass may define as a convenience method: ``` def to_dataset(self): """Convert to plain Dataset.""" return xarray.Dataset(self, attrs=self.attrs) ```` |
{ "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
xarray.concat for datasets fails when object is a child class of Dataset 1318173644 | |
1186138098 | https://github.com/pydata/xarray/pull/6784#issuecomment-1186138098 | https://api.github.com/repos/pydata/xarray/issues/6784 | IC_kwDOAMm_X85Gswfy | rhkleijn 32801740 | 2022-07-16T09:58:05Z | 2022-07-16T09:58:05Z | CONTRIBUTOR |
Casting |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch to T_DataArray and T_Dataset in concat 1305351232 | |
1173044870 | https://github.com/pydata/xarray/pull/6746#issuecomment-1173044870 | https://api.github.com/repos/pydata/xarray/issues/6746 | IC_kwDOAMm_X85F6z6G | rhkleijn 32801740 | 2022-07-03T09:19:36Z | 2022-07-03T09:19:36Z | CONTRIBUTOR | Agreed, I just reached the same conclusion. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
improve typing of DataArray and Dataset reductions 1292142108 | |
885867225 | https://github.com/pydata/xarray/issues/5631#issuecomment-885867225 | https://api.github.com/repos/pydata/xarray/issues/5631 | IC_kwDOAMm_X840zULZ | rhkleijn 32801740 | 2021-07-23T19:27:45Z | 2021-07-23T19:35:44Z | CONTRIBUTOR | From https://github.com/numpy/numpy/issues/19521: installing typing-extensions may help when running on python 3.7. |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
NameError: name '_DType_co' is not defined 951644054 | |
813277878 | https://github.com/pydata/xarray/pull/4904#issuecomment-813277878 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDgxMzI3Nzg3OA== | rhkleijn 32801740 | 2021-04-05T08:41:24Z | 2021-04-05T08:41:24Z | CONTRIBUTOR | Thanks, there was one more minor merge artifact. Should be fixed now. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
811306431 | https://github.com/pydata/xarray/pull/5091#issuecomment-811306431 | https://api.github.com/repos/pydata/xarray/issues/5091 | MDEyOklzc3VlQ29tbWVudDgxMTMwNjQzMQ== | rhkleijn 32801740 | 2021-03-31T18:20:30Z | 2021-03-31T21:40:58Z | CONTRIBUTOR |
There is a precedent in xarray (it might be the only one):
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add unique method 843961481 | |
799648923 | https://github.com/pydata/xarray/pull/4904#issuecomment-799648923 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDc5OTY0ODkyMw== | rhkleijn 32801740 | 2021-03-15T18:27:18Z | 2021-03-15T19:01:07Z | CONTRIBUTOR |
done
I have tried that but PyCharm would not handle the
If we remove that line, it incorrectly infers the result of
Agreed that this is surprising behaviour. I suspect mypy might have something like an implicit internal rule to fallback to the type of the first operand of a binary operator. That would be consistent with the behaviours of both of the above cases.
I can relate to that. On the other hand, there may also be a pragmatic reason to go the extra mile. If we don't it may result in users thinking xarray's newly added typing is to blame for unexpected type inferences and reporting issues here. When at some point in the future these tools indeed do catch up it is straightforward to adapt the script and regenerate. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
798793062 | https://github.com/pydata/xarray/pull/4904#issuecomment-798793062 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDc5ODc5MzA2Mg== | rhkleijn 32801740 | 2021-03-13T22:07:41Z | 2021-03-13T22:07:41Z | CONTRIBUTOR |
thanks!
It takes precedence only during type checking as the source for static type information. The generated
There seem to be quite some open issues here with no indication they currently are actively working on fixing them. I am not using PyCharm myself, but as it is widely used I would also expect quite some xarray users to be using it.
For these unary ops with simple type hints if would probably work but for most other methods with multiple overloads the typing ecosystem is not yet mature enough. In this issue I have commented on it. I hope one day we will be able to refactor this into some generic parent classes (one for unary ops, one for binary (and reflexive) ops and one for inplace ops) from which we can inherit. Using a generic parent class only for the unary ops and not for the others would make the script more complicated. For now, I'd say this somewhat low-tech solution gets the job done.
Unfortunately we have to define them both ways for typing purposes. This comment in Note: in some of the overloads below the return value in reality is NotImplemented,which cannot accurately be expressed with type hints,e.g. Literal[NotImplemented]or type(NotImplemented) are not allowed and NoReturn has a different meaning.In such cases we are lending the type checkers a hand by specifying the return typeof the corresponding reflexive method on
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
798771631 | https://github.com/pydata/xarray/pull/4904#issuecomment-798771631 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDc5ODc3MTYzMQ== | rhkleijn 32801740 | 2021-03-13T19:24:08Z | 2021-03-13T19:25:00Z | CONTRIBUTOR | You can now view the branch I mentioned in my previous message at https://github.com/pydata/xarray/compare/master...rhkleijn:gen-ops . It would get rid of the need for dynamically generating (injecting) unary and binary operators at runtime. Note that its script generates both the module containing the arithmetic methods and its accompanying stub file. This setup turned out to be more robust than both:
In all cases mypy and pylance work nicely. I prefer the Also, I am not sure what to do with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
790995670 | https://github.com/pydata/xarray/pull/4904#issuecomment-790995670 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDc5MDk5NTY3MA== | rhkleijn 32801740 | 2021-03-04T22:39:14Z | 2021-03-04T22:39:14Z | CONTRIBUTOR |
Done
Locally it seems to work fine. Let's see what happens in CI now.
Not yet. I am working on generating the methods themselves on a local branch. It required changing all |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
783507609 | https://github.com/pydata/xarray/pull/4942#issuecomment-783507609 | https://api.github.com/repos/pydata/xarray/issues/4942 | MDEyOklzc3VlQ29tbWVudDc4MzUwNzYwOQ== | rhkleijn 32801740 | 2021-02-22T16:41:44Z | 2021-02-22T16:41:44Z | CONTRIBUTOR | If the minimum version of numpy is increased to 1.17 you may want to change the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bump the dependencies 813654286 | |
779404893 | https://github.com/pydata/xarray/pull/4904#issuecomment-779404893 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDc3OTQwNDg5Mw== | rhkleijn 32801740 | 2021-02-15T19:10:56Z | 2021-02-15T19:10:56Z | CONTRIBUTOR |
I agree. Both PRs you mention would be nice to see merged. I was still using numpy 1.19.
I usually prefer inline type hints. The motivation for stub files was mostly because all other approaches I tried where not sufficient, see my comment in #4054. It turns out we might not even need a stub file, see my reply above to max-sixty's comments.
That is correct. It can currently be considered a mixin class during type checking and a no-op at compile and runtime. If I can get max-sixty's suggestion to work, then we would quite literally be following up on that TODO by using mixin classes instead of the unintuitive "inject" functions.
Those are mypy warning for overlapping overload signatures with incompatible return types. In practice it is not a problem as the first matching overload gets picked. One reason for overlapping is that with numpy <=1.20
Agreed. What name would work in this case? Something like
I think it would be nice to allow some simple kinds of subclassing (some (many?) methods already preserve the subclass in the return value but the type hint mentions the base class as return type). The particular use case I have in mind involves having a custom Accessor registered with ``` import xarray as xr if TYPE_CHECKING: class Dataset(xr.Dataset): myaccessor: MyAccessor else: Dataset = xr.Dataset # note that at runtime we just work with xr.Dataset ds = Dataset(...) ds2 = (ds + 1).sel(x=1) # some operations (ideally preserving subclass!) In the line below I would like my IDE to be able to show me the docstrings,methods signatures and typing information for
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
779295725 | https://github.com/pydata/xarray/pull/4904#issuecomment-779295725 | https://api.github.com/repos/pydata/xarray/issues/4904 | MDEyOklzc3VlQ29tbWVudDc3OTI5NTcyNQ== | rhkleijn 32801740 | 2021-02-15T15:30:51Z | 2021-02-15T15:30:51Z | CONTRIBUTOR |
I did not consider it but that is a very promising idea. It is probably feasible to adapt the script to generate the methods themselves together with their type hints into a regular Python module instead of a stub file. I will give it a try this week. It would have the same disadvantage of needing the script for generating the file. There are several advantages: the stub file approach which may feel a bit odd would not even be necessary, it could replace the current injection logic, implementation and type hints would be in a single place and it could simplify the class hierarchy a bit.
The mypy documentation states that if a directory contains both a .py and a .pyi file for the same module, the .pyi file takes precedence. It is my understanding that stub files work on a file by file basis and you cannot mix them for a single file. There should be no interactions here, as a _typed_ops.py module doesn't even exist in this case, only the _typed_ops.pyi stub file. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add typing to unary and binary arithmetic operators 807764700 | |
778628502 | https://github.com/pydata/xarray/issues/4054#issuecomment-778628502 | https://api.github.com/repos/pydata/xarray/issues/4054 | MDEyOklzc3VlQ29tbWVudDc3ODYyODUwMg== | rhkleijn 32801740 | 2021-02-13T14:40:51Z | 2021-02-13T14:40:51Z | CONTRIBUTOR | I have implemented a possible solution to have typing for all unary and binary operators which works for mypy and also displays correctly inferred type hints on hovering over the code in Pylance (with VS Code) and PyCharm. The approach involves generating a stub file using a simple helper script. I'll open a draft PR so you can see this approach and for soliciting feedback. I have been experimenting with all kinds of other approaches to solve this issue but this was the only one with a satisfactory result. For reference, and jotting down from memory, I think I tried the following approaches without much success:
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Type checking fails for multiplication 617140674 | |
752674453 | https://github.com/pydata/xarray/issues/4741#issuecomment-752674453 | https://api.github.com/repos/pydata/xarray/issues/4741 | MDEyOklzc3VlQ29tbWVudDc1MjY3NDQ1Mw== | rhkleijn 32801740 | 2020-12-30T16:06:45Z | 2020-12-30T16:06:45Z | CONTRIBUTOR | With some modest refactoring in https://github.com/rhkleijn/xarray/tree/faster-attr-access I managed to speed up attribute style access, ``` %timeit ds.var0 468 µs ± 1.96 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) %timeit dir(ds) 499 µs ± 1.51 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) %timeit ds.ipython_key_completions() 242 µs ± 1.03 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) ``` Shall I open a pull request for this? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Attribute style access is slow 776520994 | |
750929476 | https://github.com/pydata/xarray/issues/3348#issuecomment-750929476 | https://api.github.com/repos/pydata/xarray/issues/3348 | MDEyOklzc3VlQ29tbWVudDc1MDkyOTQ3Ng== | rhkleijn 32801740 | 2020-12-24T17:12:15Z | 2020-12-24T17:12:15Z | CONTRIBUTOR |
Output 1
Output 2 ``` Original xr.DataArray attrs: {'at_str': 'at1_value', 'at_float': 123.0, 'at_int': 123} dtype: int64 After casting to int64: {'at_str': 'at1_value', 'at_float': 123.0, 'at_int': 123} After casting to int32: {'at_str': 'at1_value', 'at_float': 123.0, 'at_int': 123} After casting to float32: {'at_str': 'at1_value', 'at_float': 123.0, 'at_int': 123} Changing the np.array attrs: {'at_str': 'at1_value', 'at_float': 123.0, 'at_int': 123} dtype: float32 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Changing dtype on v0.13.0 causes Dataset attributes to be lost 499196320 | |
743129921 | https://github.com/pydata/xarray/issues/4644#issuecomment-743129921 | https://api.github.com/repos/pydata/xarray/issues/4644 | MDEyOklzc3VlQ29tbWVudDc0MzEyOTkyMQ== | rhkleijn 32801740 | 2020-12-11T11:05:04Z | 2020-12-11T11:08:57Z | CONTRIBUTOR | Working on a unit test for the The DataArray constructor calls
Is this behaviour intentional? What to do with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
astype method lost its order parameter 755607271 | |
743129841 | https://github.com/pydata/xarray/issues/4644#issuecomment-743129841 | https://api.github.com/repos/pydata/xarray/issues/4644 | MDEyOklzc3VlQ29tbWVudDc0MzEyOTg0MQ== | rhkleijn 32801740 | 2020-12-11T11:04:53Z | 2020-12-11T11:04:53Z | CONTRIBUTOR | I will also include xarray's recently added
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
astype method lost its order parameter 755607271 | |
738946975 | https://github.com/pydata/xarray/issues/4644#issuecomment-738946975 | https://api.github.com/repos/pydata/xarray/issues/4644 | MDEyOklzc3VlQ29tbWVudDczODk0Njk3NQ== | rhkleijn 32801740 | 2020-12-04T18:32:46Z | 2020-12-04T18:32:46Z | CONTRIBUTOR | That is a nicer solution. Never contributed a PR before, but I'll try to work on this next week. It looks like a good first issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
astype method lost its order parameter 755607271 | |
737899772 | https://github.com/pydata/xarray/issues/4644#issuecomment-737899772 | https://api.github.com/repos/pydata/xarray/issues/4644 | MDEyOklzc3VlQ29tbWVudDczNzg5OTc3Mg== | rhkleijn 32801740 | 2020-12-03T12:03:42Z | 2020-12-03T12:03:42Z | CONTRIBUTOR | IIUC before PR #4314 I am thinking it might not even be worthwhile to add support for an
Another option might be to allow arbitrary What are your thoughts? Does xarray have some kind of policy for supporting parameters which might not make sense for all types of duck arrays? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
astype method lost its order parameter 755607271 | |
412095066 | https://github.com/pydata/xarray/issues/2059#issuecomment-412095066 | https://api.github.com/repos/pydata/xarray/issues/2059 | MDEyOklzc3VlQ29tbWVudDQxMjA5NTA2Ng== | rhkleijn 32801740 | 2018-08-10T14:14:12Z | 2018-08-10T14:14:12Z | CONTRIBUTOR | Currently, the dtype does not seem to roundtrip faithfully.
When I write This can be reproduced by inserting the following line in the script above (and adjusting the print statement accordingly)
Python version | NetCDF version | NumPy datatype | NetCDF datatype|Numpy datatype (read) -- | -- | -- | --|-- | Python 3 | NETCDF3 | np.string_ / bytes | NC_CHAR | \|S3 | | Python 3 | NETCDF4 | np.string_ / bytes | NC_CHAR | \|S3 | | Python 3 | NETCDF3 | np.unicode_ / str | NC_CHAR with UTF-8 encoding | object | | Python 3 | NETCDF4 | np.unicode_ / str | NC_STRING | object | | Python 3 | NETCDF3 | object bytes/bytes | NC_CHAR | \|S3 | | Python 3 | NETCDF4 | object bytes/bytes | NC_CHAR | \|S3 | | Python 3 | NETCDF3 | object unicode/str | NC_CHAR with UTF-8 encoding | object | | Python 3 | NETCDF4 | object unicode/str | NC_STRING | object | Also Is it possible to preserve dtype when persisting xarray Datasets/DataArrays to disk? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
How should xarray serialize bytes/unicode strings across Python/netCDF versions? 314444743 |
Advanced export
JSON shape: default, array, newline-delimited, object
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]);
issue 15