from typing import List from rest.request import RequestData from decorators import track_altair_license, altair_ready from typing import Union import settings from core import config import time import logging logger = logging.getLogger("ingp") READY = False from avh_align import * def load(folder_name='model'): global READY try: logger.debug(f"APP_LANG: {settings.APP_LANG}") logger.info("### loading models ") load_models(folder_name) logger.info('### models loaded! System ready') except Exception as e: logger.error(f"Error loading models: {e}") READY = False def unload(folder_name=None): global READY READY = False @altair_ready() def ready(): return READY @track_altair_license(use_logger=logger) def process(data: Union[List[RequestData], RequestData]): if type(data) is list: return [process_audio_video(elm.content) for elm in data] return process_audio_video(data.content) @track_altair_license(use_logger=logger) def process_file(files: List[bytes], lang: List[str]): out = [] for file in files: try: out.append(process_audio_video(file.decode())) except UnicodeDecodeError: out.append({'error': 'File type not supported'}) return out def reverse(t: str): time.sleep(config.CORE_SLEEP) return {'reversed': t[::-1]}