[errors] Validate arguments to get_dataframe

This commit is contained in:
Cameron Yick
2019-04-29 23:17:02 -04:00
parent e39b97585b
commit 5b6e6ce202
2 changed files with 29 additions and 20 deletions

View File

@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
import os
import sys
import pkg_resources
from collections import namedtuple
import csv
import json
from collections import namedtuple
from zipfile import ZipFile
from tiingo.restclient import RestClient
import requests
import os
import re
import sys
import pkg_resources
from zipfile import ZipFile
from tiingo.restclient import RestClient
from tiingo.exceptions import InstallPandasException, APIColumnNameError, InvalidFrequencyError, MissingRequiredArgumentError
try:
import pandas as pd
@@ -49,17 +50,6 @@ def dict_to_object(item, object_name):
object_hook=lambda d:
namedtuple(object_name, fields)(*values))
class InstallPandasException(Exception):
pass
class APIColumnNameError(Exception):
pass
class InvalidFrequencyError(Exception):
pass
class TiingoClient(RestClient):
"""Class for managing interactions with the Tiingo REST API
@@ -227,12 +217,16 @@ class TiingoClient(RestClient):
frequency (string): Resample frequency (defaults to daily).
"""
valid_columns = ['open', 'high', 'low', 'close', 'volume', 'adjOpen', 'adjHigh', 'adjLow',
'adjClose', 'adjVolume', 'divCash', 'splitFactor']
valid_columns = {'open', 'high', 'low', 'close', 'volume', 'adjOpen', 'adjHigh', 'adjLow',
'adjClose', 'adjVolume', 'divCash', 'splitFactor'}
if metric_name is not None and metric_name not in valid_columns:
raise APIColumnNameError('Valid data items are: ' + str(valid_columns))
if metric_name is None and type(tickers) is not str:
raise MissingRequiredArgumentError("""When tickers is provided as a list, metric_name is a required argument.
Please provide a metric_name, or call this method with one ticker at a time.""")
params = {
'format': 'json',
'resampleFreq': frequency

15
tiingo/exceptions.py Normal file
View File

@@ -0,0 +1,15 @@
# Exception Clasess
class InstallPandasException(Exception):
pass
class APIColumnNameError(Exception):
pass
class InvalidFrequencyError(Exception):
pass
class MissingRequiredArgumentError(Exception):
pass