Skip to content

Commit 6a11530

Browse files
committed
move validation function into pandas.types.validate and point all instances there
1 parent fd2ba67 commit 6a11530

File tree

11 files changed

+114
-61
lines changed

11 files changed

+114
-61
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
exprs = [e for e in expr.splitlines() if e != '']

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
@@ -1177,7 +1178,7 @@ def searchsorted(self, key, side='left', sorter=None):
11771178
False: 'first'})
11781179
@Appender(_shared_docs['drop_duplicates'] % _indexops_doc_kwargs)
11791180
def drop_duplicates(self, keep='first', inplace=False):
1180-
inplace = com._enforce_bool_type(inplace)
1181+
inplace = _validate_bool_type(inplace)
11811182
if isinstance(self, ABCIndexClass):
11821183
if self.is_unique:
11831184
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

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

pandas/core/common.py

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

207207

208-
def _enforce_bool_type(value):
209-
if not isinstance(value, bool):
210-
raise ValueError('Expected type bool, received type %s.' %\
211-
type(value).__name__)
212-
return value
213-
214-
215208
def _default_index(n):
216209
from pandas.core.index import RangeIndex
217210
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,
@@ -2200,7 +2200,7 @@ def query(self, expr, inplace=False, **kwargs):
22002200
>>> df.query('a > b')
22012201
>>> df[df.a > df.b] # same result as the previous expression
22022202
"""
2203-
inplace = _enforce_bool_type(inplace)
2203+
inplace = _validate_bool_type(inplace)
22042204
if not isinstance(expr, compat.string_types):
22052205
msg = "expr must be a string to be evaluated, {0} given"
22062206
raise ValueError(msg.format(type(expr)))
@@ -2263,7 +2263,7 @@ def eval(self, expr, inplace=True, **kwargs):
22632263
>>> df.eval('a + b')
22642264
>>> df.eval('c = a + b')
22652265
"""
2266-
inplace = _enforce_bool_type(inplace)
2266+
inplace = _validate_bool_type(inplace)
22672267
resolvers = kwargs.pop('resolvers', None)
22682268
kwargs['level'] = kwargs.pop('level', 0) + 1
22692269
if resolvers is None:
@@ -2856,7 +2856,7 @@ def set_index(self, keys, drop=True, append=False, inplace=False,
28562856
-------
28572857
dataframe : DataFrame
28582858
"""
2859-
inplace = _enforce_bool_type(inplace)
2859+
inplace = _validate_bool_type(inplace)
28602860
if not isinstance(keys, list):
28612861
keys = [keys]
28622862

@@ -2949,7 +2949,7 @@ def reset_index(self, level=None, drop=False, inplace=False, col_level=0,
29492949
-------
29502950
resetted : DataFrame
29512951
"""
2952-
inplace = _enforce_bool_type(inplace)
2952+
inplace = _validate_bool_type(inplace)
29532953
if inplace:
29542954
new_obj = self
29552955
else:
@@ -3054,7 +3054,7 @@ def dropna(self, axis=0, how='any', thresh=None, subset=None,
30543054
-------
30553055
dropped : DataFrame
30563056
"""
3057-
inplace = _enforce_bool_type(inplace)
3057+
inplace = _validate_bool_type(inplace)
30583058
if isinstance(axis, (tuple, list)):
30593059
result = self
30603060
for ax in axis:
@@ -3118,7 +3118,7 @@ def drop_duplicates(self, subset=None, keep='first', inplace=False):
31183118
-------
31193119
deduplicated : DataFrame
31203120
"""
3121-
inplace = _enforce_bool_type(inplace)
3121+
inplace = _validate_bool_type(inplace)
31223122
duplicated = self.duplicated(subset, keep=keep)
31233123

31243124
if inplace:
@@ -3180,7 +3180,7 @@ def f(vals):
31803180
@Appender(_shared_docs['sort_values'] % _shared_doc_kwargs)
31813181
def sort_values(self, by, axis=0, ascending=True, inplace=False,
31823182
kind='quicksort', na_position='last'):
3183-
inplace = _enforce_bool_type(inplace)
3183+
inplace = _validate_bool_type(inplace)
31843184
axis = self._get_axis_number(axis)
31853185
other_axis = 0 if axis == 1 else 1
31863186

@@ -3273,7 +3273,7 @@ def sort(self, columns=None, axis=0, ascending=True, inplace=False,
32733273
-------
32743274
sorted : DataFrame
32753275
"""
3276-
nv.validate_sort(tuple(), kwargs)
3276+
# nv.validate_sort(tuple(), kwargs)
32773277

32783278
if columns is None:
32793279
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
@@ -26,12 +26,12 @@
2626
from pandas.types.cast import _maybe_promote, _maybe_upcast_putmask
2727
from pandas.types.missing import isnull, notnull
2828
from pandas.types.generic import ABCSeries, ABCPanel
29+
from pandas.types.validate import _validate_bool_type
2930

3031
from pandas.core.common import (_values_from_object,
3132
_maybe_box_datetimelike,
3233
SettingWithCopyError, SettingWithCopyWarning,
33-
AbstractMethodError,
34-
_enforce_bool_type)
34+
AbstractMethodError)
3535

3636
from pandas.core.base import PandasObject
3737
from pandas.core.index import (Index, MultiIndex, _ensure_index,
@@ -733,7 +733,7 @@ def rename_axis(self, mapper, axis=0, copy=True, inplace=False):
733733
1 2 5
734734
2 3 6
735735
"""
736-
inplace = _enforce_bool_type(inplace)
736+
inplace = _validate_bool_type(inplace)
737737
non_mapper = is_scalar(mapper) or (is_list_like(mapper) and not
738738
is_dict_like(mapper))
739739
if non_mapper:
@@ -1895,7 +1895,7 @@ def drop(self, labels, axis=0, level=None, inplace=False, errors='raise'):
18951895
-------
18961896
dropped : type of caller
18971897
"""
1898-
inplace = _enforce_bool_type(inplace)
1898+
inplace = _validate_bool_type(inplace)
18991899
axis = self._get_axis_number(axis)
19001900
axis_name = self._get_axis_name(axis)
19011901
axis, axis_ = self._get_axis(axis), axis
@@ -2044,7 +2044,7 @@ def sort_values(self, by, axis=0, ascending=True, inplace=False,
20442044
@Appender(_shared_docs['sort_index'] % dict(axes="axes", klass="NDFrame"))
20452045
def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
20462046
kind='quicksort', na_position='last', sort_remaining=True):
2047-
inplace = _enforce_bool_type(inplace)
2047+
inplace = _validate_bool_type(inplace)
20482048
axis = self._get_axis_number(axis)
20492049
axis_name = self._get_axis_name(axis)
20502050
labels = self._get_axis(axis)
@@ -2818,7 +2818,7 @@ def consolidate(self, inplace=False):
28182818
-------
28192819
consolidated : type of caller
28202820
"""
2821-
inplace = _enforce_bool_type(inplace)
2821+
inplace = _validate_bool_type(inplace)
28222822
if inplace:
28232823
self._consolidate_inplace()
28242824
else:
@@ -3204,7 +3204,7 @@ def convert_objects(self, convert_dates=True, convert_numeric=False,
32043204
@Appender(_shared_docs['fillna'] % _shared_doc_kwargs)
32053205
def fillna(self, value=None, method=None, axis=None, inplace=False,
32063206
limit=None, downcast=None):
3207-
inplace = _enforce_bool_type(inplace)
3207+
inplace = _validate_bool_type(inplace)
32083208
if isinstance(value, (list, tuple)):
32093209
raise TypeError('"value" parameter must be a scalar or dict, but '
32103210
'you passed a "{0}"'.format(type(value).__name__))
@@ -3413,7 +3413,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
34133413
and play with this method to gain intuition about how it works.
34143414
34153415
"""
3416-
inplace = _enforce_bool_type(inplace)
3416+
inplace = _validate_bool_type(inplace)
34173417
if not is_bool(regex) and to_replace is not None:
34183418
raise AssertionError("'to_replace' must be 'None' if 'regex' is "
34193419
"not a bool")
@@ -3639,7 +3639,7 @@ def interpolate(self, method='linear', axis=0, limit=None, inplace=False,
36393639
"""
36403640
Interpolate values according to different methods.
36413641
"""
3642-
inplace = _enforce_bool_type(inplace)
3642+
inplace = _validate_bool_type(inplace)
36433643

36443644
if self.ndim > 2:
36453645
raise NotImplementedError("Interpolate has not been implemented "
@@ -4519,7 +4519,7 @@ def _where(self, cond, other=np.nan, inplace=False, axis=None, level=None,
45194519
Equivalent to public method `where`, except that `other` is not
45204520
applied as a function even if callable. Used in __setitem__.
45214521
"""
4522-
inplace = _enforce_bool_type(inplace)
4522+
inplace = _validate_bool_type(inplace)
45234523

45244524
cond = com._apply_if_callable(cond, self)
45254525

@@ -4787,7 +4787,7 @@ def where(self, cond, other=np.nan, inplace=False, axis=None, level=None,
47874787
def mask(self, cond, other=np.nan, inplace=False, axis=None, level=None,
47884788
try_cast=False, raise_on_error=True):
47894789

4790-
inplace = _enforce_bool_type(inplace)
4790+
inplace = _validate_bool_type(inplace)
47914791
cond = com._apply_if_callable(cond, self)
47924792

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

0 commit comments

Comments
 (0)