20
20
21
21
from cachetools import Cache , cachedmethod
22
22
from cachetools .keys import hashkey
23
+ from typing_extensions import Self
23
24
24
25
from kedro .utils import load_obj
25
26
@@ -178,9 +179,9 @@ def _logger(self) -> logging.Logger:
178
179
return logging .getLogger (__name__ )
179
180
180
181
@classmethod
181
- def _load_wrapper (cls , load_func : Callable [[], _DO ]) -> Callable [[], _DO ]:
182
+ def _load_wrapper (cls , load_func : Callable [[Self ], _DO ]) -> Callable [[Self ], _DO ]:
182
183
@wraps (load_func )
183
- def load (self ) -> _DO :
184
+ def load (self : Self ) -> _DO :
184
185
self ._logger .debug ("Loading %s" , str (self ))
185
186
186
187
try :
@@ -200,9 +201,11 @@ def load(self) -> _DO:
200
201
return load
201
202
202
203
@classmethod
203
- def _save_wrapper (cls , save_func : Callable [[_DI ], None ]) -> Callable [[_DI ], None ]:
204
+ def _save_wrapper (
205
+ cls , save_func : Callable [[Self , _DI ], None ]
206
+ ) -> Callable [[Self , _DI ], None ]:
204
207
@wraps (save_func )
205
- def save (self , data : _DI ) -> None :
208
+ def save (self : Self , data : _DI ) -> None :
206
209
if data is None :
207
210
raise DatasetError ("Saving 'None' to a 'Dataset' is not allowed" )
208
211
@@ -226,14 +229,14 @@ def __init_subclass__(cls, **kwargs: Any) -> None:
226
229
super ().__init_subclass__ (** kwargs )
227
230
228
231
if hasattr (cls , "load" ) and not cls .load .__qualname__ .startswith ("Abstract" ):
229
- cls .load = cls ._load_wrapper ( # type: ignore[method-assign ]
232
+ cls .load = cls ._load_wrapper ( # type: ignore[assignment ]
230
233
cls .load
231
234
if not getattr (cls .load , "__loadwrapped__" , False )
232
235
else cls .load .__wrapped__ # type: ignore[attr-defined]
233
236
)
234
237
235
238
if hasattr (cls , "save" ) and not cls .save .__qualname__ .startswith ("Abstract" ):
236
- cls .save = cls ._save_wrapper ( # type: ignore[method-assign ]
239
+ cls .save = cls ._save_wrapper ( # type: ignore[assignment ]
237
240
cls .save
238
241
if not getattr (cls .save , "__savewrapped__" , False )
239
242
else cls .save .__wrapped__ # type: ignore[attr-defined]
@@ -678,9 +681,11 @@ def load(self) -> _DO:
678
681
return super ().load ()
679
682
680
683
@classmethod
681
- def _save_wrapper (cls , save_func : Callable [[_DI ], None ]) -> Callable [[_DI ], None ]:
684
+ def _save_wrapper (
685
+ cls , save_func : Callable [[Self , _DI ], None ]
686
+ ) -> Callable [[Self , _DI ], None ]:
682
687
@wraps (save_func )
683
- def save (self , data : _DI ) -> None :
688
+ def save (self : Self , data : _DI ) -> None :
684
689
self ._version_cache .clear ()
685
690
save_version = (
686
691
self .resolve_save_version ()
0 commit comments