1414from typing import Any
1515
1616from transfer_queue .storage .managers .base import TransferQueueStorageManager
17- from transfer_queue .storage .managers .simple_backend_manager import AsyncSimpleStorageManager
1817
1918
2019class TransferQueueStorageManagerFactory :
@@ -23,13 +22,17 @@ class TransferQueueStorageManagerFactory:
2322 _registry : dict [str , type [TransferQueueStorageManager ]] = {}
2423
2524 @classmethod
26- def register (cls , manager_type : str , manager_cls : type [TransferQueueStorageManager ]):
27- if not issubclass (manager_cls , TransferQueueStorageManager ):
28- raise TypeError (
29- f"manager_cls { getattr (manager_cls , '__name__' , repr (manager_cls ))} must be "
30- f"a subclass of TransferQueueStorageManager"
31- )
32- cls ._registry [manager_type ] = manager_cls
25+ def register (cls , manager_type : str ):
26+ def decorator (manager_cls : type [TransferQueueStorageManager ]):
27+ if not issubclass (manager_cls , TransferQueueStorageManager ):
28+ raise TypeError (
29+ f"manager_cls { getattr (manager_cls , '__name__' , repr (manager_cls ))} must be "
30+ f"a subclass of TransferQueueStorageManager"
31+ )
32+ cls ._registry [manager_type ] = manager_cls
33+ return manager_cls
34+
35+ return decorator
3336
3437 @classmethod
3538 def create (cls , manager_type : str , config : dict [str , Any ]) -> TransferQueueStorageManager :
@@ -38,7 +41,3 @@ def create(cls, manager_type: str, config: dict[str, Any]) -> TransferQueueStora
3841 f"Unknown manager_type: { manager_type } . Supported managers include: { list (cls ._registry .keys ())} "
3942 )
4043 return cls ._registry [manager_type ](config )
41-
42-
43- # Register all the StorageManager
44- TransferQueueStorageManagerFactory .register ("AsyncSimpleStorageManager" , AsyncSimpleStorageManager )
0 commit comments