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/issues/1303#issuecomment-285380106,https://api.github.com/repos/pydata/xarray/issues/1303,285380106,MDEyOklzc3VlQ29tbWVudDI4NTM4MDEwNg==,1197350,2017-03-09T15:18:18Z,2024-02-06T17:57:21Z,MEMBER,Just wanted to link to a somewhat related discussion happening in [brian-rose/climlab#50](https://github.com/climlab/climlab/issues/50).,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,213004586
https://github.com/pydata/xarray/issues/1303#issuecomment-285351087,https://api.github.com/repos/pydata/xarray/issues/1303,285351087,MDEyOklzc3VlQ29tbWVudDI4NTM1MTA4Nw==,1197350,2017-03-09T13:29:01Z,2017-03-09T13:29:01Z,MEMBER,"Have you considered implementing a custom datastore for your model? Datastores just have to provide variables. This might be the most straightforward option.
> On Mar 9, 2017, at 6:07 AM, Benoit Bovy wrote:
>
> Is it safe to use xarray.core.variable.as_variable() externally? I guess that currently it is not.
>
> I have a specific use case where this would be very useful.
>
> I'm working on a package that heavily uses and extends xarray for landscape evolution modeling, and inside a custom class for model parameters I want to be able to create xarray.Variable objects on the fly from any provided object, e.g., a scalar value, an array-like, a (dims, data[, attrs]) tuple, another xarray.Variable, a xarray.DataArray... exactly what xarray.core.variable.as_variable() does.
>
> Although I know that Variable objects are not needed in most use cases, in this specific case a clean solution would be the following
>
> import xarray as xr
>
> class Parameter(object):
>
> def to_variable(self, obj):
> return xr.as_variable(obj)
> # ... some validation logic on, e.g., data type, value bounds, dimensions...
> # ... add default attributes to the
> I don't think it is a viable option to copy as_variable() and all its dependent code in my package as it seems to have quite a lot of logic implemented.
>
> A workaround using only public API would be something like:
>
> class Parameter(object):
>
> def to_variable(self, obj):
> return xr.Dataset(data_vars={'v': obj}).variables['v']
> but it feels a bit hacky.
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub, or mute the thread.
>
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,213004586