Coverage for phml\nodes\doctype.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2022-12-08 16:33 -0600

1from typing import Optional 

2 

3from .element import Element 

4from .node import Node 

5from .position import Position 

6from .root import Root 

7 

8 

9class DocType(Node): 

10 """Doctype (Node) represents a DocumentType ([DOM]). 

11 

12 Example: 

13 

14 ```html 

15 <!doctype html> 

16 ``` 

17 

18 Yields: 

19 

20 ```javascript 

21 {type: 'doctype'} 

22 ``` 

23 """ 

24 

25 def __init__( 

26 self, 

27 lang: Optional[str] = None, 

28 parent: Optional[Element | Root] = None, 

29 position: Optional[Position] = None, 

30 ): 

31 super().__init__(position) 

32 self.parent = parent 

33 self.lang = lang or 'html' 

34 

35 def __eq__(self, obj) -> bool: 

36 if obj is None: 

37 return False 

38 

39 if hasattr(obj, "type") and obj.type == self.type: 

40 if self.lang == obj.lang: 

41 return True 

42 return False 

43 

44 def stringify(self, indent: int = 0) -> str: # pylint: disable=unused-argument 

45 """Build indented html string of html doctype element. 

46 

47 Returns: 

48 str: Built html of doctype element 

49 """ 

50 return f"<!DOCTYPE {self.lang or 'html'}>" 

51 

52 def __repr__(self) -> str: 

53 return f"node.doctype({self.lang or 'html'})"