def test_month(self, recipe_config, columns): params = get_extrema_extraction_params(recipe_config) extrema_extractor = ExtremaExtractor(params) df = get_df_DST("M", columns) output_df = extrema_extractor.compute(df, columns.date, columns.data) assert output_df.shape == (1, 5) assert output_df.loc[0, columns.date] == pd.Timestamp( "2019-06-30 01:59:00+02:00")
def test_minutes(self, recipe_config, columns): recipe_config["window_unit"] = "minutes" params = get_extrema_extraction_params(recipe_config) extrema_extractor = ExtremaExtractor(params) df = get_df_DST("T", columns) output_df = extrema_extractor.compute(df, columns.date, columns.data) assert output_df.shape == (1, 5) assert output_df.loc[0, columns.date] == pd.Timestamp( "2019-01-31 02:04:00+0100")
def test_year(self, recipe_config, columns): recipe_config["window_unit"] = "years" params = get_extrema_extraction_params(recipe_config) extrema_extractor = ExtremaExtractor(params) df = get_df_DST("Y", columns) output_df = extrema_extractor.compute(df, columns.date, columns.data) assert output_df.shape == (1, 5) assert output_df.loc[0, columns.date] == pd.Timestamp( "2024-12-31 01:59:00+01:00")
def test_nanoseconds(self, recipe_config, columns): recipe_config["window_unit"] = "nanoseconds" params = get_extrema_extraction_params(recipe_config) extrema_extractor = ExtremaExtractor(params) df = get_df_DST("N", columns) output_df = extrema_extractor.compute(df, columns.date, columns.data) assert output_df.shape == (1, 5) assert output_df.loc[0, columns.date] == pd.Timestamp( "2019-01-31 01:59:00.000000005+01:00")
logger = logging.getLogger(__name__) logging.basicConfig( level=logging.INFO, format='timeseries-preparation plugin %(levelname)s - %(message)s') check_python_version() # --- Setup (input_dataset, output_dataset) = get_input_output() recipe_config = get_recipe_config() input_dataset_columns = [ column["name"] for column in input_dataset.read_schema() ] check_time_column_parameter(recipe_config, input_dataset_columns) datetime_column = recipe_config.get('datetime_column') extrema_column = recipe_config.get('extrema_column') groupby_columns = check_and_get_groupby_columns(recipe_config, input_dataset_columns) params = get_extrema_extraction_params(recipe_config) # --- Run df = input_dataset.get_dataframe() extrema_etractor = ExtremaExtractor(params) output_df = extrema_etractor.compute(df, datetime_column, extrema_column, groupby_columns=groupby_columns) # --- Write output output_dataset.write_with_schema(output_df)
def params(recipe_config): return get_extrema_extraction_params(recipe_config)