Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/openpyxl/utils/bound_dictionary.py: 60%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

10 statements  

1# Copyright (c) 2010-2024 openpyxl 

2 

3from collections import defaultdict 

4 

5 

6class BoundDictionary(defaultdict): 

7 """ 

8 A default dictionary where elements are tightly coupled. 

9 

10 The factory method is responsible for binding the parent object to the child. 

11 

12 If a reference attribute is assigned then child objects will have the key assigned to this. 

13 

14 Otherwise it's just a defaultdict. 

15 """ 

16 

17 def __init__(self, reference=None, *args, **kw): 

18 self.reference = reference 

19 super().__init__(*args, **kw) 

20 

21 

22 def __getitem__(self, key): 

23 value = super().__getitem__(key) 

24 if self.reference is not None: 

25 setattr(value, self.reference, key) 

26 return value