👷 Close network connections explicitly. Fixes #371
This commit is contained in:
+10
-2
@@ -144,11 +144,16 @@ class Download:
|
|||||||
progress_total: int = urls_count
|
progress_total: int = urls_count
|
||||||
block_size: int | None = None
|
block_size: int | None = None
|
||||||
elif urls_count == 1:
|
elif urls_count == 1:
|
||||||
|
try:
|
||||||
# Get file size and compute progress steps
|
# Get file size and compute progress steps
|
||||||
r = requests.head(urls[0], timeout=REQUESTS_TIMEOUT_SEC)
|
r = requests.head(urls[0], timeout=REQUESTS_TIMEOUT_SEC)
|
||||||
total_size_in_bytes: int = int(r.headers.get("content-length", 0))
|
total_size_in_bytes: int = int(r.headers.get("content-length", 0))
|
||||||
block_size: int | None = 1048576
|
block_size: int | None = 1048576
|
||||||
progress_total: float = total_size_in_bytes / block_size
|
progress_total: float = total_size_in_bytes / block_size
|
||||||
|
except:
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
r.close()
|
||||||
else:
|
else:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
|
||||||
@@ -236,7 +241,7 @@ class Download:
|
|||||||
error: HTTPError | None = None
|
error: HTTPError | None = None
|
||||||
|
|
||||||
# Retry download on failed segments, with an exponential delay between retries
|
# Retry download on failed segments, with an exponential delay between retries
|
||||||
s = requests.Session()
|
with requests.Session() as s:
|
||||||
retries = Retry(total=5, backoff_factor=1) # , status_forcelist=[ 502, 503, 504 ])
|
retries = Retry(total=5, backoff_factor=1) # , status_forcelist=[ 502, 503, 504 ])
|
||||||
|
|
||||||
s.mount("https://", HTTPAdapter(max_retries=retries))
|
s.mount("https://", HTTPAdapter(max_retries=retries))
|
||||||
@@ -585,10 +590,13 @@ class Download:
|
|||||||
|
|
||||||
if url:
|
if url:
|
||||||
try:
|
try:
|
||||||
result = requests.get(url, timeout=REQUESTS_TIMEOUT_SEC).content
|
response: requests.Response = requests.get(url, timeout=REQUESTS_TIMEOUT_SEC)
|
||||||
|
result = response.content
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# TODO: Implement propper logging.
|
# TODO: Implement propper logging.
|
||||||
print(e)
|
print(e)
|
||||||
|
finally:
|
||||||
|
response.close()
|
||||||
elif path_file:
|
elif path_file:
|
||||||
try:
|
try:
|
||||||
with open(path_file, "rb") as f:
|
with open(path_file, "rb") as f:
|
||||||
|
|||||||
Reference in New Issue
Block a user