File size: 1,148 Bytes
fce23bc
 
 
 
 
 
 
 
 
 
 
 
81a17eb
 
c77bc2f
 
 
81a17eb
 
fce23bc
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pandas as pd
import yfinance as yf
from datetime import datetime
from config import Config


def historical_return(company: yf.Ticker, history_years: int) -> float:
    history = company.history(period=f"{history_years}y")
    return (history["Close"].iloc[-1] - history["Close"].iloc[0]) / history["Close"].iloc[0]


def get_financial_info(ticker: str, metrics: list) -> dict:
    try:
        company = yf.Ticker(ticker)
        current_price = company.info.get("currentPrice")
        if not current_price:
            return {metric: 'DELISTED' for metric in metrics}
    except:
        return {metric: 'DELISTED' for metric in metrics}
    financial_info = {}
    for metric in metrics:
        if company.info.get(metric, None):
            financial_info.update({metric: company.info.get(metric)})
            continue
        if Config.FINANCE_HISTORICAL_RETURN in metric:
            financial_info.update({metric: historical_return(company, metric[-1])})
    financial_info.update({Config.FINANCE_UPDATE_TIME: datetime.now().strftime("%d-%m-%Y")})
    return financial_info  # {price: 100, marketCap: 1000, update: 01-01-2021}