Source code for gitlab_overviewer.models.readme_extract

 1"""
 2ReadmeExtract model implementation.
 3
 4Implements:
 5
 6* :any:`/specs/spec_model_mapping` §4 for derived metadata extraction
 7* :any:`/specs/spec_readme_extraction` §3 for metadata parsing
 8"""
 9
10from typing import Any
11from pydantic import BaseModel, Field
12
13
[docs] 14class ReadmeExtract(BaseModel): 15 """Extracted and interpreted information from README frontmatter. 16 17 Implements: 18 19 * :any:`/specs/spec_model_mapping` §4, handling derived metadata 20 * :any:`/specs/spec_readme_extraction` §3, covering: 21 * Frontmatter parsing 22 * Author/supervisor extraction 23 """ 24 25 # Specified front-matter fields 26 authors: list[str] = Field(default_factory=list) 27 supervisors: list[str] = Field(default_factory=list) 28 29 # Raw frontmatter for reference 30 raw_frontmatter: dict[str, Any] = Field(default_factory=dict) 31 32 model_config = {"extra": "ignore"}
33 34 35__all__ = ["ReadmeExtract"]