code: def _validate_isvalid_uncertainty(self, isvalid_uncertainty, field, value):
          
          self._validate_isvalid_quantity(True, field, value)
  
          # This len check is necessary for reasons that aren't quite clear to me
          # Cerberus calls this validation method even when lists have only one element
          # and should therefore be validated only by isvalid_quantity
          if len(value) > 1 and value[1]['uncertainty-type'] != 'relative':
              if value[1].get('uncertainty') is not None:
                  self._validate_isvalid_quantity(True, field, [value[1]['uncertainty']])
  
              if value[1].get('upper-uncertainty') is not None:
                  self._validate_isvalid_quantity(True, field, [value[1]['upper-uncertainty']])
  
              if value[1].get('lower-uncertainty') is not None:
                  self._validate_isvalid_quantity(True, field, [value[1]['lower-uncertainty']])
docs: Checks for valid given value and appropriate units with uncertainty.
  
          Args:
              isvalid_uncertainty (`bool`): flag from schema indicating uncertainty to be checked
              field (`str`): property associated with the quantity in question.
              value (`list`): list with the string of the value of the quantity and a dictionary of
                  the uncertainty
  
          The rule's arguments are validated against this schema:
              {'isvalid_uncertainty': {'type': 'bool'}, 'field': {'type': 'str'},
               'value': {'type': 'list'}}