diff options
| author | Nate Sesti <33237525+sestinj@users.noreply.github.com> | 2023-07-25 23:52:12 -0700 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-25 23:52:12 -0700 | 
| commit | 2b69bf6f1fc2e06b16b718358ceed4911d6e87c3 (patch) | |
| tree | c27c630c64f2890698512606e2dd8acac9c0c8b6 /continuedev/src/continuedev/server | |
| parent | f0df0fdc1fb7d8e65e27abe633da1831b8172b35 (diff) | |
| parent | 03da423e5abdf32c5bf9755ffd2e1c7be98e6454 (diff) | |
| download | sncontinue-2b69bf6f1fc2e06b16b718358ceed4911d6e87c3.tar.gz sncontinue-2b69bf6f1fc2e06b16b718358ceed4911d6e87c3.tar.bz2 sncontinue-2b69bf6f1fc2e06b16b718358ceed4911d6e87c3.zip | |
Merge pull request #296 from continuedev/config-py-2
Config py 2
Diffstat (limited to 'continuedev/src/continuedev/server')
| -rw-r--r-- | continuedev/src/continuedev/server/gui.py | 4 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/ide.py | 14 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/main.py | 10 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/meilisearch_server.py | 12 | 
4 files changed, 21 insertions, 19 deletions
| diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py index fa203c28..c0957395 100644 --- a/continuedev/src/continuedev/server/gui.py +++ b/continuedev/src/continuedev/server/gui.py @@ -61,12 +61,12 @@ class GUIProtocolServer(AbstractGUIProtocolServer):              "data": data          }) -    async def _receive_json(self, message_type: str, timeout: int = 5) -> Any: +    async def _receive_json(self, message_type: str, timeout: int = 20) -> Any:          try:              return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)          except asyncio.TimeoutError:              raise Exception( -                "GUI Protocol _receive_json timed out after 5 seconds") +                "GUI Protocol _receive_json timed out after 20 seconds")      async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:          await self._send_json(message_type, data) diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index d6a28c92..cf8b32a1 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -10,6 +10,7 @@ from pydantic import BaseModel  import traceback  import asyncio +from .meilisearch_server import start_meilisearch  from ..libs.util.telemetry import posthog_logger  from ..libs.util.queue import AsyncSubscriptionQueue  from ..models.filesystem import FileSystem, RangeInFile, EditDiff, RangeInFileWithContents, RealFileSystem @@ -139,6 +140,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer):                  continue              message_type = message["messageType"]              data = message["data"] +            print("Received message while initializing", message_type)              if message_type == "workspaceDirectory":                  self.workspace_directory = data["workspaceDirectory"]              elif message_type == "uniqueId": @@ -153,17 +155,18 @@ class IdeProtocolServer(AbstractIdeProtocolServer):      async def _send_json(self, message_type: str, data: Any):          if self.websocket.application_state == WebSocketState.DISCONNECTED:              return +        print("Sending IDE message: ", message_type)          await self.websocket.send_json({              "messageType": message_type,              "data": data          }) -    async def _receive_json(self, message_type: str, timeout: int = 5) -> Any: +    async def _receive_json(self, message_type: str, timeout: int = 20) -> Any:          try:              return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)          except asyncio.TimeoutError:              raise Exception( -                "IDE Protocol _receive_json timed out after 5 seconds") +                "IDE Protocol _receive_json timed out after 20 seconds", message_type)      async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:          await self._send_json(message_type, data) @@ -432,6 +435,13 @@ class IdeProtocolServer(AbstractIdeProtocolServer):  @router.websocket("/ws")  async def websocket_endpoint(websocket: WebSocket, session_id: str = None):      try: +        # Start meilisearch +        try: +            await start_meilisearch() +        except Exception as e: +            print("Failed to start MeiliSearch") +            print(e) +          await websocket.accept()          print("Accepted websocket connection from, ", websocket.client)          await websocket.send_json({"messageType": "connected", "data": {}}) diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py index 7ee64041..0b59d4fe 100644 --- a/continuedev/src/continuedev/server/main.py +++ b/continuedev/src/continuedev/server/main.py @@ -1,7 +1,5 @@  import asyncio -import subprocess  import time -import meilisearch  import psutil  import os  from fastapi import FastAPI @@ -13,7 +11,6 @@ import argparse  from .ide import router as ide_router  from .gui import router as gui_router  from .session_manager import session_manager -from .meilisearch_server import start_meilisearch  app = FastAPI() @@ -87,13 +84,8 @@ if __name__ == "__main__":          # cpu_thread = threading.Thread(target=cpu_usage_loop)          # cpu_thread.start() -        try: -            start_meilisearch() -        except Exception as e: -            print("Failed to start MeiliSearch") -            print(e) -          run_server()      except Exception as e: +        print("Error starting Continue server: ", e)          cleanup()          raise e diff --git a/continuedev/src/continuedev/server/meilisearch_server.py b/continuedev/src/continuedev/server/meilisearch_server.py index 232b6243..286019e1 100644 --- a/continuedev/src/continuedev/server/meilisearch_server.py +++ b/continuedev/src/continuedev/server/meilisearch_server.py @@ -2,7 +2,7 @@ import os  import shutil  import subprocess -import meilisearch +from meilisearch_python_async import Client  from ..libs.util.paths import getServerFolderPath @@ -41,14 +41,14 @@ def ensure_meilisearch_installed():              f"curl -L https://install.meilisearch.com | sh", shell=True, check=True, cwd=serverPath) -def check_meilisearch_running() -> bool: +async def check_meilisearch_running() -> bool:      """      Checks if MeiliSearch is running.      """      try: -        client = meilisearch.Client('http://localhost:7700') -        resp = client.health() +        client = Client('http://localhost:7700') +        resp = await client.health()          if resp["status"] != "available":              return False          return True @@ -56,7 +56,7 @@ def check_meilisearch_running() -> bool:          return False -def start_meilisearch(): +async def start_meilisearch():      """      Starts the MeiliSearch server, wait for it.      """ @@ -71,7 +71,7 @@ def start_meilisearch():      ensure_meilisearch_installed()      # Check if MeiliSearch is running -    if not check_meilisearch_running(): +    if not await check_meilisearch_running():          print("Starting MeiliSearch...")          subprocess.Popen(["./meilisearch"], cwd=serverPath, stdout=subprocess.DEVNULL,                           stderr=subprocess.STDOUT, close_fds=True, start_new_session=True) | 
