from .lib.track import Track
from .lib.simastr import SimaStr
from .utils.leven import levenshtein_ratio
from .lib.track import Track
from .lib.simastr import SimaStr
from .utils.leven import levenshtein_ratio
return super().__getattr__(cmd)
except OSError as err: # socket errors
raise PlayerError(err) from err
return super().__getattr__(cmd)
except OSError as err: # socket errors
raise PlayerError(err) from err
raise PlayerError(f"Could not connect to '{host}': {err}") from err
# Controls we have sufficient rights
available_cmd = self.commands()
raise PlayerError(f"Could not connect to '{host}': {err}") from err
# Controls we have sufficient rights
available_cmd = self.commands()
if cmd not in available_cmd:
self.disconnect()
raise PlayerError(f'Could connect to "{host}", but command "{cmd}" not available')
if cmd not in available_cmd:
self.disconnect()
raise PlayerError(f'Could connect to "{host}", but command "{cmd}" not available')
ltt = set(map(str.lower, self.tagtypes()))
needed_tags = set(map(str.lower, MPD.needed_tags))
if len(needed_tags & ltt) != len(MPD.needed_tags):
ltt = set(map(str.lower, self.tagtypes()))
needed_tags = set(map(str.lower, MPD.needed_tags))
if len(needed_tags & ltt) != len(MPD.needed_tags):
self.log.warning('Tags needed: %s', needed_tags)
raise PlayerError('Missing mandatory metadata!')
for tag in MPD.needed_mbid_tags:
self.log.warning('Tags needed: %s', needed_tags)
raise PlayerError('Missing mandatory metadata!')
for tag in MPD.needed_mbid_tags:
# Controls use of MusicBrainzIdentifier
if self.config.getboolean('sima', 'musicbrainzid'):
ltt = set(self.tagtypes())
# Controls use of MusicBrainzIdentifier
if self.config.getboolean('sima', 'musicbrainzid'):
ltt = set(self.tagtypes())