def _check_for_default_values(fname, arg_val_dict, compat_args): """ Check that the keys in `arg_val_dict` are mapped to their default values as specified in `compat_args`. Note that this function is to be called only when it has been checked that arg_val_dict.keys() is a subset of compat_args """ from pandas.core.common import is_bool for key in arg_val_dict: # try checking equality directly with '=' operator, # as comparison may have been overriden for the left # hand object try: match = (arg_val_dict[key] == compat_args[key]) if not is_bool(match): raise ValueError("'match' is not a boolean") # could not compare them directly, so try comparison # using the 'is' operator except: match = (arg_val_dict[key] is compat_args[key]) if not match: raise ValueError(("the '{arg}' parameter is not " "supported in the pandas " "implementation of {fname}()". format(fname=fname, arg=key)))
def _sqlalchemy_type(self, arr_or_dtype): from sqlalchemy.types import (BigInteger, Float, Text, Boolean, DateTime, Date, Interval) if arr_or_dtype is date: return Date if com.is_datetime64_dtype(arr_or_dtype): try: tz = arr_or_dtype.tzinfo return DateTime(timezone=True) except: return DateTime if com.is_timedelta64_dtype(arr_or_dtype): warnings.warn("the 'timedelta' type is not supported, and will be " "written as integer values (ns frequency) to the " "database.", UserWarning) return BigInteger elif com.is_float_dtype(arr_or_dtype): return Float elif com.is_integer_dtype(arr_or_dtype): # TODO: Refine integer size. return BigInteger elif com.is_bool(arr_or_dtype): return Boolean return Text
def _check_for_default_values(fname, arg_val_dict, compat_args): """ Check that the keys in `arg_val_dict` are mapped to their default values as specified in `compat_args`. Note that this function is to be called only when it has been checked that arg_val_dict.keys() is a subset of compat_args """ from pandas.core.common import is_bool for key in arg_val_dict: # try checking equality directly with '=' operator, # as comparison may have been overriden for the left # hand object try: match = arg_val_dict[key] == compat_args[key] if not is_bool(match): raise ValueError("'match' is not a boolean") # could not compare them directly, so try comparison # using the 'is' operator except: match = arg_val_dict[key] is compat_args[key] if not match: raise ValueError( ( "the '{arg}' parameter is not " "supported in the pandas " "implementation of {fname}()".format(fname=fname, arg=key) ) )
def _sqlalchemy_type(self, arr_or_dtype): from sqlalchemy.types import Integer, Float, Text, Boolean, DateTime, Date, Interval if arr_or_dtype is date: return Date if com.is_datetime64_dtype(arr_or_dtype): try: tz = arr_or_dtype.tzinfo return DateTime(timezone=True) except: return DateTime if com.is_timedelta64_dtype(arr_or_dtype): warnings.warn( "the 'timedelta' type is not supported, and will be " "written as integer values (ns frequency) to the " "database.", UserWarning) return Integer elif com.is_float_dtype(arr_or_dtype): return Float elif com.is_integer_dtype(arr_or_dtype): # TODO: Refine integer size. return Integer elif com.is_bool(arr_or_dtype): return Boolean return Text
def _conv_value(val): # Convert numpy types to Python types for the Excel writers. if com.is_integer(val): val = int(val) elif com.is_float(val): val = float(val) elif com.is_bool(val): val = bool(val) elif isinstance(val, Period): val = "%s" % val return val
def validate_cum_func_with_skipna(skipna, args, kwargs, name): """ If this function is called via the 'numpy' library, the third parameter in its signature is 'dtype', which takes either a 'numpy' dtype or 'None', so check if the 'skipna' parameter is a boolean or not """ if not is_bool(skipna): args = (skipna,) + args skipna = True validate_cum_func(args, kwargs, fname=name) return skipna
def validate_cum_func_with_skipna(skipna, args, kwargs, name): """ If this function is called via the 'numpy' library, the third parameter in its signature is 'dtype', which takes either a 'numpy' dtype or 'None', so check if the 'skipna' parameter is a boolean or not """ if not is_bool(skipna): args = (skipna, ) + args skipna = True validate_cum_func(args, kwargs, fname=name) return skipna
def _sqlalchemy_type(self, arr_or_dtype): from sqlalchemy.types import Integer, Float, Text, Boolean, DateTime, Date, Interval if arr_or_dtype is date: return Date if com.is_datetime64_dtype(arr_or_dtype): try: tz = arr_or_dtype.tzinfo return DateTime(timezone=True) except: return DateTime if com.is_timedelta64_dtype(arr_or_dtype): return Interval elif com.is_float_dtype(arr_or_dtype): return Float elif com.is_integer_dtype(arr_or_dtype): # TODO: Refine integer size. return Integer elif com.is_bool(arr_or_dtype): return Boolean return Text
def _infer_object_dtype(arr): # TODO: accelerate with Cython/C BOOLEAN, STRING = 0, 1 state = BOOLEAN avalues = arr.values if isinstance(arr, pd.Series) else arr nulls = pd.isnull(avalues) if nulls.any(): for i in compat.range(len(avalues)): if state == BOOLEAN: if not nulls[i] and not pdcom.is_bool(avalues[i]): state = STRING elif state == STRING: break if state == BOOLEAN: return 'boolean' elif state == STRING: return 'string' else: return pd.lib.infer_dtype(avalues)
def test_is_bool(self): self.assertTrue(com.is_bool(True)) self.assertTrue(com.is_bool(np.bool(False))) self.assertTrue(com.is_bool(np.bool_(False))) self.assertFalse(com.is_bool(1)) self.assertFalse(com.is_bool(1.1)) self.assertFalse(com.is_bool(1 + 3j)) self.assertFalse(com.is_bool(np.int64(1))) self.assertFalse(com.is_bool(np.float64(1.1))) self.assertFalse(com.is_bool(np.complex128(1 + 3j))) self.assertFalse(com.is_bool(np.nan)) self.assertFalse(com.is_bool(None)) self.assertFalse(com.is_bool('x')) self.assertFalse(com.is_bool(datetime(2011, 1, 1))) self.assertFalse(com.is_bool(np.datetime64('2011-01-01'))) self.assertFalse(com.is_bool(pd.Timestamp('2011-01-01'))) self.assertFalse(com.is_bool(pd.Timestamp('2011-01-01', tz='US/Eastern'))) self.assertFalse(com.is_bool(timedelta(1000))) self.assertFalse(com.is_bool(np.timedelta64(1, 'D'))) self.assertFalse(com.is_bool(pd.Timedelta('1 days')))