def saving_throws(self): """ >>> char = Character(load_yaml('characters', 'bardic_rogue.yaml')) >>> isinstance(char.saving_throws, dict) True """ key = self.get('class/parent', '') sts = FlattenedDict(load_yaml("rules", "saving_throws.yaml")) sts = FlattenedDict(sts.getsubtree(key)) hitdice = self.get('combat/level-hitdice', 0) for key2 in sts.subkeys(): if inrange(hitdice, key2): st = sts.getsubtree(key2) st['ppd'] = int(st['ppd']) + self.ppd_mod() return(st)