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 344631360,MDU6SXNzdWUzNDQ2MzEzNjA=,2315,Behavior of filter_by_attrs() does not match netCDF4.Dataset.get_variables_by_attributes,868027,closed,0,,,8,2018-07-25T22:35:14Z,2018-08-28T01:21:20Z,2018-08-28T01:21:20Z,CONTRIBUTOR,,,,"When using the `filter_by_attrs()` method of a Dataset it was returning more matches than I expected. The returned match set appears to be the logical OR of all the key=value pairs passed into the method. This does not match the behavior of the `netCDF4.Dataset.get_variables_by_attributes` which returns the logical AND of all the key=value pairs passed into it. I couldn't tell from the documentation if this was the intended behavior. #### Minimal Example ```python import xarray as xr example_dataset = xr.Dataset({ ""var1"": xr.DataArray([], attrs={""standard_name"": ""example1"", ""priority"": 0}), ""var2"": xr.DataArray([], attrs={""standard_name"": ""example2""}) }) example_dataset.filter_by_attrs(standard_name=""example2"", priority=0) ``` #### Example Output ```python Dimensions: (dim_0: 0) Dimensions without coordinates: dim_0 Data variables: var1 (dim_0) float64 var2 (dim_0) float64 ``` #### Expected Output ```python Dimensions: () Data variables: *empty* ``` Alternatively, chaining calls to filter_by_attrs will result in the expected behavior: ```python import xarray as xr example_dataset = xr.Dataset({ ""var1"": xr.DataArray([], attrs={""standard_name"": ""example1"", ""priority"": 0}), ""var2"": xr.DataArray([], attrs={""standard_name"": ""example2""}) }) example_dataset.filter_by_attrs(standard_name=""example2"").filter_by_attrs(priority=0) Dimensions: () Data variables: *empty* ``` #### Output of ``xr.show_versions()``
INSTALLED VERSIONS ------------------ commit: None python: 3.7.0.final.0 python-bits: 64 OS: Darwin OS-release: 17.7.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 LOCALE: en_US.UTF-8 xarray: 0.10.8 pandas: 0.23.3 numpy: 1.14.5 scipy: 1.1.0 netCDF4: 1.4.0 h5netcdf: None h5py: None Nio: None zarr: None bottleneck: 1.2.1 cyordereddict: None dask: 0.18.2 distributed: 1.22.0 matplotlib: 2.2.2 cartopy: 0.16.0 seaborn: None setuptools: 39.0.1 pip: 10.0.1 conda: None pytest: 3.6.3 IPython: 6.4.0 sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2315/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue