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"]