mirror of
https://github.com/checktheroads/hyperglass
synced 2024-05-11 05:55:08 +00:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
# Standard Library Imports
|
|
from pathlib import Path
|
|
from typing import Optional
|
|
|
|
# Third Party Imports
|
|
import PIL.Image as PilImage
|
|
from pydantic import FilePath
|
|
from pydantic import StrictInt
|
|
from pydantic import validator
|
|
|
|
# Project Imports
|
|
from hyperglass.configuration.models._utils import HyperglassModel
|
|
|
|
|
|
class OpenGraph(HyperglassModel):
|
|
"""Validation model for params.opengraph."""
|
|
|
|
width: Optional[StrictInt]
|
|
height: Optional[StrictInt]
|
|
image: Optional[FilePath]
|
|
|
|
@validator("image")
|
|
def validate_image(cls, value, values):
|
|
"""Set default opengraph image location.
|
|
|
|
Arguments:
|
|
value {FilePath} -- Path to opengraph image file.
|
|
|
|
Returns:
|
|
{Path} -- Opengraph image file path object
|
|
"""
|
|
if value is None:
|
|
value = (
|
|
Path(__file__).parent.parent.parent
|
|
/ "static/images/hyperglass-opengraph.png"
|
|
)
|
|
with PilImage.open(value) as img:
|
|
width, height = img.size
|
|
values["width"] = width
|
|
values["height"] = height
|
|
|
|
return "".join(str(value).split("static")[1::])
|