{"action":"created","issue":{"url":"https://api.github.com/repos/dask/dask/issues/3680","repository_url":"https://api.github.com/repos/dask/dask","labels_url":"https://api.github.com/repos/dask/dask/issues/3680/labels{/name}","comments_url":"https://api.github.com/repos/dask/dask/issues/3680/comments","events_url":"https://api.github.com/repos/dask/dask/issues/3680/events","html_url":"https://github.com/dask/dask/pull/3680","id":336405957,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk3ODY3OTY5","number":3680,"title":"reduction(chunk, combine, aggregate)","user":{"login":"crusaderky","id":6213168,"node_id":"MDQ6VXNlcjYyMTMxNjg=","avatar_url":"https://avatars1.githubusercontent.com/u/6213168?v=4","gravatar_id":"","url":"https://api.github.com/users/crusaderky","html_url":"https://github.com/crusaderky","followers_url":"https://api.github.com/users/crusaderky/followers","following_url":"https://api.github.com/users/crusaderky/following{/other_user}","gists_url":"https://api.github.com/users/crusaderky/gists{/gist_id}","starred_url":"https://api.github.com/users/crusaderky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crusaderky/subscriptions","organizations_url":"https://api.github.com/users/crusaderky/orgs","repos_url":"https://api.github.com/users/crusaderky/repos","events_url":"https://api.github.com/users/crusaderky/events{/privacy}","received_events_url":"https://api.github.com/users/crusaderky/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-06-27T22:13:11Z","updated_at":"2018-11-16T13:00:52Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/dask/dask/pulls/3680","html_url":"https://github.com/dask/dask/pull/3680","diff_url":"https://github.com/dask/dask/pull/3680.diff","patch_url":"https://github.com/dask/dask/pull/3680.patch"},"body":"Breaking API change in ``dask.array.reductions.reduction``, from ``reduction(x, chunk, aggregate, ...,  combine=None)`` to ``reduction(x, chunk, combine, aggregate, ...)``.\r\n\r\nI found that the old API was very confusing, and there is no particular reason why combine (which is a fundamental piece of the reduction) should be omitted while aggregate is mandatory. Also, I find much clearer to provide chunk, combine, aggregate as 3 mandatory positional parameters, as it makes it easy to wrap your head around the chronological order of the 3 steps of the reduction.\r\n\r\nThis change is marked as breaking as ``reduction`` is not public API, but somebody somewhere likely tapped into it to implement custom reductions.\r\n\r\nOn the side - added unit tests for nancumsum and nancumprod, which were 100% untested."},"comment":{"url":"https://api.github.com/repos/dask/dask/issues/comments/439385948","html_url":"https://github.com/dask/dask/pull/3680#issuecomment-439385948","issue_url":"https://api.github.com/repos/dask/dask/issues/3680","id":439385948,"node_id":"MDEyOklzc3VlQ29tbWVudDQzOTM4NTk0OA==","user":{"login":"mrocklin","id":306380,"node_id":"MDQ6VXNlcjMwNjM4MA==","avatar_url":"https://avatars3.githubusercontent.com/u/306380?v=4","gravatar_id":"","url":"https://api.github.com/users/mrocklin","html_url":"https://github.com/mrocklin","followers_url":"https://api.github.com/users/mrocklin/followers","following_url":"https://api.github.com/users/mrocklin/following{/other_user}","gists_url":"https://api.github.com/users/mrocklin/gists{/gist_id}","starred_url":"https://api.github.com/users/mrocklin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrocklin/subscriptions","organizations_url":"https://api.github.com/users/mrocklin/orgs","repos_url":"https://api.github.com/users/mrocklin/repos","events_url":"https://api.github.com/users/mrocklin/events{/privacy}","received_events_url":"https://api.github.com/users/mrocklin/received_events","type":"User","site_admin":false},"created_at":"2018-11-16T13:00:52Z","updated_at":"2018-11-16T13:00:52Z","author_association":"MEMBER","body":"It seems like it still needs someone to review it more thoroughly and provide thoughts on how to handle the deprecation.  Perhaps @jakirkham ?"}}
{"actor":{"display_login":"mrocklin"}}