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/648#issuecomment-162078689,https://api.github.com/repos/pydata/xarray/issues/648,162078689,MDEyOklzc3VlQ29tbWVudDE2MjA3ODY4OQ==,5635139,2015-12-04T20:50:46Z,2015-12-04T20:50:46Z,MEMBER,":clap:
I'll try and get my PR in this weekend for the pandas wrapping
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-162061150,https://api.github.com/repos/pydata/xarray/issues/648,162061150,MDEyOklzc3VlQ29tbWVudDE2MjA2MTE1MA==,2443309,2015-12-04T19:33:18Z,2015-12-04T19:33:18Z,MEMBER,"lgtm, go ahead and merge.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-162043311,https://api.github.com/repos/pydata/xarray/issues/648,162043311,MDEyOklzc3VlQ29tbWVudDE2MjA0MzMxMQ==,1217238,2015-12-04T18:28:36Z,2015-12-04T18:28:36Z,MEMBER,"Rebased and tests are passing.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-161468195,https://api.github.com/repos/pydata/xarray/issues/648,161468195,MDEyOklzc3VlQ29tbWVudDE2MTQ2ODE5NQ==,2443309,2015-12-02T23:39:53Z,2015-12-02T23:39:53Z,MEMBER,"@shoyer - I don't have any more inline comments. There is one failing test and there are merge conflicts, once those are addressed, I'll take one more brief look.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-160554682,https://api.github.com/repos/pydata/xarray/issues/648,160554682,MDEyOklzc3VlQ29tbWVudDE2MDU1NDY4Mg==,1217238,2015-11-30T08:36:04Z,2015-11-30T08:36:04Z,MEMBER,"This is ready for review if anyone wants to take another look.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155699081,https://api.github.com/repos/pydata/xarray/issues/648,155699081,MDEyOklzc3VlQ29tbWVudDE1NTY5OTA4MQ==,1217238,2015-11-11T08:05:31Z,2015-11-11T08:05:31Z,MEMBER,"OK, latest commit changes DataArray's internals to rely on `_variable` and `_coords` instead of `_dataset`. There's still a bit more `_to_temp_dataset()` than ideal, but hopefully the data model makes more sense now...
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155598016,https://api.github.com/repos/pydata/xarray/issues/648,155598016,MDEyOklzc3VlQ29tbWVudDE1NTU5ODAxNg==,1217238,2015-11-10T23:12:31Z,2015-11-10T23:19:22Z,MEMBER,"I realize now that changing the internal representation for DataArray doesn't mean we need to rewrite how every routine works. We can still convert dataarrays to a dataset when convenient -- it just means we'll need to use a method to do so instead of modifying `._dataset`. For example, we currently have:
``` python
def copy(self, deep=True):
ds = self._dataset.copy(deep=deep)
return self._with_replaced_dataset(ds)
```
and instead we could simply write:
``` python
def copy(self, deep=True):
ds = self._to_temp_dataset().copy(deep=deep)
return self._new_from_temp_dataset(ds)
```
However, going forward it will give us more flexibility for how to write DataArray methods. For example, it might actually be clearer to write:
``` python
def copy(self, deep=True):
variable = self.variable.copy(deep=deep)
coords = OrderedDict((k, v.copy(deep=deep))
for k, v in self._coords.items())
return type(self)(variable, coords, name=name, fastpath=True)
```
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155584382,https://api.github.com/repos/pydata/xarray/issues/648,155584382,MDEyOklzc3VlQ29tbWVudDE1NTU4NDM4Mg==,1217238,2015-11-10T22:12:27Z,2015-11-10T22:12:27Z,MEMBER,"> @shoyer - do you have a feel for how difficult it would be to go the variable/coords route?
Hmm. Might not be so bad now that I've already gone through the trouble of thinking what these new tests should look like. I'll give it a shot tonight and see how it goes...
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155566138,https://api.github.com/repos/pydata/xarray/issues/648,155566138,MDEyOklzc3VlQ29tbWVudDE1NTU2NjEzOA==,2443309,2015-11-10T21:07:42Z,2015-11-10T21:07:42Z,MEMBER,"@shoyer - do you have a feel for how difficult it would be to go the `variable`/`coords` route?
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155549758,https://api.github.com/repos/pydata/xarray/issues/648,155549758,MDEyOklzc3VlQ29tbWVudDE1NTU0OTc1OA==,5635139,2015-11-10T20:02:24Z,2015-11-10T20:02:24Z,MEMBER,"> Indeed, I wonder if it would make sense to decouple DataArray from Dataset by storing the state on two (protected) attributes:
As a newbie, :+1:. I took some time to figure out why a `DataArray` _contained_ a `Dataset`.
> The main downside is that we add a bit more redundant code (e.g., to loop over all variables in .sel).
Low confidence, but you could have a common ancestor (`XRayContainer`, etc) which contained the similar code or a `._stuff` attribute that's iterated over
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155545607,https://api.github.com/repos/pydata/xarray/issues/648,155545607,MDEyOklzc3VlQ29tbWVudDE1NTU0NTYwNw==,1217238,2015-11-10T19:45:59Z,2015-11-10T19:45:59Z,MEMBER,"Indeed, I wonder if it would make sense to decouple DataArray from Dataset by storing the state on two (protected) attributes:
- `variable`: the variable for this array
- `coords`: an ordered dict of coordinates
The main downside is that we add a bit more redundant code (e.g., to loop over all variables in `.sel`). But on the plus side our data model is much more similar to the public API, which would probably make things easier to understand, especially for new contributors -- they don't have to learn Dataset to learn DataArray.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419
https://github.com/pydata/xarray/pull/648#issuecomment-155530747,https://api.github.com/repos/pydata/xarray/issues/648,155530747,MDEyOklzc3VlQ29tbWVudDE1NTUzMDc0Nw==,2443309,2015-11-10T18:56:07Z,2015-11-10T18:56:07Z,MEMBER,"@shoyer - I read this mainly trying to get a better idea of the internal DataArray data model. The code itself looks great. My main two comments on the refactor are:
1. The use of the `_ThisArray` singleton seems a bit clunky to me. This is my first time interacting with this approach so maybe it is the best way, but I don't know much about it.
2. This all seems to be complicated by the DataArrays's use of the Dataset internally to store coordinates. Not for this PR, but I wonder if there is a way to clear up the lines between the two objects.
All in all, impressive work.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,115805419