docs: def _add_error(self, *args, **kwargs):  # type: () -> None
          """Convenience function to add an error to this object, with line numbers
  
          An error title or description should not accidentally leak self._value, for privacy/redaction purposes.
  
          :rtype: None
          """
          if kwargs.get('node', None):
              # if node specified and not none
              error = ConfigError.create_from_yaml_node(
                  *args,
                  **kwargs
              )
          elif self._value_node:
              # default to using the node if we have one
              error = ConfigError.create_from_yaml_node(
                  node=self._value_node,
                  *args,
                  **kwargs
              )
          else:
              # no nodes or error_obj to attach
              error = ConfigError(*args, **kwargs)
  
          self._errors.append(error)