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
+#: 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"""
def wrapper(*args, **kwargs):
ans = func(*args, **kwargs)
if isinstance(ans, set):
- return {s.replace("'", r"\'") for s in ans}
- return ans.replace("'", r"\'")
+ return {s.replace("'", r"\'").replace('"', r'\"') for s in ans}
+ return ans.replace("'", r"\'").replace('"', r'\"')
return wrapper
:param str other: Alias to add, could be any object with ``__str__`` method.
"""
+ if isinstance(other, Meta):
+ self.__aliases |= other.__aliases
+ self.__aliases -= {self.name}
if getattr(other, '__str__', None):
if callable(other.__str__) and other.__str__() != self.name:
self.__aliases |= {other.__str__()}
- elif isinstance(other, Meta):
- if other.name != self.name:
- self.__aliases |= other.__aliases
else:
raise MetaException('No __str__ method found in {!r}'.format(other))
@property
def names(self):
"""aliases + name"""
- return self.__aliases | {self.__name,}
+ return self.__aliases | {self.__name, }
@property
@serialize