jean-web/jweb/content.py

29 lines
673 B
Python

from pathlib import Path
from typing import Generic, TypeVar
TData = TypeVar("TData")
class Content(Generic[TData]):
def __init__(self, path: Path, data: TData, language: str | None = None) -> None:
self.__path = path
self.__data = data
self.__language = language
@property
def path(self) -> Path:
return self.__path
@property
def language(self) -> str | None:
return self.__language
@property
def data(self) -> TData:
return self.__data
def __str__(self) -> str:
if isinstance(self.__data, bytes):
return self.__data.decode("utf-8")
return str(self.__data)