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/2972#issuecomment-496052425,https://api.github.com/repos/pydata/xarray/issues/2972,496052425,MDEyOklzc3VlQ29tbWVudDQ5NjA1MjQyNQ==,1217238,2019-05-27T01:52:29Z,2019-05-27T01:52:29Z,MEMBER,"Yes, I do think this deviation from pandas would make sense -- though it would be even better if we could convince pandas to make the same change!
We already have low-level tools for controlling how alignment works (construct the index yourself and use `.reindex`), but we should make the default behavior as user friendly as possible.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,445745470
https://github.com/pydata/xarray/pull/2972#issuecomment-494078236,https://api.github.com/repos/pydata/xarray/issues/2972,494078236,MDEyOklzc3VlQ29tbWVudDQ5NDA3ODIzNg==,2448579,2019-05-20T17:24:55Z,2019-05-20T17:24:55Z,MEMBER,"From a user perspective, I think it's plain weird to merge a bunch of datasets with montonically decreasing coordinates and land up with a new dataset that has monotonically increasing coordinates.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,445745470
https://github.com/pydata/xarray/pull/2972#issuecomment-493798254,https://api.github.com/repos/pydata/xarray/issues/2972,493798254,MDEyOklzc3VlQ29tbWVudDQ5Mzc5ODI1NA==,13662783,2019-05-19T22:41:49Z,2019-05-19T22:46:06Z,CONTRIBUTOR,"I'm definitely not convinced it's a great idea either; a pull request is hopefully the best way to get some discussion going! Putting it in the `_get_joiner` is definitely the sensible choice, and the last suggestion is definitely more clear to me.
I've had a bit more thought and maybe it's useful to consider what xarray's philosophy about these things is. I think flexibility is a primary concern and generally, things \*just work\*. The reason I'm running into issues here is because I'm writing some code which operates on DataArrays, which isn't nearly as robust or flexible, and **doesn't** just work.
The answer in this case might be that I should be using xarray's powerful alignment machinery to do the work for me, rather than to assume/demand certain features of the data. Of course, that requires some digging into how xarray does alignment. But I'd end up with a more flexible tool in the end.
Perhaps that should be the general rule: if you're extending xarray, like xarray, *don't* rely too much about your coordinates staying the way they are. Maybe such a description could belong in the [xarray Internals page](http://xarray.pydata.org/en/stable/internals.html) just to make it explicit.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,445745470
https://github.com/pydata/xarray/pull/2972#issuecomment-493782708,https://api.github.com/repos/pydata/xarray/issues/2972,493782708,MDEyOklzc3VlQ29tbWVudDQ5Mzc4MjcwOA==,1217238,2019-05-19T19:04:42Z,2019-05-19T19:04:42Z,MEMBER,"I'm not entirely sure this is a good idea -- a discrepancy in the behavior of an outer join between pandas seems non-ideal. Perhaps somebody else has opinions about whether this would be worthwhile?
If we do want to do this, let's put the change inside the `_get_joiner` function. Specifically, instead of
```python
def _get_joiner(join):
if join == 'outer':
return functools.partial(functools.reduce, operator.or_)
```
you could write something like:
```python
def _outer_join(indexes):
index = functools.reduce(indexes, operator.or_)
# your logic for reverse sorting the result
return index
def _get_joiner(join):
if join == 'outer':
return _outer_join
```
Note that `operator.or_` on a pandas.Index is the same thing as `pandas.Index.union`, so this could be equivalently written (maybe more clearly) as:
```python
def _outer_join(indexes):
index = indexes[0]
for other in indexes[1:]
index = index.union(other)
# your logic for reverse sorting the result
return index
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,445745470