decisionai_plugin/sample/dummy/dummy_plugin_service.py (37 lines of code) (raw):

import os import json from flask import jsonify, make_response import uuid import time import datetime from decisionai_plugin.common.plugin_service import PluginService from decisionai_plugin.common.util.constant import STATUS_SUCCESS, STATUS_FAIL from decisionai_plugin.common.util.timeutil import dt_to_str, str_to_dt, dt_to_str_file_name class DummyPluginService(PluginService): def __init__(self): super().__init__(False) def need_retrain(self, current_series_set, current_params, new_series_set, new_params, context): return False def do_train(self, model_dir, parameters, context): sub_dir = os.path.join(model_dir, 'test') os.makedirs(sub_dir, exist_ok=True) with open(os.path.join(sub_dir, 'test_model.txt'), 'w') as text_file: text_file.write('test') time.sleep(2) return STATUS_SUCCESS, '' def do_inference(self, model_dir, parameters, series, context): start = time.time() start_time = str_to_dt(parameters['startTime']) start_time = start_time + datetime.timedelta(days=-3) end_time = str_to_dt(parameters['endTime']) factor_def = parameters['seriesSets'] factors_data = self.tsanaclient.get_timeseries(parameters['apiEndpoint'], parameters['apiKey'], factor_def, start_time, end_time, 40000) print("Data item number: {}".format(len(factors_data))) total_time = time.time() - start sub_dir = os.path.join('temp', 'test_aidice_data') os.makedirs(sub_dir, exist_ok=True) with open(os.path.join(sub_dir, 'aidice_data_{}_rows_{}_duration_{}s.txt'.format(dt_to_str_file_name(datetime.datetime.utcnow()), len(factors_data), total_time)), 'a') as text_file: for series in factors_data: data_str = json.dumps(series.__dict__) + '\n' text_file.write(data_str) return STATUS_SUCCESS, ''