mirror of
https://github.com/ParisNeo/lollms.git
synced 2025-01-31 08:25:23 +00:00
Upgraded core
This commit is contained in:
parent
3a51e57063
commit
54591d660a
@ -4,8 +4,8 @@ from lollms.personality import PersonalityBuilder
|
|||||||
from lollms.binding import LLMBinding, BindingBuilder, ModelBuilder
|
from lollms.binding import LLMBinding, BindingBuilder, ModelBuilder
|
||||||
from lollms.extension import LOLLMSExtension, ExtensionBuilder
|
from lollms.extension import LOLLMSExtension, ExtensionBuilder
|
||||||
from lollms.config import InstallOption
|
from lollms.config import InstallOption
|
||||||
from lollms.helpers import NotificationType
|
from lollms.helpers import ASCIIColors, trace_exception
|
||||||
from lollms.helpers import ASCIIColors, trace_exception, NotificationType, NotificationDisplayType
|
from lollms.com import NotificationType, NotificationDisplayType, LoLLMsCom
|
||||||
from lollms.terminal import MainMenu
|
from lollms.terminal import MainMenu
|
||||||
from lollms.utilities import PromptReshaper
|
from lollms.utilities import PromptReshaper
|
||||||
from safe_store import TextVectorizer, VectorizationMethod, VisualizationMethod
|
from safe_store import TextVectorizer, VectorizationMethod, VisualizationMethod
|
||||||
@ -18,7 +18,7 @@ import importlib
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
class LollmsApplication:
|
class LollmsApplication(LoLLMsCom):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
app_name:str,
|
app_name:str,
|
||||||
|
@ -21,7 +21,7 @@ import importlib
|
|||||||
import subprocess
|
import subprocess
|
||||||
from lollms.config import TypedConfig, InstallOption
|
from lollms.config import TypedConfig, InstallOption
|
||||||
from lollms.main_config import LOLLMSConfig
|
from lollms.main_config import LOLLMSConfig
|
||||||
from lollms.helpers import NotificationType, NotificationDisplayType
|
from lollms.com import NotificationType, NotificationDisplayType, LoLLMsCom
|
||||||
import urllib
|
import urllib
|
||||||
import inspect
|
import inspect
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
@ -57,7 +57,7 @@ class LLMBinding:
|
|||||||
supported_file_extensions='*.bin',
|
supported_file_extensions='*.bin',
|
||||||
binding_type:BindingType=BindingType.TEXT_ONLY,
|
binding_type:BindingType=BindingType.TEXT_ONLY,
|
||||||
models_dir_names:list=None,
|
models_dir_names:list=None,
|
||||||
app:Callable=None
|
lollmsCom:LoLLMsCom=None
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
||||||
self.binding_type = binding_type
|
self.binding_type = binding_type
|
||||||
@ -68,6 +68,8 @@ class LLMBinding:
|
|||||||
self.config = config
|
self.config = config
|
||||||
self.binding_config = binding_config
|
self.binding_config = binding_config
|
||||||
|
|
||||||
|
self.lollmsCom = lollmsCom
|
||||||
|
|
||||||
|
|
||||||
binding_config.addConfigs([
|
binding_config.addConfigs([
|
||||||
{"name":"clip_model_name","type":"str","value":'ViT-L-14/openai','options':["ViT-L-14/openai","ViT-H-14/laion2b_s32b_b79k"], "help":"Clip model to be used for images understanding"},
|
{"name":"clip_model_name","type":"str","value":'ViT-L-14/openai','options':["ViT-L-14/openai","ViT-H-14/laion2b_s32b_b79k"], "help":"Clip model to be used for images understanding"},
|
||||||
@ -76,50 +78,8 @@ class LLMBinding:
|
|||||||
|
|
||||||
])
|
])
|
||||||
self.interrogatorStorer = None
|
self.interrogatorStorer = None
|
||||||
|
self.supported_file_extensions = supported_file_extensions
|
||||||
|
self.seed = config["seed"]
|
||||||
self.supported_file_extensions = supported_file_extensions
|
|
||||||
self.seed = config["seed"]
|
|
||||||
|
|
||||||
if app is not None:
|
|
||||||
self.error:Callable = app.error
|
|
||||||
self.info:Callable = app.info
|
|
||||||
self.success:Callable = app.success
|
|
||||||
self.warning:Callable = app.warning
|
|
||||||
self.notify:Callable = app.notify
|
|
||||||
self.InfoMessage:Callable = app.InfoMessage
|
|
||||||
else:
|
|
||||||
def InfoMessage(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.white(content)
|
|
||||||
|
|
||||||
def info(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.info(content)
|
|
||||||
|
|
||||||
def warning(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.warning(content)
|
|
||||||
|
|
||||||
def success(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.success(content)
|
|
||||||
|
|
||||||
def error(content, duration:int=4, client_id=None):
|
|
||||||
ASCIIColors.error(content)
|
|
||||||
|
|
||||||
def notify(
|
|
||||||
content,
|
|
||||||
notification_type:NotificationType=NotificationType.NOTIF_SUCCESS,
|
|
||||||
duration:int=4,
|
|
||||||
client_id=None,
|
|
||||||
display_type:NotificationDisplayType=NotificationDisplayType.TOAST,
|
|
||||||
verbose=True
|
|
||||||
):
|
|
||||||
ASCIIColors.white(content)
|
|
||||||
|
|
||||||
self.error:Callable = error
|
|
||||||
self.info:Callable = info
|
|
||||||
self.success:Callable = success
|
|
||||||
self.warning:Callable = warning
|
|
||||||
self.notify:Callable = notify
|
|
||||||
self.InfoMessage:Callable = InfoMessage
|
|
||||||
|
|
||||||
self.configuration_file_path = lollms_paths.personal_configuration_path/"bindings"/self.binding_folder_name/f"config.yaml"
|
self.configuration_file_path = lollms_paths.personal_configuration_path/"bindings"/self.binding_folder_name/f"config.yaml"
|
||||||
self.configuration_file_path.parent.mkdir(parents=True, exist_ok=True)
|
self.configuration_file_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
@ -143,6 +103,46 @@ class LLMBinding:
|
|||||||
for models_folder in self.models_folders:
|
for models_folder in self.models_folders:
|
||||||
models_folder.mkdir(parents=True, exist_ok=True)
|
models_folder.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def InfoMessage(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.lollmsCom:
|
||||||
|
return self.lollmsCom.InfoMessage(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.white(content)
|
||||||
|
|
||||||
|
def info(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.lollmsCom:
|
||||||
|
return self.lollmsCom.info(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.info(content)
|
||||||
|
|
||||||
|
def warning(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.lollmsCom:
|
||||||
|
return self.lollmsCom.warning(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.warning(content)
|
||||||
|
|
||||||
|
def success(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.lollmsCom:
|
||||||
|
return self.lollmsCom.success(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.success(content)
|
||||||
|
|
||||||
|
def error(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.lollmsCom:
|
||||||
|
return self.lollmsCom.error(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.error(content)
|
||||||
|
|
||||||
|
def notify( self,
|
||||||
|
content,
|
||||||
|
notification_type:NotificationType=NotificationType.NOTIF_SUCCESS,
|
||||||
|
duration:int=4,
|
||||||
|
client_id=None,
|
||||||
|
display_type:NotificationDisplayType=NotificationDisplayType.TOAST,
|
||||||
|
verbose=True
|
||||||
|
):
|
||||||
|
if self.lollmsCom:
|
||||||
|
return self.lollmsCom.error(content=content, notification_type=notification_type, duration=duration, client_id=client_id, display_type=display_type, verbose=verbose)
|
||||||
|
ASCIIColors.white(content)
|
||||||
|
|
||||||
|
|
||||||
def settings_updated(self):
|
def settings_updated(self):
|
||||||
"""
|
"""
|
||||||
To be implemented by the bindings
|
To be implemented by the bindings
|
||||||
@ -545,7 +545,7 @@ class BindingBuilder:
|
|||||||
config: LOLLMSConfig,
|
config: LOLLMSConfig,
|
||||||
lollms_paths:LollmsPaths,
|
lollms_paths:LollmsPaths,
|
||||||
installation_option:InstallOption=InstallOption.INSTALL_IF_NECESSARY,
|
installation_option:InstallOption=InstallOption.INSTALL_IF_NECESSARY,
|
||||||
app=None
|
lollmsCom=None
|
||||||
)->LLMBinding:
|
)->LLMBinding:
|
||||||
|
|
||||||
binding:LLMBinding = self.getBinding(config, lollms_paths, installation_option)
|
binding:LLMBinding = self.getBinding(config, lollms_paths, installation_option)
|
||||||
@ -553,7 +553,7 @@ class BindingBuilder:
|
|||||||
config,
|
config,
|
||||||
lollms_paths=lollms_paths,
|
lollms_paths=lollms_paths,
|
||||||
installation_option = installation_option,
|
installation_option = installation_option,
|
||||||
app=app
|
lollmsCom=lollmsCom
|
||||||
)
|
)
|
||||||
|
|
||||||
def getBinding(
|
def getBinding(
|
||||||
|
98
lollms/com.py
Normal file
98
lollms/com.py
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
from ascii_colors import ASCIIColors
|
||||||
|
from enum import Enum
|
||||||
|
class NotificationType(Enum):
|
||||||
|
"""Notification types."""
|
||||||
|
|
||||||
|
NOTIF_ERROR = 0
|
||||||
|
"""This is an error notification."""
|
||||||
|
|
||||||
|
NOTIF_SUCCESS = 1
|
||||||
|
"""This is a success notification."""
|
||||||
|
|
||||||
|
NOTIF_INFO = 2
|
||||||
|
"""This is an information notification."""
|
||||||
|
|
||||||
|
NOTIF_WARNING = 3
|
||||||
|
"""This is a warining notification."""
|
||||||
|
|
||||||
|
class NotificationDisplayType(Enum):
|
||||||
|
"""Notification display types."""
|
||||||
|
|
||||||
|
TOAST = 0
|
||||||
|
"""This is a toast."""
|
||||||
|
|
||||||
|
MESSAGE_BOX = 1
|
||||||
|
"""This is a message box."""
|
||||||
|
|
||||||
|
|
||||||
|
class LoLLMsCom:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
pass
|
||||||
|
def InfoMessage(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
self.notify(
|
||||||
|
content,
|
||||||
|
notification_type=NotificationType.NOTIF_SUCCESS,
|
||||||
|
duration=duration,
|
||||||
|
client_id=client_id,
|
||||||
|
display_type=NotificationDisplayType.MESSAGE_BOX,
|
||||||
|
verbose=verbose
|
||||||
|
)
|
||||||
|
|
||||||
|
def info(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
self.notify(
|
||||||
|
content,
|
||||||
|
notification_type=NotificationType.NOTIF_SUCCESS,
|
||||||
|
duration=duration,
|
||||||
|
client_id=client_id,
|
||||||
|
display_type=NotificationDisplayType.TOAST,
|
||||||
|
verbose=verbose
|
||||||
|
)
|
||||||
|
|
||||||
|
def warning(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
self.notify(
|
||||||
|
content,
|
||||||
|
notification_type=NotificationType.NOTIF_WARNING,
|
||||||
|
duration=duration,
|
||||||
|
client_id=client_id,
|
||||||
|
display_type=NotificationDisplayType.TOAST,
|
||||||
|
verbose=verbose
|
||||||
|
)
|
||||||
|
|
||||||
|
def success(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
self.notify(
|
||||||
|
content,
|
||||||
|
notification_type=NotificationType.NOTIF_SUCCESS,
|
||||||
|
duration=duration,
|
||||||
|
client_id=client_id,
|
||||||
|
display_type=NotificationDisplayType.TOAST,
|
||||||
|
verbose=verbose
|
||||||
|
)
|
||||||
|
|
||||||
|
def error(self, content, duration:int=4, client_id=None):
|
||||||
|
self.notify(
|
||||||
|
content,
|
||||||
|
notification_type=NotificationType.NOTIF_ERROR,
|
||||||
|
duration=duration,
|
||||||
|
client_id=client_id,
|
||||||
|
display_type=NotificationDisplayType.TOAST
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def notify(
|
||||||
|
self,
|
||||||
|
content,
|
||||||
|
notification_type:NotificationType=NotificationType.NOTIF_SUCCESS,
|
||||||
|
duration:int=4,
|
||||||
|
client_id=None,
|
||||||
|
display_type:NotificationDisplayType=NotificationDisplayType.TOAST,
|
||||||
|
verbose=True
|
||||||
|
):
|
||||||
|
if verbose:
|
||||||
|
if notification_type==NotificationType.NOTIF_SUCCESS:
|
||||||
|
ASCIIColors.success(content)
|
||||||
|
elif notification_type==NotificationType.NOTIF_INFO:
|
||||||
|
ASCIIColors.info(content)
|
||||||
|
elif notification_type==NotificationType.NOTIF_WARNING:
|
||||||
|
ASCIIColors.warning(content)
|
||||||
|
else:
|
||||||
|
ASCIIColors.red(content)
|
@ -1,29 +1,6 @@
|
|||||||
import traceback
|
import traceback
|
||||||
from ascii_colors import ASCIIColors
|
from ascii_colors import ASCIIColors
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
class NotificationType(Enum):
|
|
||||||
"""Notification types."""
|
|
||||||
|
|
||||||
NOTIF_ERROR = 0
|
|
||||||
"""This is an error notification."""
|
|
||||||
|
|
||||||
NOTIF_SUCCESS = 1
|
|
||||||
"""This is a success notification."""
|
|
||||||
|
|
||||||
NOTIF_INFO = 2
|
|
||||||
"""This is an information notification."""
|
|
||||||
|
|
||||||
NOTIF_WARNING = 3
|
|
||||||
"""This is a warining notification."""
|
|
||||||
|
|
||||||
class NotificationDisplayType(Enum):
|
|
||||||
"""Notification display types."""
|
|
||||||
|
|
||||||
TOAST = 0
|
|
||||||
"""This is a toast."""
|
|
||||||
|
|
||||||
MESSAGE_BOX = 1
|
|
||||||
"""This is a message box."""
|
|
||||||
|
|
||||||
def get_trace_exception(ex):
|
def get_trace_exception(ex):
|
||||||
"""
|
"""
|
||||||
|
@ -12,12 +12,25 @@ if not PackageManager.check_package_installed("pygame"):
|
|||||||
import pygame
|
import pygame
|
||||||
else:
|
else:
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
import threading
|
import threading
|
||||||
if not PackageManager.check_package_installed("cv2"):
|
if not PackageManager.check_package_installed("cv2"):
|
||||||
PackageManager.install_package("opencv-python")
|
PackageManager.install_package("opencv-python")
|
||||||
import cv2
|
import cv2
|
||||||
else:
|
else:
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
|
|
||||||
|
if not PackageManager.check_package_installed("pyaudio"):
|
||||||
|
PackageManager.install_package("pyaudio")
|
||||||
|
PackageManager.install_package("wave")
|
||||||
|
import pyaudio
|
||||||
|
import wave
|
||||||
|
else:
|
||||||
|
import pyaudio
|
||||||
|
import wave
|
||||||
|
|
||||||
|
from lollms.com import LoLLMsCom
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
import base64
|
import base64
|
||||||
@ -25,7 +38,8 @@ import base64
|
|||||||
|
|
||||||
|
|
||||||
class AudioRecorder:
|
class AudioRecorder:
|
||||||
def __init__(self, filename, channels=1, sample_rate=44100, chunk_size=1024, silence_threshold=0.01, silence_duration=2):
|
def __init__(self, socketio, filename, channels=1, sample_rate=44100, chunk_size=1024, silence_threshold=0.01, silence_duration=2, app:LoLLMsCom=None):
|
||||||
|
self.socketio = socketio
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.channels = channels
|
self.channels = channels
|
||||||
self.sample_rate = sample_rate
|
self.sample_rate = sample_rate
|
||||||
@ -37,6 +51,7 @@ class AudioRecorder:
|
|||||||
self.silence_threshold = silence_threshold
|
self.silence_threshold = silence_threshold
|
||||||
self.silence_duration = silence_duration
|
self.silence_duration = silence_duration
|
||||||
self.last_sound_time = time.time()
|
self.last_sound_time = time.time()
|
||||||
|
self.app = app
|
||||||
|
|
||||||
def start_recording(self):
|
def start_recording(self):
|
||||||
self.is_recording = True
|
self.is_recording = True
|
||||||
|
@ -13,7 +13,7 @@ from lollms.main_config import LOLLMSConfig
|
|||||||
from lollms.paths import LollmsPaths
|
from lollms.paths import LollmsPaths
|
||||||
from lollms.binding import LLMBinding, BindingType
|
from lollms.binding import LLMBinding, BindingType
|
||||||
from lollms.utilities import PromptReshaper, PackageManager
|
from lollms.utilities import PromptReshaper, PackageManager
|
||||||
from lollms.helpers import NotificationType, NotificationDisplayType
|
from lollms.com import NotificationType, NotificationDisplayType
|
||||||
|
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@ -33,7 +33,7 @@ import json
|
|||||||
from safe_store import TextVectorizer, GenericDataLoader, VisualizationMethod, VectorizationMethod
|
from safe_store import TextVectorizer, GenericDataLoader, VisualizationMethod, VectorizationMethod
|
||||||
from functools import partial
|
from functools import partial
|
||||||
import sys
|
import sys
|
||||||
|
from lollms.com import LoLLMsCom
|
||||||
from lollms.helpers import trace_exception
|
from lollms.helpers import trace_exception
|
||||||
from lollms.utilities import PackageManager
|
from lollms.utilities import PackageManager
|
||||||
def is_package_installed(package_name):
|
def is_package_installed(package_name):
|
||||||
@ -75,7 +75,7 @@ class AIPersonality:
|
|||||||
lollms_paths:LollmsPaths,
|
lollms_paths:LollmsPaths,
|
||||||
config:LOLLMSConfig,
|
config:LOLLMSConfig,
|
||||||
model:LLMBinding=None,
|
model:LLMBinding=None,
|
||||||
app=None,
|
app:LoLLMsCom=None,
|
||||||
run_scripts=True,
|
run_scripts=True,
|
||||||
selected_language=None,
|
selected_language=None,
|
||||||
is_relative_path=True,
|
is_relative_path=True,
|
||||||
@ -98,45 +98,6 @@ class AIPersonality:
|
|||||||
self.config = config
|
self.config = config
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.app = app
|
self.app = app
|
||||||
if app is not None:
|
|
||||||
self.error:Callable = app.error
|
|
||||||
self.info:Callable = app.info
|
|
||||||
self.success:Callable = app.success
|
|
||||||
self.warning:Callable = app.warning
|
|
||||||
self.notify:Callable = app.notify
|
|
||||||
self.InfoMessage:Callable = app.InfoMessage
|
|
||||||
else:
|
|
||||||
def InfoMessage(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.white(content)
|
|
||||||
|
|
||||||
def info(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.info(content)
|
|
||||||
|
|
||||||
def warning(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.warning(content)
|
|
||||||
|
|
||||||
def success(content, duration:int=4, client_id=None, verbose:bool=True):
|
|
||||||
ASCIIColors.success(content)
|
|
||||||
|
|
||||||
def error(content, duration:int=4, client_id=None):
|
|
||||||
ASCIIColors.error(content)
|
|
||||||
|
|
||||||
def notify(
|
|
||||||
content,
|
|
||||||
notification_type:NotificationType=NotificationType.NOTIF_SUCCESS,
|
|
||||||
duration:int=4,
|
|
||||||
client_id=None,
|
|
||||||
display_type:NotificationDisplayType=NotificationDisplayType.TOAST,
|
|
||||||
verbose=True
|
|
||||||
):
|
|
||||||
ASCIIColors.white(content)
|
|
||||||
|
|
||||||
self.error:Callable = error
|
|
||||||
self.info:Callable = info
|
|
||||||
self.success:Callable = success
|
|
||||||
self.warning:Callable = warning
|
|
||||||
self.notify:Callable = notify
|
|
||||||
self.InfoMessage:Callable = InfoMessage
|
|
||||||
|
|
||||||
self.text_files = []
|
self.text_files = []
|
||||||
self.image_files = []
|
self.image_files = []
|
||||||
@ -232,6 +193,47 @@ Date: {{date}}
|
|||||||
self.personality_output_folder = lollms_paths.personal_outputs_path/self.name
|
self.personality_output_folder = lollms_paths.personal_outputs_path/self.name
|
||||||
self.personality_output_folder.mkdir(parents=True, exist_ok=True)
|
self.personality_output_folder.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def InfoMessage(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.app:
|
||||||
|
return self.app.InfoMessage(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.white(content)
|
||||||
|
|
||||||
|
def info(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.app:
|
||||||
|
return self.app.info(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.info(content)
|
||||||
|
|
||||||
|
def warning(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.app:
|
||||||
|
return self.app.warning(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.warning(content)
|
||||||
|
|
||||||
|
def success(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.app:
|
||||||
|
return self.app.success(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.success(content)
|
||||||
|
|
||||||
|
def error(self, content, duration:int=4, client_id=None, verbose:bool=True):
|
||||||
|
if self.app:
|
||||||
|
return self.app.error(content=content, duration=duration, client_id=client_id, verbose=verbose)
|
||||||
|
ASCIIColors.error(content)
|
||||||
|
|
||||||
|
def notify( self,
|
||||||
|
content,
|
||||||
|
notification_type:NotificationType=NotificationType.NOTIF_SUCCESS,
|
||||||
|
duration:int=4,
|
||||||
|
client_id=None,
|
||||||
|
display_type:NotificationDisplayType=NotificationDisplayType.TOAST,
|
||||||
|
verbose=True
|
||||||
|
):
|
||||||
|
if self.app:
|
||||||
|
return self.app.error(content=content, notification_type=notification_type, duration=duration, client_id=client_id, display_type=display_type, verbose=verbose)
|
||||||
|
ASCIIColors.white(content)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def new_message(self, message_text:str, message_type:MSG_TYPE= MSG_TYPE.MSG_TYPE_FULL, metadata=[], callback: Callable[[str, int, dict, list, Any], bool]=None):
|
def new_message(self, message_text:str, message_type:MSG_TYPE= MSG_TYPE.MSG_TYPE_FULL, metadata=[], callback: Callable[[str, int, dict, list, Any], bool]=None):
|
||||||
"""This sends step rogress to front end
|
"""This sends step rogress to front end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user