131 assert telephoneRecord.telephone in self.telephones
132 assert telephoneRecord.collaborator in self.collaborators
133 assert telephoneRecord.group in self.groups
134 assert telephoneRecord not in self
135 set.add(self, telephoneRecord)
Хотя реализация в многом повторяет предыдущую, она заметно упростилась, как и объеме, так и с
точки зрения простоты кода.
137 if __name__ == ’__main__’:
138 import os, csv
139
140 telephoneDir = TelephoneDir(Telephones(TelephoneTypes()), Collaborators(),
Groups())
141 telephones, telephoneTypes, collaborators, groups = {}, {}, {}, {}
142 for rec in csv.reader(open(os.path.join(os.curdir, ’ssu2.csv’), ’rb’),
delimiter=’;’):
143 if rec[6] not in telephoneTypes:
144 telephoneTypes[rec[6]] = TelephoneType(rec[6])
145 telephoneDir.telephones.telephoneTypes.add(telephoneTypes[rec[6]])
146 if rec[0] not in telephones:
147 telephones[rec[0]] = Telephone(rec[0], telephoneTypes[rec[6]])
148 telephoneDir.telephones.add(telephones[rec[0]])
149 if rec[5] not in groups:
150 groups[rec[5]] = Group(rec[5])
151 telephoneDir.groups.add(groups[rec[5]])
152 key = int(rec[1])
153 if key not in collaborators: