summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--continuedev/src/continuedev/core/sdk.py35
-rw-r--r--continuedev/src/continuedev/libs/util/paths.py22
2 files changed, 48 insertions, 9 deletions
diff --git a/continuedev/src/continuedev/core/sdk.py b/continuedev/src/continuedev/core/sdk.py
index e8ee8167..c3b50375 100644
--- a/continuedev/src/continuedev/core/sdk.py
+++ b/continuedev/src/continuedev/core/sdk.py
@@ -5,7 +5,11 @@ from typing import Coroutine, List, Optional, Union
from ..libs.llm import LLM
from ..libs.util.devdata import dev_data_logger
from ..libs.util.logging import logger
-from ..libs.util.paths import getConfigFilePath, getDiffsFolderPath
+from ..libs.util.paths import (
+ convertConfigImports,
+ getConfigFilePath,
+ getDiffsFolderPath,
+)
from ..libs.util.telemetry import posthog_logger
from ..models.filesystem import RangeInFile
from ..models.filesystem_edit import (
@@ -236,14 +240,27 @@ class ContinueSDK(AbstractContinueSDK):
_last_valid_config: ContinueConfig = None
- def _load_config_dot_py(self) -> ContinueConfig:
- path = getConfigFilePath()
- config = ContinueConfig.from_filepath(path)
- self._last_valid_config = config
-
- logger.debug("Loaded Continue config file from %s", path)
-
- return config
+ def _load_config_dot_py(self, retry: bool = True) -> ContinueConfig:
+ try:
+ path = getConfigFilePath()
+ config = ContinueConfig.from_filepath(path)
+ self._last_valid_config = config
+
+ logger.debug("Loaded Continue config file from %s", path)
+
+ return config
+ except ModuleNotFoundError as e:
+ if not retry:
+ raise e
+ # Check if the module was "continuedev.src"
+ if e.name == "continuedev.src":
+ convertConfigImports(shorten=True)
+ return self._load_config_dot_py(retry=False)
+ elif e.name.startswith("continuedev."):
+ convertConfigImports(shorten=False)
+ return self._load_config_dot_py(retry=False)
+ else:
+ raise e
def get_code_context(
self, only_editing: bool = False
diff --git a/continuedev/src/continuedev/libs/util/paths.py b/continuedev/src/continuedev/libs/util/paths.py
index 9d4eccd6..88c25aff 100644
--- a/continuedev/src/continuedev/libs/util/paths.py
+++ b/continuedev/src/continuedev/libs/util/paths.py
@@ -1,4 +1,5 @@
import os
+import re
from typing import Optional
from ..constants.default_config import default_config
@@ -111,6 +112,27 @@ def getConfigFilePath() -> str:
return path
+def convertConfigImports(shorten: bool) -> str:
+ path = getConfigFilePath()
+ # Make any necessary migrations
+ with open(path, "r") as f:
+ existing_content = f.read()
+
+ if shorten:
+ migrated = existing_content.replace(
+ "from continuedev.src.continuedev.", "from continuedev."
+ )
+ else:
+ migrated = re.sub(
+ r"(?<!src\.)continuedev\.(?!src)",
+ "continuedev.src.continuedev.",
+ existing_content,
+ )
+
+ with open(path, "w") as f:
+ f.write(migrated)
+
+
def getLogFilePath():
path = os.path.join(getGlobalFolderPath(), "continue.log")
os.makedirs(os.path.dirname(path), exist_ok=True)