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/issues/1130#issuecomment-457307207,https://api.github.com/repos/pydata/xarray/issues/1130,457307207,MDEyOklzc3VlQ29tbWVudDQ1NzMwNzIwNw==,1217238,2019-01-24T18:34:37Z,2019-01-24T18:34:37Z,MEMBER,Closing this in favor of https://github.com/pydata/xarray/issues/1130,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,189998469 https://github.com/pydata/xarray/issues/1130#issuecomment-261599007,https://api.github.com/repos/pydata/xarray/issues/1130,261599007,MDEyOklzc3VlQ29tbWVudDI2MTU5OTAwNw==,1217238,2016-11-18T18:03:06Z,2016-11-18T18:03:06Z,MEMBER,"> But maybe_wrap_array is simple and does not break anything, it wraps it only when it's safe. It's safe in the sense that the `xarray.DataArray` contains the information from the numpy array, but it's not safe in terms of a stable type signature. > I think that could be quite likely as one might want to apply a DataArray-compatible function. This would force users to remember which type of ""function applier"" to use for a given function and might be confusing. I think this is unavoidable. It's impossible to design a single entry point that works smoothly for both use cases. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,189998469 https://github.com/pydata/xarray/issues/1130#issuecomment-261318464,https://api.github.com/repos/pydata/xarray/issues/1130,261318464,MDEyOklzc3VlQ29tbWVudDI2MTMxODQ2NA==,1217238,2016-11-17T17:52:02Z,2016-11-17T17:52:02Z,MEMBER,"As for `dim`/`axis`, my inclination would be to unilaterally remap any `dim` keyword argument to `.apply` to `axis` using the `get_axis_num`. Something like: ``` dim = kwargs.pop('dim', None) if dim is not None: if 'axis' in kwargs: raise ValueError('cannot set both `dim` and `axis`') kwargs['axis'] = self.get_axis_num(dim) ``` In the unlikely event your function takes a `dim` argument that should not be remapped, you can pass in a lambda or `functools.partial` instead. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,189998469 https://github.com/pydata/xarray/issues/1130#issuecomment-261317205,https://api.github.com/repos/pydata/xarray/issues/1130,261317205,MDEyOklzc3VlQ29tbWVudDI2MTMxNzIwNQ==,1217238,2016-11-17T17:47:12Z,2016-11-17T17:47:12Z,MEMBER,"On `Dataset`, `.pipe` and `.apply` work differently -- `pipe` passes the entire Dataset whereas `apply` passes each of the variables in turn. I'm OK with calling `maybe_wrap_array` in `DataArray.apply`, but I'd rather not adjust `DataArray.pipe`, which is intentionally very simple. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,189998469