def _decode_scope(obj): """Decodes a termset from a dictionary. """ instance = Scope() instance.collections = [_decode_collection(i) if isinstance(i, dict) else i for i in obj['collections']] instance.description = obj['description'] instance.idx = obj['idx'] instance.label = obj['label'] instance.name = obj['name'] instance.uid = uuid.UUID(unicode(obj['uid'])) instance.url = obj['url'] # Wire hierarchy. for collection in instance: if isinstance(collection, Collection): collection.scope = instance return instance