Source code for fhirpath.constraints

# _*_ coding: utf-8 _*_
from fhirpath.exceptions import ConstraintNotSatisfied

from .interfaces import IBaseClass, IValuedClass

__author__ = "Md Nazrul Islam <email2nazrul@gmail.com>"


[docs]def required_value_not_assigned(obj: object) -> None: """ """ required_not_finalized(obj) obj = IValuedClass(obj) if obj._value_assigned is True: raise ConstraintNotSatisfied( "Value already assigned to {0!r}".format(obj.__class__) )
[docs]def required_not_finalized(obj: object) -> None: """ """ obj = IBaseClass(obj) if obj._finalized: raise ConnectionResetError( "Object from {0!r} is already in final state, " "means any modification been locked".format(obj.__class__) )
[docs]def required_from_resource(obj: object) -> None: """ """ if len(obj._from) == 0: # type: ignore raise ConstraintNotSatisfied( "`_from` (resource must be provided first!) {0!r}".format(obj.__class__) )
[docs]def required_finalized(obj: object) -> None: """ """ obj = IBaseClass(obj) if not obj._finalized: raise ConnectionResetError( "Object from {0!r} must be in final state, ".format(obj.__class__) )