refactor(config): abstract config storage and enable dependency injection
Abstract the configuration storage mechanism to allow using custom configurations, such as in-memory setups, when using the tool as a library. This aligns the configuration architecture with the session cache abstraction. - Define ConfigInterface protocol and InMemoryConfig class - Make CacheFile, InMemoryCache, ConfigFile, and InMemoryConfig explicitly inherit their interfaces - Update MdrsService and MdrsClient to accept customizable config_class and config instances - Add validation to check remote parameter consistency in create_connection - Remove unused imports across command files
This commit is contained in:
+2
-2
@@ -66,7 +66,7 @@ class CacheInterface(Protocol):
|
||||
def laboratories(self, laboratories: Laboratories) -> None: ...
|
||||
|
||||
|
||||
class InMemoryCache:
|
||||
class InMemoryCache(CacheInterface):
|
||||
def __init__(self) -> None:
|
||||
self.__data = CacheData()
|
||||
|
||||
@@ -105,7 +105,7 @@ class InMemoryCache:
|
||||
self.__data.laboratories = laboratories
|
||||
|
||||
|
||||
class CacheFile:
|
||||
class CacheFile(CacheInterface):
|
||||
__serial: int
|
||||
__cache_dir: str
|
||||
__cache_file: str
|
||||
|
||||
Reference in New Issue
Block a user