Source code for omaha.omaha
from .client import Client
from .company import Company
from .company import Stockprice
import quandl
[docs]class Omaha(object):
"""Omaha provides a unified view of the financial information of the public companies.
Attributes:
bc_apikey (str): Apikey of BuffettCode API
quandl_apikey (str): Apikey of Quandl
"""
def __init__(self, bc_apikey, quandl_apikey):
self.client = Client(bc_apikey)
quandl.ApiConfig.api_key = quandl_apikey
[docs] def company(self, ticker, from_q, to_q):
"""Basic financial indicators of the company
Args:
ticker (str): Ticker symbol
from_q (str): Beginning of the target quarter
to_q (str): End of the target quarter
Returns:
Company: Target company
Example:
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy')
>>> factory.company('1111', '2019Q1', '2019Q4')
"""
return Company(ticker, from_q, to_q, self.client)
[docs] def stockprice(self, ticker, start_date, end_date):
"""Stockprice of the given company
Args:
ticker (str): Ticker symbol
start_date (str): Start date of the target range
end_date (str): End date of the target range
Returns:
Stockprice: Object containing stock prices
Example:
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy')
>>> factory.stockprice('1111', '2019-01-01', '2019-12-31')
"""
return Stockprice(ticker, start_date, end_date)
[docs] def search(self, keywords, from_q, to_q):
"""List of matched companies with given search keyword
Args:
keywords (str): Keyword used for searching companies
from_q (str): Beginning quarter of the target range
to_q (str): End quarter of the target range
Returns:
list: List of companies matching with the given keyword.
Example:
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy')
>>> factory.search('不動産', '2019-01-01', '2019-12-31')
"""
tickers = self.client.search(keywords)
return [self.company(ticker, from_q, to_q) for ticker in tickers]
[docs] def category(self, cat, from_q, to_q):
"""List of companies filtering by the given TSE 33 sectors.
See: https://www.jpx.co.jp/english/markets/indices/line-up/files/e_fac_13_sector.pdf
Args:
keywords (str): Keyword used for searching companies
from_q (str): Beginning quarter of the target range
to_q (str): End quarter of the target range
Returns:
list: List of companies matching with the given TSE 33 sectors.
Example:
>>> factory = Omaha(bc_apikey='xxxx'), quandl_apikey='yyyy')
>>> factory.category('サービス業', '2019-01-01', '2019-12-31')
"""
companies = self.client.companies()
tickers = []
for ticker, company in companies.items():
if ticker == 'column_description':
continue
if company[0]['tosyo_33category'] == cat:
tickers.append(ticker)
return [self.company(ticker, from_q, to_q) for ticker in tickers]