Coverage for tdom / utils.py: 93%

15 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2025-12-17 23:32 +0000

1from collections import OrderedDict 

2from string.templatelib import Template 

3 

4 

5class LastUpdatedOrderedDict(OrderedDict): 

6 "Store items in the order the keys were last updated." 

7 

8 def __setitem__(self, key, value): 

9 super().__setitem__(key, value) 

10 self.move_to_end(key) 

11 

12 

13class CachableTemplate: 

14 template: Template 

15 

16 # CONSIDER: what about interpolation format specs, convsersions, etc.? 

17 

18 def __init__(self, template: Template) -> None: 

19 self.template = template 

20 

21 def __eq__(self, other: object) -> bool: 

22 if not isinstance(other, CachableTemplate): 

23 return NotImplemented 

24 return self.template.strings == other.template.strings 

25 

26 def __hash__(self) -> int: 

27 return hash(self.template.strings)