def compute_feedbacks(
        self,
        raise_error_on_no_feedbacks_computed: bool = True,
        events: Optional[pd.DataFrame] = None,
    ) -> None:
        """Compute feedbacks for the app.

        Args:
            raise_error_on_no_feedbacks_computed:
                Raise an error if no feedbacks were computed. Default is True.
            events:
                The events to compute feedbacks from. If None, uses all
                events from the app.
        """
        if not is_otel_tracing_enabled():
            raise ValueError(
                "This method is only supported for OTEL Tracing. Please enable OTEL tracing in the environment!"
            )
        if events is None:
            # Get all events associated with this app name and version.
            # TODO(otel): Should probably handle the case where there are a lot of events with pagination.
            events = self.connector.get_events(app_id=self.app_id)
        for feedback in self.feedbacks:
            compute_feedback_by_span_group(
                events,
                feedback.name,
                feedback.imp,
                feedback.higher_is_better,
                feedback.selectors,
                feedback.aggregator,
                raise_error_on_no_feedbacks_computed,
            )
Compute feedbacks for the app.

        Args:
            raise_error_on_no_feedbacks_computed:
                Raise an error if no feedbacks were computed. Default is True.
            events:
                The events to compute feedbacks from. If None, uses all
                events from the app.
        
src/core/trulens/core/app.py