hyb
2025-12-31 6cdcd01f77e11b72c323603e27ebdb85b15223c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Copyright (c) 2010-2024 openpyxl
 
from collections import defaultdict
 
 
class BoundDictionary(defaultdict):
    """
    A default dictionary where elements are tightly coupled.
 
    The factory method is responsible for binding the parent object to the child.
 
    If a reference attribute is assigned then child objects will have the key assigned to this.
 
    Otherwise it's just a defaultdict.
    """
 
    def __init__(self, reference=None, *args, **kw):
        self.reference = reference
        super().__init__(*args, **kw)
 
 
    def __getitem__(self, key):
        value = super().__getitem__(key)
        if self.reference is not None:
            setattr(value, self.reference, key)
        return value