Path 1: 336 calls (0.49)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]
            

Path 2: 309 calls (0.45)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]
            

Path 3: 36 calls (0.05)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]
            

Path 4: 6 calls (0.01)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]
            

Path 5: 1 calls (0.0)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]
            

Path 6: 1 calls (0.0)

UnicodeEncodeError (1)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]
            

Path 7: 1 calls (0.0)

None (1)

1def _check_buffer(self) -> None:
2        """Check if the buffer may be rendered. Render it if it can (e.g. Console.quiet is False)
3        Rendering is supported on Windows, Unix and Jupyter environments. For
4        legacy Windows consoles, the win32 API is called directly.
5        This method will also record what it renders if recording is enabled via Console.record.
6        """
7        if self.quiet:
8            del self._buffer[:]
9            return
10        with self._lock:
11            if self.record:
12                with self._record_buffer_lock:
13                    self._record_buffer.extend(self._buffer[:])
14
15            if self._buffer_index == 0:
16
17                if self.is_jupyter:  # pragma: no cover
18                    from .jupyter import display
19
20                    display(self._buffer, self._render_buffer(self._buffer[:]))
21                    del self._buffer[:]
22                else:
23                    if WINDOWS:
24                        use_legacy_windows_render = False
25                        if self.legacy_windows:
26                            try:
27                                use_legacy_windows_render = (
28                                    self.file.fileno() in _STD_STREAMS_OUTPUT
29                                )
30                            except (ValueError, io.UnsupportedOperation):
31                                pass
32
33                        if use_legacy_windows_render:
34                            from rich._win32_console import LegacyWindowsTerm
35                            from rich._windows_renderer import legacy_windows_render
36
37                            buffer = self._buffer[:]
38                            if self.no_color and self._color_system:
39                                buffer = list(Segment.remove_color(buffer))
40
41                            legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
42                        else:
43                            # Either a non-std stream on legacy Windows, or modern Windows.
44                            text = self._render_buffer(self._buffer[:])
45                            # https://bugs.python.org/issue37871
46                            write = self.file.write
47                            for line in text.splitlines(True):
48                                try:
49                                    write(line)
50                                except UnicodeEncodeError as error:
51                                    error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
52                                    raise
53                    else:
54                        text = self._render_buffer(self._buffer[:])
55                        try:
56                            self.file.write(text)
57                        except UnicodeEncodeError as error:
58                            error.reason = f"{error.reason}\n*** You may need to add PYTHONIOENCODING=utf-8 to your environment ***"
59                            raise
60
61                    self.file.flush()
62                    del self._buffer[:]