in src/aws_encryption_sdk/key_providers/base.py [0:0]
def __new__(cls, **kwargs):
"""Set key index and member set for all new instances here
to avoid requiring child classes to call super init.
"""
instance = super(MasterKeyProvider, cls).__new__(cls)
config = kwargs.pop("config", None)
if not isinstance(config, instance._config_class): # pylint: disable=protected-access,W1116
config = instance._config_class(**kwargs) # pylint: disable=protected-access
instance.config = config
#: Index matching key IDs to existing MasterKey objects.
instance._encrypt_key_index = {} # pylint: disable=protected-access
#: Set of all member entities of this Provider (both Master Keys and other Providers).
instance._members = [] # pylint: disable=protected-access
#: Index of matching key IDs to existing MasterKey objects ONLY for decrypt.
instance._decrypt_key_index = {} # pylint: disable=protected-access
return instance