88from  typing  import  TYPE_CHECKING , Any , Self 
99
1010from  zarr .abc .store  import  AccessMode , ByteRangeRequest , Store 
11+ from  zarr .storage .wrapper  import  WrapperStore 
1112
1213if  TYPE_CHECKING :
1314    from  collections .abc  import  AsyncGenerator , Generator , Iterable 
1415
1516    from  zarr .core .buffer  import  Buffer , BufferPrototype 
1617    from  zarr .core .common  import  AccessModeLiteral 
1718
19+     counter : defaultdict [str , int ]
20+ 
1821
19- class  LoggingStore (Store ):
22+ class  LoggingStore (WrapperStore [ Store ] ):
2023    """ 
2124    Store wrapper that logs all calls to the wrapped store. 
2225
@@ -35,7 +38,6 @@ class LoggingStore(Store):
3538        Counter of number of times each method has been called 
3639    """ 
3740
38-     _store : Store 
3941    counter : defaultdict [str , int ]
4042
4143    def  __init__ (
@@ -44,11 +46,10 @@ def __init__(
4446        log_level : str  =  "DEBUG" ,
4547        log_handler : logging .Handler  |  None  =  None ,
4648    ) ->  None :
47-         self . _store   =   store 
49+         super (). __init__ ( store ) 
4850        self .counter  =  defaultdict (int )
4951        self .log_level  =  log_level 
5052        self .log_handler  =  log_handler 
51- 
5253        self ._configure_logger (log_level , log_handler )
5354
5455    def  _configure_logger (
0 commit comments