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
« prev ^ index » next coverage.py v6.5.0, created at 2022-12-08 16:33 -0600
1from typing import Optional
3from .element import Element
4from .node import Node
5from .position import Position
6from .root import Root
9class DocType(Node):
10 """Doctype (Node) represents a DocumentType ([DOM]).
12 Example:
14 ```html
15 <!doctype html>
16 ```
18 Yields:
20 ```javascript
21 {type: 'doctype'}
22 ```
23 """
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'
35 def __eq__(self, obj) -> bool:
36 if obj is None:
37 return False
39 if hasattr(obj, "type") and obj.type == self.type:
40 if self.lang == obj.lang:
41 return True
42 return False
44 def stringify(self, indent: int = 0) -> str: # pylint: disable=unused-argument
45 """Build indented html string of html doctype element.
47 Returns:
48 str: Built html of doctype element
49 """
50 return f"<!DOCTYPE {self.lang or 'html'}>"
52 def __repr__(self) -> str:
53 return f"node.doctype({self.lang or 'html'})"