Fix mypy context manager typing for adapter subclasses.
Return Self from __enter__ so with-blocks preserve subclass types, and align mypy python_version with the 3.12 runtime target. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
co-authored by
Cursor
parent
e98fd3b90d
commit
497533f0e3
+1
-1
@@ -48,7 +48,7 @@ url = "https://gitea.lille-vemmelund.dk/api/packages/brian/pypi/simple/"
|
|||||||
explicit = true
|
explicit = true
|
||||||
|
|
||||||
[tool.mypy]
|
[tool.mypy]
|
||||||
python_version = "3.10"
|
python_version = "3.12"
|
||||||
warn_return_any = true # nudge to use stricter types
|
warn_return_any = true # nudge to use stricter types
|
||||||
warn_unused_configs = true # nudge to remove unused configs
|
warn_unused_configs = true # nudge to remove unused configs
|
||||||
disallow_untyped_defs = true # disallow untyped function definitions
|
disallow_untyped_defs = true # disallow untyped function definitions
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from __future__ import annotations
|
|||||||
import os
|
import os
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from importlib.util import find_spec
|
from importlib.util import find_spec
|
||||||
|
from typing import Self
|
||||||
import structlog
|
import structlog
|
||||||
from python_utils import check_env
|
from python_utils import check_env
|
||||||
|
|
||||||
@@ -49,7 +50,7 @@ class MinioAdapter(
|
|||||||
self._client: minio.Minio | None = None
|
self._client: minio.Minio | None = None
|
||||||
self._bucket_name: str | None = None
|
self._bucket_name: str | None = None
|
||||||
|
|
||||||
def __enter__(self) -> MinioAdapter:
|
def __enter__(self) -> Self:
|
||||||
"""Enter the context."""
|
"""Enter the context."""
|
||||||
self.connect()
|
self.connect()
|
||||||
return self
|
return self
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""Definition of RedisAdapter class."""
|
"""Definition of RedisAdapter class."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import cast
|
from typing import Self, cast
|
||||||
from importlib.util import find_spec
|
from importlib.util import find_spec
|
||||||
import os
|
import os
|
||||||
import structlog
|
import structlog
|
||||||
@@ -42,7 +42,7 @@ class RedisAdapter(
|
|||||||
self._client: redis.Redis | None = None
|
self._client: redis.Redis | None = None
|
||||||
self.path: str = RedisPath.root_path()
|
self.path: str = RedisPath.root_path()
|
||||||
|
|
||||||
def __enter__(self) -> RedisAdapter:
|
def __enter__(self) -> Self:
|
||||||
"""Enter the context."""
|
"""Enter the context."""
|
||||||
self.connect()
|
self.connect()
|
||||||
return self
|
return self
|
||||||
|
|||||||
@@ -3,13 +3,14 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
|
from typing import Self
|
||||||
|
|
||||||
|
|
||||||
class ContextAwareInterface(ABC):
|
class ContextAwareInterface(ABC):
|
||||||
"""Interface that defines context-related methods."""
|
"""Interface that defines context-related methods."""
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __enter__(self) -> ContextAwareInterface:
|
def __enter__(self) -> Self:
|
||||||
"""Enter the context."""
|
"""Enter the context."""
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user