def add()

in src/evaluate/module.py [0:0]


    def add(self, *, prediction=None, reference=None, **kwargs):
        """Add one prediction and reference for the evaluation module's stack.

        Args:
            prediction (`list/array/tensor`, *optional*):
                Predictions.
            reference (`list/array/tensor`, *optional*):
                References.

        Example:

        ```py
        >>> import evaluate
        >>> accuracy = evaluate.load("accuracy")
        >>> accuracy.add(references=[0,1], predictions=[1,0])
        ```
        """
        bad_inputs = [input_name for input_name in kwargs if input_name not in self._feature_names()]
        if bad_inputs:
            raise ValueError(
                f"Bad inputs for evaluation module: {bad_inputs}. All required inputs are {list(self._feature_names())}"
            )
        example = {"predictions": prediction, "references": reference, **kwargs}
        example = {input_name: example[input_name] for input_name in self._feature_names()}
        if self.writer is None:
            self.selected_feature_format = self._infer_feature_from_example(example)
            self._init_writer()
        try:
            self._enforce_nested_string_type(self.selected_feature_format, example)
            example = self.selected_feature_format.encode_example(example)
            self.writer.write(example)
        except (pa.ArrowInvalid, TypeError):
            error_msg = (
                f"Evaluation module inputs don't match the expected format.\n"
                f"Expected format: {self.selected_feature_format},\n"
            )
            error_msg_inputs = ",\n".join(
                f"Input {input_name}: {summarize_if_long_list(example[input_name])}"
                for input_name in self.selected_feature_format
            )
            error_msg += error_msg_inputs
            raise ValueError(error_msg) from None