Skip to content

util

Shared utility functions for the horde_model_reference package.

model_name_to_showcase_folder_name

model_name_to_showcase_folder_name(model_name: str) -> str

Convert a model name to a lowercase, standardized and sanitized showcase folder name.

Parameters:

  • model_name (str) –

    The model name to convert.

Returns:

  • str ( str ) –

    This is a lowercase, sanitized version of the model name.

Source code in src/horde_model_reference/util.py
def model_name_to_showcase_folder_name(model_name: str) -> str:
    """Convert a model name to a lowercase, standardized and sanitized showcase folder name.

    Args:
        model_name (str): The model name to convert.

    Returns:
        str: This is a lowercase, sanitized version of the model name.

    """
    model_name = model_name.lower()
    model_name = model_name.replace("'", "")
    return re.sub(r"[^a-z0-9]", "_", model_name)

atomic_write_json

atomic_write_json(
    path: Path,
    payload: object,
    *,
    ensure_ascii: bool = True,
) -> None

Atomically write JSON content to path using tmp + fsync + rename.

Parameters:

  • path (Path) –

    Target file path.

  • payload (object) –

    JSON-serializable object.

  • ensure_ascii (bool, default: True ) –

    Whether to escape non-ASCII characters.

Source code in src/horde_model_reference/util.py
def atomic_write_json(path: Path, payload: object, *, ensure_ascii: bool = True) -> None:
    """Atomically write JSON content to *path* using tmp + fsync + rename.

    Args:
        path: Target file path.
        payload: JSON-serializable object.
        ensure_ascii: Whether to escape non-ASCII characters.

    """
    tmp_path = path.with_suffix(path.suffix + ".tmp")
    with tmp_path.open("w", encoding="utf-8") as handle:
        json.dump(payload, handle, indent=2, ensure_ascii=ensure_ascii)
        handle.flush()
        os.fsync(handle.fileno())
    tmp_path.replace(path)