OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
rich
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
01/09/2025 02:18:04 AM
rwxr-xr-x
📄
__init__.py
5.92 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
__main__.py
8.14 KB
05/14/2024 03:18:15 PM
rw-r--r--
📁
__pycache__
-
05/14/2024 03:18:15 PM
rwxr-xr-x
📄
_cell_widths.py
9.97 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_emoji_codes.py
136.95 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_emoji_replace.py
1.04 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_export_format.py
2.08 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_extension.py
241 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
_fileno.py
799 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
_inspect.py
9.47 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_log_render.py
3.14 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_loop.py
1.21 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_null_file.py
1.35 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_palettes.py
6.9 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_pick.py
423 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
_ratio.py
5.33 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_spinners.py
19.45 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_stack.py
351 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
_timer.py
417 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
_win32_console.py
22.25 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_windows.py
1.86 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_windows_renderer.py
2.69 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
_wrap.py
3.32 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
abc.py
878 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
align.py
10.08 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
ansi.py
6.74 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
bar.py
3.19 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
box.py
10.53 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
cells.py
4.67 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
color.py
17.8 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
color_triplet.py
1.03 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
columns.py
6.96 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
console.py
96.78 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
constrain.py
1.26 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
containers.py
5.37 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
control.py
6.45 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
default_styles.py
7.86 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
diagnose.py
924 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
emoji.py
2.41 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
errors.py
642 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
file_proxy.py
1.64 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
filesize.py
2.45 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
highlighter.py
9.36 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
json.py
4.9 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
jupyter.py
3.15 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
layout.py
13.62 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
live.py
13.94 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
live_render.py
3.57 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
logging.py
11.61 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
markdown.py
25.55 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
markup.py
8.23 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
measure.py
5.18 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
padding.py
4.84 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
pager.py
828 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
palette.py
3.21 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
panel.py
10.45 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
pretty.py
34.97 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
progress.py
58.3 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
progress_bar.py
7.97 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
prompt.py
11.03 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
protocol.py
1.33 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
py.typed
0 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
region.py
166 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
repr.py
4.32 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
rule.py
4.48 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
scope.py
2.76 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
screen.py
1.54 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
segment.py
23.64 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
spinner.py
4.24 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
status.py
4.32 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
style.py
26.44 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
styled.py
1.21 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
syntax.py
34.54 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
table.py
38.71 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
terminal_theme.py
3.29 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
text.py
46.19 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
theme.py
3.69 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
themes.py
102 bytes
05/14/2024 03:18:15 PM
rw-r--r--
📄
traceback.py
28.84 KB
05/14/2024 03:18:15 PM
rw-r--r--
📄
tree.py
8.89 KB
05/14/2024 03:18:15 PM
rw-r--r--
Editing: bar.py
Close
from typing import Optional, Union from .color import Color from .console import Console, ConsoleOptions, RenderResult from .jupyter import JupyterMixin from .measure import Measurement from .segment import Segment from .style import Style # There are left-aligned characters for 1/8 to 7/8, but # the right-aligned characters exist only for 1/8 and 4/8. BEGIN_BLOCK_ELEMENTS = ["█", "█", "█", "▐", "▐", "▐", "▕", "▕"] END_BLOCK_ELEMENTS = [" ", "▏", "▎", "▍", "▌", "▋", "▊", "▉"] FULL_BLOCK = "█" class Bar(JupyterMixin): """Renders a solid block bar. Args: size (float): Value for the end of the bar. begin (float): Begin point (between 0 and size, inclusive). end (float): End point (between 0 and size, inclusive). width (int, optional): Width of the bar, or ``None`` for maximum width. Defaults to None. color (Union[Color, str], optional): Color of the bar. Defaults to "default". bgcolor (Union[Color, str], optional): Color of bar background. Defaults to "default". """ def __init__( self, size: float, begin: float, end: float, *, width: Optional[int] = None, color: Union[Color, str] = "default", bgcolor: Union[Color, str] = "default", ): self.size = size self.begin = max(begin, 0) self.end = min(end, size) self.width = width self.style = Style(color=color, bgcolor=bgcolor) def __repr__(self) -> str: return f"Bar({self.size}, {self.begin}, {self.end})" def __rich_console__( self, console: Console, options: ConsoleOptions ) -> RenderResult: width = min( self.width if self.width is not None else options.max_width, options.max_width, ) if self.begin >= self.end: yield Segment(" " * width, self.style) yield Segment.line() return prefix_complete_eights = int(width * 8 * self.begin / self.size) prefix_bar_count = prefix_complete_eights // 8 prefix_eights_count = prefix_complete_eights % 8 body_complete_eights = int(width * 8 * self.end / self.size) body_bar_count = body_complete_eights // 8 body_eights_count = body_complete_eights % 8 # When start and end fall into the same cell, we ideally should render # a symbol that's "center-aligned", but there is no good symbol in Unicode. # In this case, we fall back to right-aligned block symbol for simplicity. prefix = " " * prefix_bar_count if prefix_eights_count: prefix += BEGIN_BLOCK_ELEMENTS[prefix_eights_count] body = FULL_BLOCK * body_bar_count if body_eights_count: body += END_BLOCK_ELEMENTS[body_eights_count] suffix = " " * (width - len(body)) yield Segment(prefix + body[len(prefix) :] + suffix, self.style) yield Segment.line() def __rich_measure__( self, console: Console, options: ConsoleOptions ) -> Measurement: return ( Measurement(self.width, self.width) if self.width is not None else Measurement(4, options.max_width) )