X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fmeta.py;h=39b3197573c9e78456cdcbbfaf8f5854d90f18ae;hb=7ac027b7a735bde1521f7a916a7629d3986e36c9;hp=b19658441725ef84467bf9c04d968d286eaf57d8;hpb=c562e5def0073de216785ee57085658b0ee441b5;p=mpd-sima.git diff --git a/sima/lib/meta.py b/sima/lib/meta.py index b196584..39b3197 100644 --- a/sima/lib/meta.py +++ b/sima/lib/meta.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2013, 2014, 2015 kaliko +# Copyright (c) 2013, 2014, 2015, 2021 kaliko # # This file is part of sima # @@ -21,14 +21,12 @@ Defines some object to handle audio file metadata """ -try: - from collections.abc import Set # python >= 3.3 -except ImportError: - from collections import Set # python 3.2 + +from collections.abc import Set import logging import re -UUID_RE = r'^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$' +UUID_RE = r'^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[89AB][a-f0-9]{3}-[a-f0-9]{12}$' # The Track Object is collapsing multiple tags into a single string using this # separator. It is used then to split back the string to tags list. SEPARATOR = chr(0x1F) # ASCII Unit Separator @@ -46,7 +44,7 @@ def is_uuid4(uuid): class MetaException(Exception): """Generic Meta Exception""" - pass + def mbidfilter(func): def wrapper(*args, **kwargs): @@ -91,7 +89,7 @@ class Meta: self.log = logging.getLogger(__name__) if 'name' not in kwargs or not kwargs.get('name'): raise MetaException('Need a "name" argument (str type)') - elif not isinstance(kwargs.get('name'), str): + if not isinstance(kwargs.get('name'), str): raise MetaException('"name" argument not a string') else: self.__name = kwargs.pop('name') @@ -118,9 +116,9 @@ class Meta: #if hasattr(other, 'mbid'): # better isinstance? if isinstance(other, Meta) and self.mbid and other.mbid: return self.mbid == other.mbid - elif isinstance(other, Meta): + if isinstance(other, Meta): return bool(self.names & other.names) - elif getattr(other, '__str__', None): + if getattr(other, '__str__', None): # is other.__str__() in self.__name or self.__aliases return other.__str__() in self.names return False