mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2025-10-23 15:11:08 +00:00
refactor(session): modernize type annotations to PEP 604 syntax
This commit is contained in:
@@ -8,10 +8,10 @@ import time
|
|||||||
import warnings
|
import warnings
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from email.utils import parsedate_to_datetime
|
from email.utils import parsedate_to_datetime
|
||||||
from typing import Any, List, Optional, Set, Tuple
|
from typing import Any
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from curl_cffi import Response, Session, exceptions
|
from curl_cffi.requests import Response, Session, exceptions
|
||||||
|
|
||||||
from unshackle.core.config import config
|
from unshackle.core.config import config
|
||||||
|
|
||||||
@@ -27,15 +27,16 @@ class MaxRetriesError(exceptions.RequestException):
|
|||||||
super().__init__(message)
|
super().__init__(message)
|
||||||
self.__cause__ = cause
|
self.__cause__ = cause
|
||||||
|
|
||||||
|
|
||||||
class CurlSession(Session):
|
class CurlSession(Session):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
max_retries: int = 10,
|
max_retries: int = 10,
|
||||||
backoff_factor: float = 0.2,
|
backoff_factor: float = 0.2,
|
||||||
max_backoff: float = 60.0,
|
max_backoff: float = 60.0,
|
||||||
status_forcelist: Optional[List[int]] = None,
|
status_forcelist: list[int] | None = None,
|
||||||
allowed_methods: Optional[Set[str]] = None,
|
allowed_methods: set[str] | None = None,
|
||||||
catch_exceptions: Optional[Tuple[type[Exception], ...]] = None,
|
catch_exceptions: tuple[type[Exception], ...] | None = None,
|
||||||
**session_kwargs: Any,
|
**session_kwargs: Any,
|
||||||
):
|
):
|
||||||
super().__init__(**session_kwargs)
|
super().__init__(**session_kwargs)
|
||||||
@@ -92,8 +93,7 @@ class CurlSession(Session):
|
|||||||
last_exception = e
|
last_exception = e
|
||||||
response = None
|
response = None
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
f"{e.__class__.__name__}({urlparse(url).path}). Retrying... "
|
f"{e.__class__.__name__}({urlparse(url).path}). Retrying... ({attempt + 1}/{self.max_retries})"
|
||||||
f"({attempt + 1}/{self.max_retries})"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if attempt < self.max_retries:
|
if attempt < self.max_retries:
|
||||||
|
|||||||
11
uv.lock
generated
11
uv.lock
generated
@@ -1126,6 +1126,15 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/f2/5f/af7da8e6f1e42b52f44a24d08b8e4c726207434e2593732d39e7af5e7256/pycryptodomex-3.23.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:14c37aaece158d0ace436f76a7bb19093db3b4deade9797abfc39ec6cd6cc2fe", size = 1806478, upload-time = "2025-05-17T17:23:26.066Z" },
|
{ url = "https://files.pythonhosted.org/packages/f2/5f/af7da8e6f1e42b52f44a24d08b8e4c726207434e2593732d39e7af5e7256/pycryptodomex-3.23.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:14c37aaece158d0ace436f76a7bb19093db3b4deade9797abfc39ec6cd6cc2fe", size = 1806478, upload-time = "2025-05-17T17:23:26.066Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyexecjs"
|
||||||
|
version = "1.5.1"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
dependencies = [
|
||||||
|
{ name = "six" },
|
||||||
|
]
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/ba/8e/aedef81641c8dca6fd0fb7294de5bed9c45f3397d67fddf755c1042c2642/PyExecJS-1.5.1.tar.gz", hash = "sha256:34cc1d070976918183ff7bdc0ad71f8157a891c92708c00c5fbbff7a769f505c", size = 13344, upload-time = "2018-01-18T04:33:55.126Z" }
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pygments"
|
name = "pygments"
|
||||||
version = "2.19.2"
|
version = "2.19.2"
|
||||||
@@ -1580,6 +1589,7 @@ dependencies = [
|
|||||||
{ name = "protobuf" },
|
{ name = "protobuf" },
|
||||||
{ name = "pycaption" },
|
{ name = "pycaption" },
|
||||||
{ name = "pycryptodomex" },
|
{ name = "pycryptodomex" },
|
||||||
|
{ name = "pyexecjs" },
|
||||||
{ name = "pyjwt" },
|
{ name = "pyjwt" },
|
||||||
{ name = "pymediainfo" },
|
{ name = "pymediainfo" },
|
||||||
{ name = "pymp4" },
|
{ name = "pymp4" },
|
||||||
@@ -1631,6 +1641,7 @@ requires-dist = [
|
|||||||
{ name = "protobuf", specifier = ">=4.25.3,<5" },
|
{ name = "protobuf", specifier = ">=4.25.3,<5" },
|
||||||
{ name = "pycaption", specifier = ">=2.2.6,<3" },
|
{ name = "pycaption", specifier = ">=2.2.6,<3" },
|
||||||
{ name = "pycryptodomex", specifier = ">=3.20.0,<4" },
|
{ name = "pycryptodomex", specifier = ">=3.20.0,<4" },
|
||||||
|
{ name = "pyexecjs", specifier = ">=1.5.1" },
|
||||||
{ name = "pyjwt", specifier = ">=2.8.0,<3" },
|
{ name = "pyjwt", specifier = ">=2.8.0,<3" },
|
||||||
{ name = "pymediainfo", specifier = ">=6.1.0,<7" },
|
{ name = "pymediainfo", specifier = ">=6.1.0,<7" },
|
||||||
{ name = "pymp4", specifier = ">=1.4.0,<2" },
|
{ name = "pymp4", specifier = ">=1.4.0,<2" },
|
||||||
|
|||||||
Reference in New Issue
Block a user