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:
2026-07-02 23:30:33 +09:00
parent 8ce9e09e69
commit b95fc0cd7d
7 changed files with 78 additions and 34 deletions
+2 -2
View File
@@ -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