ReMe/reme4/schema/file_front_matter.py
2026-05-17 14:14:43 +08:00

24 lines
794 B
Python

"""FileFrontMatter — parsed Markdown front matter."""
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
class FileFrontMatter(BaseModel):
"""Markdown front matter; unknown keys are preserved as extras."""
model_config = ConfigDict(extra="allow")
title: str = Field(default="", description="Document title")
description: str = Field(default="", description="Document description")
tags: list[str] | None = Field(default=None, description="Tags; None if absent")
@property
def model_extra(self) -> dict[str, Any] | None:
"""Get extra fields set during validation.
Returns:
A dictionary of extra fields, or `None` if `config.extra` is not set to `"allow"`.
"""
return self.__pydantic_extra__