Skip to content

Commit 4a91270

Browse files
nicoschmdtpatrickelectric
authored andcommitted
kraken: resolve cyclic import
1 parent 85ef7dc commit 4a91270

3 files changed

Lines changed: 13 additions & 9 deletions

File tree

core/services/kraken/extension_logs.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import asyncio
22
import json
33
import time
4-
from typing import Callable, Dict, List, Optional, Tuple, cast
4+
from typing import Callable, Dict, Optional, Tuple
55

66
from commonwealth.utils.zenoh_helper import ZenohSession
77
from config import SERVICE_NAME
8-
from extension.extension import Extension
98
from harbor import ContainerManager
109
from loguru import logger
11-
from settings import ExtensionSettings
10+
from settings import ExtensionSettings, get_extension_settings
1211

1312

1413
class ExtensionLogPublisher:
@@ -51,7 +50,7 @@ async def _collect_desired_streams(self) -> Optional[Dict[str, ExtensionSettings
5150
return None
5251

5352
running_names = {container.name.lstrip("/") for container in running_containers}
54-
extensions = cast(List[ExtensionSettings], Extension._fetch_settings())
53+
extensions = get_extension_settings()
5554

5655
desired: Dict[str, ExtensionSettings] = {}
5756
for extension in extensions:

core/services/kraken/settings.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
import json
22
import re
3-
from typing import Any, Dict
3+
from typing import Any, Dict, List
44

55
from commonwealth.settings import settings
6+
from commonwealth.settings.manager import Manager
7+
from config import SERVICE_NAME
68
from pykson import BooleanField, IntegerField, JsonObject, ObjectListField, StringField
79

810

11+
def get_extension_settings() -> List["ExtensionSettings"]:
12+
return list(Manager(SERVICE_NAME, SettingsV2).settings.extensions)
13+
14+
915
class ExtensionSettings(JsonObject):
1016
identifier = StringField()
1117
name = StringField()

core/services/kraken/zenoh_handlers/extension_handler.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
from typing import Any, List, cast
1+
from typing import Any
22

33
from commonwealth.utils.zenoh_helper import ZenohRouter
4-
from extension.extension import Extension
54
from extension_logs import ExtensionLogPublisher
65
from harbor import ContainerManager
76
from loguru import logger
8-
from settings import ExtensionSettings
7+
from settings import get_extension_settings
98

109

1110
class ExtensionHandlers:
@@ -17,7 +16,7 @@ async def logs_request_handler(self, extension_name: str) -> dict[str, Any]:
1716
return {"error": "extension_name parameter is required"}
1817

1918
try:
20-
extensions = cast(List[ExtensionSettings], Extension._fetch_settings())
19+
extensions = get_extension_settings()
2120
extension = next((ext for ext in extensions if extension_name in (ext.identifier, ext.name)), None)
2221

2322
if not extension:

0 commit comments

Comments
 (0)