hspylib-clitt 0.9.126__py3-none-any.whl → 0.9.127__py3-none-any.whl
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.
Potentially problematic release.
This version of hspylib-clitt might be problematic. Click here for more details.
- clitt/.version +1 -1
- clitt/__classpath__.py +1 -1
- clitt/__init__.py +2 -2
- clitt/__main__.py +1 -1
- clitt/addons/__init__.py +2 -2
- clitt/addons/appman/__init__.py +2 -2
- clitt/addons/appman/appman.py +1 -1
- clitt/addons/appman/appman_enums.py +1 -1
- clitt/addons/appman/templates/__init__.py +2 -2
- clitt/addons/widman/__init__.py +2 -2
- clitt/addons/widman/widget.py +1 -1
- clitt/addons/widman/widget_entry.py +1 -1
- clitt/addons/widman/widgets/__init__.py +2 -2
- clitt/addons/widman/widgets/widget_free.py +1 -1
- clitt/addons/widman/widgets/widget_punch.py +1 -1
- clitt/addons/widman/widgets/widget_send_msg.py +1 -1
- clitt/addons/widman/widgets/widget_time_calc.py +1 -1
- clitt/addons/widman/widman.py +1 -1
- clitt/core/__init__.py +2 -2
- clitt/core/exception/__init__.py +2 -2
- clitt/core/exception/exceptions.py +1 -1
- clitt/core/icons/__init__.py +2 -2
- clitt/core/icons/emojis/__init__.py +2 -2
- clitt/core/icons/emojis/emojis.py +1 -1
- clitt/core/icons/emojis/face_smiling.py +1 -1
- clitt/core/icons/font_awesome/__init__.py +2 -2
- clitt/core/icons/font_awesome/app_icons.py +1 -1
- clitt/core/icons/font_awesome/awesome.py +1 -1
- clitt/core/icons/font_awesome/dashboard_icons.py +1 -1
- clitt/core/icons/font_awesome/form_icons.py +1 -1
- clitt/core/icons/font_awesome/game_icons.py +1 -1
- clitt/core/icons/font_awesome/nav_icons.py +1 -1
- clitt/core/icons/font_awesome/trickplay_icons.py +1 -1
- clitt/core/icons/font_awesome/widget_icons.py +1 -1
- clitt/core/preferences.py +1 -1
- clitt/core/term/__init__.py +2 -2
- clitt/core/term/commons.py +1 -1
- clitt/core/term/cursor.py +1 -1
- clitt/core/term/screen.py +1 -1
- clitt/core/term/terminal.py +1 -1
- clitt/core/tui/__init__.py +2 -2
- clitt/core/tui/line_input/__init__.py +2 -2
- clitt/core/tui/line_input/keyboard_input.py +81 -52
- clitt/core/tui/line_input/line_input.py +1 -1
- clitt/core/tui/mchoose/__init__.py +2 -2
- clitt/core/tui/mchoose/mchoose.py +1 -1
- clitt/core/tui/mchoose/menu_choose.py +1 -1
- clitt/core/tui/mdashboard/__init__.py +2 -2
- clitt/core/tui/mdashboard/dashboard_builder.py +1 -1
- clitt/core/tui/mdashboard/dashboard_item.py +1 -1
- clitt/core/tui/mdashboard/mdashboard.py +1 -1
- clitt/core/tui/mdashboard/menu_dashboard.py +1 -1
- clitt/core/tui/menu/__init__.py +2 -2
- clitt/core/tui/menu/tui_menu.py +1 -1
- clitt/core/tui/menu/tui_menu_action.py +1 -1
- clitt/core/tui/menu/tui_menu_factory.py +1 -1
- clitt/core/tui/menu/tui_menu_item.py +1 -1
- clitt/core/tui/menu/tui_menu_ui.py +1 -1
- clitt/core/tui/menu/tui_menu_view.py +1 -1
- clitt/core/tui/minput/__init__.py +2 -2
- clitt/core/tui/minput/access_type.py +1 -1
- clitt/core/tui/minput/field_builder.py +1 -1
- clitt/core/tui/minput/form_builder.py +1 -1
- clitt/core/tui/minput/form_field.py +1 -1
- clitt/core/tui/minput/input_type.py +1 -1
- clitt/core/tui/minput/input_validator.py +1 -1
- clitt/core/tui/minput/menu_input.py +1 -1
- clitt/core/tui/minput/minput.py +1 -1
- clitt/core/tui/minput/minput_utils.py +1 -1
- clitt/core/tui/mselect/__init__.py +2 -2
- clitt/core/tui/mselect/menu_select.py +1 -1
- clitt/core/tui/mselect/mselect.py +1 -1
- clitt/core/tui/table/__init__.py +2 -2
- clitt/core/tui/table/table_enums.py +1 -1
- clitt/core/tui/table/table_renderer.py +1 -1
- clitt/core/tui/tui_application.py +1 -1
- clitt/core/tui/tui_component.py +1 -1
- clitt/core/tui/tui_preferences.py +1 -1
- clitt/utils/__init__.py +2 -2
- {hspylib_clitt-0.9.126.dist-info → hspylib_clitt-0.9.127.dist-info}/METADATA +2 -2
- hspylib_clitt-0.9.127.dist-info/RECORD +97 -0
- {hspylib_clitt-0.9.126.dist-info → hspylib_clitt-0.9.127.dist-info}/WHEEL +1 -1
- hspylib_clitt-0.9.126.dist-info/RECORD +0 -97
- {hspylib_clitt-0.9.126.dist-info → hspylib_clitt-0.9.127.dist-info}/top_level.txt +0 -0
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
@package: main.clitt.core.tui.line_input
|
|
7
7
|
@file: keyboard_input.py
|
|
8
8
|
@created: Wed, 17 Jan 2024
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
13
13
|
Copyright·(c)·2024,·HSPyLib
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
from typing import Optional
|
|
16
|
+
from typing import Optional, Callable, TypeAlias
|
|
17
17
|
|
|
18
18
|
from clitt.core.term.commons import Direction
|
|
19
19
|
from clitt.core.term.terminal import Terminal
|
|
@@ -22,6 +22,8 @@ from hspylib.core.tools.dict_tools import get_or_default
|
|
|
22
22
|
from hspylib.modules.cli.keyboard import Keyboard
|
|
23
23
|
from hspylib.modules.cli.vt100.vt_color import VtColor
|
|
24
24
|
|
|
25
|
+
KeyBinding: TypeAlias = dict[Keyboard, Callable[[], None]]
|
|
26
|
+
|
|
25
27
|
|
|
26
28
|
class KeyboardInput(TUIComponent):
|
|
27
29
|
"""Provides a keyboard input for terminal UIs with undo and history."""
|
|
@@ -38,6 +40,9 @@ class KeyboardInput(TUIComponent):
|
|
|
38
40
|
# Stack containing current input reverts.
|
|
39
41
|
_REDO_HISTORY: list[str] = []
|
|
40
42
|
|
|
43
|
+
# Map containing the custom keybindings.
|
|
44
|
+
_BINDINGS: KeyBinding = {}
|
|
45
|
+
|
|
41
46
|
@classmethod
|
|
42
47
|
def preload_history(cls, history: list[str]) -> None:
|
|
43
48
|
"""Preload the input with the provided dictionary.
|
|
@@ -106,17 +111,12 @@ class KeyboardInput(TUIComponent):
|
|
|
106
111
|
self._suggestion: str = ""
|
|
107
112
|
self._HISTORY[-1] = ""
|
|
108
113
|
self._HIST_INDEX = max(0, len(self._HISTORY) - 1)
|
|
114
|
+
self._bindings()
|
|
109
115
|
|
|
110
116
|
@property
|
|
111
117
|
def length(self) -> int:
|
|
112
118
|
return len(self._input_text) if self._input_text else 0
|
|
113
119
|
|
|
114
|
-
def _prepare_render(self, auto_wrap: bool = True, show_cursor: bool = True) -> None:
|
|
115
|
-
self.screen.add_watcher(self.invalidate)
|
|
116
|
-
Terminal.set_auto_wrap(auto_wrap)
|
|
117
|
-
Terminal.set_show_cursor(show_cursor)
|
|
118
|
-
self.cursor.save()
|
|
119
|
-
|
|
120
120
|
def execute(self) -> Optional[str | Keyboard]:
|
|
121
121
|
self._prepare_render()
|
|
122
122
|
keypress = self._loop() or Keyboard.VK_ESC
|
|
@@ -142,19 +142,18 @@ class KeyboardInput(TUIComponent):
|
|
|
142
142
|
self._input_index = 0
|
|
143
143
|
self._update_input("")
|
|
144
144
|
|
|
145
|
-
def
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
def home(self) -> None:
|
|
146
|
+
"""Place the cursor at the start of the input text."""
|
|
147
|
+
self._input_index = 0
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if self._re_render:
|
|
153
|
-
self.render()
|
|
154
|
-
# Navigation input
|
|
155
|
-
keypress = self.handle_keypress()
|
|
149
|
+
def end(self) -> None:
|
|
150
|
+
"""Place the cursor at the end of the input text."""
|
|
151
|
+
self._input_index = self.length
|
|
156
152
|
|
|
157
|
-
|
|
153
|
+
def complete(self) -> None:
|
|
154
|
+
"""Complete the input text with the suggested text."""
|
|
155
|
+
self._update_input(self._input_text + self._suggestion)
|
|
156
|
+
self._input_index = self.length
|
|
158
157
|
|
|
159
158
|
def render(self) -> None:
|
|
160
159
|
Terminal.set_show_cursor(False)
|
|
@@ -163,7 +162,7 @@ class KeyboardInput(TUIComponent):
|
|
|
163
162
|
self.write(f"{self._prompt_color.placeholder}{self.title}{self._text_color.placeholder}")
|
|
164
163
|
if self._input_text:
|
|
165
164
|
self.write(self._input_text)
|
|
166
|
-
self.
|
|
165
|
+
self._render_suggestions()
|
|
167
166
|
else:
|
|
168
167
|
self.write(f"%GRAY%{self._placeholder}%NC%")
|
|
169
168
|
self._terminal.cursor.erase(Direction.DOWN)
|
|
@@ -178,6 +177,7 @@ class KeyboardInput(TUIComponent):
|
|
|
178
177
|
def handle_keypress(self) -> Keyboard:
|
|
179
178
|
if keypress := Keyboard.wait_keystroke():
|
|
180
179
|
match keypress:
|
|
180
|
+
# Default key bindings.
|
|
181
181
|
case Keyboard.VK_BACKSPACE:
|
|
182
182
|
if self._input_index > 0:
|
|
183
183
|
self._input_index = max(0, self._input_index - 1)
|
|
@@ -188,10 +188,6 @@ class KeyboardInput(TUIComponent):
|
|
|
188
188
|
self._update_input(
|
|
189
189
|
self._input_text[: self._input_index] + self._input_text[1 + self._input_index:]
|
|
190
190
|
)
|
|
191
|
-
case Keyboard.VK_CTRL_R:
|
|
192
|
-
self.reset()
|
|
193
|
-
case Keyboard.VK_CTRL_F:
|
|
194
|
-
self.forget_history()
|
|
195
191
|
case Keyboard.VK_LEFT:
|
|
196
192
|
self._input_index = max(0, self._input_index - 1)
|
|
197
193
|
case Keyboard.VK_RIGHT:
|
|
@@ -202,13 +198,12 @@ class KeyboardInput(TUIComponent):
|
|
|
202
198
|
case Keyboard.VK_DOWN:
|
|
203
199
|
self._input_text = self._next_in_history()
|
|
204
200
|
self._input_index = self.length
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
self._input_index = self.length
|
|
201
|
+
# Customizable key bindings.
|
|
202
|
+
case _ as key if key in self._BINDINGS:
|
|
203
|
+
fn: Callable = self._BINDINGS[key]
|
|
204
|
+
if fn and isinstance(fn, Callable):
|
|
205
|
+
fn()
|
|
206
|
+
# Printable characters
|
|
212
207
|
case _ as key if key.val.isprintable():
|
|
213
208
|
text: str = key.val
|
|
214
209
|
while (key := Keyboard.wait_keystroke(False)) != Keyboard.VK_NONE:
|
|
@@ -217,6 +212,7 @@ class KeyboardInput(TUIComponent):
|
|
|
217
212
|
self._update_input(
|
|
218
213
|
self._input_text[: self._input_index] + text + self._input_text[self._input_index:])
|
|
219
214
|
self._input_index += len(text)
|
|
215
|
+
# Loop breaking characters
|
|
220
216
|
case _ as key if key in Keyboard.break_keys():
|
|
221
217
|
self._done = True
|
|
222
218
|
case _:
|
|
@@ -226,6 +222,39 @@ class KeyboardInput(TUIComponent):
|
|
|
226
222
|
|
|
227
223
|
return keypress
|
|
228
224
|
|
|
225
|
+
def _bindings(self) -> None:
|
|
226
|
+
"""TODO"""
|
|
227
|
+
if not KeyboardInput._BINDINGS:
|
|
228
|
+
KeyboardInput._BINDINGS.update({
|
|
229
|
+
Keyboard.VK_CTRL_A: self.home,
|
|
230
|
+
Keyboard.VK_CTRL_E: self.end,
|
|
231
|
+
Keyboard.VK_CTRL_R: self.reset,
|
|
232
|
+
Keyboard.VK_CTRL_F: self.forget_history,
|
|
233
|
+
Keyboard.VK_HOME: self.home,
|
|
234
|
+
Keyboard.VK_END: self.end,
|
|
235
|
+
Keyboard.VK_TAB: self.complete
|
|
236
|
+
})
|
|
237
|
+
|
|
238
|
+
def _prepare_render(self, auto_wrap: bool = True, show_cursor: bool = True) -> None:
|
|
239
|
+
self.screen.add_watcher(self.invalidate)
|
|
240
|
+
Terminal.set_auto_wrap(auto_wrap)
|
|
241
|
+
Terminal.set_show_cursor(show_cursor)
|
|
242
|
+
self.cursor.save()
|
|
243
|
+
|
|
244
|
+
def _loop(self, break_keys: list[Keyboard] = None) -> Keyboard:
|
|
245
|
+
break_keys = break_keys or Keyboard.break_keys()
|
|
246
|
+
keypress = Keyboard.VK_NONE
|
|
247
|
+
|
|
248
|
+
# Wait for user interaction
|
|
249
|
+
while not self._done and keypress and keypress not in break_keys:
|
|
250
|
+
# Menu Renderization
|
|
251
|
+
if self._re_render:
|
|
252
|
+
self.render()
|
|
253
|
+
# Navigation input
|
|
254
|
+
keypress = self.handle_keypress()
|
|
255
|
+
|
|
256
|
+
return keypress
|
|
257
|
+
|
|
229
258
|
def _set_cursor_pos(self):
|
|
230
259
|
"""Set the cursor position on the input."""
|
|
231
260
|
index_offset = max(0, self.length - self._input_index)
|
|
@@ -241,6 +270,27 @@ class KeyboardInput(TUIComponent):
|
|
|
241
270
|
self._HIST_INDEX = max(0, len(self._HISTORY) - 1)
|
|
242
271
|
return text
|
|
243
272
|
|
|
273
|
+
def _render_suggestions(self) -> None:
|
|
274
|
+
"""Render the input suggestions."""
|
|
275
|
+
edt_text: str = self._input_text
|
|
276
|
+
filtered: list[str] = list(filter(lambda h: h.startswith(edt_text), self._HISTORY))
|
|
277
|
+
hint: str = ''
|
|
278
|
+
|
|
279
|
+
if edt_text and edt_text in filtered:
|
|
280
|
+
edt_idx = filtered.index(edt_text) - 1
|
|
281
|
+
index = max(0, min(edt_idx, self._HIST_INDEX))
|
|
282
|
+
hint: str = get_or_default(filtered, index, '') or filtered[-1]
|
|
283
|
+
if hint and (hint := hint[len(edt_text):]):
|
|
284
|
+
self.write(f"%GRAY%{hint}%NC%")
|
|
285
|
+
self._terminal.cursor.erase(Direction.DOWN)
|
|
286
|
+
self.cursor.move(len(hint), Direction.LEFT)
|
|
287
|
+
else:
|
|
288
|
+
self._terminal.cursor.erase(Direction.DOWN)
|
|
289
|
+
else:
|
|
290
|
+
self._terminal.cursor.erase(Direction.DOWN)
|
|
291
|
+
|
|
292
|
+
self._suggestion = hint
|
|
293
|
+
|
|
244
294
|
def _next_in_history(self) -> str:
|
|
245
295
|
"""Return the next input in history."""
|
|
246
296
|
edt_text: str = self._HISTORY[-1]
|
|
@@ -264,24 +314,3 @@ class KeyboardInput(TUIComponent):
|
|
|
264
314
|
self._HIST_INDEX = filtered.index(text)
|
|
265
315
|
return text
|
|
266
316
|
return edt_text
|
|
267
|
-
|
|
268
|
-
def _write_suggestion(self) -> None:
|
|
269
|
-
"""TODO """
|
|
270
|
-
edt_text: str = self._input_text
|
|
271
|
-
filtered: list[str] = list(filter(lambda h: h.startswith(edt_text), self._HISTORY))
|
|
272
|
-
hint: str = ''
|
|
273
|
-
|
|
274
|
-
if edt_text and edt_text in filtered:
|
|
275
|
-
edt_idx = filtered.index(edt_text) - 1
|
|
276
|
-
index = max(0, min(edt_idx, self._HIST_INDEX))
|
|
277
|
-
hint: str = get_or_default(filtered, index, '') or filtered[-1]
|
|
278
|
-
if hint and (hint := hint[len(edt_text):]):
|
|
279
|
-
self.write(f"%GRAY%{hint}%NC%")
|
|
280
|
-
self._terminal.cursor.erase(Direction.DOWN)
|
|
281
|
-
self.cursor.move(len(hint), Direction.LEFT)
|
|
282
|
-
else:
|
|
283
|
-
self._terminal.cursor.erase(Direction.DOWN)
|
|
284
|
-
else:
|
|
285
|
-
self._terminal.cursor.erase(Direction.DOWN)
|
|
286
|
-
|
|
287
|
-
self._suggestion = hint
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: main.clitt.core.tui.line_input
|
|
7
7
|
@file: line_input.py
|
|
8
8
|
@created: Wed, 17 Jan 2024
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.127
|
|
4
4
|
#
|
|
5
5
|
# Package: main.clitt.core.tui.mchoose
|
|
6
6
|
"""Package initialization."""
|
|
@@ -9,4 +9,4 @@ __all__ = [
|
|
|
9
9
|
'mchoose',
|
|
10
10
|
'menu_choose'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.127'
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mchoose
|
|
7
7
|
@file: mchoose.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mchoose
|
|
7
7
|
@file: menu_choose.py
|
|
8
8
|
@created: Wed, 17 May 2023
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.127
|
|
4
4
|
#
|
|
5
5
|
# Package: main.clitt.core.tui.mdashboard
|
|
6
6
|
"""Package initialization."""
|
|
@@ -11,4 +11,4 @@ __all__ = [
|
|
|
11
11
|
'mdashboard',
|
|
12
12
|
'menu_dashboard'
|
|
13
13
|
]
|
|
14
|
-
__version__ = '0.9.
|
|
14
|
+
__version__ = '0.9.127'
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mdashboard
|
|
7
7
|
@file: dashboard_builder.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mdashboard
|
|
7
7
|
@file: dashboard_item.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mdashboard
|
|
7
7
|
@file: mdashboard.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mdashboard
|
|
7
7
|
@file: menu_dashboard.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
clitt/core/tui/menu/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.127
|
|
4
4
|
#
|
|
5
5
|
# Package: main.clitt.core.tui.menu
|
|
6
6
|
"""Package initialization."""
|
|
@@ -13,4 +13,4 @@ __all__ = [
|
|
|
13
13
|
'tui_menu_ui',
|
|
14
14
|
'tui_menu_view'
|
|
15
15
|
]
|
|
16
|
-
__version__ = '0.9.
|
|
16
|
+
__version__ = '0.9.127'
|
clitt/core/tui/menu/tui_menu.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.menu
|
|
7
7
|
@file: tui_menu.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.menu
|
|
7
7
|
@file: tui_menu_action.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.menu
|
|
7
7
|
@file: tui_menu_factory.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.menu
|
|
7
7
|
@file: tui_menu_item.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.menu
|
|
7
7
|
@file: tui_menu_ui.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.menu
|
|
7
7
|
@file: tui_menu_view.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.127
|
|
4
4
|
#
|
|
5
5
|
# Package: main.clitt.core.tui.minput
|
|
6
6
|
"""Package initialization."""
|
|
@@ -16,4 +16,4 @@ __all__ = [
|
|
|
16
16
|
'minput',
|
|
17
17
|
'minput_utils'
|
|
18
18
|
]
|
|
19
|
-
__version__ = '0.9.
|
|
19
|
+
__version__ = '0.9.127'
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: access_type.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: field_builder.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: form_builder.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: form_field.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: input_type.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: input_validator.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: menu_input.py
|
|
8
8
|
@created: Wed, 17 May 2023
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
clitt/core/tui/minput/minput.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: minput.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.minput
|
|
7
7
|
@file: minput_utils.py
|
|
8
8
|
@created: Thu, 20 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.127
|
|
4
4
|
#
|
|
5
5
|
# Package: main.clitt.core.tui.mselect
|
|
6
6
|
"""Package initialization."""
|
|
@@ -9,4 +9,4 @@ __all__ = [
|
|
|
9
9
|
'menu_select',
|
|
10
10
|
'mselect'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.127'
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mselect
|
|
7
7
|
@file: menu_select.py
|
|
8
8
|
@created: Wed, 17 May 2023
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.mselect
|
|
7
7
|
@file: mselect.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
clitt/core/tui/table/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.127
|
|
4
4
|
#
|
|
5
5
|
# Package: main.clitt.core.tui.table
|
|
6
6
|
"""Package initialization."""
|
|
@@ -9,4 +9,4 @@ __all__ = [
|
|
|
9
9
|
'table_enums',
|
|
10
10
|
'table_renderer'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.127'
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.table
|
|
7
7
|
@file: table_enums.py
|
|
8
8
|
@created: Tue, 4 Jul 2023
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui.table
|
|
7
7
|
@file: table_renderer.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui
|
|
7
7
|
@file: tui_application.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
clitt/core/tui/tui_component.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui
|
|
7
7
|
@file: tui_component.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@package: clitt.core.tui
|
|
7
7
|
@file: tui_preferences.py
|
|
8
8
|
@created: Tue, 4 May 2021
|
|
9
|
-
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
10
|
@site: https://github.com/yorevs/hspylib
|
|
11
11
|
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
12
|
|
clitt/utils/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hspylib-clitt
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.127
|
|
4
4
|
Summary: HsPyLib - CLI Terminal Tools
|
|
5
5
|
Home-page: https://github.com/yorevs/hspylib
|
|
6
6
|
Author: Hugo Saporetti Junior
|
|
@@ -40,7 +40,7 @@ Requires-Dist: emoji >=2.12.1
|
|
|
40
40
|
[](https://gitter.im/hspylib/community)
|
|
41
41
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J5CDEFLF6M3H4)
|
|
42
42
|
[](LICENSE.md)
|
|
43
|
-
[](docs/CHANGELOG.md#unreleased)
|
|
44
44
|
[](https://github.com/yorevs/hspylib/actions/workflows/build-and-test.yml)
|
|
45
45
|
|
|
46
46
|
HsPyLib is not just a Python library; it's a gateway to elevating your programming experience to new heights. Built on
|