Coverage for src/somesy/mkdocs/models.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2024-04-30 09:42 +0000

1"""Pyproject models.""" 

2from typing import Optional 

3 

4from pydantic import ( 

5 BaseModel, 

6 Field, 

7) 

8from typing_extensions import Annotated 

9 

10from somesy.core.types import HttpUrlStr 

11 

12 

13class MkDocsConfig(BaseModel): 

14 """MkDocs configuration model.""" 

15 

16 model_config = dict(use_enum_values=True) 

17 

18 site_name: Annotated[ 

19 str, 

20 Field(pattern=r"^[A-Za-z0-9]+([_-][A-Za-z0-9]+)*$", description="Site name"), 

21 ] 

22 site_description: Annotated[ 

23 Optional[str], Field(description="Site description") 

24 ] = None 

25 site_author: Annotated[Optional[str], Field(description="Site authors")] = None 

26 site_url: Annotated[Optional[HttpUrlStr], Field(description="Site homepage")] = None 

27 repo_url: Annotated[ 

28 Optional[HttpUrlStr], Field(description="Package repository") 

29 ] = None 

30 repo_name: Annotated[Optional[str], Field(description="Repository name")] = None