Merge pull request #377 from exislow/371-close-connection-after-download

👷 Close network connections explicitly. Fixes #371
This commit is contained in:
exislow
2025-02-28 17:28:19 +01:00
committed by GitHub
+10 -2
View File
@@ -144,11 +144,16 @@ class Download:
progress_total: int = urls_count
block_size: int | None = None
elif urls_count == 1:
try:
# Get file size and compute progress steps
r = requests.head(urls[0], timeout=REQUESTS_TIMEOUT_SEC)
total_size_in_bytes: int = int(r.headers.get("content-length", 0))
block_size: int | None = 1048576
progress_total: float = total_size_in_bytes / block_size
except:
raise
finally:
r.close()
else:
raise ValueError
@@ -236,7 +241,7 @@ class Download:
error: HTTPError | None = None
# 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 ])
s.mount("https://", HTTPAdapter(max_retries=retries))
@@ -585,10 +590,13 @@ class Download:
if url:
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:
# TODO: Implement propper logging.
print(e)
finally:
response.close()
elif path_file:
try:
with open(path_file, "rb") as f: