1111
1212from db import init_db , list_analyses , delete_analysis
1313from analyzer import analyze_local_path_background , search_semantic , call_coding_model
14- from config import CFG # loads .env
14+ from config import CFG
1515from projects import (
1616 create_project , get_project , get_project_by_id , list_projects ,
1717 update_project_status , delete_project , get_or_create_project
2020 CreateProjectRequest , IndexProjectRequest ,
2121 QueryRequest
2222)
23+ from logger import get_logger
24+
25+ logger = get_logger (__name__ )
2326
2427DATABASE = CFG .get ("database_path" , "codebase.db" )
2528MAX_FILE_SIZE = int (CFG .get ("max_file_size" , 200000 ))
@@ -43,8 +46,6 @@ async def lifespan(app: FastAPI):
4346@app .post ("/api/projects" )
4447def api_create_project (request : CreateProjectRequest ):
4548 """Create or get a project with per-project database."""
46- import logging
47- logger = logging .getLogger (__name__ )
4849
4950 try :
5051 # Validate input
@@ -69,8 +70,6 @@ def api_create_project(request: CreateProjectRequest):
6970@app .get ("/api/projects" )
7071def api_list_projects ():
7172 """List all projects."""
72- import logging
73- logger = logging .getLogger (__name__ )
7473 try :
7574 projects = list_projects ()
7675 return JSONResponse (projects )
@@ -82,8 +81,6 @@ def api_list_projects():
8281@app .get ("/api/projects/{project_id}" )
8382def api_get_project (project_id : str ):
8483 """Get project details by ID."""
85- import logging
86- logger = logging .getLogger (__name__ )
8784 try :
8885 project = get_project_by_id (project_id )
8986 if not project :
@@ -97,8 +94,6 @@ def api_get_project(project_id: str):
9794@app .delete ("/api/projects/{project_id}" )
9895def api_delete_project (project_id : str ):
9996 """Delete a project and its database."""
100- import logging
101- logger = logging .getLogger (__name__ )
10297 try :
10398 delete_project (project_id )
10499 return JSONResponse ({"success" : True })
@@ -113,8 +108,6 @@ def api_delete_project(project_id: str):
113108@app .post ("/api/projects/index" )
114109def api_index_project (request : IndexProjectRequest , background_tasks : BackgroundTasks ):
115110 """Index/re-index a project in the background."""
116- import logging
117- logger = logging .getLogger (__name__ )
118111 try :
119112 project = get_project_by_id (request .project_id )
120113 if not project :
@@ -151,8 +144,6 @@ def index_callback():
151144@app .post ("/api/query" )
152145def api_query (request : QueryRequest ):
153146 """Query a project using semantic search (PyCharm-compatible)."""
154- import logging
155- logger = logging .getLogger (__name__ )
156147 try :
157148 project = get_project_by_id (request .project_id )
158149 if not project :
@@ -301,14 +292,5 @@ def code_endpoint(request: Request):
301292 return JSONResponse ({"response" : resp , "used_context" : used_context })
302293
303294
304- @app .post ("/analyses/{analysis_id}/delete" )
305- def delete_analysis_endpoint (analysis_id : int ):
306- try :
307- delete_analysis (DATABASE , analysis_id )
308- return JSONResponse ({"deleted" : True })
309- except Exception as e :
310- return JSONResponse ({"deleted" : False , "error" : str (e )}, status_code = 500 )
311-
312-
313295if __name__ == "__main__" :
314296 uvicorn .run ("main:app" , host = CFG .get ("uvicorn_host" , "127.0.0.1" ), port = int (CFG .get ("uvicorn_port" , 8000 )), reload = True )
0 commit comments