id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 656163384,MDExOlB1bGxSZXF1ZXN0NDQ4NTExMDUw,4221,Change isinstance checks to duck Dask Array checks #4208,19578931,closed,0,,,17,2020-07-13T21:39:46Z,2020-09-02T18:32:45Z,2020-09-02T18:28:12Z,CONTRIBUTOR,,0,pydata/xarray/pulls/4221," - [X] Closes #4208 - [x] Tests added - [x] Passes `isort -rc . && black . && mypy . && flake8` I added the discussed `is_duck_dask_array(x)` function and replaced `isinstance(x, dask_array_type)` checks with `is_duck_dask_array(x)`. Existing tests are passing. I did not change `isinstance(x, dask_array_type)` checks in the testing modules since I am unsure if that is appropriate. As for additional tests, I am leaning towards testing Xarray ( Pint ( Dask ) ) ) objects as implemented in upcoming Pint v0.15 rather than a mock class, but I am open to discussion. I am unfamiliar with the release schedules of Pint and Xarray but I imagine that would influence which direction the testing should go.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4221/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull