From 6bd954986e9b13b31f7f3c2e41f06c9459419eea Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 12 Aug 2010 09:01:20 +0200 Subject: song: make keys case-insensitive --- nephilim/song.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/nephilim/song.py b/nephilim/song.py index cbe22d5..0eef97b 100644 --- a/nephilim/song.py +++ b/nephilim/song.py @@ -26,12 +26,12 @@ class Song(dict): Its instances _shouldn't_ be stored, use SongRef or PlaylistEntryRef for that. Access '?tag' to get always at least an empty string. """ - def __init__(self, data): - for tag in data: - if isinstance(data[tag], list): - data[tag] = ','.join(data[tag]) - - dict.__init__(self, data) + def __init__(self, data = {}): + dict.__init__(self) + for key in data: + dict.__setitem__(self, key.lower(), data[key]) + if not 'file' in self: + self['file'] = '' def __eq__(self, other): if not isinstance(other, Song): @@ -44,6 +44,7 @@ class Song(dict): return self['file'] != other['file'] def __getitem__(self, key): + key = key.lower() try: return dict.__getitem__(self, key) except KeyError: @@ -72,7 +73,7 @@ class Song(dict): raise KeyError def __contains__(self, item): - if dict.__contains__(self, item): + if dict.__contains__(self, item.lower()): return True try: self[item] -- cgit v1.2.3