Skip to content

Commit ea196ea

Browse files
Properly mark overridden methods with @OverRide
- Imported from typing_extensions for compatibility
1 parent 4c88b5b commit ea196ea

5 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/pdfrest/client.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
ValidationError,
4444
field_validator,
4545
)
46+
from typing_extensions import override
4647

4748
from .exceptions import (
4849
PdfRestApiError,
@@ -1980,10 +1981,12 @@ def __init__(
19801981
)
19811982
self._files_client = _FilesClient(self)
19821983

1984+
@override
19831985
def __enter__(self) -> PdfRestClient:
19841986
_ = super().__enter__()
19851987
return self
19861988

1989+
@override
19871990
def __exit__(self, exc_type: Any, exc: Any, traceback: Any) -> None:
19881991
super().__exit__(exc_type, exc, traceback)
19891992

@@ -2409,10 +2412,12 @@ def __init__(
24092412
)
24102413
self._files_client = _AsyncFilesClient(self)
24112414

2415+
@override
24122416
async def __aenter__(self) -> AsyncPdfRestClient:
24132417
_ = await super().__aenter__()
24142418
return self
24152419

2420+
@override
24162421
async def __aexit__(self, exc_type: Any, exc: Any, traceback: Any) -> None:
24172422
await super().__aexit__(exc_type, exc, traceback)
24182423

src/pdfrest/exceptions.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import Any
66

77
import httpx
8+
from typing_extensions import override
89

910
__all__ = (
1011
"PdfRestApiError",
@@ -55,6 +56,7 @@ def __init__(
5556
detail = message or f"pdfRest API returned status code {status_code}"
5657
super().__init__(detail)
5758

59+
@override
5860
def __str__(self) -> str: # pragma: no cover - mirrors Exception.__str__
5961
base = super().__str__()
6062
if self.response_content is None:

src/pdfrest/models/public.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
HttpUrl,
1717
)
1818
from pydantic_core import CoreSchema
19+
from typing_extensions import override
1920

2021
__all__ = ("PdfRestErrorResponse", "PdfRestFile", "PdfRestFileID", "UpResponse")
2122

@@ -55,9 +56,11 @@ def __new__(cls, value: str) -> PdfRestFileID:
5556
raise ValueError(msg)
5657
return str.__new__(cls, value.lower())
5758

59+
@override
5860
def __str__(self) -> str:
5961
return str.__str__(self)
6062

63+
@override
6164
def __repr__(self) -> str:
6265
return f"{self.__class__.__name__}({super().__repr__()})"
6366

tests/test_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import httpx
99
import pytest
10+
from typing_extensions import override
1011

1112
from pdfrest import (
1213
AsyncPdfRestClient,
@@ -51,10 +52,12 @@ class NonSeekableByteStream(BytesIO):
5152
def __init__(self, payload: bytes) -> None:
5253
super().__init__(payload)
5354

55+
@override
5456
def seek(self, *args: Any, **kwargs: Any) -> int:
5557
msg = "non-seekable"
5658
raise UnsupportedOperation(msg)
5759

60+
@override
5861
def tell(self) -> int:
5962
msg = "non-seekable"
6063
raise UnsupportedOperation(msg)

tests/test_files.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import httpx
1313
import pytest
1414
import pytest_asyncio
15+
from typing_extensions import override
1516

1617
from pdfrest import AsyncPdfRestClient, PdfRestClient
1718
from pdfrest.models import PdfRestFile, PdfRestFileID
@@ -26,12 +27,14 @@ def __init__(self, payload: bytes) -> None:
2627
self._payload = payload
2728
self._consumed = False
2829

30+
@override
2931
def __iter__(self) -> Iterator[bytes]:
3032
if self._consumed:
3133
return iter(())
3234
self._consumed = True
3335
return iter((self._payload,))
3436

37+
@override
3538
def close(self) -> None: # pragma: no cover - trivial
3639
...
3740

@@ -41,11 +44,13 @@ def __init__(self, payload: bytes) -> None:
4144
self._payload = payload
4245
self._consumed = False
4346

47+
@override
4448
async def __aiter__(self):
4549
if not self._consumed:
4650
self._consumed = True
4751
yield self._payload
4852

53+
@override
4954
async def aclose(self) -> None: # pragma: no cover - trivial
5055
...
5156

0 commit comments

Comments
 (0)