Skip to content

Commit 7dd171d

Browse files
committed
Use merge_variables in checking the consistency.
1 parent 464e711 commit 7dd171d

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

xarray/core/dataset.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from .coordinates import DatasetCoordinates, LevelCoordinatesSource, Indexes
2525
from .common import ImplementsDatasetReduce, BaseDataObject, is_datetime_like
2626
from .merge import (dataset_update_method, dataset_merge_method,
27-
merge_data_and_coords)
27+
merge_data_and_coords, merge_variables)
2828
from .utils import (Frozen, SortedKeysDict, maybe_wrap_array, hashable,
2929
decode_numpy_dict_values, ensure_us_time_resolution)
3030
from .variable import (Variable, as_variable, IndexVariable,
@@ -1135,17 +1135,11 @@ def isel(self, drop=False, **indexers):
11351135
raise ValueError("dimensions %r do not exist" % invalid)
11361136

11371137
# extract new coordinates from indexers
1138-
variables = OrderedDict()
1139-
for k, v in iteritems(indexers):
1140-
if isinstance(v, DataArray):
1141-
for c, var in v.coords.items():
1142-
if c in variables:
1143-
if not variables[c].equals(var.variable):
1144-
raise ValueError('Inconsistent coordinates : {0}'
1145-
' and {1}'.format(variables[c],
1146-
var))
1147-
else:
1148-
variables[c] = var.variable
1138+
variables = merge_variables([v._coords for _, v in
1139+
iteritems(indexers)
1140+
if isinstance(v, DataArray)],
1141+
compat='identical')
1142+
11491143
coord_names = set(self._coord_names) | set(variables)
11501144

11511145
# a tuple, e.g. (('x', ), [0, 1]), is converted to Variable

xarray/tests/test_dataset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ def test_isel_fancy(self):
900900
self.assertDataArrayIdentical(actual['station'].drop(['dim2']),
901901
stations['station'])
902902

903-
with self.assertRaisesRegexp(ValueError, 'Inconsistent coordinates'):
903+
with self.assertRaisesRegexp(ValueError, 'conflicting values for '):
904904
data.isel(dim1=DataArray([0, 1, 2], dims='station',
905905
coords={'station': [0, 1, 2]}),
906906
dim2=DataArray([0, 1, 2], dims='station',

0 commit comments

Comments
 (0)