tui-utilities 1.0.15__tar.gz → 1.0.17__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/PKG-INFO +1 -1
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/pyproject.toml +1 -1
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities/console.py +43 -27
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities.egg-info/PKG-INFO +1 -1
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/README.md +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/setup.cfg +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities/__init__.py +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities/_tlds/tlds.txt +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities/format.py +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities/structure.py +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities/validation.py +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities.egg-info/SOURCES.txt +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities.egg-info/dependency_links.txt +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities.egg-info/requires.txt +0 -0
- {tui_utilities-1.0.15 → tui_utilities-1.0.17}/tui_utilities.egg-info/top_level.txt +0 -0
|
@@ -2,13 +2,14 @@ from rich.console import Console, RenderableType
|
|
|
2
2
|
from rich.text import Text
|
|
3
3
|
from rich.align import Align
|
|
4
4
|
from rich.padding import Padding
|
|
5
|
+
from rich.protocol import is_renderable
|
|
5
6
|
import os
|
|
6
7
|
import readchar
|
|
7
8
|
|
|
8
9
|
_console = Console()
|
|
9
10
|
|
|
10
11
|
def _style(
|
|
11
|
-
|
|
12
|
+
object,
|
|
12
13
|
color = "#ffffff",
|
|
13
14
|
bold = False,
|
|
14
15
|
italic = False,
|
|
@@ -23,9 +24,9 @@ def _style(
|
|
|
23
24
|
left_padding = None,
|
|
24
25
|
plain_text = False
|
|
25
26
|
):
|
|
26
|
-
def apply_text_styles(
|
|
27
|
-
|
|
28
|
-
if isinstance(
|
|
27
|
+
def apply_text_styles(object):
|
|
28
|
+
styleable = Text()
|
|
29
|
+
if isinstance(object, str):
|
|
29
30
|
style_parts = [color]
|
|
30
31
|
if bold: style_parts.append("bold")
|
|
31
32
|
if italic: style_parts.append("italic")
|
|
@@ -34,17 +35,17 @@ def _style(
|
|
|
34
35
|
if reverse: style_parts.append("reverse")
|
|
35
36
|
style = " ".join(style_parts)
|
|
36
37
|
current_segment = ""
|
|
37
|
-
for character in
|
|
38
|
+
for character in object:
|
|
38
39
|
if character == " ":
|
|
39
40
|
if current_segment:
|
|
40
|
-
|
|
41
|
+
styleable.append(current_segment, style = style)
|
|
41
42
|
current_segment = ""
|
|
42
|
-
|
|
43
|
+
styleable.append(" ")
|
|
43
44
|
else: current_segment += character
|
|
44
|
-
if current_segment:
|
|
45
|
-
return
|
|
46
|
-
elif isinstance(
|
|
47
|
-
for segment, segment_style in
|
|
45
|
+
if current_segment: styleable.append(current_segment, style=style)
|
|
46
|
+
return styleable
|
|
47
|
+
elif isinstance(object, list):
|
|
48
|
+
for segment, segment_style in object:
|
|
48
49
|
style_parts = [segment_style.get("color", color)]
|
|
49
50
|
if segment_style.get("bold"): style_parts.append("bold")
|
|
50
51
|
if segment_style.get("italic"): style_parts.append("italic")
|
|
@@ -56,29 +57,35 @@ def _style(
|
|
|
56
57
|
for character in segment:
|
|
57
58
|
if character == " ":
|
|
58
59
|
if current_segment:
|
|
59
|
-
|
|
60
|
+
styleable.append(current_segment, style = style)
|
|
60
61
|
current_segment = ""
|
|
61
|
-
|
|
62
|
+
styleable.append(" ")
|
|
62
63
|
else: current_segment += character
|
|
63
|
-
if current_segment:
|
|
64
|
-
return
|
|
64
|
+
if current_segment: styleable.append(current_segment, style = style)
|
|
65
|
+
return styleable
|
|
65
66
|
|
|
66
|
-
def apply_alignment(
|
|
67
|
+
def apply_alignment(alignable): return Align(alignable, alignment)
|
|
67
68
|
|
|
68
|
-
def apply_padding(
|
|
69
|
+
def apply_padding(paddable):
|
|
69
70
|
final_padding = (
|
|
70
71
|
top_padding if top_padding is not None else padding,
|
|
71
72
|
(right_padding if right_padding is not None else padding) * 2,
|
|
72
73
|
bottom_padding if bottom_padding is not None else padding,
|
|
73
74
|
(left_padding if left_padding is not None else padding) * 2
|
|
74
75
|
)
|
|
75
|
-
return Padding(
|
|
76
|
+
return Padding(paddable, final_padding)
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
if is_renderable(object):
|
|
79
|
+
aligned = apply_alignment(object)
|
|
80
|
+
padded = apply_padding(aligned)
|
|
81
|
+
return padded
|
|
82
|
+
elif plain_text:
|
|
83
|
+
styled = apply_text_styles(object)
|
|
84
|
+
return styled
|
|
85
|
+
styled = apply_text_styles(object)
|
|
86
|
+
aligned = apply_alignment(styled)
|
|
87
|
+
padded = apply_padding(aligned)
|
|
88
|
+
return padded
|
|
82
89
|
|
|
83
90
|
def print(
|
|
84
91
|
*objects,
|
|
@@ -104,7 +111,7 @@ def print(
|
|
|
104
111
|
if isinstance(object, Text): renderables.append(object)
|
|
105
112
|
elif isinstance(object, (str, list)):
|
|
106
113
|
renderables.append(_style(
|
|
107
|
-
|
|
114
|
+
object = object,
|
|
108
115
|
color = color,
|
|
109
116
|
bold = bold,
|
|
110
117
|
italic = italic,
|
|
@@ -119,10 +126,19 @@ def print(
|
|
|
119
126
|
left_padding = left_padding,
|
|
120
127
|
plain_text = plain_text
|
|
121
128
|
))
|
|
122
|
-
elif
|
|
129
|
+
elif is_renderable(object):
|
|
130
|
+
renderables.append(_style(
|
|
131
|
+
object = object,
|
|
132
|
+
alignment = alignment,
|
|
133
|
+
padding = padding,
|
|
134
|
+
top_padding = top_padding,
|
|
135
|
+
right_padding = right_padding,
|
|
136
|
+
bottom_padding = bottom_padding,
|
|
137
|
+
left_padding = left_padding
|
|
138
|
+
))
|
|
123
139
|
else:
|
|
124
140
|
renderables.append(_style(
|
|
125
|
-
|
|
141
|
+
object = str(object),
|
|
126
142
|
color = color,
|
|
127
143
|
bold = bold,
|
|
128
144
|
italic = italic,
|
|
@@ -149,7 +165,7 @@ def input(
|
|
|
149
165
|
reverse = False
|
|
150
166
|
):
|
|
151
167
|
return _console.input(_style(
|
|
152
|
-
|
|
168
|
+
object = text,
|
|
153
169
|
color = color,
|
|
154
170
|
bold = bold,
|
|
155
171
|
italic = italic,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|