mirror of
https://github.com/hydrosquall/tiingo-python.git
synced 2026-02-01 00:54:21 +01:00
Initialize TiingoClient Class
This commit is contained in:
@@ -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
47
tiingo/api.py
Normal 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
|
||||
@@ -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'):
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""Main module."""
|
||||
Reference in New Issue
Block a user