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 412080974,MDU6SXNzdWU0MTIwODA5NzQ=,2779,Bring xr.align objects specification in line with other top-level functions?,4762711,open,0,,,2,2019-02-19T19:13:33Z,2020-11-26T21:44:09Z,,NONE,,,,"Was wondering if this might be useful given that I ran into this point of confusion. Observing the following argument specifications for various top-level xarray functions: `xarray.align(*objects, join='inner', copy=True, indexes=None, exclude=frozenset())` `xarray.concat(objs, dim=None, data_vars='all', coords='different', compat='equals', positions=None, indexers=None, mode=None, concat_over=None)` `xarray.concat(objs, dim=None, data_vars='all', coords='different', compat='equals', positions=None, indexers=None, mode=None, concat_over=None)` `xarray.merge(objects, compat='no_conflicts', join='outer')` the odd man out here would be `xr.align` utilizing the `*args` formulation whereas all the others just take a single `objs` / `objects` param, instead. Would it make sense to add functionality to `align` such that if `*args` (`*objects`) is of length 1 and is a list or tuple (or something in this ballpark), you just treat it as the other methods currently operate? For reference, if you don't notice that `align` works differently, if you pass an iterable without `*args`-ifying it, you get this somewhat unhelpful error: ![image](https://user-images.githubusercontent.com/4762711/53040804-57686c00-3450-11e9-937d-a1295ce92be9.png) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2779/reactions"", ""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue