def test_base(): dic = CaseInsensitiveDict() dic['a'] = 4 dic[8] = 5 assert dic['a'] == 4 assert dic['A'] == 4 assert dic[8] == 5
def _hierarchical_dict_from_dict(dict_obj): val_dict = {} for key, value in dict_obj.items(): key = key.lower() if SEP in key: key_tuple = key.split(SEP) else: key_tuple = [key] val_dict[key] = value put_nested_val(val_dict, key_tuple, value) return CaseInsensitiveDict.from_dict(val_dict)
def _build_val_dict(self): val_dict = CaseInsensitiveDict() for path in self._cfg_fpaths(): val_dict.update(**self._read_cfg_file(path)) val_dict.update(**self._read_env_vars()) val_dict = Birch._hierarchical_dict_from_dict(val_dict) return val_dict
def _build_val_dict(self): val_dict = CaseInsensitiveDict() if self._defaults is not None: val_dict = self._build_defaults_dict(self._defaults) for path in self._cfg_fpaths(): if os.path.isfile(path): val_dict.update(**self._read_cfg_file(path)) if not self.load_all: break val_dict.update(**self._read_env_vars()) val_dict = Birch._hierarchical_dict_from_dict(val_dict) return val_dict
def _build_defaults_dict(self, defaults): val_dict = CaseInsensitiveDict() for key, value in defaults.items(): new_key = key try: new_key = new_key.upper() except AttributeError: raise ValueError(( "Birch does not support non-string keys! " "{} provided as key!".format(key) )) if new_key[:self._root_len2] == self._root2: new_key = new_key[self._root_len2:] elif new_key[:self._root_len1] == self._root1: new_key = new_key[self._root_len1:] val_dict[new_key] = value val_dict = Birch._hierarchical_dict_from_dict(val_dict) return val_dict
def test_from_dict(): dic = CaseInsensitiveDict.from_dict(REG_EXAMPLE) assert dic['a'] == 4 assert dic['A'] == 4 assert dic['c']['G'] == 8 assert dic['C'][2] == 1