pep8 corrections and changed all object names

This commit is contained in:
Bharat Kalluri
2017-10-09 09:00:37 +05:30
parent e566177e4e
commit 25a05d4aa4
2 changed files with 26 additions and 15 deletions

View File

@@ -79,6 +79,10 @@ class TestTickerPrices(TestCase):
assert len(tickers) > 1
assert all(ticker['assetType'] == 'Stock' for ticker in tickers)
def test_ticker_metadata_for_object(self):
data = self._client.get_ticker_metadata("GOOGL", fmt='object')
assert len(data.name) > 1
# tiingo/news
class TestNews(TestCase):

View File

@@ -90,11 +90,13 @@ class TiingoClient(RestClient):
"""
url = "tiingo/daily/{}".format(ticker)
response = self._request('GET', url)
data = response.json()
if fmt == 'json':
return response.json()
return data
elif fmt == 'object':
# inspired by https://stackoverflow.com/a/15882054
return json.loads(json.dumps(response.json()), object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
return json.loads(json.dumps(data),
object_hook=lambda d: namedtuple('Ticker', d.keys())(*d.values()))
def get_ticker_price(self, ticker,
startDate=None, endDate=None,
@@ -134,7 +136,8 @@ class TiingoClient(RestClient):
# NEWS FEEDS
# tiingo/news
def get_news(self, tickers=[], tags=[], sources=[], startDate=None,
endDate=None, limit=100, offset=0, sortBy="publishedDate",fmt='json'):
endDate=None, limit=100, offset=0, sortBy="publishedDate",
fmt='json'):
"""Return list of news articles matching given search terms
https://api.tiingo.com/docs/tiingo/news
@@ -161,10 +164,12 @@ class TiingoClient(RestClient):
'endDate': endDate
}
response = self._request('GET', url, params=params)
data = response.json()
if fmt == 'json':
return response.json()
return data
elif fmt == 'object':
return json.loads(json.dumps(response.json()), object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
return json.loads(json.dumps(data),
object_hook=lambda d: namedtuple('NewsArticle', d.keys())(*d.values()))
def get_bulk_news(self, file_id=None, fmt='json'):
"""Only available to institutional clients.
@@ -178,7 +183,9 @@ class TiingoClient(RestClient):
url = "tiingo/news/bulk_download"
response = self._request('GET', url)
data = response.json()
if fmt == 'json':
return response.json()
return data
elif fmt == 'object':
return json.loads(json.dumps(response.json()), object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
return json.loads(json.dumps(data),
object_hook=lambda d: namedtuple('BulkDownload', d.keys())(*d.values()))