Coverage for src/epublib/package/guide.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-10-07 10:25 -0300

1from dataclasses import dataclass 

2from typing import Annotated, ClassVar, override 

3 

4from epublib.xml_element import HrefElement, ParentOfHref, XMLAttribute 

5 

6 

7@dataclass(kw_only=True) 

8class GuideItem(HrefElement): 

9 """An item in the EPUB guide (legacy feature).""" 

10 

11 type: Annotated[str, XMLAttribute()] 

12 title: Annotated[str, XMLAttribute()] 

13 

14 tag_name: ClassVar[str] = "reference" 

15 

16 

17class BookGuide(ParentOfHref[GuideItem]): 

18 """The EPUB spine, which defines the linear reading order of the book.""" 

19 

20 @override 

21 def add(self, filename: str, title: str, type: str): # type: ignore[reportIncompatibleMethodOverride] 

22 return super().add(filename=filename, title=title, type=type)