def is_mongo_alive(): try: dbclient.server_info() except: log.error("MongoDB not available at %s", config.get_config("database", "mongodb-connectionstring")) return False return True
from logging import error, warn import os import json import time import urllib.request import requests from requests.models import HTTPError from Helper import logmngr as log, configmngr as config from DataConnector.EODHistData import common _logo_file_path = config.get_config('database', 'filesys-logo-path') log = log.get_logger() def get_index_constituents(index, incl_delist=False, only_ticker=True): log.info("request constituents of %s", index) url = common.baseurl_fundamental + index + '?' + \ "api_token=" + common.apitoken + "&fmt=json" log.info(url) result = requests.get(url).json() if not incl_delist: result = result["Components"] else: result = result["HistoricalTickerComponents"] if only_ticker: tickers = [] for i in result: entry = result[i] tickers.append(entry["Code"] + "." + entry["Exchange"]) result = tickers
import logging from Helper import configmngr as config confloglevel = config.get_config("application", "log-level") cases = { "debug": logging.DEBUG, "info": logging.INFO, "warning": logging.WARNING, "error": logging.ERROR, } logging.basicConfig(format='%(asctime)s %(levelname)s %(filename)s:%(lineno)s %(funcName)s: %(message)s', datefmt='%y/%m/%d/ %H:%M:%S', filename='portfoliomngr.log', encoding='utf-8', level=cases[confloglevel]) def get_logger(): return logging.getLogger()
from Helper import logmngr, configmngr as config log = logmngr.get_logger() apitoken = config.get_config('eod historicaldata', 'api-token') baseurl_intraday = config.get_config('eod historicaldata', 'sub-url-intraday', True) baseurl_eod = config.get_config('eod historicaldata', 'sub-url-eod', True) baseurl_fundamental = config.get_config('eod historicaldata', 'sub-url-fundamental', True) baseurl_user = config.get_config('eod historicaldata', 'sub-url-user', True) baseurl_logo = config.get_config('eod historicaldata', 'logo-url') baseurl_exchange_list = config.get_config('eod historicaldata', 'sub-url-exchangelist', True) baseurl_exchange_tickers = config.get_config('eod historicaldata', 'sub-url-exchangesymbols', True) baseurl_exchange_details = config.get_config('eod historicaldata', 'sub-url-exchangedetail', True) def check_response_status(response): if response.status_code != 200: log.error("API Server: %s %s", str(response.status_code), response.text) raise RuntimeError('API Server error: ' + str(response.status_code) + ": " + str(response.text))
import json import pymongo from Helper import logmngr, configmngr as config, datetimehelper as dth from Helper import calchelper as calch, internalfilewriter as ifw from DBConnector import cons from DBConnector.aggregations import aggregations log = logmngr.get_logger() log.info("Connecting MongoDB Atlas and Collections...") dbclient = pymongo.MongoClient(config.get_config("database", "mongodb-connectionstring"), serverSelectionTimeoutMS=3000) db = dbclient.get_database(config.get_config("database", "mongodb-database")) eod_collection = db.get_collection( config.get_config("database", "mongodb-coll-eodhd_eod")) intraday_collection = db.get_collection( config.get_config("database", "mongodb-coll-eodhd_intraday")) stock_fundamentals_collection = db.get_collection( config.get_config("database", "mongodb-coll-eodhd-stock-fundamentals")) exchanges_collection = db.get_collection( config.get_config("database", "mongodb-coll-eodhd-exchanges")) log.info("Database Connection established") def _add_daydiffs(data): prev_close = -9999 for entry in data["data"]: day_diff = calch.calc_decimals(entry["close"], entry["open"],