# Copyright (C) 2025 AIDC-AI # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ Async helper functions for web UI """ import asyncio import tomllib from pathlib import Path from loguru import logger def run_async(coro): """Run async coroutine in sync context""" return asyncio.run(coro) def get_project_version(): """Get project version from pyproject.toml""" try: # Get project root (web parent directory) web_dir = Path(__file__).resolve().parent.parent project_root = web_dir.parent pyproject_path = project_root / "pyproject.toml" if pyproject_path.exists(): with open(pyproject_path, "rb") as f: pyproject_data = tomllib.load(f) return pyproject_data.get("project", {}).get("version", "Unknown") except Exception as e: logger.warning(f"Failed to read version from pyproject.toml: {e}") return "Unknown"