X7ROOT File Manager
Current Path:
/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/rich
opt
/
alt
/
python38
/
lib
/
python3.8
/
site-packages
/
pip
/
_vendor
/
rich
/
ðŸ“
..
📄
__init__.py
(5.8 KB)
📄
__main__.py
(8.6 KB)
ðŸ“
__pycache__
📄
_cell_widths.py
(9.86 KB)
📄
_emoji_codes.py
(136.95 KB)
📄
_emoji_replace.py
(1.04 KB)
📄
_export_format.py
(2.06 KB)
📄
_extension.py
(265 B)
📄
_inspect.py
(9.47 KB)
📄
_log_render.py
(3.15 KB)
📄
_loop.py
(1.21 KB)
📄
_palettes.py
(6.9 KB)
📄
_pick.py
(423 B)
📄
_ratio.py
(5.34 KB)
📄
_spinners.py
(19.45 KB)
📄
_stack.py
(351 B)
📄
_timer.py
(417 B)
📄
_win32_console.py
(22.29 KB)
📄
_windows.py
(1.88 KB)
📄
_windows_renderer.py
(2.72 KB)
📄
_wrap.py
(1.8 KB)
📄
abc.py
(890 B)
📄
align.py
(10.13 KB)
📄
ansi.py
(6.66 KB)
📄
bar.py
(3.19 KB)
📄
box.py
(9.63 KB)
📄
cells.py
(4.4 KB)
📄
color.py
(17.54 KB)
📄
color_triplet.py
(1.03 KB)
📄
columns.py
(6.96 KB)
📄
console.py
(93.64 KB)
📄
constrain.py
(1.26 KB)
📄
containers.py
(5.37 KB)
📄
control.py
(6.47 KB)
📄
default_styles.py
(7.77 KB)
📄
diagnose.py
(972 B)
📄
emoji.py
(2.44 KB)
📄
errors.py
(642 B)
📄
file_proxy.py
(1.58 KB)
📄
filesize.py
(2.45 KB)
📄
highlighter.py
(9.36 KB)
📄
json.py
(4.93 KB)
📄
jupyter.py
(3.18 KB)
📄
layout.py
(13.74 KB)
📄
live.py
(13.84 KB)
📄
live_render.py
(3.58 KB)
📄
logging.py
(11.2 KB)
📄
markup.py
(8.01 KB)
📄
measure.py
(5.18 KB)
📄
padding.py
(4.85 KB)
📄
pager.py
(828 B)
📄
palette.py
(3.32 KB)
📄
panel.py
(8.54 KB)
📄
pretty.py
(35.72 KB)
📄
progress.py
(58.35 KB)
📄
progress_bar.py
(7.97 KB)
📄
prompt.py
(11.04 KB)
📄
protocol.py
(1.36 KB)
📄
region.py
(166 B)
📄
repr.py
(4.34 KB)
📄
rule.py
(4.66 KB)
📄
scope.py
(2.78 KB)
📄
screen.py
(1.55 KB)
📄
segment.py
(23.66 KB)
📄
spinner.py
(4.27 KB)
📄
status.py
(4.32 KB)
📄
style.py
(25.63 KB)
📄
styled.py
(1.23 KB)
📄
syntax.py
(33.88 KB)
📄
table.py
(38.59 KB)
📄
terminal_theme.py
(3.29 KB)
📄
text.py
(43.62 KB)
📄
theme.py
(3.54 KB)
📄
themes.py
(102 B)
📄
traceback.py
(25.45 KB)
📄
tree.py
(8.95 KB)
Editing: palette.py
from math import sqrt from functools import lru_cache from typing import Sequence, Tuple, TYPE_CHECKING from .color_triplet import ColorTriplet if TYPE_CHECKING: from pip._vendor.rich.table import Table class Palette: """A palette of available colors.""" def __init__(self, colors: Sequence[Tuple[int, int, int]]): self._colors = colors def __getitem__(self, number: int) -> ColorTriplet: return ColorTriplet(*self._colors[number]) def __rich__(self) -> "Table": from pip._vendor.rich.color import Color from pip._vendor.rich.style import Style from pip._vendor.rich.text import Text from pip._vendor.rich.table import Table table = Table( "index", "RGB", "Color", title="Palette", caption=f"{len(self._colors)} colors", highlight=True, caption_justify="right", ) for index, color in enumerate(self._colors): table.add_row( str(index), repr(color), Text(" " * 16, style=Style(bgcolor=Color.from_rgb(*color))), ) return table # This is somewhat inefficient and needs caching @lru_cache(maxsize=1024) def match(self, color: Tuple[int, int, int]) -> int: """Find a color from a palette that most closely matches a given color. Args: color (Tuple[int, int, int]): RGB components in range 0 > 255. Returns: int: Index of closes matching color. """ red1, green1, blue1 = color _sqrt = sqrt get_color = self._colors.__getitem__ def get_color_distance(index: int) -> float: """Get the distance to a color.""" red2, green2, blue2 = get_color(index) red_mean = (red1 + red2) // 2 red = red1 - red2 green = green1 - green2 blue = blue1 - blue2 return _sqrt( (((512 + red_mean) * red * red) >> 8) + 4 * green * green + (((767 - red_mean) * blue * blue) >> 8) ) min_index = min(range(len(self._colors)), key=get_color_distance) return min_index if __name__ == "__main__": # pragma: no cover import colorsys from typing import Iterable from pip._vendor.rich.color import Color from pip._vendor.rich.console import Console, ConsoleOptions from pip._vendor.rich.segment import Segment from pip._vendor.rich.style import Style class ColorBox: def __rich_console__( self, console: Console, options: ConsoleOptions ) -> Iterable[Segment]: height = console.size.height - 3 for y in range(0, height): for x in range(options.max_width): h = x / options.max_width l = y / (height + 1) r1, g1, b1 = colorsys.hls_to_rgb(h, l, 1.0) r2, g2, b2 = colorsys.hls_to_rgb(h, l + (1 / height / 2), 1.0) bgcolor = Color.from_rgb(r1 * 255, g1 * 255, b1 * 255) color = Color.from_rgb(r2 * 255, g2 * 255, b2 * 255) yield Segment("▄", Style(color=color, bgcolor=bgcolor)) yield Segment.line() console = Console() console.print(ColorBox())
Upload File
Create Folder