MCPcopy Create free account
hub / github.com/dask/dask / valid_divisions

Function valid_divisions

dask/dataframe/utils.py:668–709  ·  view source on GitHub ↗

Are the provided divisions valid? Examples -------- >>> valid_divisions([1, 2, 3]) True >>> valid_divisions([3, 2, 1]) False >>> valid_divisions([1, 1, 1]) False >>> valid_divisions([0, 1, 1]) True >>> valid_divisions((1, 2, 3)) True >>> valid_div

(divisions)

Source from the content-addressed store, hash-verified

666
667
668def valid_divisions(divisions):
669 """Are the provided divisions valid?
670
671 Examples
672 --------
673 >>> valid_divisions([1, 2, 3])
674 True
675 >>> valid_divisions([3, 2, 1])
676 False
677 >>> valid_divisions([1, 1, 1])
678 False
679 >>> valid_divisions([0, 1, 1])
680 True
681 >>> valid_divisions((1, 2, 3))
682 True
683 >>> valid_divisions(123)
684 False
685 >>> valid_divisions([0, float('nan'), 1])
686 False
687 """
688 if not isinstance(divisions, (tuple, list)):
689 return False
690
691 # Cast tuples to lists as `pd.isnull` treats them differently
692 # https://github.com/pandas-dev/pandas/issues/52283
693 if isinstance(divisions, tuple):
694 divisions = list(divisions)
695
696 if pd.isnull(divisions).any():
697 return False
698
699 for i, x in enumerate(divisions[:-2]):
700 if x >= divisions[i + 1]:
701 return False
702 if isinstance(x, Number) and math.isnan(x):
703 return False
704
705 for x in divisions[-2:]:
706 if isinstance(x, Number) and math.isnan(x):
707 return False
708
709 return divisions[-2] <= divisions[-1]
710
711
712def drop_by_shallow_copy(df, columns, errors="raise"):

Callers 3

_divisionsMethod · 0.90
test_valid_divisionsFunction · 0.90

Calls 2

anyMethod · 0.45
isnullMethod · 0.45

Tested by 1

test_valid_divisionsFunction · 0.72