make dims
(previously sometimes called region
) a keyword argument
#25989
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.
Continues #25831, fixes #25501.
I still think the keyword argument is a better API, but after working on this I understand why @ararslan's opinion shifted. The basic issue is that reducing over dimensions generally requires a different algorithm and (in our case) gives a different type of result, so it's useful to dispatch on whether a
dims
argument is passed. Since we don't dispatch on keyword arguments, quite a few contortions are needed.I found a total of 22 affected functions. Somebody who understands the stats functions better should review to make sure those changes make sense. There are also a few un-exported functions (
covm
,covzm
,corm
,corzm
,reducedim!
,mapreducedim!
, maybe a few more) that take dim arguments, but I left those alone to save time. We might want to change them too though.