diff --git a/picard/file.py b/picard/file.py index 1b96694bc6..412fa089ca 100644 --- a/picard/file.py +++ b/picard/file.py @@ -141,7 +141,7 @@ def copy_metadata(self, metadata): values = self.orig_metadata.getall(tag) if values: saved_metadata[tag] = values - deleted_tags = self.metadata.deleted_tags + deleted_tags = self.metadata.deleted_tags self.metadata.copy(metadata) self.metadata.deleted_tags = deleted_tags for tag, values in saved_metadata.iteritems(): diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index 3ea9ffcc68..0a81b55d3e 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -162,16 +162,15 @@ def _save(self, filename, metadata): cover_filename = 'Cover Art (Front)' cover_filename += image.extension tags['Cover Art (Front)'] = mutagen.apev2.APEValue(cover_filename + '\0' + image.data, mutagen.apev2.BINARY) - break # can't save more than one item with the same name + break # can't save more than one item with the same name # (mp3tags does this, but it's against the specs) - for tag in metadata.deleted_tags: real_name = str(self._get_tag_name(tag)) - if real_name in ('Lyrics','Comment','Performer'): - tag_type = "\(%s\)" % tag.split(':',1)[1] + if real_name in ('Lyrics', 'Comment', 'Performer'): + tag_type = "\(%s\)" % tag.split(':', 1)[1] for item in tags.get(real_name): - if re.search(tag_type,item): + if re.search(tag_type, item): tags.get(real_name).remove(item) elif tag in ('totaltracks', 'totaldiscs'): tagstr = real_name.lower() + 'number' @@ -180,27 +179,26 @@ def _save(self, filename, metadata): except: pass else: - del tags[real_name] + del tags[real_name] - tags.save(encode_filename(filename)) - def _get_tag_name(self, name): if name.startswith('lyrics:'): return 'Lyrics' elif name == 'date': return 'Year' - elif name in ('tracknumber','totaltracks'): + elif name in ('tracknumber', 'totaltracks'): return 'Track' elif name in ('discnumber', 'totaldiscs'): return 'Disc' elif name.startswith('performer:') or name.startswith('comment:'): - return name.split(':',1)[0].title() + return name.split(':', 1)[0].title() elif name in self.__rtranslate: return self.__rtranslate[name] else: - return name.title() + return name.title() + class MusepackFile(APEv2File): diff --git a/picard/formats/asf.py b/picard/formats/asf.py index cb486e2f46..abd7e0e585 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -218,21 +218,19 @@ def _save(self, filename, metadata): file.tags[real_name] = map(unicode, metadata['discnumber']) except: pass - else: + else: del file.tags[real_name] - + file.save() def supports_tag(self, name): return name in self.__TRANS - def _get_tag_name(self, name): if name.startswith('lyrics'): return 'lyrics' elif name == 'totaldiscs': - return self.__TRANS['discnumber'] + return self.__TRANS['discnumber'] else: - return self.__TRANS[name] - + return self.__TRANS[name] diff --git a/picard/formats/id3.py b/picard/formats/id3.py index df0c990bca..57e3019fd0 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -389,7 +389,7 @@ def _save(self, filename, metadata): if frameclass: tags.add(frameclass(encoding=encoding, text=values)) # don't save private / already stored tags - elif not name.startswith("~") and not name in self.__other_supported_tags: + elif not name.startswith("~") and name not in self.__other_supported_tags: tags.add(id3.TXXX(encoding=encoding, desc=name, text=values)) if tmcl.people: @@ -397,14 +397,14 @@ def _save(self, filename, metadata): if tipl.people: tags.add(tipl) - self._build_inverse_dic() - + self._build_inverse_dic() + for tag in metadata.deleted_tags: real_name = self._get_tag_name(tag) if real_name == 'POPM': for key, frame in tags.items(): if frame.FrameID == 'POPM' and frame.email == config.setting['rating_user_email']: - del tags[key] + del tags[key] elif real_name in tags: del tags[real_name] @@ -415,19 +415,19 @@ def _save(self, filename, metadata): mutagen.apev2.delete(encode_filename(filename)) except: pass - + def _build_inverse_dic(self): self.__itranslate = {} for key, value in self.__translate.items(): - self.__itranslate[value] = key + self.__itranslate[value] = key for key, value in self.__translate_freetext.items(): - self.__itranslate[value] = key + self.__itranslate[value] = key - def _get_tag_name(self,name): + def _get_tag_name(self, name): if name in self.__itranslate: return self.__itranslate[name] elif name == '~rating': - return 'POPM' + return 'POPM' def _get_file(self, filename): raise NotImplementedError() @@ -482,7 +482,7 @@ def new_metadata(self): # If this is a multi-valued field, then it needs to be flattened, # unless it's TIPL or TMCL which can still be multi-valued. - if (len(values) > 1 and not name in ID3File._rtipl_roles + if (len(values) > 1 and name not in ID3File._rtipl_roles and not name.startswith("performer:")): values = [join_with.join(values)] diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index d98e5873ba..d91e1ba002 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -130,10 +130,10 @@ def _load(self, filename): except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) else: - metadata.append_image(coverartimage) + metadata.append_image(coverartimage) # Read the unofficial COVERART tags, for backward compatibillity only - if not "metadata_block_picture" in file.tags: + if "metadata_block_picture" not in file.tags: try: for data in file["COVERART"]: try: @@ -215,9 +215,9 @@ def _save(self, filename, metadata): real_name = self._get_tag_name(tag) if real_name and real_name in file.tags: if real_name in ('performer', 'comment'): - tag_type = "\(%s\)" % tag.split(':',1)[1] + tag_type = "\(%s\)" % tag.split(':', 1)[1] for item in file.tags.get(real_name): - if re.search(tag_type,item): + if re.search(tag_type, item): file.tags.get(real_name).remove(item) else: del file.tags[real_name] @@ -354,5 +354,6 @@ def OggVideoFile(filename): options = [OggTheoraFile] return _select_ogg_type(filename, options) + OggVideoFile.EXTENSIONS = [".ogv"] OggVideoFile.NAME = "Ogg Video" diff --git a/picard/ui/metadatabox.py b/picard/ui/metadatabox.py index 89a190023e..b0cd01c96d 100644 --- a/picard/ui/metadatabox.py +++ b/picard/ui/metadatabox.py @@ -407,7 +407,7 @@ def _update_tags(self): new_values = new_metadata.getall(name) orig_values = orig_metadata.getall(name) - if not ((new_values and not name in existing_tags) or clear_existing_tags): + if not ((new_values and name not in existing_tags) or clear_existing_tags): new_values = list(orig_values or [""]) existing_tags.add(name) @@ -497,7 +497,7 @@ def _update_items(self, result=None, error=None): else: font.setStrikeOut(False) - new_item.setFont(font) + new_item.setFont(font) color = self.colors.get(result.tag_status(name), self.colors[TagStatus.NoChange]) diff --git a/test/test_formats.py b/test/test_formats.py index f3be578ac9..999d4c040c 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -88,7 +88,7 @@ def test_simple_tags(self): metadata[key] = value loaded_metadata = save_and_load_metadata(self.filename, metadata) for (key, value) in self.tags.iteritems(): - #if key == 'comment:foo': + # if key == 'comment:foo': # print "%r" % loaded_metadata self.assertEqual(loaded_metadata[key], value, '%s: %r != %r' % (key, loaded_metadata[key], value)) @@ -807,6 +807,7 @@ class MusepackSV8Test(FormatsTest): #'show': 'Foo', } + cover_settings = { 'save_only_front_images_to_tags': True, }