id,node_id,number,state,locked,title,user,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,milestone,draft,head,base,author_association,auto_merge,repo,url,merged_by 349097383,MDExOlB1bGxSZXF1ZXN0MzQ5MDk3Mzgz,3596,closed,0,"Add DataArray.pad, Dataset.pad, Variable.pad",12862013,"Hello all, This is my first PR to a pydata project. This pull request is still very much a work in progress and I could really use your input on a couple of things. - [x] Closes #2605 - [x] Tests added - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 1. I moved the custom dask pad method into dask_array_compat to ensure backwards compatability to Dask versions that do not have dask.pad yet. We could chose to drop this support if we wanted to. 2. I'm still in doubt about the function signature, numpy as dask use optional kwargs, but that kinda interferes with the `**pad_width_kwargs`. I chose the signature that I thought looked least awkward. 3. The default behaviour of pad with `mode=constant` pads with NaN's converting the array to float in the process. This goes against the default behaviour of numpy as dask. 4. How should the coordinates of a DataArray be padded? I chose default padding except for modes ""edge"", ""reflect"", ""symmetric"", ""wrap"". 5. How should we handle inconsistencies between numpy.pad and Dask.pad, it turns out there are a couple [5303](https://github.com/dask/dask/issues/5303) Dataset.pad is coming up.",2019-12-04T21:18:41Z,2020-03-21T11:50:44Z,2020-03-19T14:41:50Z,2020-03-19T14:41:49Z,e7d6e12662ae113a57eaf38eb2a19ab9ff92b9a8,,,0,f781f72ff5e88c49993d0b791f6a93cebb62739c,9fbb4170c1732fe2f3cd57b2b96d770a5bac50ed,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/3596,