OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot
/
4737
/
lib
/
python3.12
/
site-packages
/
pip
/
_vendor
/
rich
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/12/2025 06:19:48 PM
rwxr-xr-x
📄
__init__.py
5.95 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
__main__.py
8.28 KB
06/12/2025 06:19:25 PM
rw-r--r--
📁
__pycache__
-
06/12/2025 06:19:48 PM
rwxr-xr-x
📄
_cell_widths.py
9.97 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_emoji_codes.py
136.95 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_emoji_replace.py
1.04 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_export_format.py
2.08 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_extension.py
265 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
_fileno.py
799 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
_inspect.py
9.43 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_log_render.py
3.15 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_loop.py
1.21 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_null_file.py
1.36 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_palettes.py
6.9 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_pick.py
423 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
_ratio.py
5.34 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_spinners.py
19.45 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_stack.py
351 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
_timer.py
417 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
_win32_console.py
22.22 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_windows.py
1.88 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_windows_renderer.py
2.72 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
_wrap.py
3.32 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
abc.py
890 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
align.py
10.22 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
ansi.py
6.76 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
bar.py
3.19 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
box.py
10.58 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
cells.py
5.01 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
color.py
17.78 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
color_triplet.py
1.03 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
columns.py
6.96 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
console.py
98.21 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
constrain.py
1.26 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
containers.py
5.37 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
control.py
6.47 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
default_styles.py
8.06 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
diagnose.py
998 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
emoji.py
2.44 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
errors.py
642 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
file_proxy.py
1.64 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
filesize.py
2.43 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
highlighter.py
9.36 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
json.py
4.91 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
jupyter.py
3.18 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
layout.py
13.68 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
live.py
13.94 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
live_render.py
3.58 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
logging.py
12.17 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
markup.py
8.25 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
measure.py
5.18 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
padding.py
4.79 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
pager.py
828 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
palette.py
3.32 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
panel.py
10.96 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
pretty.py
35.54 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
progress.py
58.94 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
progress_bar.py
7.97 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
prompt.py
12.16 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
protocol.py
1.36 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
py.typed
0 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
region.py
166 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
repr.py
4.33 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
rule.py
4.49 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
scope.py
2.78 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
screen.py
1.55 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
segment.py
24.16 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
spinner.py
4.26 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
status.py
4.32 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
style.py
26.42 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
styled.py
1.23 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
syntax.py
34.92 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
table.py
39.11 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
terminal_theme.py
3.29 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
text.py
46.44 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
theme.py
3.68 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
themes.py
102 bytes
06/12/2025 06:19:25 PM
rw-r--r--
📄
traceback.py
34.35 KB
06/12/2025 06:19:25 PM
rw-r--r--
📄
tree.py
9.23 KB
06/12/2025 06:19:25 PM
rw-r--r--
Editing: padding.py
Close
from typing import TYPE_CHECKING, List, Optional, Tuple, Union if TYPE_CHECKING: from .console import ( Console, ConsoleOptions, RenderableType, RenderResult, ) from .jupyter import JupyterMixin from .measure import Measurement from .segment import Segment from .style import Style PaddingDimensions = Union[int, Tuple[int], Tuple[int, int], Tuple[int, int, int, int]] class Padding(JupyterMixin): """Draw space around content. Example: >>> print(Padding("Hello", (2, 4), style="on blue")) Args: renderable (RenderableType): String or other renderable. pad (Union[int, Tuple[int]]): Padding for top, right, bottom, and left borders. May be specified with 1, 2, or 4 integers (CSS style). style (Union[str, Style], optional): Style for padding characters. Defaults to "none". expand (bool, optional): Expand padding to fit available width. Defaults to True. """ def __init__( self, renderable: "RenderableType", pad: "PaddingDimensions" = (0, 0, 0, 0), *, style: Union[str, Style] = "none", expand: bool = True, ): self.renderable = renderable self.top, self.right, self.bottom, self.left = self.unpack(pad) self.style = style self.expand = expand @classmethod def indent(cls, renderable: "RenderableType", level: int) -> "Padding": """Make padding instance to render an indent. Args: renderable (RenderableType): String or other renderable. level (int): Number of characters to indent. Returns: Padding: A Padding instance. """ return Padding(renderable, pad=(0, 0, 0, level), expand=False) @staticmethod def unpack(pad: "PaddingDimensions") -> Tuple[int, int, int, int]: """Unpack padding specified in CSS style.""" if isinstance(pad, int): return (pad, pad, pad, pad) if len(pad) == 1: _pad = pad[0] return (_pad, _pad, _pad, _pad) if len(pad) == 2: pad_top, pad_right = pad return (pad_top, pad_right, pad_top, pad_right) if len(pad) == 4: top, right, bottom, left = pad return (top, right, bottom, left) raise ValueError(f"1, 2 or 4 integers required for padding; {len(pad)} given") def __repr__(self) -> str: return f"Padding({self.renderable!r}, ({self.top},{self.right},{self.bottom},{self.left}))" def __rich_console__( self, console: "Console", options: "ConsoleOptions" ) -> "RenderResult": style = console.get_style(self.style) if self.expand: width = options.max_width else: width = min( Measurement.get(console, options, self.renderable).maximum + self.left + self.right, options.max_width, ) render_options = options.update_width(width - self.left - self.right) if render_options.height is not None: render_options = render_options.update_height( height=render_options.height - self.top - self.bottom ) lines = console.render_lines( self.renderable, render_options, style=style, pad=True ) _Segment = Segment left = _Segment(" " * self.left, style) if self.left else None right = ( [_Segment(f'{" " * self.right}', style), _Segment.line()] if self.right else [_Segment.line()] ) blank_line: Optional[List[Segment]] = None if self.top: blank_line = [_Segment(f'{" " * width}\n', style)] yield from blank_line * self.top if left: for line in lines: yield left yield from line yield from right else: for line in lines: yield from line yield from right if self.bottom: blank_line = blank_line or [_Segment(f'{" " * width}\n', style)] yield from blank_line * self.bottom def __rich_measure__( self, console: "Console", options: "ConsoleOptions" ) -> "Measurement": max_width = options.max_width extra_width = self.left + self.right if max_width - extra_width < 1: return Measurement(max_width, max_width) measure_min, measure_max = Measurement.get(console, options, self.renderable) measurement = Measurement(measure_min + extra_width, measure_max + extra_width) measurement = measurement.with_maximum(max_width) return measurement if __name__ == "__main__": # pragma: no cover from pip._vendor.rich import print print(Padding("Hello, World", (2, 4), style="on blue"))