Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python3 | |
| import csv | |
| from typing import NamedTuple | |
| from common import defaults | |
| def read_entities(fn = defaults.MAIN_CSV_PATH): | |
| with open(fn, newline='') as csvfile: | |
| reader = csv.DictReader(csvfile) | |
| bcos = { d['bco']:Entity.from_dict(d) for d in reader} | |
| return bcos | |
| class Entity(NamedTuple): | |
| name: str | |
| id: int = 0 | |
| bco: str = "debug" | |
| url: str = '' | |
| logo: str = '' | |
| def __repr__(self): | |
| return f""" | |
| Entity {self.id}: | |
| name: {self.name} | |
| bco: {self.bco} | |
| url: {self.url} | |
| logo: {self.logo} | |
| """ | |
| def from_list(cls, l): | |
| self = apply(cls, l) | |
| return self | |
| # this now looks horrible… | |
| def from_dict(cls, d): | |
| o = {'name': None, 'id': 0, 'bco': None, 'url': None, 'logo': None} | |
| o.update(d) | |
| self = cls(o['name'], o['id'], o['bco'], o['url'], o['logo']) | |
| return self | |
| def row_names(cls): | |
| return ['id', 'name', 'bco', 'url', 'logo'] | |
| def to_row(self): | |
| return [self.id, self.name, self.bco, self.url, self.logo] | |
| def to_dict(self): | |
| return { | |
| 'id': self.id, | |
| 'name': self.name, | |
| 'bco': self.bco, | |
| 'url': self.url, | |
| 'logo': self.logo | |
| } | |
| if __name__ == '__main__': | |
| e = Entity.from_dict({'name': 'test', 'url': 'blah'}) | |
| assert(e.url == 'blah') | |
| print(e) | |
| print(e.to_dict()) | |