def create_authority(name, description, url): """Instantiates, initialises & returns a term authority. """ # Validate inputs. v.validate_authority_name(name) v.validate_authority_description(description) v.validate_authority_url(url) # Format inputs. name = unicode(name).strip() description = unicode(description).strip() url = unicode(url).strip() # Instantiate. i = Authority() i.description = description i.label = name i.name = name.lower() i.url = url # Raise validation exception (if appropriate). if not i.is_valid: raise ValidationError(i.errors) return i
def _decode_authority(obj): """Decodes a termset from a dictionary. """ instance = Authority() instance.description = obj['description'] instance.label = obj['label'] instance.name = obj['name'] instance.scopes = [_decode_scope(i) if isinstance(i, dict) else i for i in obj['scopes']] instance.url = obj['url'] # Wire hierarchy. for scope in instance: if isinstance(scope, Scope): scope.authority = instance return instance