GRAYBYTE WORDPRESS FILE MANAGER1441

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/pip/_vendor/rich/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/pip/_vendor/rich//box.py
import sys
from typing import TYPE_CHECKING, Iterable, List

if sys.version_info >= (3, 8):
    from typing import Literal
else:
    from pip._vendor.typing_extensions import Literal  # pragma: no cover


from ._loop import loop_last

if TYPE_CHECKING:
    from pip._vendor.rich.console import ConsoleOptions


class Box:
    """Defines characters to render boxes.

    ┌─┬┐ top
    │ ││ head
    ├─┼┤ head_row
    │ ││ mid
    ├─┼┤ row
    ├─┼┤ foot_row
    │ ││ foot
    └─┴┘ bottom

    Args:
        box (str): Characters making up box.
        ascii (bool, optional): True if this box uses ascii characters only. Default is False.
    """

    def __init__(self, box: str, *, ascii: bool = False) -> None:
        self._box = box
        self.ascii = ascii
        line1, line2, line3, line4, line5, line6, line7, line8 = box.splitlines()
        # top
        self.top_left, self.top, self.top_divider, self.top_right = iter(line1)
        # head
        self.head_left, _, self.head_vertical, self.head_right = iter(line2)
        # head_row
        (
            self.head_row_left,
            self.head_row_horizontal,
            self.head_row_cross,
            self.head_row_right,
        ) = iter(line3)

        # mid
        self.mid_left, _, self.mid_vertical, self.mid_right = iter(line4)
        # row
        self.row_left, self.row_horizontal, self.row_cross, self.row_right = iter(line5)
        # foot_row
        (
            self.foot_row_left,
            self.foot_row_horizontal,
            self.foot_row_cross,
            self.foot_row_right,
        ) = iter(line6)
        # foot
        self.foot_left, _, self.foot_vertical, self.foot_right = iter(line7)
        # bottom
        self.bottom_left, self.bottom, self.bottom_divider, self.bottom_right = iter(
            line8
        )

    def __repr__(self) -> str:
        return "Box(...)"

    def __str__(self) -> str:
        return self._box

    def substitute(self, options: "ConsoleOptions", safe: bool = True) -> "Box":
        """Substitute this box for another if it won't render due to platform issues.

        Args:
            options (ConsoleOptions): Console options used in rendering.
            safe (bool, optional): Substitute this for another Box if there are known problems
                displaying on the platform (currently only relevant on Windows). Default is True.

        Returns:
            Box: A different Box or the same Box.
        """
        box = self
        if options.legacy_windows and safe:
            box = LEGACY_WINDOWS_SUBSTITUTIONS.get(box, box)
        if options.ascii_only and not box.ascii:
            box = ASCII
        return box

    def get_plain_headed_box(self) -> "Box":
        """If this box uses special characters for the borders of the header, then
        return the equivalent box that does not.

        Returns:
            Box: The most similar Box that doesn't use header-specific box characters.
                If the current Box already satisfies this criterion, then it's returned.
        """
        return PLAIN_HEADED_SUBSTITUTIONS.get(self, self)

    def get_top(self, widths: Iterable[int]) -> str:
        """Get the top of a simple box.

        Args:
            widths (List[int]): Widths of columns.

        Returns:
            str: A string of box characters.
        """

        parts: List[str] = []
        append = parts.append
        append(self.top_left)
        for last, width in loop_last(widths):
            append(self.top * width)
            if not last:
                append(self.top_divider)
        append(self.top_right)
        return "".join(parts)

    def get_row(
        self,
        widths: Iterable[int],
        level: Literal["head", "row", "foot", "mid"] = "row",
        edge: bool = True,
    ) -> str:
        """Get the top of a simple box.

        Args:
            width (List[int]): Widths of columns.

        Returns:
            str: A string of box characters.
        """
        if level == "head":
            left = self.head_row_left
            horizontal = self.head_row_horizontal
            cross = self.head_row_cross
            right = self.head_row_right
        elif level == "row":
            left = self.row_left
            horizontal = self.row_horizontal
            cross = self.row_cross
            right = self.row_right
        elif level == "mid":
            left = self.mid_left
            horizontal = " "
            cross = self.mid_vertical
            right = self.mid_right
        elif level == "foot":
            left = self.foot_row_left
            horizontal = self.foot_row_horizontal
            cross = self.foot_row_cross
            right = self.foot_row_right
        else:
            raise ValueError("level must be 'head', 'row' or 'foot'")

        parts: List[str] = []
        append = parts.append
        if edge:
            append(left)
        for last, width in loop_last(widths):
            append(horizontal * width)
            if not last:
                append(cross)
        if edge:
            append(right)
        return "".join(parts)

    def get_bottom(self, widths: Iterable[int]) -> str:
        """Get the bottom of a simple box.

        Args:
            widths (List[int]): Widths of columns.

        Returns:
            str: A string of box characters.
        """

        parts: List[str] = []
        append = parts.append
        append(self.bottom_left)
        for last, width in loop_last(widths):
            append(self.bottom * width)
            if not last:
                append(self.bottom_divider)
        append(self.bottom_right)
        return "".join(parts)


# fmt: off
ASCII: Box = Box(
    "+--+\n"
    "| ||\n"
    "|-+|\n"
    "| ||\n"
    "|-+|\n"
    "|-+|\n"
    "| ||\n"
    "+--+\n",
    ascii=True,
)

ASCII2: Box = Box(
    "+-++\n"
    "| ||\n"
    "+-++\n"
    "| ||\n"
    "+-++\n"
    "+-++\n"
    "| ||\n"
    "+-++\n",
    ascii=True,
)

ASCII_DOUBLE_HEAD: Box = Box(
    "+-++\n"
    "| ||\n"
    "+=++\n"
    "| ||\n"
    "+-++\n"
    "+-++\n"
    "| ||\n"
    "+-++\n",
    ascii=True,
)

SQUARE: Box = Box(
    "┌─┬┐\n"
    "│ ││\n"
    "├─┼┤\n"
    "│ ││\n"
    "├─┼┤\n"
    "├─┼┤\n"
    "│ ││\n"
    "└─┴┘\n"
)

SQUARE_DOUBLE_HEAD: Box = Box(
    "┌─┬┐\n"
    "│ ││\n"
    "╞═╪╡\n"
    "│ ││\n"
    "├─┼┤\n"
    "├─┼┤\n"
    "│ ││\n"
    "└─┴┘\n"
)

MINIMAL: Box = Box(
    "  ╷ \n"
    "  │ \n"
    "╶─┼╴\n"
    "  │ \n"
    "╶─┼╴\n"
    "╶─┼╴\n"
    "  │ \n"
    "  ╵ \n"
)


MINIMAL_HEAVY_HEAD: Box = Box(
    "  ╷ \n"
    "  │ \n"
    "╺━┿╸\n"
    "  │ \n"
    "╶─┼╴\n"
    "╶─┼╴\n"
    "  │ \n"
    "  ╵ \n"
)

MINIMAL_DOUBLE_HEAD: Box = Box(
    "  ╷ \n"
    "  │ \n"
    " ═╪ \n"
    "  │ \n"
    " ─┼ \n"
    " ─┼ \n"
    "  │ \n"
    "  ╵ \n"
)


SIMPLE: Box = Box(
    "    \n"
    "    \n"
    " ── \n"
    "    \n"
    "    \n"
    " ── \n"
    "    \n"
    "    \n"
)

SIMPLE_HEAD: Box = Box(
    "    \n"
    "    \n"
    " ── \n"
    "    \n"
    "    \n"
    "    \n"
    "    \n"
    "    \n"
)


SIMPLE_HEAVY: Box = Box(
    "    \n"
    "    \n"
    " ━━ \n"
    "    \n"
    "    \n"
    " ━━ \n"
    "    \n"
    "    \n"
)


HORIZONTALS: Box = Box(
    " ── \n"
    "    \n"
    " ── \n"
    "    \n"
    " ── \n"
    " ── \n"
    "    \n"
    " ── \n"
)

ROUNDED: Box = Box(
    "╭─┬╮\n"
    "│ ││\n"
    "├─┼┤\n"
    "│ ││\n"
    "├─┼┤\n"
    "├─┼┤\n"
    "│ ││\n"
    "╰─┴╯\n"
)

HEAVY: Box = Box(
    "┏━┳┓\n"
    "┃ ┃┃\n"
    "┣━╋┫\n"
    "┃ ┃┃\n"
    "┣━╋┫\n"
    "┣━╋┫\n"
    "┃ ┃┃\n"
    "┗━┻┛\n"
)

HEAVY_EDGE: Box = Box(
    "┏━┯┓\n"
    "┃ │┃\n"
    "┠─┼┨\n"
    "┃ │┃\n"
    "┠─┼┨\n"
    "┠─┼┨\n"
    "┃ │┃\n"
    "┗━┷┛\n"
)

HEAVY_HEAD: Box = Box(
    "┏━┳┓\n"
    "┃ ┃┃\n"
    "┡━╇┩\n"
    "│ ││\n"
    "├─┼┤\n"
    "├─┼┤\n"
    "│ ││\n"
    "└─┴┘\n"
)

DOUBLE: Box = Box(
    "╔═╦╗\n"
    "║ ║║\n"
    "╠═╬╣\n"
    "║ ║║\n"
    "╠═╬╣\n"
    "╠═╬╣\n"
    "║ ║║\n"
    "╚═╩╝\n"
)

DOUBLE_EDGE: Box = Box(
    "╔═╤╗\n"
    "║ │║\n"
    "╟─┼╢\n"
    "║ │║\n"
    "╟─┼╢\n"
    "╟─┼╢\n"
    "║ │║\n"
    "╚═╧╝\n"
)

MARKDOWN: Box = Box(
    "    \n"
    "| ||\n"
    "|-||\n"
    "| ||\n"
    "|-||\n"
    "|-||\n"
    "| ||\n"
    "    \n",
    ascii=True,
)
# fmt: on

# Map Boxes that don't render with raster fonts on to equivalent that do
LEGACY_WINDOWS_SUBSTITUTIONS = {
    ROUNDED: SQUARE,
    MINIMAL_HEAVY_HEAD: MINIMAL,
    SIMPLE_HEAVY: SIMPLE,
    HEAVY: SQUARE,
    HEAVY_EDGE: SQUARE,
    HEAVY_HEAD: SQUARE,
}

# Map headed boxes to their headerless equivalents
PLAIN_HEADED_SUBSTITUTIONS = {
    HEAVY_HEAD: SQUARE,
    SQUARE_DOUBLE_HEAD: SQUARE,
    MINIMAL_DOUBLE_HEAD: MINIMAL,
    MINIMAL_HEAVY_HEAD: MINIMAL,
    ASCII_DOUBLE_HEAD: ASCII2,
}


if __name__ == "__main__":  # pragma: no cover
    from pip._vendor.rich.columns import Columns
    from pip._vendor.rich.panel import Panel

    from . import box as box
    from .console import Console
    from .table import Table
    from .text import Text

    console = Console(record=True)

    BOXES = [
        "ASCII",
        "ASCII2",
        "ASCII_DOUBLE_HEAD",
        "SQUARE",
        "SQUARE_DOUBLE_HEAD",
        "MINIMAL",
        "MINIMAL_HEAVY_HEAD",
        "MINIMAL_DOUBLE_HEAD",
        "SIMPLE",
        "SIMPLE_HEAD",
        "SIMPLE_HEAVY",
        "HORIZONTALS",
        "ROUNDED",
        "HEAVY",
        "HEAVY_EDGE",
        "HEAVY_HEAD",
        "DOUBLE",
        "DOUBLE_EDGE",
        "MARKDOWN",
    ]

    console.print(Panel("[bold green]Box Constants", style="green"), justify="center")
    console.print()

    columns = Columns(expand=True, padding=2)
    for box_name in sorted(BOXES):
        table = Table(
            show_footer=True, style="dim", border_style="not dim", expand=True
        )
        table.add_column("Header 1", "Footer 1")
        table.add_column("Header 2", "Footer 2")
        table.add_row("Cell", "Cell")
        table.add_row("Cell", "Cell")
        table.box = getattr(box, box_name)
        table.title = Text(f"box.{box_name}", style="magenta")
        columns.add_renderable(table)
    console.print(columns)

    # console.save_svg("box.svg")

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 15 2025 08:30:34
root / root
0755
__pycache__
--
June 07 2025 08:30:29
root / root
0755
__init__.py
5.947 KB
April 17 2025 13:10:58
root / root
0644
__main__.py
8.278 KB
April 17 2025 13:10:58
root / root
0644
_cell_widths.py
9.97 KB
April 17 2025 13:10:58
root / root
0644
_emoji_codes.py
136.948 KB
April 17 2025 13:10:58
root / root
0644
_emoji_replace.py
1.039 KB
April 17 2025 13:10:58
root / root
0644
_export_format.py
2.078 KB
April 17 2025 13:10:58
root / root
0644
_extension.py
0.259 KB
April 17 2025 13:10:58
root / root
0644
_fileno.py
0.78 KB
April 17 2025 13:10:58
root / root
0644
_inspect.py
9.429 KB
April 17 2025 13:10:58
root / root
0644
_log_render.py
3.149 KB
April 17 2025 13:10:58
root / root
0644
_loop.py
1.207 KB
April 17 2025 13:10:58
root / root
0644
_null_file.py
1.361 KB
April 17 2025 13:10:58
root / root
0644
_palettes.py
6.897 KB
April 17 2025 13:10:58
root / root
0644
_pick.py
0.413 KB
April 17 2025 13:10:58
root / root
0644
_ratio.py
5.343 KB
April 17 2025 13:10:58
root / root
0644
_spinners.py
19.452 KB
April 17 2025 13:10:58
root / root
0644
_stack.py
0.343 KB
April 17 2025 13:10:58
root / root
0644
_timer.py
0.407 KB
April 17 2025 13:10:58
root / root
0644
_win32_console.py
22.222 KB
April 17 2025 13:10:58
root / root
0644
_windows.py
1.88 KB
April 17 2025 13:10:58
root / root
0644
_windows_renderer.py
2.718 KB
April 17 2025 13:10:58
root / root
0644
_wrap.py
3.324 KB
April 17 2025 13:10:58
root / root
0644
abc.py
0.869 KB
April 17 2025 13:10:58
root / root
0644
align.py
10.224 KB
April 17 2025 13:10:58
root / root
0644
ansi.py
6.759 KB
April 17 2025 13:10:58
root / root
0644
bar.py
3.187 KB
April 17 2025 13:10:58
root / root
0644
box.py
10.577 KB
April 17 2025 13:10:58
root / root
0644
cells.py
5.01 KB
April 17 2025 13:10:58
root / root
0644
color.py
17.784 KB
April 17 2025 13:10:58
root / root
0644
color_triplet.py
1.029 KB
April 17 2025 13:10:58
root / root
0644
columns.py
6.964 KB
April 17 2025 13:10:58
root / root
0644
console.py
97.809 KB
April 17 2025 13:10:58
root / root
0644
constrain.py
1.258 KB
April 17 2025 13:10:58
root / root
0644
containers.py
5.373 KB
April 17 2025 13:10:58
root / root
0644
control.py
6.475 KB
April 17 2025 13:10:58
root / root
0644
default_styles.py
7.968 KB
April 17 2025 13:10:58
root / root
0644
diagnose.py
0.949 KB
April 17 2025 13:10:58
root / root
0644
emoji.py
2.442 KB
April 17 2025 13:10:58
root / root
0644
errors.py
0.627 KB
April 17 2025 13:10:58
root / root
0644
file_proxy.py
1.644 KB
April 17 2025 13:10:58
root / root
0644
filesize.py
2.426 KB
April 17 2025 13:10:58
root / root
0644
highlighter.py
9.361 KB
April 17 2025 13:10:58
root / root
0644
json.py
4.913 KB
April 17 2025 13:10:58
root / root
0644
jupyter.py
3.176 KB
April 17 2025 13:10:58
root / root
0644
layout.py
13.676 KB
April 17 2025 13:10:58
root / root
0644
live.py
13.936 KB
April 17 2025 13:10:58
root / root
0644
live_render.py
3.58 KB
April 17 2025 13:10:58
root / root
0644
logging.py
12.166 KB
April 17 2025 13:10:58
root / root
0644
markup.py
8.253 KB
April 17 2025 13:10:58
root / root
0644
measure.py
5.181 KB
April 17 2025 13:10:58
root / root
0644
padding.py
4.793 KB
April 17 2025 13:10:58
root / root
0644
pager.py
0.809 KB
April 17 2025 13:10:58
root / root
0644
palette.py
3.316 KB
April 17 2025 13:10:58
root / root
0644
panel.py
10.972 KB
April 17 2025 13:10:58
root / root
0644
pretty.py
35.538 KB
April 17 2025 13:10:58
root / root
0644
progress.py
58.942 KB
April 17 2025 13:10:58
root / root
0644
progress_bar.py
7.971 KB
April 17 2025 13:10:58
root / root
0644
prompt.py
12.155 KB
April 17 2025 13:10:58
root / root
0644
protocol.py
1.358 KB
April 17 2025 13:10:58
root / root
0644
py.typed
0 KB
April 17 2025 13:10:58
root / root
0644
region.py
0.162 KB
April 17 2025 13:10:58
root / root
0644
repr.py
4.327 KB
April 17 2025 13:10:58
root / root
0644
rule.py
4.494 KB
April 17 2025 13:10:58
root / root
0644
scope.py
2.776 KB
April 17 2025 13:10:58
root / root
0644
screen.py
1.554 KB
April 17 2025 13:10:58
root / root
0644
segment.py
24.163 KB
April 17 2025 13:10:58
root / root
0644
spinner.py
4.262 KB
April 17 2025 13:10:58
root / root
0644
status.py
4.32 KB
April 17 2025 13:10:58
root / root
0644
style.py
26.433 KB
April 17 2025 13:10:58
root / root
0644
styled.py
1.229 KB
April 17 2025 13:10:58
root / root
0644
syntax.py
34.925 KB
April 17 2025 13:10:58
root / root
0644
table.py
39.163 KB
April 17 2025 13:10:58
root / root
0644
terminal_theme.py
3.291 KB
April 17 2025 13:10:58
root / root
0644
text.py
46.438 KB
April 17 2025 13:10:58
root / root
0644
theme.py
3.683 KB
April 17 2025 13:10:58
root / root
0644
themes.py
0.1 KB
April 17 2025 13:10:58
root / root
0644
traceback.py
31.052 KB
April 17 2025 13:10:58
root / root
0644
tree.py
9.229 KB
April 17 2025 13:10:58
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF