예제 #1
0
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
예제 #2
0
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
예제 #3
0
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()
예제 #4
0
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))
예제 #5
0
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"],