class Demos:
    def __init__(self):
        from fastapi import FastAPI, HTTPException
        self.api = FastAPI
        self.exception = HTTPException
    def validate_apikey(self,api_key)->bool:
        __validation = True
        return __validation
    @staticmethod
    def obtener_texto(from_url:str=None,from_pdf:str=None)->str:
        """Obtiene texto a partir de una fuente de información: desde url o desde pdf.

        args:
            from_url        (str)   :   Url desde la que se desea obtener información.
            from_pdf        (str)   :   Pdf desde el que se desea obtener información.
        return:
            _texto          (str)   :   Texto extraído desde la fuente dada.
        """
        if from_url:
            _texto = str("URL")
        elif from_pdf:
            _texto = str("PDF")
        else:
            _texto = str("Ninguna opción seleccionada")
        return _texto
    @staticmethod
    def generar_bloques(texto:str=None,s:int=1500)->list:
        """Genera bloques de texto de longitud S, a partir de un texto plano.

        args:
            texto           (str)   :   Texto para generar bloques.
            s               (int)   :   Longitud de los bloques de texto, default 1500 caracteres.
        return:
            _bloques        (list)  :   Lista de bloques de textos de longitud s.
        """
        _bloques = list()
        return _bloques
    @staticmethod
    def traducir(texto:str=None, idioma:str="EN/ES")->str:
        """Genera una traducción del texto dado.

        args:
            texto           (str)   :   Texto para traducir
            idioma          (str)   :   Idioma, default "EN/ES"
        return:
            _traduccion     (str)   :   Traducción del texto
        """
        _traduccion = str()
        if "EN/ES" in idioma.upper():
            _traduccion = "input inglés, output español"
        elif "ES/EN" in idioma.upper():
            _traduccion = "input español, output inglés"
        elif "AR/ES" in idioma.upper():
            _traduccion = "input arabe, output español"
        else:
            _traduccion = "Idioma no válido"
        return _traduccion
    @staticmethod
    def resumir(texto:str=None)->str:
        """Genera un resumen del texto dado.

        args:
            texto           (str)   :   Texto para generar resumen
        return:
            _resumen        (str)   :   Resumen generado
        """
        _bloques = list()
        return _bloques
    @staticmethod
    def text_to_img(texto:str=None)->str:
        """Genera un BITARRAY de la imagen con el texto dado.

        args:
            texto           (str)   :   Texto para generar imagen
        return:
            _img            (str)   :   Imagen en BITARRAY
        """
        _img = str()
        return _img
    @staticmethod
    def text_to_video(texto:str=None)->str:
        """Genera un BITARRAY del video con el texto dado.

        args:
            texto           (str)   :   Texto para generar video
        return:
            _video          (str)   :   Video en BITARRAY
        """
        _video = str()
        return _video
    @staticmethod
    def text_to_speach(texto:str=None)->str:
        """Genera un BITARRAY del audio con el texto dado.

        args:
            texto           (str)   :   Texto para generar audio
        return:
            _speach         (str)   :   Audio en BITARRAY
        """
        _speach = str()
        return _speach
    @staticmethod
    def image_to_image(task:str="MSLD", image:str=None, mask:str=None,**kwargs)->str:
        """Genera una imagen a partir de una imagen

        args:
            task            (str)   :   Modelo a utilizar: MSLD, DEEP, SCRIBLE, etc..
            image           (str)   :   Input Image
            mask            (str)   :   Mask Image
            **kwargs        (str)   :   Argumentos adicionales: inference, strnght, guidance...
        return:
            _image          (str)   :   Imagen en BITARRAY
        """
        _image = str()
        return _image