Skip to content

Commit b0db1c1

Browse files
committed
move validation function into pandas.types.validate and point all instances there
1 parent 141e128 commit b0db1c1

File tree

11 files changed

+118
-60
lines changed

11 files changed

+118
-60
lines changed

pandas/computation/eval.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pandas.compat import string_types
1313
from pandas.computation.engines import _engines
1414
from pandas.core import common as com
15+
from pandas.types.validate import _validate_bool_type
1516

1617

1718
def _check_engine(engine):
@@ -228,7 +229,7 @@ def eval(expr, parser='pandas', engine=None, truediv=True,
228229
pandas.DataFrame.query
229230
pandas.DataFrame.eval
230231
"""
231-
inplace = com._enforce_bool_type(inplace)
232+
inplace = _validate_bool_type(inplace)
232233
first_expr = True
233234
if isinstance(expr, string_types):
234235
_check_expression(expr)

pandas/core/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from pandas.types.missing import isnull
99
from pandas.types.generic import ABCDataFrame, ABCSeries, ABCIndexClass
1010
from pandas.types.common import is_object_dtype, is_list_like, is_scalar
11+
from pandas.types.validate import _validate_bool_type
1112

1213
from pandas.core import common as com
1314
import pandas.core.nanops as nanops
@@ -1178,7 +1179,7 @@ def searchsorted(self, value, side='left', sorter=None):
11781179
False: 'first'})
11791180
@Appender(_shared_docs['drop_duplicates'] % _indexops_doc_kwargs)
11801181
def drop_duplicates(self, keep='first', inplace=False):
1181-
inplace = com._enforce_bool_type(inplace)
1182+
inplace = _validate_bool_type(inplace)
11821183
if isinstance(self, ABCIndexClass):
11831184
if self.is_unique:
11841185
return self._shallow_copy()

pandas/core/categorical.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
is_integer_dtype, is_bool,
2424
is_list_like, is_sequence,
2525
is_scalar)
26-
from pandas.core.common import is_null_slice, _enforce_bool_type
26+
from pandas.types.validate import _validate_bool_type
27+
from pandas.core.common import is_null_slice
2728

2829
from pandas.core.algorithms import factorize, take_1d
2930
from pandas.core.base import (PandasObject, PandasDelegate,
@@ -615,7 +616,7 @@ def set_ordered(self, value, inplace=False):
615616
Whether or not to set the ordered attribute inplace or return a copy
616617
of this categorical with ordered set to the value
617618
"""
618-
inplace = _enforce_bool_type(inplace)
619+
inplace = _validate_bool_type(inplace)
619620
self._validate_ordered(value)
620621
cat = self if inplace else self.copy()
621622
cat._ordered = value
@@ -632,7 +633,7 @@ def as_ordered(self, inplace=False):
632633
Whether or not to set the ordered attribute inplace or return a copy
633634
of this categorical with ordered set to True
634635
"""
635-
return self.set_ordered(True, inplace=_enforce_bool_type(inplace))
636+
return self.set_ordered(True, inplace=_validate_bool_type(inplace))
636637

637638
def as_unordered(self, inplace=False):
638639
"""
@@ -644,7 +645,7 @@ def as_unordered(self, inplace=False):
644645
Whether or not to set the ordered attribute inplace or return a copy
645646
of this categorical with ordered set to False
646647
"""
647-
return self.set_ordered(False, inplace=_enforce_bool_type(inplace))
648+
return self.set_ordered(False, inplace=_validate_bool_type(inplace))
648649

649650
def _get_ordered(self):
650651
""" Gets the ordered attribute """
@@ -703,7 +704,7 @@ def set_categories(self, new_categories, ordered=None, rename=False,
703704
remove_categories
704705
remove_unused_categories
705706
"""
706-
inplace = _enforce_bool_type(inplace)
707+
inplace = _validate_bool_type(inplace)
707708
new_categories = self._validate_categories(new_categories)
708709
cat = self if inplace else self.copy()
709710
if rename:
@@ -756,7 +757,7 @@ def rename_categories(self, new_categories, inplace=False):
756757
remove_unused_categories
757758
set_categories
758759
"""
759-
inplace = _enforce_bool_type(inplace)
760+
inplace = _validate_bool_type(inplace)
760761
cat = self if inplace else self.copy()
761762
cat.categories = new_categories
762763
if not inplace:
@@ -797,7 +798,7 @@ def reorder_categories(self, new_categories, ordered=None, inplace=False):
797798
remove_unused_categories
798799
set_categories
799800
"""
800-
inplace = _enforce_bool_type(inplace)
801+
inplace = _validate_bool_type(inplace)
801802
if set(self._categories) != set(new_categories):
802803
raise ValueError("items in new_categories are not the same as in "
803804
"old categories")
@@ -836,7 +837,7 @@ def add_categories(self, new_categories, inplace=False):
836837
remove_unused_categories
837838
set_categories
838839
"""
839-
inplace = _enforce_bool_type(inplace)
840+
inplace = _validate_bool_type(inplace)
840841
if not is_list_like(new_categories):
841842
new_categories = [new_categories]
842843
already_included = set(new_categories) & set(self._categories)
@@ -882,7 +883,7 @@ def remove_categories(self, removals, inplace=False):
882883
remove_unused_categories
883884
set_categories
884885
"""
885-
inplace = _enforce_bool_type(inplace)
886+
inplace = _validate_bool_type(inplace)
886887
if not is_list_like(removals):
887888
removals = [removals]
888889

@@ -923,7 +924,7 @@ def remove_unused_categories(self, inplace=False):
923924
remove_categories
924925
set_categories
925926
"""
926-
inplace = _enforce_bool_type(inplace)
927+
inplace = _validate_bool_type(inplace)
927928
cat = self if inplace else self.copy()
928929
idx, inv = np.unique(cat._codes, return_inverse=True)
929930

@@ -1324,7 +1325,7 @@ def sort_values(self, inplace=False, ascending=True, na_position='last'):
13241325
[NaN, NaN, 5.0, 2.0, 2.0]
13251326
Categories (2, int64): [2, 5]
13261327
"""
1327-
inplace = _enforce_bool_type(inplace)
1328+
inplace = _validate_bool_type(inplace)
13281329
if na_position not in ['last', 'first']:
13291330
raise ValueError('invalid na_position: {!r}'.format(na_position))
13301331

pandas/core/common.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,6 @@ def is_bool_indexer(key):
214214
return False
215215

216216

217-
def _enforce_bool_type(value):
218-
if not is_bool(value):
219-
raise ValueError('Expected type bool, received type %s.' %\
220-
type(value).__name__)
221-
return value
222-
223-
224217
def _default_index(n):
225218
from pandas.core.index import RangeIndex
226219
return RangeIndex(0, n, name=None)

pandas/core/frame.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@
5656
is_sequence,
5757
is_named_tuple)
5858
from pandas.types.missing import isnull, notnull
59+
from pandas.types.validate import _validate_bool_type
5960

6061
from pandas.core.common import (PandasError, _try_sort,
6162
_default_index,
6263
_values_from_object,
6364
_maybe_box_datetimelike,
64-
_dict_compat,
65-
_enforce_bool_type)
65+
_dict_compat)
6666
from pandas.core.generic import NDFrame, _shared_docs
6767
from pandas.core.index import Index, MultiIndex, _ensure_index
6868
from pandas.core.indexing import (maybe_droplevels, convert_to_index_sliceable,
@@ -2203,7 +2203,7 @@ def query(self, expr, inplace=False, **kwargs):
22032203
>>> df.query('a > b')
22042204
>>> df[df.a > df.b] # same result as the previous expression
22052205
"""
2206-
inplace = _enforce_bool_type(inplace)
2206+
inplace = _validate_bool_type(inplace)
22072207
if not isinstance(expr, compat.string_types):
22082208
msg = "expr must be a string to be evaluated, {0} given"
22092209
raise ValueError(msg.format(type(expr)))
@@ -2266,7 +2266,7 @@ def eval(self, expr, inplace=True, **kwargs):
22662266
>>> df.eval('a + b')
22672267
>>> df.eval('c = a + b')
22682268
"""
2269-
inplace = _enforce_bool_type(inplace)
2269+
inplace = _validate_bool_type(inplace)
22702270
resolvers = kwargs.pop('resolvers', None)
22712271
kwargs['level'] = kwargs.pop('level', 0) + 1
22722272
if resolvers is None:
@@ -2875,7 +2875,7 @@ def set_index(self, keys, drop=True, append=False, inplace=False,
28752875
-------
28762876
dataframe : DataFrame
28772877
"""
2878-
inplace = _enforce_bool_type(inplace)
2878+
inplace = _validate_bool_type(inplace)
28792879
if not isinstance(keys, list):
28802880
keys = [keys]
28812881

@@ -2968,7 +2968,7 @@ def reset_index(self, level=None, drop=False, inplace=False, col_level=0,
29682968
-------
29692969
resetted : DataFrame
29702970
"""
2971-
inplace = _enforce_bool_type(inplace)
2971+
inplace = _validate_bool_type(inplace)
29722972
if inplace:
29732973
new_obj = self
29742974
else:
@@ -3073,7 +3073,7 @@ def dropna(self, axis=0, how='any', thresh=None, subset=None,
30733073
-------
30743074
dropped : DataFrame
30753075
"""
3076-
inplace = _enforce_bool_type(inplace)
3076+
inplace = _validate_bool_type(inplace)
30773077
if isinstance(axis, (tuple, list)):
30783078
result = self
30793079
for ax in axis:
@@ -3137,7 +3137,7 @@ def drop_duplicates(self, subset=None, keep='first', inplace=False):
31373137
-------
31383138
deduplicated : DataFrame
31393139
"""
3140-
inplace = _enforce_bool_type(inplace)
3140+
inplace = _validate_bool_type(inplace)
31413141
duplicated = self.duplicated(subset, keep=keep)
31423142

31433143
if inplace:
@@ -3199,7 +3199,7 @@ def f(vals):
31993199
@Appender(_shared_docs['sort_values'] % _shared_doc_kwargs)
32003200
def sort_values(self, by, axis=0, ascending=True, inplace=False,
32013201
kind='quicksort', na_position='last'):
3202-
inplace = _enforce_bool_type(inplace)
3202+
inplace = _validate_bool_type(inplace)
32033203
axis = self._get_axis_number(axis)
32043204
other_axis = 0 if axis == 1 else 1
32053205

@@ -3292,7 +3292,7 @@ def sort(self, columns=None, axis=0, ascending=True, inplace=False,
32923292
-------
32933293
sorted : DataFrame
32943294
"""
3295-
nv.validate_sort(tuple(), kwargs)
3295+
# nv.validate_sort(tuple(), kwargs)
32963296

32973297
if columns is None:
32983298
warnings.warn("sort(....) is deprecated, use sort_index(.....)",

pandas/core/generic.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@
2727
from pandas.types.cast import _maybe_promote, _maybe_upcast_putmask
2828
from pandas.types.missing import isnull, notnull
2929
from pandas.types.generic import ABCSeries, ABCPanel
30+
from pandas.types.validate import _validate_bool_type
3031

3132
from pandas.core.common import (_values_from_object,
3233
_maybe_box_datetimelike,
3334
SettingWithCopyError, SettingWithCopyWarning,
34-
AbstractMethodError,
35-
_enforce_bool_type)
35+
AbstractMethodError)
3636

3737
from pandas.core.base import PandasObject
3838
from pandas.core.index import (Index, MultiIndex, _ensure_index,
@@ -734,7 +734,7 @@ def rename_axis(self, mapper, axis=0, copy=True, inplace=False):
734734
1 2 5
735735
2 3 6
736736
"""
737-
inplace = _enforce_bool_type(inplace)
737+
inplace = _validate_bool_type(inplace)
738738
non_mapper = is_scalar(mapper) or (is_list_like(mapper) and not
739739
is_dict_like(mapper))
740740
if non_mapper:
@@ -1896,7 +1896,7 @@ def drop(self, labels, axis=0, level=None, inplace=False, errors='raise'):
18961896
-------
18971897
dropped : type of caller
18981898
"""
1899-
inplace = _enforce_bool_type(inplace)
1899+
inplace = _validate_bool_type(inplace)
19001900
axis = self._get_axis_number(axis)
19011901
axis_name = self._get_axis_name(axis)
19021902
axis, axis_ = self._get_axis(axis), axis
@@ -2045,7 +2045,7 @@ def sort_values(self, by, axis=0, ascending=True, inplace=False,
20452045
@Appender(_shared_docs['sort_index'] % dict(axes="axes", klass="NDFrame"))
20462046
def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
20472047
kind='quicksort', na_position='last', sort_remaining=True):
2048-
inplace = _enforce_bool_type(inplace)
2048+
inplace = _validate_bool_type(inplace)
20492049
axis = self._get_axis_number(axis)
20502050
axis_name = self._get_axis_name(axis)
20512051
labels = self._get_axis(axis)
@@ -2819,7 +2819,7 @@ def consolidate(self, inplace=False):
28192819
-------
28202820
consolidated : type of caller
28212821
"""
2822-
inplace = _enforce_bool_type(inplace)
2822+
inplace = _validate_bool_type(inplace)
28232823
if inplace:
28242824
self._consolidate_inplace()
28252825
else:
@@ -3205,7 +3205,7 @@ def convert_objects(self, convert_dates=True, convert_numeric=False,
32053205
@Appender(_shared_docs['fillna'] % _shared_doc_kwargs)
32063206
def fillna(self, value=None, method=None, axis=None, inplace=False,
32073207
limit=None, downcast=None):
3208-
inplace = _enforce_bool_type(inplace)
3208+
inplace = _validate_bool_type(inplace)
32093209
if isinstance(value, (list, tuple)):
32103210
raise TypeError('"value" parameter must be a scalar or dict, but '
32113211
'you passed a "{0}"'.format(type(value).__name__))
@@ -3414,7 +3414,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
34143414
and play with this method to gain intuition about how it works.
34153415
34163416
"""
3417-
inplace = _enforce_bool_type(inplace)
3417+
inplace = _validate_bool_type(inplace)
34183418
if not is_bool(regex) and to_replace is not None:
34193419
raise AssertionError("'to_replace' must be 'None' if 'regex' is "
34203420
"not a bool")
@@ -3647,7 +3647,7 @@ def interpolate(self, method='linear', axis=0, limit=None, inplace=False,
36473647
"""
36483648
Interpolate values according to different methods.
36493649
"""
3650-
inplace = _enforce_bool_type(inplace)
3650+
inplace = _validate_bool_type(inplace)
36513651

36523652
if self.ndim > 2:
36533653
raise NotImplementedError("Interpolate has not been implemented "
@@ -4558,7 +4558,7 @@ def _where(self, cond, other=np.nan, inplace=False, axis=None, level=None,
45584558
Equivalent to public method `where`, except that `other` is not
45594559
applied as a function even if callable. Used in __setitem__.
45604560
"""
4561-
inplace = _enforce_bool_type(inplace)
4561+
inplace = _validate_bool_type(inplace)
45624562

45634563
cond = com._apply_if_callable(cond, self)
45644564

@@ -4826,7 +4826,7 @@ def where(self, cond, other=np.nan, inplace=False, axis=None, level=None,
48264826
def mask(self, cond, other=np.nan, inplace=False, axis=None, level=None,
48274827
try_cast=False, raise_on_error=True):
48284828

4829-
inplace = _enforce_bool_type(inplace)
4829+
inplace = _validate_bool_type(inplace)
48304830
cond = com._apply_if_callable(cond, self)
48314831

48324832
return self.where(~cond, other=other, inplace=inplace, axis=axis,

0 commit comments

Comments
 (0)