Path 1: 33 calls (0.92)

Console (33)

ConsoleOptions (33)

Measurement (33)

1def __rich_measure__(
2        self, console: "Console", options: "ConsoleOptions"
3    ) -> Measurement:
4        max_width = options.max_width
5        if self.width is not None:
6            max_width = self.width
7        if max_width < 0:
8            return Measurement(0, 0)
9
10        extra_width = self._extra_width
11        max_width = sum(
12            self._calculate_column_widths(
13                console, options.update_width(max_width - extra_width)
14            )
15        )
16        _measure_column = self._measure_column
17
18        measurements = [
19            _measure_column(console, options.update_width(max_width), column)
20            for column in self.columns
21        ]
22        minimum_width = (
23            sum(measurement.minimum for measurement in measurements) + extra_width
24        )
25        maximum_width = (
26            sum(measurement.maximum for measurement in measurements) + extra_width
27            if (self.width is None)
28            else self.width
29        )
30        measurement = Measurement(minimum_width, maximum_width)
31        measurement = measurement.clamp(self.min_width)
32        return measurement
            

Path 2: 2 calls (0.06)

Console (2)

ConsoleOptions (2)

Measurement (2)

1def __rich_measure__(
2        self, console: "Console", options: "ConsoleOptions"
3    ) -> Measurement:
4        max_width = options.max_width
5        if self.width is not None:
6            max_width = self.width
7        if max_width < 0:
8            return Measurement(0, 0)
9
10        extra_width = self._extra_width
11        max_width = sum(
12            self._calculate_column_widths(
13                console, options.update_width(max_width - extra_width)
14            )
15        )
16        _measure_column = self._measure_column
17
18        measurements = [
19            _measure_column(console, options.update_width(max_width), column)
20            for column in self.columns
21        ]
22        minimum_width = (
23            sum(measurement.minimum for measurement in measurements) + extra_width
24        )
25        maximum_width = (
26            sum(measurement.maximum for measurement in measurements) + extra_width
27            if (self.width is None)
28            else self.width
29        )
30        measurement = Measurement(minimum_width, maximum_width)
31        measurement = measurement.clamp(self.min_width)
32        return measurement
            

Path 3: 1 calls (0.03)

Console (1)

ConsoleOptions (1)

Measurement (1)

1def __rich_measure__(
2        self, console: "Console", options: "ConsoleOptions"
3    ) -> Measurement:
4        max_width = options.max_width
5        if self.width is not None:
6            max_width = self.width
7        if max_width < 0:
8            return Measurement(0, 0)
9
10        extra_width = self._extra_width
11        max_width = sum(
12            self._calculate_column_widths(
13                console, options.update_width(max_width - extra_width)
14            )
15        )
16        _measure_column = self._measure_column
17
18        measurements = [
19            _measure_column(console, options.update_width(max_width), column)
20            for column in self.columns
21        ]
22        minimum_width = (
23            sum(measurement.minimum for measurement in measurements) + extra_width
24        )
25        maximum_width = (
26            sum(measurement.maximum for measurement in measurements) + extra_width
27            if (self.width is None)
28            else self.width
29        )
30        measurement = Measurement(minimum_width, maximum_width)
31        measurement = measurement.clamp(self.min_width)
32        return measurement