jean-web/jwebsite/content.py

37 lines
876 B
Python

from pathlib import Path
from typing import Any, Iterator
class Content:
def __init__(self, path: Path, data: Any, 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) -> Any:
return self.__data
def __str__(self) -> str:
return str(self.__data)
class ContentField(Content):
def __getitem__(self, key: Any) -> Any:
return ContentField(self.path, self.data.get(key), self.language)
def __iter__(self) -> Iterator[Any]:
for it in self.data:
yield ContentField(self.path, it, self.language)
def __str__(self) -> str:
return str(self.data)