Skip to content

Commit 7a9933a

Browse files
committed
Disable median for now.
1 parent cc94a94 commit 7a9933a

File tree

2 files changed

+33
-95
lines changed

2 files changed

+33
-95
lines changed

xarray/core/_aggregations.py

Lines changed: 30 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -3606,30 +3606,14 @@ def median(
36063606
Data variables:
36073607
da (labels) float64 24B nan 2.0 1.5
36083608
"""
3609-
if (
3610-
flox_available
3611-
and OPTIONS["use_flox"]
3612-
and module_available("flox", minversion="0.9.2")
3613-
and contains_only_chunked_or_numpy(self._obj)
3614-
):
3615-
return self._flox_reduce(
3616-
func="median",
3617-
dim=dim,
3618-
skipna=skipna,
3619-
numeric_only=True,
3620-
# fill_value=fill_value,
3621-
keep_attrs=keep_attrs,
3622-
**kwargs,
3623-
)
3624-
else:
3625-
return self._reduce_without_squeeze_warn(
3626-
duck_array_ops.median,
3627-
dim=dim,
3628-
skipna=skipna,
3629-
numeric_only=True,
3630-
keep_attrs=keep_attrs,
3631-
**kwargs,
3632-
)
3609+
return self._reduce_without_squeeze_warn(
3610+
duck_array_ops.median,
3611+
dim=dim,
3612+
skipna=skipna,
3613+
numeric_only=True,
3614+
keep_attrs=keep_attrs,
3615+
**kwargs,
3616+
)
36333617

36343618
def cumsum(
36353619
self,
@@ -5123,30 +5107,14 @@ def median(
51235107
Data variables:
51245108
da (time) float64 24B 1.0 2.0 nan
51255109
"""
5126-
if (
5127-
flox_available
5128-
and OPTIONS["use_flox"]
5129-
and module_available("flox", minversion="0.9.2")
5130-
and contains_only_chunked_or_numpy(self._obj)
5131-
):
5132-
return self._flox_reduce(
5133-
func="median",
5134-
dim=dim,
5135-
skipna=skipna,
5136-
numeric_only=True,
5137-
# fill_value=fill_value,
5138-
keep_attrs=keep_attrs,
5139-
**kwargs,
5140-
)
5141-
else:
5142-
return self._reduce_without_squeeze_warn(
5143-
duck_array_ops.median,
5144-
dim=dim,
5145-
skipna=skipna,
5146-
numeric_only=True,
5147-
keep_attrs=keep_attrs,
5148-
**kwargs,
5149-
)
5110+
return self._reduce_without_squeeze_warn(
5111+
duck_array_ops.median,
5112+
dim=dim,
5113+
skipna=skipna,
5114+
numeric_only=True,
5115+
keep_attrs=keep_attrs,
5116+
**kwargs,
5117+
)
51505118

51515119
def cumsum(
51525120
self,
@@ -6541,28 +6509,13 @@ def median(
65416509
Coordinates:
65426510
* labels (labels) object 24B 'a' 'b' 'c'
65436511
"""
6544-
if (
6545-
flox_available
6546-
and OPTIONS["use_flox"]
6547-
and module_available("flox", minversion="0.9.2")
6548-
and contains_only_chunked_or_numpy(self._obj)
6549-
):
6550-
return self._flox_reduce(
6551-
func="median",
6552-
dim=dim,
6553-
skipna=skipna,
6554-
# fill_value=fill_value,
6555-
keep_attrs=keep_attrs,
6556-
**kwargs,
6557-
)
6558-
else:
6559-
return self._reduce_without_squeeze_warn(
6560-
duck_array_ops.median,
6561-
dim=dim,
6562-
skipna=skipna,
6563-
keep_attrs=keep_attrs,
6564-
**kwargs,
6565-
)
6512+
return self._reduce_without_squeeze_warn(
6513+
duck_array_ops.median,
6514+
dim=dim,
6515+
skipna=skipna,
6516+
keep_attrs=keep_attrs,
6517+
**kwargs,
6518+
)
65666519

65676520
def cumsum(
65686521
self,
@@ -7949,28 +7902,13 @@ def median(
79497902
Coordinates:
79507903
* time (time) datetime64[ns] 24B 2001-01-31 2001-04-30 2001-07-31
79517904
"""
7952-
if (
7953-
flox_available
7954-
and OPTIONS["use_flox"]
7955-
and module_available("flox", minversion="0.9.2")
7956-
and contains_only_chunked_or_numpy(self._obj)
7957-
):
7958-
return self._flox_reduce(
7959-
func="median",
7960-
dim=dim,
7961-
skipna=skipna,
7962-
# fill_value=fill_value,
7963-
keep_attrs=keep_attrs,
7964-
**kwargs,
7965-
)
7966-
else:
7967-
return self._reduce_without_squeeze_warn(
7968-
duck_array_ops.median,
7969-
dim=dim,
7970-
skipna=skipna,
7971-
keep_attrs=keep_attrs,
7972-
**kwargs,
7973-
)
7905+
return self._reduce_without_squeeze_warn(
7906+
duck_array_ops.median,
7907+
dim=dim,
7908+
skipna=skipna,
7909+
keep_attrs=keep_attrs,
7910+
**kwargs,
7911+
)
79747912

79757913
def cumsum(
79767914
self,

xarray/util/generate_aggregations.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -442,9 +442,9 @@ def generate_code(self, method, has_keep_attrs):
442442
if self.datastructure.numeric_only:
443443
extra_kwargs.append(f"numeric_only={method.numeric_only},")
444444

445-
# numpy_groupies & flox do not support median
446-
# https://github.com/ml31415/numpy-groupies/issues/43
447-
method_is_not_flox_supported = method.name in ("cumsum", "cumprod")
445+
# median isn't enabled yet, because it would break if a single group was present in multiple
446+
# chunks. The non-flox code path will just rechunk every group to a single chunk and execute the median
447+
method_is_not_flox_supported = method.name in ("median", "cumsum", "cumprod")
448448
if method_is_not_flox_supported:
449449
indent = 12
450450
else:

0 commit comments

Comments
 (0)