Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rolling_exp: keep_attrs and typing #4592
rolling_exp: keep_attrs and typing #4592
Changes from 1 commit
7fc7c7b
a7b2389
2276992
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this different from
DataWithCoords
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
works as well. A bit to my surprise as
DataWithCoords
does not implementreduce
. But mypy does not throw an error here:not sure why not...
(Also I am not entirely sure what the difference is between
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is odd it doesn't throw an error...
On the second case, I think — not completely sure — that
T_Parent
is generic with an "upper bound" ofParent
, so any function that takesT_Parent
will return the same type.Whereas a function that takes
T_Children
could return either ofChildA
orChildB
regardless of what's passed in.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And your call on whether we use
DataWithCoords
or theTypeVar
, but I think if we do the latter we could find a clearer name :)I would marginally vote to go with
DataWithCoords
given we do that elsewhere but totally open on trying another approachThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think both would need to be
TypeVar
s. I I'll stick toT_DSorDA
asDataWithCoords
does not implementreduce
.T_DSorDA
is already used at some places (map_blocks
), e.g.:xarray/xarray/core/parallel.py
Line 34 in 5296ed1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I didn't know that, thanks. I wasn't a fan of the name, but we can change them together another time if others agree.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great idea with
Generic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes that took quite a while to figure out but it doesn't work without it as the Type of
obj
does not bind to the function else. That should come in handy for some other classes.