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/pull/5607#issuecomment-881969320,https://api.github.com/repos/pydata/xarray/issues/5607,881969320,IC_kwDOAMm_X840kcio,1217238,2021-07-17T22:39:02Z,2021-07-17T22:39:02Z,MEMBER,"> @shoyer That would either not work, or be needlessly expensive, I think. The message generation might be expensive (e.g. if I want a sum or mean of the differences). With a call back it only happens if it is needed. With a pre-computed message it would be computed every time.. Correct me if I'm wrong. I'm mostly thinking of the precedent from the standard library's unittest library and numpy.testing. It does indeed add a bit of expense to add a custom message, but I guess it's generally acceptable for testing? If not, I would kind of expect to add support for callables in those libraries first.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829 https://github.com/pydata/xarray/pull/5607#issuecomment-881967812,https://api.github.com/repos/pydata/xarray/issues/5607,881967812,IC_kwDOAMm_X840kcLE,5635139,2021-07-17T22:25:54Z,2021-07-17T22:25:54Z,MEMBER,"@naught101 to what extent do you think your wants are idiosyncratic vs. better overall? To the extent this is for things that would make the function better for all, then one option is to implement them; e.g. add ` `f""Largest difference in data is {abs(a-b).max().item()}""`. Possibly that reduces the opportunity to experiment though? People could probably monkey-patch the function in their own environments if they want. And I think we can also be fairly liberal about merging changes given the output is read by people.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829 https://github.com/pydata/xarray/pull/5607#issuecomment-881556130,https://api.github.com/repos/pydata/xarray/issues/5607,881556130,IC_kwDOAMm_X840i3qi,1217238,2021-07-16T16:04:42Z,2021-07-16T16:04:42Z,MEMBER,I think the more standard way to handle this is to add an argument for supplying an auxiliary `err_msg` rather than a callback. But this would definitely be welcome functionality!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829 https://github.com/pydata/xarray/pull/5607#issuecomment-881269881,https://api.github.com/repos/pydata/xarray/issues/5607,881269881,IC_kwDOAMm_X840hxx5,5635139,2021-07-16T08:23:52Z,2021-07-16T08:23:52Z,MEMBER,"> My particular use case is that have datasets that are large enough that I can't see the full diff, so might miss major changes. I'm wanting to pass in something like `lambda a, b: f""Largest difference in data is {abs(a-b).max().item()}""`, so I can quickly see if the changes are meaningful. Obviously a more complex function might also be useful, like a summary/describe table output of the differences.. > Whether or not we merge this, I would be a +1 on improving the output of the canonical function better, such that we can see differences easily. I would also imagine we can iterate on those without worrying about backward-compat, given this is generating output for people. As an example, printing the result of the exact statement above for large arrays, maybe also with dimension values, would be great!","{""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829 https://github.com/pydata/xarray/pull/5607#issuecomment-880886578,https://api.github.com/repos/pydata/xarray/issues/5607,880886578,MDEyOklzc3VlQ29tbWVudDg4MDg4NjU3OA==,14808389,2021-07-15T17:36:08Z,2021-07-15T18:10:44Z,MEMBER,"`assert_equal` and `assert_identical` are currently calling `.equals` / `.identical` and the only thing they really add on top of that is the diff formatting, which is what you want to override. So for those at least it might be better to write your own `assert_*` functions. `assert_allclose`, however, implements functionality that is otherwise unavailable (I think?) so we might want to think about exposing that separately and calling it in `assert_allclose`.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829 https://github.com/pydata/xarray/pull/5607#issuecomment-880889091,https://api.github.com/repos/pydata/xarray/issues/5607,880889091,MDEyOklzc3VlQ29tbWVudDg4MDg4OTA5MQ==,5635139,2021-07-15T17:40:11Z,2021-07-15T17:40:11Z,MEMBER,(if we do this we should make it kwarg-only),"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829 https://github.com/pydata/xarray/pull/5607#issuecomment-880810763,https://api.github.com/repos/pydata/xarray/issues/5607,880810763,MDEyOklzc3VlQ29tbWVudDg4MDgxMDc2Mw==,35968931,2021-07-15T15:53:20Z,2021-07-15T15:53:20Z,MEMBER,Thanks for this suggestion @naught101 - can you give an example use case for this within the xarray codebase? Or are you just making a general suggestion of something we might find useful?,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,945226829