55import uuid
66from pathlib import Path
77from typing import TYPE_CHECKING , cast , final
8- from typing_extensions import override
9-
10- from duron .log import LogStorage
118
129if TYPE_CHECKING :
1310 from collections .abc import AsyncGenerator
1613
1714
1815@final
19- class FileLogStorage ( LogStorage ) :
16+ class FileLogStorage :
2017 __slots__ = ("_leases" , "_lock" , "_log_file" )
2118
2219 _log_file : Path
@@ -29,7 +26,6 @@ def __init__(self, log_file: str | Path) -> None:
2926 self ._leases = None
3027 self ._lock = asyncio .Lock ()
3128
32- @override
3329 async def stream (
3430 self ,
3531 start : int | None ,
@@ -82,20 +78,17 @@ async def stream(
8278 else :
8379 await asyncio .sleep (0.1 )
8480
85- @override
8681 async def acquire_lease (self ) -> bytes :
8782 lease_id = uuid .uuid4 ().bytes
8883 async with self ._lock :
8984 self ._leases = lease_id
9085 return lease_id
9186
92- @override
9387 async def release_lease (self , token : bytes ) -> None :
9488 async with self ._lock :
9589 if token == self ._leases :
9690 self ._leases = None
9791
98- @override
9992 async def append (self , token : bytes , entry : Entry ) -> int :
10093 async with self ._lock :
10194 if token != self ._leases :
@@ -108,13 +101,12 @@ async def append(self, token: bytes, entry: Entry) -> int:
108101 _ = f .write ("\n " )
109102 return offset
110103
111- @override
112- async def flush (self , token : bytes ) -> None :
104+ async def flush (self , _token : bytes ) -> None :
113105 pass
114106
115107
116108@final
117- class MemoryLogStorage ( LogStorage ) :
109+ class MemoryLogStorage :
118110 __slots__ = ("_condition" , "_entries" , "_leases" , "_lock" )
119111
120112 _entries : list [AnyEntry ]
@@ -128,7 +120,6 @@ def __init__(self, entries: list[AnyEntry] | None = None) -> None:
128120 self ._lock = asyncio .Lock ()
129121 self ._condition = asyncio .Condition (self ._lock )
130122
131- @override
132123 async def stream (
133124 self ,
134125 start : int | None ,
@@ -166,20 +157,17 @@ async def stream(
166157 )
167158 last_seen_index = index
168159
169- @override
170160 async def acquire_lease (self ) -> bytes :
171161 lease_id = uuid .uuid4 ().bytes
172162 async with self ._lock :
173163 self ._leases = lease_id
174164 return lease_id
175165
176- @override
177166 async def release_lease (self , token : bytes ) -> None :
178167 async with self ._lock :
179168 if token == self ._leases :
180169 self ._leases = None
181170
182- @override
183171 async def append (self , token : bytes , entry : Entry ) -> int :
184172 async with self ._condition :
185173 if token != self ._leases :
@@ -191,7 +179,6 @@ async def append(self, token: bytes, entry: Entry) -> int:
191179 self ._condition .notify_all ()
192180 return offset
193181
194- @override
195182 async def flush (self , token : bytes ) -> None :
196183 pass
197184
0 commit comments