import logging
import re
+from ..utils.utils import MPDSimaException
+
+
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
+
def is_uuid4(uuid):
"""Controls MusicBrainz UUID4 format
return True
return False
-class MetaException(Exception):
+
+class MetaException(MPDSimaException):
"""Generic Meta Exception"""
raise MetaException('Need a "name" argument (str type)')
if not isinstance(kwargs.get('name'), str):
raise MetaException('"name" argument not a string')
- else:
- self.__name = kwargs.pop('name').split(SEPARATOR)[0]
+ self.__name = kwargs.pop('name').split(SEPARATOR)[0]
if 'mbid' in kwargs and kwargs.get('mbid'):
mbid = kwargs.get('mbid').lower().split(SEPARATOR)[0]
if is_uuid4(mbid):
if callable(other.__str__) and other.__str__() != self.name:
self.__aliases |= {other.__str__()}
else:
- raise MetaException('No __str__ method found in {!r}'.format(other))
+ raise MetaException(f'No __str__ method found in {other!r}')
@property
def name(self):
@property
def names(self):
"""aliases + name"""
- return self.__aliases | {self.__name,}
+ return self.__aliases | {self.__name, }
@property
@serialize