Skip to content

Commit ca633ac

Browse files
committed
update requests
1 parent abbf1f6 commit ca633ac

File tree

3 files changed

+120
-2
lines changed

3 files changed

+120
-2
lines changed

poetry.lock

Lines changed: 103 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "fmp-py"
3-
version = "0.0.13"
3+
version = "0.0.13.1"
44
description = ""
55
authors = ["TexasCoding <[email protected]>"]
66
readme = "README.md"
@@ -19,6 +19,8 @@ pandas = "^2.2.2"
1919
requests-mock = "^1.12.1"
2020
pendulum = "^3.0.0"
2121
ta = "^0.11.0"
22+
requests-cache = "^1.2.1"
23+
requests-ratelimiter = "^0.7.0"
2224

2325

2426
[tool.poetry.group.tests.dependencies]

src/fmp_py/fmp_base.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import os
22
import requests
3+
from requests.adapters import HTTPAdapter
4+
from urllib3.util import Retry
5+
36
from dotenv import load_dotenv
47
from typing import Dict, Any
58

@@ -22,7 +25,18 @@ def __init__(self, api_key: str = FMP_API_KEY) -> None:
2225
"API Key is required. Set it as environment variable 'FMP_API_KEY' or pass it directly."
2326
)
2427
self.api_key = api_key
28+
29+
status_forcelist = [429, 500, 502, 503, 504]
30+
31+
self.retry_strategy = Retry(
32+
total=3,
33+
backoff_factor=2.0,
34+
status_forcelist=status_forcelist,
35+
)
36+
self.adapter = HTTPAdapter(max_retries=self.retry_strategy)
2537
self.session = requests.Session()
38+
self.session.mount("https://", self.adapter)
39+
self.session.mount("http://", self.adapter)
2640

2741
def clean_value(self, value, type) -> Any:
2842
if type is int:

0 commit comments

Comments
 (0)