Initialize TiingoClient Class

This commit is contained in:
Cameron Yick
2017-08-24 22:00:03 -04:00
parent c4bf660581
commit 9988255227
4 changed files with 53 additions and 7 deletions

View File

@@ -5,3 +5,5 @@
__author__ = """Cameron Yick"""
__email__ = 'cameron.yick@enigma.com'
__version__ = '0.1.0'
from tiingo.api import TiingoClient

47
tiingo/api.py Normal file
View File

@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
import os
from tiingo.restclient import RestClient
class TiingoClient(RestClient):
"""Class for managing interactions with the Tiingo Platform
Supply API Key via Environment Variable TIINGO_API_KEY
or via the Config Object
"""
def __init__(self, *args, **kwargs):
super(TiingoClient, self).__init__(*args, **kwargs)
self._base_url = "https://api.tiingo.com"
try:
api_key = self._config['api_key']
except KeyError:
api_key = os.environ.get('TIINGO_API_KEY')
assert(api_key)
self._headers = {
'Authorization': "Token {}".format(api_key),
'Content-Type': 'application/json',
'User-Agent': 'tiingo-python-client'
}
def __repr__(self):
return '<TiingoClient(url="{}")>'.format(self._base_url)
# Define routes
def get_ticker_metadata(self, ticker):
"""Return metadata for 1 ticker.
"""
url = "tiingo/daily/{}".format(ticker)
response = self._request('GET', url)
return response.json()
def get_latest_price(self, ticker):
raise NotImplementedError
def get_historical_price(self, ticker, startDate, endDate):
raise NotImplementedError

View File

@@ -8,16 +8,16 @@ class RestClientError(Exception):
pass
class RestClient:
class RestClient(object):
def __init__(self, base_url, config):
def __init__(self, config={}):
"""Base class for interacting with RESTful APIs
Child class MUST have a ._base_url property!
Args:
base (string): base URL of REST API
config (dict): Arbitrary configuration options
"""
self._base_url = base_url
self._config = config
if config.get('session'):

View File

@@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
"""Main module."""