Source code for openpyxl.utils.bound_dictionary

from __future__ import absolute_import
# Copyright (c) 2010-2019 openpyxl

from collections import defaultdict

[docs]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(BoundDictionary, self).__init__(*args, **kw) def __getitem__(self, key): value = super(BoundDictionary, self).__getitem__(key) if self.reference is not None: setattr(value, self.reference, key) return value