| 94 | |
| 95 | |
| 96 | class Family : |
| 97 | all = {} |
| 98 | keys = [] |
| 99 | |
| 100 | @classmethod |
| 101 | def init(cls) : |
| 102 | for family_id in os.listdir(u'../data/family/') : |
| 103 | family_id = family_id.replace(u'.yaml', u'') |
| 104 | yaml_file = u'../data/family/%s.yaml' % (family_id,) |
| 105 | if family_id not in Node.all : |
| 106 | _raise_err(u'Invalid family name: "%s"!', family_id) |
| 107 | |
| 108 | family = Family(_load_yaml(yaml_file)) |
| 109 | Family.all[family_id] = family |
| 110 | Family.keys.append(family_id) |
| 111 | print(u'Family number: %d' % len(Family.all)) |
| 112 | |
| 113 | |
| 114 | def __init__(self, yaml) : |
| 115 | self.name = yaml[u'name'] |
| 116 | self.inner = yaml[u'inner'] |
| 117 | self.outer = yaml[u'outer'] |
| 118 | self.members = [self.name] + self.inner + self.outer |
| 119 | |
| 120 | for name in self.members : |
| 121 | if name not in Node.all : |
| 122 | _raise_err(u'Invalid family members: "%s"!', name) |
| 123 | |
| 124 | |
| 125 | |