- self.name = None
- self.mbid = None
- if 'name' not in kwargs:
- raise MetaException('need at least a "name" argument')
- self.__dict__.update(kwargs)
+ """Meta(name=<str>[, mbid=UUID4])"""
+ self.__name = None # TODO: should be immutable
+ self.__mbid = None
+ self.__aliases = set()
+ self.log = logging.getLogger(__name__)
+ if 'name' not in kwargs or not kwargs.get('name'):
+ 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')
+ if 'mbid' in kwargs and kwargs.get('mbid'):
+ if is_uuid4(kwargs.get('mbid')):
+ self.__mbid = kwargs.pop('mbid').lower()
+ else:
+ self.log.warning('Wrong mbid %s:%s', self.__name,
+ kwargs.get('mbid'))
+ # mbid immutable as hash rests on
+ self.__dict__.update(**kwargs)