def validate(self, table): before_column = table.columns[self._before_column_name] after_column = table.columns[self._after_column_name] if not isinstance(before_column.data_type, Number): raise DataTypeError('PercentChange before column must contain Number data.') if not isinstance(after_column.data_type, Number): raise DataTypeError('PercentChange after column must contain Number data.') if HasNulls(self._before_column_name).run(table): warn_null_calculation(self, before_column) if HasNulls(self._after_column_name).run(table): warn_null_calculation(self, after_column)
def validate(self, table): before_column = table.columns[self._before_column_name] after_column = table.columns[self._after_column_name] for data_type in (Number, Date, DateTime, TimeDelta): if isinstance(before_column.data_type, data_type): if not isinstance(after_column.data_type, data_type): raise DataTypeError('Specified columns must be of the same type') if HasNulls(self._before_column_name).run(table): warn_null_calculation(self, before_column) if HasNulls(self._after_column_name).run(table): warn_null_calculation(self, after_column) return raise DataTypeError('Change before and after columns must both contain data that is one of: Number, Date, DateTime or TimeDelta.')
def validate(self, table): column = table.columns[self._column_name] if not isinstance(column.data_type, Number): raise DataTypeError('Deciles can only be applied to columns containing Number data.') has_nulls = HasNulls(self._column_name).run(table) if has_nulls: warn_null_calculation(self, column)
def validate(self, table): column = table.columns[self._column_name] if not isinstance(column.data_type, Number): raise DataTypeError('Percent column must contain Number data.') if self._total is not None and self._total <= 0: raise DataTypeError('The total must be a positive number') # Throw a warning if there are nulls in there if HasNulls(self._column_name).run(table): warn_null_calculation(self, column)
def validate(self, table): if issequence(self._column_name): column_names = self._column_name else: column_names = [self._column_name] for column_name in column_names: column = table.columns[column_name] if not isinstance(column.data_type, Text): raise DataTypeError('Slug column must contain Text data.') if HasNulls(column_name).run(table): raise ValueError('Slug column cannot contain `None`.')