Beispiel #1
0
def create_collection(scope, name, description):
	"""Instantiates, initialises & returns a term collection.

	"""
	# Validate inputs.
	v.validate(scope)
	v.validate_collection_name(name)
	v.validate_collection_description(description)

	# Format inputs.
	name = unicode(name).strip()
	description = unicode(description).strip()

	# Instantiate.
	i = Collection()
	i.create_date = arrow.utcnow().datetime
	i.description = description
	i.label = name
	i.name = name.lower()
	i.scope = scope
	i.uid = uuid.uuid4()

	# Append to parent & set idx.
	scope.collections.append(i)
	i.idx = len(scope.collections)

	# Raise validation exception (if appropriate).
	if not i.is_valid:
		raise ValidationError(i.errors)

	return i
Beispiel #2
0
def create_scope(authority, name, description, url):
	"""Instantiates, initialises & returns a term scope.

	"""
	# Validate inputs.
	v.validate(authority)
	v.validate_scope_name(name)
	v.validate_scope_description(description)
	v.validate_scope_url(url)

	# Format inputs.
	name = unicode(name).strip()
	description = unicode(description).strip()
	url = unicode(url).strip()

	# Instantiate.
	i = Scope()
	i.authority = authority
	i.description = description
	i.label = name
	i.name = name.lower()
	i.uid = uuid.uuid4()
	i.url = url

	# Append to parent & set idx.
	authority.scopes.append(i)
	i.idx = len(authority.scopes)

	# Raise validation exception (if appropriate).
	if not i.is_valid:
		raise ValidationError(i.errors)

	return i
Beispiel #3
0
    def validate(self):
        """Validates instance.

        :returns: Set of validation errrors.
        :rtype: set

        """
        # N.B. just-in-time import to avaoid circular references.
        from pyesdoc.cv import validation as v

        return v.validate(self)
Beispiel #4
0
def create_term(collection, name, data=None):
	"""Instantiates, initialises & returns a term.

	param: pyesdoc.cv.Collection collection: The collection to which the term belongs.
	param: str name: Name of term.
	param: dict data: Arbitrary data associated with term.

	"""
	# Validate inputs.
	v.validate(collection)
	v.validate_term_name(name)
	if data is not None:
		v.validate_term_data(data)

	# Format inputs.
	name = unicode(name).strip()

	# Instantiate.
	i = Term()
	i.collection = collection
	i.create_date = arrow.utcnow().datetime
	i.label = name
	i.name = name.lower()
	i.status = constants.GOVERNANCE_STATUS_PENDING
	i.uid = uuid.uuid4()
	i.data = data

	# Append to parent & set idx.
	collection.terms.append(i)
	i.idx = len(collection.terms)

	# Raise validation exception (if appropriate).
	if not i.is_valid:
		raise ValidationError(i.errors)

	return i