Refactor imports to use absolute paths throughout project
Updated all relative imports to use absolute import paths for consistency and improved maintainability. Also replaced bare except clauses with 'except Exception' for better error handling, and made minor code cleanups such as removing unused variables and improving import order. No functional changes were made.
This commit is contained in:
parent
eaa56567ea
commit
a0a5cc4c60
38 changed files with 146 additions and 164 deletions
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
from services.conversation_persistence_service import conversation_persistence
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
# Import persistent storage
|
||||
from services.conversation_persistence_service import conversation_persistence
|
||||
|
||||
# In-memory storage for active conversation threads (preserves function calls)
|
||||
active_conversations = {}
|
||||
|
||||
|
|
@ -447,7 +444,7 @@ async def async_chat_stream(
|
|||
response_id = chunk_data["id"]
|
||||
elif "response_id" in chunk_data:
|
||||
response_id = chunk_data["response_id"]
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
yield chunk
|
||||
|
||||
|
|
@ -641,7 +638,7 @@ async def async_langflow_chat_stream(
|
|||
response_id = chunk_data["id"]
|
||||
elif "response_id" in chunk_data:
|
||||
response_id = chunk_data["response_id"]
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
yield chunk
|
||||
|
||||
|
|
|
|||
|
|
@ -378,7 +378,7 @@ async def cancel_knowledge_filter_subscription(
|
|||
return JSONResponse({"error": "Subscription not found"}, status_code=404)
|
||||
|
||||
# Delete the monitor
|
||||
monitor_result = await monitor_service.delete_monitor(
|
||||
await monitor_service.delete_monitor(
|
||||
subscription["monitor_id"], user.user_id, jwt_token
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from config.settings import DISABLE_INGEST_WITH_LANGFLOW
|
|||
from utils.logging_config import get_logger
|
||||
|
||||
# Import the actual endpoint implementations
|
||||
from .upload import upload as traditional_upload
|
||||
from api.upload import upload as traditional_upload
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ load_dotenv("../", override=False)
|
|||
logger = get_logger(__name__)
|
||||
|
||||
# Import configuration manager
|
||||
from .config_manager import config_manager
|
||||
from config.config_manager import config_manager
|
||||
|
||||
# Environment variables
|
||||
OPENSEARCH_HOST = os.getenv("OPENSEARCH_HOST", "localhost")
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from .base import BaseConnector
|
||||
from .google_drive import GoogleDriveConnector
|
||||
from .sharepoint import SharePointConnector
|
||||
from .onedrive import OneDriveConnector
|
||||
from connectors.base import BaseConnector
|
||||
from connectors.google_drive import GoogleDriveConnector
|
||||
from connectors.onedrive import OneDriveConnector
|
||||
from connectors.sharepoint import SharePointConnector
|
||||
|
||||
__all__ = [
|
||||
"BaseConnector",
|
||||
|
|
|
|||
|
|
@ -5,15 +5,15 @@ from typing import Dict, List, Any, Optional
|
|||
from datetime import datetime
|
||||
from dataclasses import dataclass, asdict
|
||||
from pathlib import Path
|
||||
|
||||
from connectors.base import BaseConnector
|
||||
from connectors.google_drive import GoogleDriveConnector
|
||||
from connectors.onedrive import OneDriveConnector
|
||||
from connectors.sharepoint import SharePointConnector
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
from .base import BaseConnector
|
||||
from .google_drive import GoogleDriveConnector
|
||||
from .sharepoint import SharePointConnector
|
||||
from .onedrive import OneDriveConnector
|
||||
|
||||
|
||||
@dataclass
|
||||
class ConnectionConfig:
|
||||
|
|
@ -290,7 +290,7 @@ class ConnectionManager:
|
|||
and connector.webhook_channel_id
|
||||
):
|
||||
await connector.cleanup_subscription(connector.webhook_channel_id)
|
||||
except:
|
||||
except Exception:
|
||||
pass # Best effort cleanup
|
||||
|
||||
del self.active_connectors[connection_id]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from .connector import GoogleDriveConnector
|
||||
from .oauth import GoogleDriveOAuth
|
||||
from connectors.google_drive.connector import GoogleDriveConnector
|
||||
from connectors.google_drive.oauth import GoogleDriveOAuth
|
||||
|
||||
__all__ = ["GoogleDriveConnector", "GoogleDriveOAuth"]
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ from googleapiclient.http import MediaIoBaseDownload
|
|||
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
from ..base import BaseConnector, ConnectorDocument, DocumentACL
|
||||
from .oauth import GoogleDriveOAuth
|
||||
from connectors.base import BaseConnector, ConnectorDocument, DocumentACL
|
||||
from connectors.google_drive.oauth import GoogleDriveOAuth
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ from models.processors import LangflowConnectorFileProcessor
|
|||
from services.langflow_file_service import LangflowFileService
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
from .base import BaseConnector, ConnectorDocument
|
||||
from .connection_manager import ConnectionManager
|
||||
from connectors.base import BaseConnector, ConnectorDocument
|
||||
from connectors.connection_manager import ConnectionManager
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from .connector import OneDriveConnector
|
||||
from .oauth import OneDriveOAuth
|
||||
from connectors.onedrive.connector import OneDriveConnector
|
||||
from connectors.onedrive.oauth import OneDriveOAuth
|
||||
|
||||
__all__ = ["OneDriveConnector", "OneDriveOAuth"]
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ from typing import List, Dict, Any, Optional
|
|||
from datetime import datetime
|
||||
import httpx
|
||||
|
||||
from ..base import BaseConnector, ConnectorDocument, DocumentACL
|
||||
from .oauth import OneDriveOAuth
|
||||
from connectors.base import BaseConnector, ConnectorDocument, DocumentACL
|
||||
from connectors.onedrive.oauth import OneDriveOAuth
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ from typing import Any, Dict, List, Optional
|
|||
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
from .base import BaseConnector, ConnectorDocument
|
||||
from .connection_manager import ConnectionManager
|
||||
from connectors.base import BaseConnector, ConnectorDocument
|
||||
from connectors.connection_manager import ConnectionManager
|
||||
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from .connector import SharePointConnector
|
||||
from .oauth import SharePointOAuth
|
||||
from connectors.sharepoint.connector import SharePointConnector
|
||||
from connectors.sharepoint.oauth import SharePointOAuth
|
||||
|
||||
__all__ = ["SharePointConnector", "SharePointOAuth"]
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ from urllib.parse import urlparse
|
|||
from datetime import datetime
|
||||
import httpx
|
||||
|
||||
from ..base import BaseConnector, ConnectorDocument, DocumentACL
|
||||
from .oauth import SharePointOAuth
|
||||
from connectors.base import BaseConnector, ConnectorDocument, DocumentACL
|
||||
from connectors.sharepoint.oauth import SharePointOAuth
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
|
|
|||
48
src/main.py
48
src/main.py
|
|
@ -1,15 +1,4 @@
|
|||
# Configure structured logging early
|
||||
from connectors.langflow_connector_service import LangflowConnectorService
|
||||
from connectors.service import ConnectorService
|
||||
from services.flows_service import FlowsService
|
||||
from utils.container_utils import detect_container_environment
|
||||
from utils.embeddings import create_dynamic_index_body
|
||||
from utils.logging_config import configure_from_env, get_logger
|
||||
from utils.telemetry import TelemetryClient, Category, MessageId
|
||||
|
||||
configure_from_env()
|
||||
logger = get_logger(__name__)
|
||||
|
||||
# Configure structured logging early - must happen before other imports
|
||||
import asyncio
|
||||
import atexit
|
||||
import multiprocessing
|
||||
|
|
@ -20,14 +9,6 @@ from functools import partial
|
|||
from starlette.applications import Starlette
|
||||
from starlette.routing import Route
|
||||
|
||||
# Set multiprocessing start method to 'spawn' for CUDA compatibility
|
||||
multiprocessing.set_start_method("spawn", force=True)
|
||||
|
||||
# Create process pool FIRST, before any torch/CUDA imports
|
||||
from utils.process_pool import process_pool # isort: skip
|
||||
import torch
|
||||
|
||||
# API endpoints
|
||||
from api import (
|
||||
auth,
|
||||
chat,
|
||||
|
|
@ -47,12 +28,8 @@ from api import (
|
|||
tasks,
|
||||
upload,
|
||||
)
|
||||
|
||||
# Existing services
|
||||
from api.connector_router import ConnectorRouter
|
||||
from auth_middleware import optional_auth, require_auth
|
||||
|
||||
# Configuration and setup
|
||||
from config.settings import (
|
||||
DISABLE_INGEST_WITH_LANGFLOW,
|
||||
INDEX_BODY,
|
||||
|
|
@ -63,22 +40,33 @@ from config.settings import (
|
|||
is_no_auth_mode,
|
||||
get_openrag_config,
|
||||
)
|
||||
from connectors.langflow_connector_service import LangflowConnectorService
|
||||
from connectors.service import ConnectorService
|
||||
from services.auth_service import AuthService
|
||||
from services.langflow_mcp_service import LangflowMCPService
|
||||
from services.chat_service import ChatService
|
||||
|
||||
# Services
|
||||
from services.document_service import DocumentService
|
||||
from services.flows_service import FlowsService
|
||||
from services.knowledge_filter_service import KnowledgeFilterService
|
||||
|
||||
# Configuration and setup
|
||||
# Services
|
||||
from services.langflow_file_service import LangflowFileService
|
||||
from services.langflow_mcp_service import LangflowMCPService
|
||||
from services.models_service import ModelsService
|
||||
from services.monitor_service import MonitorService
|
||||
from services.search_service import SearchService
|
||||
from services.task_service import TaskService
|
||||
from session_manager import SessionManager
|
||||
from utils.container_utils import detect_container_environment
|
||||
from utils.embeddings import create_dynamic_index_body
|
||||
from utils.logging_config import configure_from_env, get_logger
|
||||
from utils.process_pool import process_pool
|
||||
from utils.telemetry import TelemetryClient, Category, MessageId
|
||||
|
||||
import torch
|
||||
|
||||
configure_from_env()
|
||||
logger = get_logger(__name__)
|
||||
|
||||
# Set multiprocessing start method to 'spawn' for CUDA compatibility
|
||||
multiprocessing.set_start_method("spawn", force=True)
|
||||
|
||||
logger.info(
|
||||
"CUDA device information",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from typing import Any
|
||||
from .tasks import UploadTask, FileTask
|
||||
|
||||
from models.tasks import UploadTask, FileTask
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
import os
|
||||
from docling_core.types.io import DocumentStream
|
||||
from typing import List
|
||||
import tiktoken
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
import tiktoken
|
||||
from docling_core.types.io import DocumentStream
|
||||
|
||||
from config.settings import clients, INDEX_NAME, get_embedding_model
|
||||
from utils.document_processing import extract_relevant
|
||||
from utils.logging_config import get_logger
|
||||
from utils.telemetry import TelemetryClient, Category, MessageId
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
def get_token_count(text: str, model: str = None) -> int:
|
||||
"""Get accurate token count using tiktoken"""
|
||||
|
|
|
|||
|
|
@ -404,7 +404,7 @@ class FlowsService:
|
|||
)
|
||||
|
||||
if response.status_code == 200:
|
||||
result = response.json()
|
||||
response.json()
|
||||
logger.info(
|
||||
f"Successfully reset {flow_type} flow",
|
||||
flow_id=flow_id,
|
||||
|
|
@ -427,7 +427,7 @@ class FlowsService:
|
|||
|
||||
# Get provider-specific endpoint if needed
|
||||
llm_provider_config = config.get_llm_provider_config()
|
||||
endpoint = getattr(llm_provider_config, "endpoint", None)
|
||||
_ = getattr(llm_provider_config, "endpoint", None)
|
||||
|
||||
# Step 2: Update model values for the specific flow being reset
|
||||
single_flow_config = [
|
||||
|
|
|
|||
|
|
@ -4,9 +4,6 @@ from datetime import datetime, timedelta
|
|||
from typing import Dict, Optional, Any
|
||||
from dataclasses import dataclass
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"""OpenRAG Terminal User Interface package."""
|
||||
|
||||
from .utils.version_check import get_current_version
|
||||
from tui.utils.version_check import get_current_version
|
||||
|
||||
__version__ = get_current_version()
|
||||
|
|
|
|||
|
|
@ -3,22 +3,23 @@
|
|||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Iterable, Optional
|
||||
|
||||
from textual.app import App
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
try:
|
||||
from importlib.resources import files
|
||||
except ImportError:
|
||||
from importlib_resources import files
|
||||
|
||||
logger = get_logger(__name__)
|
||||
from tui.managers.container_manager import ContainerManager
|
||||
from tui.managers.docling_manager import DoclingManager
|
||||
from tui.managers.env_manager import EnvManager
|
||||
from tui.screens.welcome import WelcomeScreen
|
||||
from tui.utils.platform import PlatformDetector
|
||||
from tui.widgets.diagnostics_notification import notify_with_diagnostics
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
from .screens.welcome import WelcomeScreen
|
||||
from .managers.env_manager import EnvManager
|
||||
from .managers.container_manager import ContainerManager
|
||||
from .managers.docling_manager import DoclingManager
|
||||
from .utils.platform import PlatformDetector
|
||||
from .widgets.diagnostics_notification import notify_with_diagnostics
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class OpenRAGTUI(App):
|
||||
|
|
@ -392,7 +393,7 @@ class OpenRAGTUI(App):
|
|||
)
|
||||
|
||||
# Load existing config if available
|
||||
config_exists = self.env_manager.load_existing_env()
|
||||
self.env_manager.load_existing_env()
|
||||
|
||||
# Start with welcome screen
|
||||
self.push_screen(WelcomeScreen())
|
||||
|
|
@ -526,7 +527,7 @@ def copy_compose_files(*, force: bool = False) -> None:
|
|||
def run_tui():
|
||||
"""Run the OpenRAG TUI application."""
|
||||
# Check for native Windows before launching TUI
|
||||
from .utils.platform import PlatformDetector
|
||||
from tui.utils.platform import PlatformDetector
|
||||
|
||||
platform_detector = PlatformDetector()
|
||||
|
||||
|
|
|
|||
|
|
@ -7,17 +7,17 @@ from dataclasses import dataclass, field
|
|||
from enum import Enum
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Optional, AsyncIterator
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
try:
|
||||
from importlib.resources import files
|
||||
except ImportError:
|
||||
from importlib_resources import files
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
from ..utils.platform import PlatformDetector, RuntimeInfo, RuntimeType
|
||||
from tui.utils.platform import PlatformDetector, RuntimeInfo, RuntimeType
|
||||
from utils.gpu_detection import detect_gpu_devices
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class ServiceStatus(Enum):
|
||||
|
|
@ -572,7 +572,7 @@ class ContainerManager:
|
|||
Tuple of (has_mismatch, container_version, tui_version)
|
||||
"""
|
||||
try:
|
||||
from ..utils.version_check import get_current_version
|
||||
from tui.utils.version_check import get_current_version
|
||||
|
||||
tui_version = get_current_version()
|
||||
if tui_version == "unknown":
|
||||
|
|
@ -585,7 +585,7 @@ class ContainerManager:
|
|||
return False, None, tui_version
|
||||
|
||||
# Compare versions
|
||||
from ..utils.version_check import compare_versions
|
||||
from tui.utils.version_check import compare_versions
|
||||
|
||||
comparison = compare_versions(container_version, tui_version)
|
||||
has_mismatch = comparison != 0
|
||||
|
|
@ -891,7 +891,7 @@ class ContainerManager:
|
|||
|
||||
# Ensure OPENRAG_VERSION is set in .env file
|
||||
try:
|
||||
from ..managers.env_manager import EnvManager
|
||||
from tui.managers.env_manager import EnvManager
|
||||
|
||||
env_manager = EnvManager()
|
||||
env_manager.ensure_openrag_version()
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ class DoclingManager:
|
|||
# Service is now running, clear starting flag
|
||||
self._starting = False
|
||||
break
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
self._add_log_entry(f"Waiting for startup... ({i + 1}/10)")
|
||||
|
|
@ -555,7 +555,7 @@ class DoclingManager:
|
|||
"""Follow logs from the docling-serve process in real-time."""
|
||||
# First yield status message and any existing logs
|
||||
display_host = "localhost" if self._host == "0.0.0.0" else self._host
|
||||
status_msg = f"Docling serve is running on http://{display_host}:{self._port}"
|
||||
_ = f"Docling serve is running on http://{display_host}:{self._port}"
|
||||
|
||||
with self._log_lock:
|
||||
if self._log_buffer:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
"""Environment configuration manager for OpenRAG TUI."""
|
||||
|
||||
import os
|
||||
import secrets
|
||||
import string
|
||||
from dataclasses import dataclass, field
|
||||
|
|
@ -7,11 +8,7 @@ from datetime import datetime
|
|||
from pathlib import Path
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
from ..utils.validation import (
|
||||
from tui.utils.validation import (
|
||||
sanitize_env_value,
|
||||
validate_documents_paths,
|
||||
validate_google_oauth_client_id,
|
||||
|
|
@ -19,6 +16,9 @@ from ..utils.validation import (
|
|||
validate_openai_api_key,
|
||||
validate_url,
|
||||
)
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
@ -201,7 +201,7 @@ class EnvManager:
|
|||
# Set OPENRAG_VERSION to TUI version if not already set
|
||||
if not self.config.openrag_version:
|
||||
try:
|
||||
from ..utils.version_check import get_current_version
|
||||
from tui.utils.version_check import get_current_version
|
||||
|
||||
current_version = get_current_version()
|
||||
if current_version != "unknown":
|
||||
|
|
@ -241,7 +241,7 @@ class EnvManager:
|
|||
)
|
||||
|
||||
# Import validation functions for new provider fields
|
||||
from ..utils.validation import validate_anthropic_api_key
|
||||
from tui.utils.validation import validate_anthropic_api_key
|
||||
|
||||
# Validate Anthropic API key format if provided
|
||||
if self.config.anthropic_api_key:
|
||||
|
|
@ -382,7 +382,7 @@ class EnvManager:
|
|||
else:
|
||||
# Fallback: try to get current version
|
||||
try:
|
||||
from ..utils.version_check import get_current_version
|
||||
from tui.utils.version_check import get_current_version
|
||||
|
||||
current_version = get_current_version()
|
||||
if current_version != "unknown":
|
||||
|
|
@ -578,7 +578,7 @@ class EnvManager:
|
|||
def ensure_openrag_version(self) -> None:
|
||||
"""Ensure OPENRAG_VERSION is set in .env file to match TUI version."""
|
||||
try:
|
||||
from ..utils.version_check import get_current_version
|
||||
from tui.utils.version_check import get_current_version
|
||||
|
||||
current_version = get_current_version()
|
||||
if current_version == "unknown":
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ from textual.validation import ValidationResult, Validator
|
|||
from rich.text import Text
|
||||
from pathlib import Path
|
||||
|
||||
from ..managers.env_manager import EnvManager
|
||||
from ..utils.validation import (
|
||||
from tui.managers.env_manager import EnvManager
|
||||
from tui.utils.validation import (
|
||||
validate_openai_api_key,
|
||||
validate_anthropic_api_key,
|
||||
validate_ollama_endpoint,
|
||||
|
|
@ -235,9 +235,6 @@ class ConfigScreen(Screen):
|
|||
yield Static(" ")
|
||||
|
||||
# Langflow Admin Username - conditionally displayed based on password
|
||||
current_password = getattr(
|
||||
self.env_manager.config, "langflow_superuser_password", ""
|
||||
)
|
||||
yield Label("Langflow Admin Username *", id="langflow-username-label")
|
||||
current_value = getattr(self.env_manager.config, "langflow_superuser", "")
|
||||
input_widget = Input(
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ from textual.screen import Screen
|
|||
from textual.widgets import Header, Footer, Static, Button, Log
|
||||
from rich.text import Text
|
||||
|
||||
from ..managers.container_manager import ContainerManager
|
||||
from ..utils.clipboard import copy_text_to_clipboard
|
||||
from ..utils.platform import PlatformDetector
|
||||
from tui.managers.container_manager import ContainerManager
|
||||
from tui.utils.clipboard import copy_text_to_clipboard
|
||||
from tui.utils.platform import PlatformDetector
|
||||
|
||||
|
||||
class DiagnosticsScreen(Screen):
|
||||
|
|
@ -435,7 +435,7 @@ class DiagnosticsScreen(Screen):
|
|||
log.write(
|
||||
f" OpenSearch version: {info['version']['number']}"
|
||||
)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
log.write(
|
||||
|
|
@ -483,7 +483,7 @@ class DiagnosticsScreen(Screen):
|
|||
if "tenants" in user_info:
|
||||
tenants = list(user_info["tenants"].keys())
|
||||
log.write(f" Tenants: {', '.join(tenants)}")
|
||||
except:
|
||||
except Exception:
|
||||
log.write(" Account info retrieved but couldn't parse JSON")
|
||||
else:
|
||||
log.write(
|
||||
|
|
@ -527,7 +527,7 @@ class DiagnosticsScreen(Screen):
|
|||
if admin_user.get("reserved"):
|
||||
log.write(" Admin user is reserved (protected)")
|
||||
log.write(f" Total internal users: {len(users)}")
|
||||
except:
|
||||
except Exception:
|
||||
log.write("[green]✓ Internal users endpoint accessible[/green]")
|
||||
else:
|
||||
log.write(
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ from textual.screen import Screen
|
|||
from textual.widgets import Footer, Static, Button, TextArea
|
||||
from rich.text import Text
|
||||
|
||||
from ..managers.container_manager import ContainerManager
|
||||
from ..managers.docling_manager import DoclingManager
|
||||
from ..utils.clipboard import copy_text_to_clipboard
|
||||
from tui.managers.container_manager import ContainerManager
|
||||
from tui.managers.docling_manager import DoclingManager
|
||||
from tui.utils.clipboard import copy_text_to_clipboard
|
||||
|
||||
|
||||
class LogsScreen(Screen):
|
||||
|
|
|
|||
|
|
@ -6,24 +6,24 @@ import shutil
|
|||
from pathlib import Path
|
||||
from typing import Literal, Optional, AsyncIterator
|
||||
|
||||
# Define button variant type
|
||||
ButtonVariant = Literal["default", "primary", "success", "warning", "error"]
|
||||
|
||||
from rich.text import Text
|
||||
from textual.app import ComposeResult
|
||||
from textual.containers import Horizontal, ScrollableContainer
|
||||
from textual.screen import Screen
|
||||
from textual.widgets import Footer, Static, Button, DataTable
|
||||
from rich.text import Text
|
||||
|
||||
from ..managers.container_manager import ContainerManager, ServiceStatus, ServiceInfo
|
||||
from ..managers.docling_manager import DoclingManager
|
||||
from ..utils.platform import RuntimeType
|
||||
from ..widgets.command_modal import CommandOutputModal
|
||||
from ..widgets.flow_backup_warning_modal import FlowBackupWarningModal
|
||||
from ..widgets.factory_reset_warning_modal import FactoryResetWarningModal
|
||||
from ..widgets.version_mismatch_warning_modal import VersionMismatchWarningModal
|
||||
from ..widgets.upgrade_instructions_modal import UpgradeInstructionsModal
|
||||
from ..widgets.diagnostics_notification import notify_with_diagnostics
|
||||
from tui.managers.container_manager import ContainerManager, ServiceStatus, ServiceInfo
|
||||
from tui.managers.docling_manager import DoclingManager
|
||||
from tui.utils.platform import RuntimeType
|
||||
from tui.widgets.command_modal import CommandOutputModal
|
||||
from tui.widgets.diagnostics_notification import notify_with_diagnostics
|
||||
from tui.widgets.factory_reset_warning_modal import FactoryResetWarningModal
|
||||
from tui.widgets.flow_backup_warning_modal import FlowBackupWarningModal
|
||||
from tui.widgets.upgrade_instructions_modal import UpgradeInstructionsModal
|
||||
from tui.widgets.version_mismatch_warning_modal import VersionMismatchWarningModal
|
||||
|
||||
# Define button variant type
|
||||
ButtonVariant = Literal["default", "primary", "success", "warning", "error"]
|
||||
|
||||
|
||||
class MonitorScreen(Screen):
|
||||
|
|
@ -280,7 +280,6 @@ class MonitorScreen(Screen):
|
|||
def on_button_pressed(self, event: Button.Pressed) -> None:
|
||||
"""Handle button presses."""
|
||||
button_id = event.button.id or ""
|
||||
button_label = event.button.label or ""
|
||||
|
||||
# Use button ID prefixes to determine action, ignoring any random suffix
|
||||
if button_id.startswith("start-btn"):
|
||||
|
|
@ -369,7 +368,7 @@ class MonitorScreen(Screen):
|
|||
# Ensure OPENRAG_VERSION is set in .env BEFORE starting services
|
||||
# This ensures docker compose reads the correct version
|
||||
try:
|
||||
from ..managers.env_manager import EnvManager
|
||||
from tui.managers.env_manager import EnvManager
|
||||
|
||||
env_manager = EnvManager()
|
||||
env_manager.ensure_openrag_version()
|
||||
|
|
@ -430,7 +429,7 @@ class MonitorScreen(Screen):
|
|||
"""Check TUI version and show upgrade instructions."""
|
||||
self.operation_in_progress = True
|
||||
try:
|
||||
from ..utils.version_check import check_if_latest
|
||||
from tui.utils.version_check import check_if_latest
|
||||
|
||||
# Check if current version is latest
|
||||
is_latest, latest_version, current_version = await check_if_latest()
|
||||
|
|
@ -646,7 +645,7 @@ class MonitorScreen(Screen):
|
|||
|
||||
def _view_docling_logs(self) -> None:
|
||||
"""View docling serve logs."""
|
||||
from .logs import LogsScreen
|
||||
from tui.screens.logs import LogsScreen
|
||||
|
||||
self.app.push_screen(LogsScreen(initial_service="docling-serve"))
|
||||
|
||||
|
|
@ -931,7 +930,7 @@ class MonitorScreen(Screen):
|
|||
selected_service = self._get_selected_service()
|
||||
if selected_service:
|
||||
# Push the logs screen with the selected service
|
||||
from .logs import LogsScreen
|
||||
from tui.screens.logs import LogsScreen
|
||||
|
||||
logs_screen = LogsScreen(initial_service=selected_service)
|
||||
self.app.push_screen(logs_screen)
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@ from textual.widgets import Footer, Static, Button
|
|||
from rich.text import Text
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from .. import __version__
|
||||
from ..managers.container_manager import ContainerManager, ServiceStatus
|
||||
from ..managers.env_manager import EnvManager
|
||||
from ..managers.docling_manager import DoclingManager
|
||||
from ..widgets.command_modal import CommandOutputModal
|
||||
from ..widgets.version_mismatch_warning_modal import VersionMismatchWarningModal
|
||||
from tui import __version__
|
||||
from tui.managers.container_manager import ContainerManager, ServiceStatus
|
||||
from tui.managers.docling_manager import DoclingManager
|
||||
from tui.managers.env_manager import EnvManager
|
||||
from tui.widgets.command_modal import CommandOutputModal
|
||||
from tui.widgets.version_mismatch_warning_modal import VersionMismatchWarningModal
|
||||
|
||||
|
||||
class WelcomeScreen(Screen):
|
||||
|
|
@ -280,7 +280,7 @@ class WelcomeScreen(Screen):
|
|||
try:
|
||||
welcome_widget = self.query_one("#welcome-text")
|
||||
welcome_widget.update(self._create_welcome_text())
|
||||
except:
|
||||
except Exception:
|
||||
pass # Widget might not be mounted yet
|
||||
|
||||
# Focus the appropriate button (the buttons are created correctly in compose,
|
||||
|
|
@ -296,7 +296,7 @@ class WelcomeScreen(Screen):
|
|||
self.query_one("#advanced-setup-btn").focus()
|
||||
else:
|
||||
self.query_one("#basic-setup-btn").focus()
|
||||
except:
|
||||
except Exception:
|
||||
pass # Button might not exist
|
||||
|
||||
async def on_screen_resume(self) -> None:
|
||||
|
|
@ -346,25 +346,25 @@ class WelcomeScreen(Screen):
|
|||
|
||||
def action_no_auth_setup(self) -> None:
|
||||
"""Switch to basic configuration screen."""
|
||||
from .config import ConfigScreen
|
||||
from tui.screens.config import ConfigScreen
|
||||
|
||||
self.app.push_screen(ConfigScreen(mode="no_auth"))
|
||||
|
||||
def action_full_setup(self) -> None:
|
||||
"""Switch to advanced configuration screen."""
|
||||
from .config import ConfigScreen
|
||||
from tui.screens.config import ConfigScreen
|
||||
|
||||
self.app.push_screen(ConfigScreen(mode="full"))
|
||||
|
||||
def action_monitor(self) -> None:
|
||||
"""Switch to monitoring screen."""
|
||||
from .monitor import MonitorScreen
|
||||
from tui.screens.monitor import MonitorScreen
|
||||
|
||||
self.app.push_screen(MonitorScreen())
|
||||
|
||||
def action_diagnostics(self) -> None:
|
||||
"""Switch to diagnostics screen."""
|
||||
from .diagnostics import DiagnosticsScreen
|
||||
from tui.screens.diagnostics import DiagnosticsScreen
|
||||
|
||||
self.app.push_screen(DiagnosticsScreen())
|
||||
|
||||
|
|
@ -471,7 +471,7 @@ class WelcomeScreen(Screen):
|
|||
# Ensure OPENRAG_VERSION is set in .env BEFORE starting services
|
||||
# This ensures docker compose reads the correct version
|
||||
try:
|
||||
from ..managers.env_manager import EnvManager
|
||||
from tui.managers.env_manager import EnvManager
|
||||
|
||||
env_manager = EnvManager()
|
||||
env_manager.ensure_openrag_version()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
"""Widgets for OpenRAG TUI."""
|
||||
|
||||
from .flow_backup_warning_modal import FlowBackupWarningModal
|
||||
from tui.widgets.flow_backup_warning_modal import FlowBackupWarningModal
|
||||
|
||||
__all__ = ["FlowBackupWarningModal"]
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ from textual.containers import Container
|
|||
from textual.screen import ModalScreen
|
||||
from textual.widgets import Button, Static, Label, TextArea, Footer
|
||||
|
||||
from ..utils.clipboard import copy_text_to_clipboard
|
||||
from .waves import Waves
|
||||
from tui.utils.clipboard import copy_text_to_clipboard
|
||||
from tui.widgets.waves import Waves
|
||||
|
||||
|
||||
class CommandOutputModal(ModalScreen):
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ def notify_with_diagnostics(
|
|||
|
||||
# Then add a button to open diagnostics screen
|
||||
def open_diagnostics() -> None:
|
||||
from ..screens.diagnostics import DiagnosticsScreen
|
||||
from tui.screens.diagnostics import DiagnosticsScreen
|
||||
|
||||
app.push_screen(DiagnosticsScreen())
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ def notify_with_diagnostics(
|
|||
|
||||
# Then add a button to open diagnostics screen
|
||||
def open_diagnostics() -> None:
|
||||
from ..screens.diagnostics import DiagnosticsScreen
|
||||
from tui.screens.diagnostics import DiagnosticsScreen
|
||||
|
||||
app.push_screen(DiagnosticsScreen())
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import os
|
||||
import sys
|
||||
from collections import defaultdict
|
||||
from .gpu_detection import detect_gpu_devices
|
||||
|
||||
from utils.gpu_detection import detect_gpu_devices
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
|
@ -360,7 +361,7 @@ def process_document_sync(file_path: str):
|
|||
system=f"{platform.system()} {platform.release()}",
|
||||
architecture=platform.machine(),
|
||||
)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Re-raise to trigger BrokenProcessPool in main process
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ def configure_logging(
|
|||
pathname = event_dict.pop("pathname", "")
|
||||
filename = event_dict.pop("filename", "")
|
||||
lineno = event_dict.pop("lineno", "")
|
||||
level = event_dict.pop("level", "")
|
||||
_ = event_dict.pop("level", "")
|
||||
|
||||
# Build file location - prefer pathname for full path, fallback to filename
|
||||
if pathname and lineno:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"""Telemetry module for OpenRAG backend."""
|
||||
|
||||
from .client import TelemetryClient
|
||||
from .category import Category
|
||||
from .message_id import MessageId
|
||||
from utils.telemetry.category import Category
|
||||
from utils.telemetry.client import TelemetryClient
|
||||
from utils.telemetry.message_id import MessageId
|
||||
|
||||
__all__ = ["TelemetryClient", "Category", "MessageId"]
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@ load_dotenv()
|
|||
os.environ["GOOGLE_OAUTH_CLIENT_ID"] = ""
|
||||
os.environ["GOOGLE_OAUTH_CLIENT_SECRET"] = ""
|
||||
|
||||
from src.config.settings import clients
|
||||
from src.session_manager import SessionManager
|
||||
from src.main import generate_jwt_keys
|
||||
from src.config.settings import clients # noqa: E402
|
||||
from src.session_manager import SessionManager # noqa: E402
|
||||
from src.main import generate_jwt_keys # noqa: E402
|
||||
|
||||
|
||||
@pytest_asyncio.fixture(scope="session", autouse=True)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ src_path = os.path.join(repo_root, "src")
|
|||
if src_path not in sys.path:
|
||||
sys.path.insert(0, src_path)
|
||||
|
||||
from utils.document_processing import create_document_converter
|
||||
from utils.document_processing import create_document_converter # noqa: E402
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue