← eval6_submission_v1r

rich_3944

failed NO_PATCH NO_PATCH UNSUBMITTED empty_patch(budget) · 20 tool calls · 304 s · Textualize/rich

Task input

fix fonts

Fixes https://github.com/Textualize/rich/issues/3943

Tool calls (20)

#ToolArgumentsResult
1run_command
{
 "command": "grep -rn \"font\" rich | head -20"
}
{"status": "ok", "stdout": "rich/table.py:48: safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *ra
full
{"status": "ok", "stdout": "rich/table.py:48:        safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.\nrich/table.py:163:        safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.\nrich/console.py:2336:        font_aspect_ratio: float = 0.61,\nrich/console.py:2349:            font_aspect_ratio (float, optional): The width to height ratio of the font used in the ``code_format``\nrich/console.py:2350:                string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/console.py:2351:                If you aren't specifying a different font inside ``code_format``, you probably don't need this.\nrich/console.py:2381:                css_rules.append(\"font-weight: bold\")\nrich/console.py:2383:                css_rules.append(\"font-style: italic;\")\nrich/console.py:2397:        char_width = char_height * font_aspect_ratio\nrich/console.py:2588:        font_aspect_ratio: float = 0.61,\nrich/console.py:2601:            font_aspect_ratio (float, optional): The width to height ratio of the font used in the ``code_format``\nrich/console.py:2602:                string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/console.py:2603:                If you aren't specifying a different font inside ``code_format``, you probably don't need this.\nrich/console.py:2612:            font_aspect_ratio=font_aspect_ratio,\nrich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\nrich/_export_format.py:15:    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\nrich/_export_format.py:25:    @font-face {{\nrich/_e
2run_command
{
 "command": "grep -rn \"font-family\" rich | head -20"
}
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Co
full
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\nrich/_export_format.py:15:    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\nrich/_export_format.py:26:        font-family: \"Fira Code\";\nrich/_export_format.py:34:        font-family: \"Fira Code\";\nrich/_export_format.py:43:        font-family: Fira Code, monospace;\nrich/_export_format.py:52:        font-family: arial;\n", "stderr": "", "exit_code": 0}
3read_file
{
 "filepath": "rich/_export_format.py"
}
{"status": "ok", "filepath": "rich/_export_format.py", "content": "CONSOLE_HTML_FORMAT = \"\"\"\\\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<s
full
{"status": "ok", "filepath": "rich/_export_format.py", "content": "CONSOLE_HTML_FORMAT = \"\"\"\\\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<style>\n{stylesheet}\nbody {{\n    color: {foreground};\n    background-color: {background};\n}}\n</style>\n</head>\n<body>\n    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\n</body>\n</html>\n\"\"\"\n\nCONSOLE_SVG_FORMAT = \"\"\"\\\n<svg class=\"rich-terminal\" viewBox=\"0 0 {width} {height}\" xmlns=\"http://www.w3.org/2000/svg\">\n    <!-- Generated with Rich https://www.textualize.io -->\n    <style>\n\n    @font-face {{\n        font-family: \"Fira Code\";\n        src: local(\"FiraCode-Regular\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2\") format(\"woff2\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff\") format(\"woff\");\n        font-style: normal;\n        font-weight: 400;\n    }}\n    @font-face {{\n        font-family: \"Fira Code\";\n        src: local(\"FiraCode-Bold\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2\") format(\"woff2\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff\") format(\"woff\");\n        font-style: bold;\n        font-weight: 700;\n    }}\n\n    .{unique_id}-matrix {{\n        font-family: Fira Code, monospace;\n        font-size: {char_height}px;\n        line-height: {line_height}px;\n        font-variant-east-asian: full-width;\n    }}\n\n    .{unique_id}-title {{\n        font-size: 18px;\n        font-weight: bold;\n        font-family: arial;\n    }}\n\n    {styles}\n    </style>\n\n    <defs>\n    <clipPath id=\"{unique_id}-clip-terminal\">\n      <rect x=\"0\" y=\"0\" width=\"{terminal_width}\" height=\"{terminal_height}\" />\n    </cli
4read_file
{
 "filepath": "rich/jupyter.py"
}
{"status": "ok", "filepath": "rich/jupyter.py", "content": "from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Sequence\n\nif TYPE_CHECKING:\n from ri
full
{"status": "ok", "filepath": "rich/jupyter.py", "content": "from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Sequence\n\nif TYPE_CHECKING:\n    from rich.console import ConsoleRenderable\n\nfrom . import get_console\nfrom .segment import Segment\nfrom .terminal_theme import DEFAULT_TERMINAL_THEME\n\nif TYPE_CHECKING:\n    from rich.console import ConsoleRenderable\n\nJUPYTER_HTML_FORMAT = \"\"\"\\\n<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\n\"\"\"\n\n\nclass JupyterRenderable:\n    \"\"\"A shim to write html to Jupyter notebook.\"\"\"\n\n    def __init__(self, html: str, text: str) -> None:\n        self.html = html\n        self.text = text\n\n    def _repr_mimebundle_(\n        self, include: Sequence[str], exclude: Sequence[str], **kwargs: Any\n    ) -> Dict[str, str]:\n        data = {\"text/plain\": self.text, \"text/html\": self.html}\n        if include:\n            data = {k: v for (k, v) in data.items() if k in include}\n        if exclude:\n            data = {k: v for (k, v) in data.items() if k not in exclude}\n        return data\n\n\nclass JupyterMixin:\n    \"\"\"Add to an Rich renderable to make it render in Jupyter notebook.\"\"\"\n\n    __slots__ = ()\n\n    def _repr_mimebundle_(\n        self: \"ConsoleRenderable\",\n        include: Sequence[str],\n        exclude: Sequence[str],\n        **kwargs: Any,\n    ) -> Dict[str, str]:\n        console = get_console()\n        segments = list(console.render(self, console.options))\n        html = _render_segments(segments)\n        text = console._render_buffer(segments)\n        data = {\"text/plain\": text, \"text/html\": html}\n        if include:\n            data = {k: v for (k, v) in data.items() if k in include}\n        if exclude:\n            data = {k: v for (k, v) in data.items() if k not in exclude}\n        return data\n\n\ndef _render_segments(segments: Iterable[Segment
5run_command
{
 "command": "grep -rn \"Fira Code\" rich | head -20"
}
{"status": "ok", "stdout": "rich/console.py:2350: string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/console.py
full
{"status": "ok", "stdout": "rich/console.py:2350:                string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/console.py:2602:                string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/_export_format.py:26:        font-family: \"Fira Code\";\nrich/_export_format.py:34:        font-family: \"Fira Code\";\nrich/_export_format.py:43:        font-family: Fira Code, monospace;\nrich/_export_format.py:75:_SVG_FONT_FAMILY = \"Rich Fira Code\"\n", "stderr": "", "exit_code": 0}
6run_command
{
 "command": "grep -rn \"Menlo\" rich | head -20"
}
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Co
full
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\nrich/_export_format.py:15:    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\n", "stderr": "", "exit_code": 0}
7-8 ×2run_command
{
 "command": "grep -rn \"font-family\" rich | head -20"
}
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Co
full
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\nrich/_export_format.py:15:    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\nrich/_export_format.py:26:        font-family: \"Fira Code\";\nrich/_export_format.py:34:        font-family: \"Fira Code\";\nrich/_export_format.py:43:        font-family: Fira Code, monospace;\nrich/_export_format.py:52:        font-family: arial;\n", "stderr": "", "exit_code": 0}
9run_command
{
 "command": "curl -s https://github.com/Textualize/rich/issues/3943 | grep -A 10 \"Description\""
}
{"status": "ok", "stdout": " <div data-target=\"react-app.reactRoot\"><link rel=\"preload\" as=\"image\" href=\"https://avatars.githubusercontent.com/u/87571998
full
{"status": "ok", "stdout": "  <div data-target=\"react-app.reactRoot\"><link rel=\"preload\" as=\"image\" href=\"https://avatars.githubusercontent.com/u/87571998?u=d14d3ac4c574a88f272261bf9d0939668815069a&amp;v=4&amp;size=48\"/><!--$--><!--$--><div class=\"IssueShowPage-module__issueDetailContainer__DbXfA\"><div class=\"primary-viewer IssueDetail-module__IssueDetailContainer__JnqVq\" data-testid=\"issue-viewer-container\"><!--$--><div class=\"IssueViewer-module__issueViewerContainer__Hualk IssueViewer-module__mainContainer__lmFuF\"><!--$--><div class=\"ArtifactsPanelLayout-module__Layout__Un04j\" data-artifacts-panel-open=\"false\" data-testid=\"issue-artifacts-panel-layout\"><div style=\"--spacing:var(--spacing-none)\" class=\"prc-PageLayout-PageLayoutRoot--KH-d\" data-component=\"SplitPageLayout\" data-has-sidebar=\"true\"><div class=\"prc-PageLayout-SidebarWrapper-kLG4B ArtifactsPanelLayout-module__SidePanel__lCPFB ArtifactsPanelLayout-module__HiddenSidePanel__Dt0MK\" style=\"--spacing-column:var(--spacing-none)\" data-is-hidden=\"false\" data-position=\"end\" data-sticky=\"true\"><div class=\"prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V\" data-component=\"PageLayout.VerticalDivider\" data-variant=\"none\" data-position=\"end\" style=\"--spacing:var(--spacing-none)\"></div><div class=\"prc-PageLayout-Sidebar-iciWg\" data-component=\"SplitPageLayout.Sidebar\" style=\"--spacing:var(--spacing-none);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px\"><div class=\"height-full\"></div></div></div><div class=\"prc-PageLayout-PageLayoutWrapper-2BhU2\" data-width=\"full\"><div class=\"prc-PageLayout-PageLayoutContent-BneH9\"><div data-component=\"SplitPageLayout.Content\" class=\"prc-PageLayout-ContentWrapper-gR9eG ArtifactsPanelLayout-module__Content__aDOuB\" data-is-hidden=\"false\"><div class=\"prc-PageLayout-Content-xWL-A\" data-width=\"full\" style=
10run_command
{
 "command": "grep -rn \"width\" rich | grep \"char\" | head -20"
}
{"status": "ok", "stdout": "rich/table.py:45: width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.\n
full
{"status": "ok", "stdout": "rich/table.py:45:        width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.\nrich/table.py:160:        width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.\nrich/table.py:396:            width (int, optional): Desired width of column in characters, or None to fit to contents. Defaults to None.\nrich/logging.py:38:        tracebacks_width (Optional[int], optional): Number of characters used to render tracebacks, or None for full width. Defaults to None.\nrich/logging.py:39:        tracebacks_code_width (int, optional): Number of code characters used to render tracebacks, or None for full width. Defaults to 88.\nrich/rule.py:34:                \"'characters' argument must have a cell width of at least 1\"\nrich/rule.py:62:            yield self._rule_line(chars_len, width)\nrich/rule.py:76:            yield self._rule_line(chars_len, width)\nrich/rule.py:83:            left = Text(characters * (side_width // chars_len + 1))\nrich/rule.py:86:            right = Text(characters * (side_width // chars_len + 1))\nrich/rule.py:95:            rule_text.append(characters * (width - rule_text.cell_len), self.style)\nrich/rule.py:98:            rule_text.append(characters * (width - title_text.cell_len - 1), self.style)\nrich/rule.py:105:    def _rule_line(self, chars_len: int, width: int) -> Text:\nrich/rule.py:106:        rule_text = Text(self.characters * ((width // chars_len) + 1), self.style)\nrich/cells.py:145:                total_width += last_measured_character in cell_table.narrow_to_wide\nrich/cells.py:148:            if character_width := get_character_cell_size(character, unicode_version):\nrich/cells.py:150:                total_width += character_width\nrich/cells.py:196:        if character_width := get_character_cell_size(character, unicode_version):\nrich/cells.py:198:            spans.append((index, index := in
11read_file
{
 "filepath": "rich/cells.py"
}
{"status": "ok", "filepath": "rich/cells.py", "content": "from __future__ import annotations\n\nfrom functools import lru_cache\nfrom operator import itemgetter
full
{"status": "ok", "filepath": "rich/cells.py", "content": "from __future__ import annotations\n\nfrom functools import lru_cache\nfrom operator import itemgetter\nfrom typing import Callable, NamedTuple, Sequence, Tuple\n\nfrom rich._unicode_data import load as load_cell_table\n\nCellSpan = Tuple[int, int, int]\n\n_span_get_cell_len = itemgetter(2)\n\n# Ranges of unicode ordinals that produce a 1-cell wide character\n# This is non-exhaustive, but covers most common Western characters\n_SINGLE_CELL_UNICODE_RANGES: list[tuple[int, int]] = [\n    (0x20, 0x7E),  # Latin (excluding non-printable)\n    (0xA0, 0xAC),\n    (0xAE, 0x002FF),\n    (0x00370, 0x00482),  # Greek / Cyrillic\n    (0x02500, 0x025FC),  # Box drawing, box elements, geometric shapes\n    (0x02800, 0x028FF),  # Braille\n]\n\n# A frozen set of characters that are a single cell wide\n_SINGLE_CELLS = frozenset(\n    [\n        character\n        for _start, _end in _SINGLE_CELL_UNICODE_RANGES\n        for character in map(chr, range(_start, _end + 1))\n    ]\n)\n\n# When called with a string this will return True if all\n# characters are single-cell, otherwise False\n_is_single_cell_widths: Callable[[str], bool] = _SINGLE_CELLS.issuperset\n\n\nclass CellTable(NamedTuple):\n    \"\"\"Contains unicode data required to measure the cell widths of glyphs.\"\"\"\n\n    unicode_version: str\n    widths: Sequence[tuple[int, int, int]]\n    narrow_to_wide: frozenset[str]\n\n\n@lru_cache(maxsize=4096)\ndef get_character_cell_size(character: str, unicode_version: str = \"auto\") -> int:\n    \"\"\"Get the cell size of a character.\n\n    Args:\n        character (str): A single character.\n        unicode_version: Unicode version, `\"auto\"` to auto detect, `\"latest\"` for the latest unicode version.\n\n    Returns:\n        int: Number of cells (0, 1 or 2) occupied by that character.\n    \"\"\"\n    codepoint = ord(character)\n    table = load_cell_table(unicode_version).widths\n    if codepoint > table[-1][1]:\n  
12run_command
{
 "command": "ls rich/_unicode_data.py"
}
{"status": "error", "error_type": "CommandError", "error_message": "ls: cannot access 'rich/_unicode_data.py': No such file or directory\n", "details": {"stdout
full
{"status": "error", "error_type": "CommandError", "error_message": "ls: cannot access 'rich/_unicode_data.py': No such file or directory\n", "details": {"stdout": "", "stderr": "ls: cannot access 'rich/_unicode_data.py': No such file or directory\n", "exit_code": 2}}
13run_command
{
 "command": "find rich -name \"*unicode*\""
}
{"status": "ok", "stdout": "rich/_unicode_data\nrich/_unicode_data/unicode6-2-0.py\nrich/_unicode_data/unicode17-0-0.py\nrich/_unicode_data/unicode6-1-0.py\nric
full
{"status": "ok", "stdout": "rich/_unicode_data\nrich/_unicode_data/unicode6-2-0.py\nrich/_unicode_data/unicode17-0-0.py\nrich/_unicode_data/unicode6-1-0.py\nrich/_unicode_data/unicode14-0-0.py\nrich/_unicode_data/unicode12-0-0.py\nrich/_unicode_data/unicode5-1-0.py\nrich/_unicode_data/unicode12-1-0.py\nrich/_unicode_data/unicode5-2-0.py\nrich/_unicode_data/unicode16-0-0.py\nrich/_unicode_data/unicode8-0-0.py\nrich/_unicode_data/unicode15-0-0.py\nrich/_unicode_data/unicode11-0-0.py\nrich/_unicode_data/unicode9-0-0.py\nrich/_unicode_data/unicode4-1-0.py\nrich/_unicode_data/unicode13-0-0.py\nrich/_unicode_data/unicode6-0-0.py\nrich/_unicode_data/unicode15-1-0.py\nrich/_unicode_data/unicode6-3-0.py\nrich/_unicode_data/unicode7-0-0.py\nrich/_unicode_data/unicode5-0-0.py\nrich/_unicode_data/unicode10-0-0.py\n", "stderr": "", "exit_code": 0}
14run_command
{
 "command": "ls -F rich/_unicode_data/"
}
{"status": "ok", "stdout": "__init__.py\n_versions.py\nunicode10-0-0.py\nunicode11-0-0.py\nunicode12-0-0.py\nunicode12-1-0.py\nunicode13-0-0.py\nunicode14-0-0.p
full
{"status": "ok", "stdout": "__init__.py\n_versions.py\nunicode10-0-0.py\nunicode11-0-0.py\nunicode12-0-0.py\nunicode12-1-0.py\nunicode13-0-0.py\nunicode14-0-0.py\nunicode15-0-0.py\nunicode15-1-0.py\nunicode16-0-0.py\nunicode17-0-0.py\nunicode4-1-0.py\nunicode5-0-0.py\nunicode5-1-0.py\nunicode5-2-0.py\nunicode6-0-0.py\nunicode6-1-0.py\nunicode6-2-0.py\nunicode6-3-0.py\nunicode7-0-0.py\nunicode8-0-0.py\nunicode9-0-0.py\n", "stderr": "", "exit_code": 0}
15read_file
{
 "filepath": "rich/_unicode_data/__init__.py"
}
{"status": "ok", "filepath": "rich/_unicode_data/__init__.py", "content": "from __future__ import annotations\n\nimport bisect\nimport os\nimport sys\n\nif sys.
full
{"status": "ok", "filepath": "rich/_unicode_data/__init__.py", "content": "from __future__ import annotations\n\nimport bisect\nimport os\nimport sys\n\nif sys.version_info[:2] >= (3, 9):\n    from functools import cache\nelse:\n    from functools import lru_cache as cache  # pragma: no cover\n\nfrom importlib import import_module\nfrom typing import TYPE_CHECKING, cast\n\nfrom rich._unicode_data._versions import VERSIONS\n\nif TYPE_CHECKING:\n    from rich.cells import CellTable\n\nVERSION_ORDER = sorted(\n    [\n        tuple(\n            map(int, version.split(\".\")),\n        )\n        for version in VERSIONS\n    ]\n)\nVERSION_SET = frozenset(VERSIONS)\n\n\ndef _parse_version(version: str) -> tuple[int, int, int]:\n    \"\"\"Parse a version string into a tuple of 3 integers.\n\n    Args:\n        version: A version string.\n\n    Raises:\n        ValueError: If the version string is invalid.\n\n    Returns:\n        A tuple of 3 integers.\n    \"\"\"\n    version_integers: tuple[int, ...]\n    try:\n        version_integers = tuple(\n            map(int, version.split(\".\")),\n        )\n    except ValueError:\n        raise ValueError(\n            f\"unicode version string {version!r} is badly formatted\"\n        ) from None\n    while len(version_integers) < 3:\n        version_integers = version_integers + (0,)\n    triple = cast(\"tuple[int, int, int]\", version_integers[:3])\n    return triple\n\n\n@cache\ndef load(unicode_version: str = \"auto\") -> CellTable:\n    \"\"\"Load a cell table for the given unicode version.\n\n    Args:\n        unicode_version: Unicode version, or `None` to auto-detect.\n\n    \"\"\"\n    if unicode_version == \"auto\":\n        unicode_version = os.environ.get(\"UNICODE_VERSION\", \"latest\")\n        try:\n            _parse_version(unicode_version)\n        except ValueError:\n            # The environment variable is invalid\n            # Fallback to using the latest version seems reasonable\n            unicode_ve
16read_file
{
 "filepath": "rich/_unicode_data/_versions.py"
}
{"status": "ok", "filepath": "rich/_unicode_data/_versions.py", "content": "VERSIONS = (\n \"4.1.0\",\n \"5.0.0\",\n \"5.1.0\",\n \"5.2.0\",\n \"6.0.0\",\n \"6.
full
{"status": "ok", "filepath": "rich/_unicode_data/_versions.py", "content": "VERSIONS = (\n    \"4.1.0\",\n    \"5.0.0\",\n    \"5.1.0\",\n    \"5.2.0\",\n    \"6.0.0\",\n    \"6.1.0\",\n    \"6.2.0\",\n    \"6.3.0\",\n    \"7.0.0\",\n    \"8.0.0\",\n    \"9.0.0\",\n    \"10.0.0\",\n    \"11.0.0\",\n    \"12.0.0\",\n    \"12.1.0\",\n    \"13.0.0\",\n    \"14.0.0\",\n    \"15.0.0\",\n    \"15.1.0\",\n    \"16.0.0\",\n    \"17.0.0\",\n)", "start_line": 1, "end_line": 23, "total_lines": 23, "is_truncated": false}
17read_file
{
 "filepath": "rich/_unicode_data/unicode17-0-0.py"
}
{"status": "ok", "filepath": "rich/_unicode_data/unicode17-0-0.py", "content": "# Auto generated by tools/make_width_tables.py\n# Data from wcwidth project (htt
full
{"status": "ok", "filepath": "rich/_unicode_data/unicode17-0-0.py", "content": "# Auto generated by tools/make_width_tables.py\n# Data from wcwidth project (https://github.com/jquast/wcwidth)\n\nfrom rich.cells import CellTable\n\ncell_table = CellTable(\n    \"17.0.0\",\n    [\n        (0, 0, 0),\n        (768, 879, 0),\n        (1155, 1161, 0),\n        (1425, 1469, 0),\n        (1471, 1471, 0),\n        (1473, 1474, 0),\n        (1476, 1477, 0),\n        (1479, 1479, 0),\n        (1552, 1562, 0),\n        (1564, 1564, 0),\n        (1611, 1631, 0),\n        (1648, 1648, 0),\n        (1750, 1756, 0),\n        (1759, 1764, 0),\n        (1767, 1768, 0),\n        (1770, 1773, 0),\n        (1809, 1809, 0),\n        (1840, 1866, 0),\n        (1958, 1968, 0),\n        (2027, 2035, 0),\n        (2045, 2045, 0),\n        (2070, 2073, 0),\n        (2075, 2083, 0),\n        (2085, 2087, 0),\n        (2089, 2093, 0),\n        (2137, 2139, 0),\n        (2199, 2207, 0),\n        (2250, 2273, 0),\n        (2275, 2307, 0),\n        (2362, 2364, 0),\n        (2366, 2383, 0),\n        (2385, 2391, 0),\n        (2402, 2403, 0),\n        (2433, 2435, 0),\n        (2492, 2492, 0),\n        (2494, 2500, 0),\n        (2503, 2504, 0),\n        (2507, 2509, 0),\n        (2519, 2519, 0),\n        (2530, 2531, 0),\n        (2558, 2558, 0),\n        (2561, 2563, 0),\n        (2620, 2620, 0),\n        (2622, 2626, 0),\n        (2631, 2632, 0),\n        (2635, 2637, 0),\n        (2641, 2641, 0),\n        (2672, 2673, 0),\n        (2677, 2677, 0),\n        (2689, 2691, 0),\n        (2748, 2748, 0),\n        (2750, 2757, 0),\n        (2759, 2761, 0),\n        (2763, 2765, 0),\n        (2786, 2787, 0),\n        (2810, 2815, 0),\n        (2817, 2819, 0),\n        (2876, 2876, 0),\n        (2878, 2884, 0),\n        (2887, 2888, 0),\n        (2891, 2893, 0),\n        (2901, 2903, 0),\n        (2914, 2915, 0),\n        (2946, 2946, 0),\n        (3006, 3010, 0),\n        (3014, 3016, 0),\n        (301
18run_command
{
 "command": "grep -rn \"font\" rich | head -20"
}
{"status": "ok", "stdout": "rich/table.py:48: safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *ra
full
{"status": "ok", "stdout": "rich/table.py:48:        safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.\nrich/table.py:163:        safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.\nrich/console.py:2336:        font_aspect_ratio: float = 0.61,\nrich/console.py:2349:            font_aspect_ratio (float, optional): The width to height ratio of the font used in the ``code_format``\nrich/console.py:2350:                string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/console.py:2351:                If you aren't specifying a different font inside ``code_format``, you probably don't need this.\nrich/console.py:2381:                css_rules.append(\"font-weight: bold\")\nrich/console.py:2383:                css_rules.append(\"font-style: italic;\")\nrich/console.py:2397:        char_width = char_height * font_aspect_ratio\nrich/console.py:2588:        font_aspect_ratio: float = 0.61,\nrich/console.py:2601:            font_aspect_ratio (float, optional): The width to height ratio of the font used in the ``code_format``\nrich/console.py:2602:                string. Defaults to 0.61, which is the width to height ratio of Fira Code (the default font).\nrich/console.py:2603:                If you aren't specifying a different font inside ``code_format``, you probably don't need this.\nrich/console.py:2612:            font_aspect_ratio=font_aspect_ratio,\nrich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\nrich/_export_format.py:15:    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\nrich/_export_format.py:25:    @font-face {{\nrich/_e
19-20 ×2run_command
{
 "command": "grep -rn \"font-family\" rich | head -20"
}
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Co
full
{"status": "ok", "stdout": "rich/jupyter.py:14:<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">{code}</pre>\nrich/_export_format.py:15:    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\nrich/_export_format.py:26:        font-family: \"Fira Code\";\nrich/_export_format.py:34:        font-family: \"Fira Code\";\nrich/_export_format.py:43:        font-family: Fira Code, monospace;\nrich/_export_format.py:52:        font-family: arial;\n", "stderr": "", "exit_code": 0}