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)