mirror of
https://github.com/checktheroads/hyperglass
synced 2024-05-11 05:55:08 +00:00
41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
"""Utility Functions for Pydantic Models."""
|
|
|
|
# Standard Library
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Project
|
|
from hyperglass.log import log
|
|
|
|
|
|
def validate_image(value):
|
|
"""Convert file path to URL path.
|
|
|
|
Arguments:
|
|
value {FilePath} -- Path to logo file.
|
|
|
|
Returns:
|
|
{str} -- Formatted logo path
|
|
"""
|
|
config_path = Path(os.environ["hyperglass_directory"])
|
|
base_path = [v for v in value.split("/") if v != ""]
|
|
|
|
if base_path[0] not in ("images", "custom"):
|
|
raise ValueError(
|
|
f"Logo files must be in the 'custom/' directory of your hyperglass directory. Got: {value}"
|
|
)
|
|
|
|
if base_path[0] == "custom":
|
|
file = config_path / "static" / "custom" / "/".join(base_path[1:])
|
|
|
|
else:
|
|
file = config_path / "static" / "images" / "/".join(base_path[1:])
|
|
|
|
log.error(file)
|
|
if not file.exists():
|
|
raise ValueError(f"'{str(file)}' does not exist")
|
|
|
|
base_index = file.parts.index(base_path[0])
|
|
|
|
return "/".join(file.parts[base_index:])
|