|
import os.path |
|
import csv |
|
from collections import namedtuple |
|
|
|
Artist = namedtuple("Artist", ['name', 'weight', 'category']) |
|
|
|
|
|
class ArtistsDatabase: |
|
def __init__(self, filename): |
|
self.cats = set() |
|
self.artists = [] |
|
|
|
if not os.path.exists(filename): |
|
return |
|
|
|
with open(filename, "r", newline='', encoding="utf8") as file: |
|
reader = csv.DictReader(file) |
|
|
|
for row in reader: |
|
artist = Artist(row["artist"], float(row["score"]), row["category"]) |
|
self.artists.append(artist) |
|
self.cats.add(artist.category) |
|
|
|
def categories(self): |
|
return sorted(self.cats) |
|
|