def run(self, get_datasources, add_datasource): config = get_config() config = config[config['environment']] _importers = {} for c in config: _importers[config[c]['API_NAME']] = config[c]['API_CLASS'] if get_datasources and config[c]['API_CLASS'] is not None: print(config[c]['API_NAME']) if get_datasources: return _p, _c = _importers[add_datasource].rsplit('.', 1) _class = getattr(importlib.import_module(_p), _c) _object = _class() _object._create_datasource()
apart from converting the data from json to tabular format but using BaseImporter methods The api doesn't have any credentials and doesn't have any key or token expiry ''' import os, sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from importers.base import BaseImporter, Location, get_config from models.sensor import Sensor from models import location from datetime import datetime, timedelta import json import pandas as pd config = get_config() config = config[config['environment']]['milan'] API_NAME = config['API_NAME'] BASE_URL = config['BASE_URL'] REFRESH_TIME = config['REFRESH_TIME'] API_KEY = config['API_KEY'] TOKEN_EXPIRY = config['TOKEN_EXPIRY'] REFRESH_URL = config['REFRESH_URL'] API_CLASS = config['API_CLASS'] class MilanAPI(BaseImporter): def __init__(self): super().__init__(API_NAME, BASE_URL, REFRESH_TIME, API_KEY, API_CLASS, TOKEN_EXPIRY)