/opt/support/venv/lib/python3.13/site-packages/pip/_vendor/rich
NameSizeModeActions
__pycache__/-0755rm
abc.py8900755editdlrm
align.py103240755editdlrm
ansi.py69210755editdlrm
bar.py32630755editdlrm
box.py106860755editdlrm
cells.py51300755editdlrm
color.py182110755editdlrm
color_triplet.py10540755editdlrm
columns.py71310755editdlrm
console.py1008490755editdlrm
constrain.py12880755editdlrm
containers.py55020755editdlrm
control.py64870755editdlrm
default_styles.py82570755editdlrm
diagnose.py10250755editdlrm
emoji.py23670755editdlrm
errors.py6420755editdlrm
filesize.py24840755editdlrm
file_proxy.py16830755editdlrm
highlighter.py95860755editdlrm
json.py50310755editdlrm
jupyter.py32520755editdlrm
layout.py140040755editdlrm
LICENSE10560755editdlrm
live.py151800755editdlrm
live_render.py35210755editdlrm
logging.py124680755editdlrm
markup.py84510755editdlrm
measure.py53050755editdlrm
padding.py49080755editdlrm
pager.py8280755editdlrm
palette.py33960755editdlrm
panel.py111570755editdlrm
pretty.py363910755editdlrm
progress.py604080755editdlrm
progress_bar.py81620755editdlrm
prompt.py124470755editdlrm
protocol.py13910755editdlrm
py.typed00755editdlrm
region.py1660755editdlrm
repr.py44310755editdlrm
rule.py46020755editdlrm
scope.py28430755editdlrm
screen.py15910755editdlrm
segment.py247430755editdlrm
spinner.py42140755editdlrm
status.py44240755editdlrm
style.py269900755editdlrm
styled.py12580755editdlrm
syntax.py363710755editdlrm
table.py400490755editdlrm
terminal_theme.py33700755editdlrm
text.py475520755editdlrm
theme.py37710755editdlrm
themes.py1020755editdlrm
traceback.py358610755editdlrm
tree.py94510755editdlrm
_cell_widths.py102090755editdlrm
_emoji_codes.py1402350755editdlrm
_emoji_replace.py10640755editdlrm
_export_format.py21280755editdlrm
_extension.py2650755editdlrm
_fileno.py7990755editdlrm
_inspect.py96560755editdlrm
_log_render.py32250755editdlrm
_loop.py12360755editdlrm
_null_file.py13940755editdlrm
_palettes.py70630755editdlrm
_pick.py4230755editdlrm
_ratio.py53250755editdlrm
_spinners.py199190755editdlrm
_stack.py3510755editdlrm
_timer.py4170755editdlrm
_win32_console.py227550755editdlrm
_windows.py19250755editdlrm
_windows_renderer.py27830755editdlrm
_wrap.py34040755editdlrm
__init__.py60900755editdlrm
__main__.py78960755editdlrm
Edit: /opt/support/venv/lib/python3.13/site-packages/pip/_vendor/rich/jupyter.py (3252B)
from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Sequence if TYPE_CHECKING: from pip._vendor.rich.console import ConsoleRenderable from . import get_console from .segment import Segment from .terminal_theme import DEFAULT_TERMINAL_THEME if TYPE_CHECKING: from pip._vendor.rich.console import ConsoleRenderable JUPYTER_HTML_FORMAT = """\
{code}
""" class JupyterRenderable: """A shim to write html to Jupyter notebook.""" def __init__(self, html: str, text: str) -> None: self.html = html self.text = text def _repr_mimebundle_( self, include: Sequence[str], exclude: Sequence[str], **kwargs: Any ) -> Dict[str, str]: data = {"text/plain": self.text, "text/html": self.html} if include: data = {k: v for (k, v) in data.items() if k in include} if exclude: data = {k: v for (k, v) in data.items() if k not in exclude} return data class JupyterMixin: """Add to an Rich renderable to make it render in Jupyter notebook.""" __slots__ = () def _repr_mimebundle_( self: "ConsoleRenderable", include: Sequence[str], exclude: Sequence[str], **kwargs: Any, ) -> Dict[str, str]: console = get_console() segments = list(console.render(self, console.options)) html = _render_segments(segments) text = console._render_buffer(segments) data = {"text/plain": text, "text/html": html} if include: data = {k: v for (k, v) in data.items() if k in include} if exclude: data = {k: v for (k, v) in data.items() if k not in exclude} return data def _render_segments(segments: Iterable[Segment]) -> str: def escape(text: str) -> str: """Escape html.""" return text.replace("&", "&").replace("<", "<").replace(">", ">") fragments: List[str] = [] append_fragment = fragments.append theme = DEFAULT_TERMINAL_THEME for text, style, control in Segment.simplify(segments): if control: continue text = escape(text) if style: rule = style.get_html_style(theme) text = f'{text}' if rule else text if style.link: text = f'{text}' append_fragment(text) code = "".join(fragments) html = JUPYTER_HTML_FORMAT.format(code=code) return html def display(segments: Iterable[Segment], text: str) -> None: """Render segments to Jupyter.""" html = _render_segments(segments) jupyter_renderable = JupyterRenderable(html, text) try: from IPython.display import display as ipython_display ipython_display(jupyter_renderable) except ModuleNotFoundError: # Handle the case where the Console has force_jupyter=True, # but IPython is not installed. pass def print(*args: Any, **kwargs: Any) -> None: """Proxy for Console print.""" console = get_console() return console.print(*args, **kwargs)