Source code for danoan.llm_assistant.prompt.cli.utils

from pathlib import Path
from typing import Any, List

from rich import print
from rich.columns import Columns
from rich.console import Console
from rich.panel import Panel
from rich.text import Text

from danoan.llm_assistant.common import config
from danoan.llm_assistant.prompt.core import api, utils

###################################
# GUI Primitives
###################################


_console = Console()


def _make_numbered_list(entries: List[Any], padding=(0, 10), **kwargs) -> Columns:
    list_elements = [f"{i}. {s}" for i, s in enumerate(entries, 1)]
    return Columns(list_elements, padding=padding, **kwargs)


def _make_numbered_vertical_list(entries: List[Any]) -> Text:
    text = Text()
    for i, e in enumerate(entries, 1):
        text.append(f"{i}. {e}")
        if i != len(entries):
            text.append("\n")
    return text






















###################################
# GUI Common Derivatives
###################################


















###################################
# Configuration file
###################################


[docs] def ensure_configuration_file_exists(): if not config.get_configuration_filepath().exists(): print( f"Configuration file for prompt-evaluator does not exist. It should be located \ at {config.get_configuration_filepath()}" ) exit(1)
[docs] def ensure_prompt_collection_folder_exists(): prompt_collection_folder = api.get_prompts_folder() if not prompt_collection_folder.exists(): print( f"The prompt collection folder {prompt_collection_folder} does not exist. Try to run sync first" ) exit(1)
[docs] def ensure_prompt_repository_exists(repository_name: str): repository_folder = api.get_prompts_folder() / repository_name if not api.is_prompt_repository(repository_folder): print(f"The path {repository_folder} does not point to a prompt repository.") exit(1)