Skip to content

Commit 337c917

Browse files
Properly mark overridden methods with @OverRide
- Imported from typing_extensions for compatibility
1 parent 59f5cf2 commit 337c917

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,
@@ -1942,10 +1943,12 @@ def __init__(
19421943
)
19431944
self._files_client = _FilesClient(self)
19441945

1946+
@override
19451947
def __enter__(self) -> PdfRestClient:
19461948
_ = super().__enter__()
19471949
return self
19481950

1951+
@override
19491952
def __exit__(self, exc_type: Any, exc: Any, traceback: Any) -> None:
19501953
super().__exit__(exc_type, exc, traceback)
19511954

@@ -2371,10 +2374,12 @@ def __init__(
23712374
)
23722375
self._files_client = _AsyncFilesClient(self)
23732376

2377+
@override
23742378
async def __aenter__(self) -> AsyncPdfRestClient:
23752379
_ = await super().__aenter__()
23762380
return self
23772381

2382+
@override
23782383
async def __aexit__(self, exc_type: Any, exc: Any, traceback: Any) -> None:
23792384
await super().__aexit__(exc_type, exc, traceback)
23802385

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",
@@ -65,6 +66,7 @@ def __init__(
6566
detail = message or f"pdfRest API returned status code {status_code}"
6667
super().__init__(detail)
6768

69+
@override
6870
def __str__(self) -> str: # pragma: no cover - mirrors Exception.__str__
6971
base = super().__str__()
7072
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
@@ -8,6 +8,7 @@
88

99
import httpx
1010
import pytest
11+
from typing_extensions import override
1112

1213
from pdfrest import (
1314
AsyncPdfRestClient,
@@ -53,10 +54,12 @@ class NonSeekableByteStream(BytesIO):
5354
def __init__(self, payload: bytes) -> None:
5455
super().__init__(payload)
5556

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

62+
@override
6063
def tell(self) -> int:
6164
msg = "non-seekable"
6265
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)