diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-08-18 15:17:04 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-08-18 15:17:04 -0700 |
commit | 70370bf0d033c2575c84ffe10c9e5c484bbad54f (patch) | |
tree | be55005a3ef2867594a432ea12786098ae6a6c94 /continuedev/src/continuedev/server | |
parent | ab7a90a0972188dcc7b8c28b1263c918776ca19d (diff) | |
download | sncontinue-70370bf0d033c2575c84ffe10c9e5c484bbad54f.tar.gz sncontinue-70370bf0d033c2575c84ffe10c9e5c484bbad54f.tar.bz2 sncontinue-70370bf0d033c2575c84ffe10c9e5c484bbad54f.zip |
style: :art: autoformat with black on all python files
Diffstat (limited to 'continuedev/src/continuedev/server')
5 files changed, 65 insertions, 43 deletions
diff --git a/continuedev/src/continuedev/server/gui_protocol.py b/continuedev/src/continuedev/server/gui_protocol.py index 990833be..d079475c 100644 --- a/continuedev/src/continuedev/server/gui_protocol.py +++ b/continuedev/src/continuedev/server/gui_protocol.py @@ -1,7 +1,5 @@ -from typing import Any, Dict, List from abc import ABC, abstractmethod - -from ..core.context import ContextItem +from typing import Any class AbstractGUIProtocolServer(ABC): diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py index 72b410d4..f63fecf8 100644 --- a/continuedev/src/continuedev/server/ide_protocol.py +++ b/continuedev/src/continuedev/server/ide_protocol.py @@ -1,10 +1,10 @@ +from abc import ABC, abstractmethod from typing import Any, List, Union -from abc import ABC, abstractmethod, abstractproperty + from fastapi import WebSocket -from ..models.main import Traceback -from ..models.filesystem_edit import FileEdit, FileSystemEdit, EditDiff from ..models.filesystem import RangeInFile, RangeInFileWithContents +from ..models.filesystem_edit import EditDiff, FileEdit, FileSystemEdit class AbstractIdeProtocolServer(ABC): diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py index f0a3f094..00ded6f1 100644 --- a/continuedev/src/continuedev/server/main.py +++ b/continuedev/src/continuedev/server/main.py @@ -1,18 +1,16 @@ +import argparse import asyncio -import time -import psutil -import os -from fastapi import FastAPI -from fastapi.middleware.cors import CORSMiddleware import atexit -import uvicorn -import argparse +import uvicorn +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware -from .ide import router as ide_router -from .gui import router as gui_router -from .session_manager import session_manager, router as sessions_router from ..libs.util.logging import logger +from .gui import router as gui_router +from .ide import router as ide_router +from .session_manager import router as sessions_router +from .session_manager import session_manager app = FastAPI() @@ -39,8 +37,7 @@ def health(): try: # add cli arg for server port parser = argparse.ArgumentParser() - parser.add_argument("-p", "--port", help="server port", - type=int, default=65432) + parser.add_argument("-p", "--port", help="server port", type=int, default=65432) args = parser.parse_args() except Exception as e: logger.debug(f"Error parsing command line arguments: {e}") diff --git a/continuedev/src/continuedev/server/meilisearch_server.py b/continuedev/src/continuedev/server/meilisearch_server.py index f47c08ca..98b48685 100644 --- a/continuedev/src/continuedev/server/meilisearch_server.py +++ b/continuedev/src/continuedev/server/meilisearch_server.py @@ -5,8 +5,8 @@ import subprocess from meilisearch_python_async import Client -from ..libs.util.paths import getServerFolderPath from ..libs.util.logging import logger +from ..libs.util.paths import getServerFolderPath def ensure_meilisearch_installed() -> bool: @@ -43,7 +43,11 @@ def ensure_meilisearch_installed() -> bool: # Download MeiliSearch logger.debug("Downloading MeiliSearch...") subprocess.run( - f"curl -L https://install.meilisearch.com | sh", shell=True, check=True, cwd=serverPath) + "curl -L https://install.meilisearch.com | sh", + shell=True, + check=True, + cwd=serverPath, + ) return False @@ -56,7 +60,7 @@ async def check_meilisearch_running() -> bool: """ try: - async with Client('http://localhost:7700') as client: + async with Client("http://localhost:7700") as client: try: resp = await client.health() if resp.status != "available": @@ -96,5 +100,11 @@ async def start_meilisearch(): # Check if MeiliSearch is running if not await check_meilisearch_running() or not was_already_installed: logger.debug("Starting MeiliSearch...") - subprocess.Popen(["./meilisearch", "--no-analytics"], cwd=serverPath, stdout=subprocess.DEVNULL, - stderr=subprocess.STDOUT, close_fds=True, start_new_session=True) + subprocess.Popen( + ["./meilisearch", "--no-analytics"], + cwd=serverPath, + stdout=subprocess.DEVNULL, + stderr=subprocess.STDOUT, + close_fds=True, + start_new_session=True, + ) diff --git a/continuedev/src/continuedev/server/session_manager.py b/continuedev/src/continuedev/server/session_manager.py index 88ac13f6..6f4e4a87 100644 --- a/continuedev/src/continuedev/server/session_manager.py +++ b/continuedev/src/continuedev/server/session_manager.py @@ -1,20 +1,23 @@ +import json import os import traceback -from fastapi import WebSocket, APIRouter from typing import Any, Coroutine, Dict, Optional, Union from uuid import uuid4 -import json +from fastapi import APIRouter, WebSocket from fastapi.websockets import WebSocketState -from ..plugins.steps.core.core import MessageStep -from ..libs.util.paths import getSessionFilePath, getSessionsFolderPath, getSessionsListFilePath -from ..core.main import FullState, HistoryNode, SessionInfo from ..core.autopilot import Autopilot -from .ide_protocol import AbstractIdeProtocolServer +from ..core.main import FullState from ..libs.util.create_async_task import create_async_task from ..libs.util.errors import SessionNotFound from ..libs.util.logging import logger +from ..libs.util.paths import ( + getSessionFilePath, + getSessionsFolderPath, + getSessionsListFilePath, +) +from .ide_protocol import AbstractIdeProtocolServer router = APIRouter(prefix="/sessions", tags=["sessions"]) @@ -42,14 +45,21 @@ class SessionManager: # And only if the IDE is still alive sessions_folder = getSessionsFolderPath() session_files = os.listdir(sessions_folder) - if f"{session_id}.json" in session_files and session_id in self.registered_ides: + if ( + f"{session_id}.json" in session_files + and session_id in self.registered_ides + ): if self.registered_ides[session_id].session_id is not None: - return await self.new_session(self.registered_ides[session_id], session_id=session_id) + return await self.new_session( + self.registered_ides[session_id], session_id=session_id + ) raise KeyError("Session ID not recognized", session_id) return self.sessions[session_id] - async def new_session(self, ide: AbstractIdeProtocolServer, session_id: Optional[str] = None) -> Session: + async def new_session( + self, ide: AbstractIdeProtocolServer, session_id: Optional[str] = None + ) -> Session: logger.debug(f"New session: {session_id}") # Load the persisted state (not being used right now) @@ -68,9 +78,9 @@ class SessionManager: # Set up the autopilot to update the GUI async def on_update(state: FullState): - await session_manager.send_ws_data(session_id, "state_update", { - "state": state.dict() - }) + await session_manager.send_ws_data( + session_id, "state_update", {"state": state.dict()} + ) autopilot.on_update(on_update) @@ -81,7 +91,7 @@ class SessionManager: await ide.on_error(e) def on_error(e: Exception) -> Coroutine: - err_msg = '\n'.join(traceback.format_exception(e)) + err_msg = "\n".join(traceback.format_exception(e)) return ide.showMessage(f"Error in Continue server: {err_msg}") create_async_task(autopilot.run_policy(), on_error) @@ -90,9 +100,15 @@ class SessionManager: async def remove_session(self, session_id: str): logger.debug(f"Removing session: {session_id}") if session_id in self.sessions: - if session_id in self.registered_ides and self.registered_ides[session_id] is not None: + if ( + session_id in self.registered_ides + and self.registered_ides[session_id] is not None + ): ws_to_close = self.registered_ides[session_id].websocket - if ws_to_close is not None and ws_to_close.client_state != WebSocketState.DISCONNECTED: + if ( + ws_to_close is not None + and ws_to_close.client_state != WebSocketState.DISCONNECTED + ): await self.sessions[session_id].autopilot.ide.websocket.close() del self.sessions[session_id] @@ -117,7 +133,9 @@ class SessionManager: with open(getSessionsListFilePath(), "w") as f: json.dump(sessions_list, f) - async def load_session(self, old_session_id: str, new_session_id: Optional[str] = None) -> str: + async def load_session( + self, old_session_id: str, new_session_id: Optional[str] = None + ) -> str: """Load the session's FullState from a json file""" # First persist the current state @@ -142,10 +160,9 @@ class SessionManager: # logger.debug(f"Session {session_id} has no websocket") return - await self.sessions[session_id].ws.send_json({ - "messageType": message_type, - "data": data - }) + await self.sessions[session_id].ws.send_json( + {"messageType": message_type, "data": data} + ) session_manager = SessionManager() |