Coverage for fpdf2_textindex/interface/enums.py: 60.87%

19 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-01 14:22 +0000

1"""Enums.""" 

2 

3import enum 

4from typing import Any 

5 

6from typing_extensions import Self 

7 

8 

9class CrossReferenceType(str, enum.Enum): 

10 """Cross Reference Type.""" 

11 

12 NONE = "none" 

13 """No cross reference.""" 

14 

15 SEE = "see" 

16 """SEE-cross reference.""" 

17 

18 ALSO = "see also" 

19 """SEE ALSO-cross reference.""" 

20 

21 def __str__(self) -> str: 

22 return self.value 

23 

24 @classmethod 

25 def _missing_(cls, value: Any) -> Self | None: # noqa: ANN401 

26 if value is None: 

27 return cls.NONE 

28 if isinstance(value, str): 

29 return cls(value.upper()) 

30 return None