Skip to content

Commit

Permalink
fixing issue with get_stock_price. Also, added support for detecting …
Browse files Browse the repository at this point in the history
…when reaching limit
  • Loading branch information
xrgarcia committed May 22, 2022
1 parent 2c75980 commit 2c67e4d
Show file tree
Hide file tree
Showing 4 changed files with 3,354 additions and 50 deletions.
78 changes: 39 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ from alphavantage_api_client import AlphavantageClient
event = {
"symbol":"TSLA"
}
result = {}
client = AlphavantageClient().with_api_key('[you key here]')
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))
}
result = {}
client = AlphavantageClient().with_api_key('[you key here]')
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))
```

## Sample Usage Specifying Api Key in request event
Expand All @@ -34,19 +34,19 @@ from alphavantage_api_client import AlphavantageClient
event = {
"symbol":"TSLA",
"api_key":"[your api key here]"
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))
```

## Sample Usage Specifying Api Key in ini file
Expand All @@ -61,19 +61,19 @@ from alphavantage_api_client import AlphavantageClient
event = {
"symbol":"TSLA"
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))
```


Expand Down
14 changes: 7 additions & 7 deletions alphavantage_api_client/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ def main():
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
#result['stock_price'] = client.get_stock_price(event)
#result['earnings'] = client.get_earnings(event)
#result['latest_earnings'] = client.get_latest_earnings(event)
#result['cash_flow'] = client.get_cash_flow(event)
#result['latest_cash_flow'] = client.get_latest_cash_flow(event)
#result['income_statement'] = client.get_income_statement_for_symbol(event)
#result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))

if __name__ == "__main__":
Expand Down
12 changes: 10 additions & 2 deletions alphavantage_api_client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,11 @@ def get_stock_price_from_alpha_vantage(self, event, context=None):
json_request[default_key] = DEFAULTS[default_key]
return self.get_data_from_alpha_vantage(json_request)

def has_reached_limit(self,response):
if "Note" in response and " calls per minute " in response["Note"]:
return True
else:
return False
def get_data_from_alpha_vantage(self, event, context=None):
url = f'https://www.alphavantage.co/query?'
# get api key if not provided
Expand Down Expand Up @@ -263,9 +268,12 @@ def get_data_from_alpha_vantage(self, event, context=None):
requested_data['success'] = True
# check for failed json response
elif 'datatype' in event and event["datatype"] == 'json' and (
len(r.text) == 0 or r.text == "{}" or "Error Message" in r.text or "Information" in r.text):
len(r.text) == 0 or r.text == "{}" or "Error Message" in r.text or self.has_reached_limit(r.json())):
requested_data['status_code'] = r.status_code
json_response = r.json()
if self.has_reached_limit(json_response):
requested_data['limit_reached'] = True
requested_data['Error Message'] = json_response["Note"]
if "Error Message" in json_response:
requested_data['Error Message'] = json_response["Error Message"]
if "Information" in json_response:
Expand All @@ -275,7 +283,7 @@ def get_data_from_alpha_vantage(self, event, context=None):
requested_data['success'] = False
# check for successfully json response
elif 'datatype' in event and event["datatype"] == 'json' and len(
r.text) > 0 and r.text != "{}" and "Error Message" not in r.text and "Information" not in r.text:
r.text) > 0 and r.text != "{}" and "Error Message" not in r.text and not self.has_reached_limit(r.json()):
requested_data = r.json()
requested_data['symbol'] = event['symbol']
if len(requested_data) > 0:
Expand Down
Loading

0 comments on commit 2c67e4d

Please sign in to comment.