docs: def get_value(obj, name, fallback=None):
    """Calls through to has_value. If has_value[0] is True, return has_value[1] otherwise returns
    fallback() if fallback is callable, else just fallback.
  
    :obj: the object to pull values from
    :name: the name to use when getting the value
    :fallback: the value to return when has_value(:obj:, :name:) returns False
    """
    present, value = has_value(obj, name)
    if present:
      return value
    else:
      if callable(fallback):
        return fallback()
      else:
        return fallback