hspylib-clitt 0.9.117__py3-none-any.whl → 0.9.119__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.
- build/lib/build/lib/build/lib/build/lib/clitt/__classpath__.py +28 -0
- build/lib/build/lib/build/lib/build/lib/clitt/__init__.py +13 -0
- build/lib/build/lib/build/lib/build/lib/clitt/__main__.py +139 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/__init__.py +13 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/appman.py +305 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/appman_enums.py +39 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/templates/__init__.py +11 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widget.py +70 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widget_entry.py +54 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
- build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widman.py +123 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/__init__.py +15 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/exception/__init__.py +11 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/exception/exceptions.py +19 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/emojis/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/emojis/emojis.py +41 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/preferences.py +87 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/term/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/term/commons.py +106 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/term/cursor.py +174 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/term/screen.py +106 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/term/terminal.py +202 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/__init__.py +20 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/line_input/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/line_input/line_input.py +31 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/__init__.py +16 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/__init__.py +19 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/access_type.py +26 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/field_builder.py +117 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/form_builder.py +72 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/form_field.py +180 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/input_type.py +30 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/input_validator.py +98 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/menu_input.py +292 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/minput.py +44 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mselect/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mselect/mselect.py +36 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/table/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/table/table_enums.py +47 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/table/table_renderer.py +339 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/tui_application.py +52 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/tui_component.py +154 -0
- build/lib/build/lib/build/lib/build/lib/clitt/core/tui/tui_preferences.py +103 -0
- build/lib/build/lib/build/lib/build/lib/clitt/utils/__init__.py +11 -0
- build/lib/build/lib/build/lib/build/lib/clitt/utils/git_utils.py +66 -0
- build/lib/build/lib/build/lib/clitt/__classpath__.py +28 -0
- build/lib/build/lib/build/lib/clitt/__init__.py +13 -0
- build/lib/build/lib/build/lib/clitt/__main__.py +139 -0
- build/lib/build/lib/build/lib/clitt/addons/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/addons/appman/__init__.py +13 -0
- build/lib/build/lib/build/lib/clitt/addons/appman/appman.py +305 -0
- build/lib/build/lib/build/lib/clitt/addons/appman/appman_enums.py +39 -0
- build/lib/build/lib/build/lib/clitt/addons/appman/templates/__init__.py +11 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/__init__.py +14 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widget.py +70 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widget_entry.py +54 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
- build/lib/build/lib/build/lib/clitt/addons/widman/widman.py +123 -0
- build/lib/build/lib/build/lib/clitt/core/__init__.py +15 -0
- build/lib/build/lib/build/lib/clitt/core/exception/__init__.py +11 -0
- build/lib/build/lib/build/lib/clitt/core/exception/exceptions.py +19 -0
- build/lib/build/lib/build/lib/clitt/core/icons/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/core/icons/emojis/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/core/icons/emojis/emojis.py +41 -0
- build/lib/build/lib/build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
- build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
- build/lib/build/lib/build/lib/clitt/core/preferences.py +87 -0
- build/lib/build/lib/build/lib/clitt/core/term/__init__.py +14 -0
- build/lib/build/lib/build/lib/clitt/core/term/commons.py +106 -0
- build/lib/build/lib/build/lib/clitt/core/term/cursor.py +174 -0
- build/lib/build/lib/build/lib/clitt/core/term/screen.py +106 -0
- build/lib/build/lib/build/lib/clitt/core/term/terminal.py +202 -0
- build/lib/build/lib/build/lib/clitt/core/tui/__init__.py +20 -0
- build/lib/build/lib/build/lib/clitt/core/tui/line_input/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
- build/lib/build/lib/build/lib/clitt/core/tui/line_input/line_input.py +31 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/__init__.py +16 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
- build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/__init__.py +19 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/access_type.py +26 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/field_builder.py +117 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/form_builder.py +72 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/form_field.py +180 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/input_type.py +30 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/input_validator.py +98 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/menu_input.py +292 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/minput.py +44 -0
- build/lib/build/lib/build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mselect/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
- build/lib/build/lib/build/lib/clitt/core/tui/mselect/mselect.py +36 -0
- build/lib/build/lib/build/lib/clitt/core/tui/table/__init__.py +12 -0
- build/lib/build/lib/build/lib/clitt/core/tui/table/table_enums.py +47 -0
- build/lib/build/lib/build/lib/clitt/core/tui/table/table_renderer.py +339 -0
- build/lib/build/lib/build/lib/clitt/core/tui/tui_application.py +52 -0
- build/lib/build/lib/build/lib/clitt/core/tui/tui_component.py +154 -0
- build/lib/build/lib/build/lib/clitt/core/tui/tui_preferences.py +103 -0
- build/lib/build/lib/build/lib/clitt/utils/__init__.py +11 -0
- build/lib/build/lib/build/lib/clitt/utils/git_utils.py +66 -0
- build/lib/build/lib/clitt/__classpath__.py +28 -0
- build/lib/build/lib/clitt/__init__.py +13 -0
- build/lib/build/lib/clitt/__main__.py +139 -0
- build/lib/build/lib/clitt/addons/__init__.py +12 -0
- build/lib/build/lib/clitt/addons/appman/__init__.py +13 -0
- build/lib/build/lib/clitt/addons/appman/appman.py +305 -0
- build/lib/build/lib/clitt/addons/appman/appman_enums.py +39 -0
- build/lib/build/lib/clitt/addons/appman/templates/__init__.py +11 -0
- build/lib/build/lib/clitt/addons/widman/__init__.py +14 -0
- build/lib/build/lib/clitt/addons/widman/widget.py +70 -0
- build/lib/build/lib/clitt/addons/widman/widget_entry.py +54 -0
- build/lib/build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
- build/lib/build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
- build/lib/build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
- build/lib/build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
- build/lib/build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
- build/lib/build/lib/clitt/addons/widman/widman.py +123 -0
- build/lib/build/lib/clitt/core/__init__.py +15 -0
- build/lib/build/lib/clitt/core/exception/__init__.py +11 -0
- build/lib/build/lib/clitt/core/exception/exceptions.py +19 -0
- build/lib/build/lib/clitt/core/icons/__init__.py +12 -0
- build/lib/build/lib/clitt/core/icons/emojis/__init__.py +12 -0
- build/lib/build/lib/clitt/core/icons/emojis/emojis.py +41 -0
- build/lib/build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
- build/lib/build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
- build/lib/build/lib/clitt/core/preferences.py +87 -0
- build/lib/build/lib/clitt/core/term/__init__.py +14 -0
- build/lib/build/lib/clitt/core/term/commons.py +106 -0
- build/lib/build/lib/clitt/core/term/cursor.py +174 -0
- build/lib/build/lib/clitt/core/term/screen.py +106 -0
- build/lib/build/lib/clitt/core/term/terminal.py +202 -0
- build/lib/build/lib/clitt/core/tui/__init__.py +20 -0
- build/lib/build/lib/clitt/core/tui/line_input/__init__.py +12 -0
- build/lib/build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
- build/lib/build/lib/clitt/core/tui/line_input/line_input.py +31 -0
- build/lib/build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
- build/lib/build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
- build/lib/build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
- build/lib/build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
- build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
- build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
- build/lib/build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
- build/lib/build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
- build/lib/build/lib/clitt/core/tui/menu/__init__.py +16 -0
- build/lib/build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
- build/lib/build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
- build/lib/build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
- build/lib/build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
- build/lib/build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
- build/lib/build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
- build/lib/build/lib/clitt/core/tui/minput/__init__.py +19 -0
- build/lib/build/lib/clitt/core/tui/minput/access_type.py +26 -0
- build/lib/build/lib/clitt/core/tui/minput/field_builder.py +117 -0
- build/lib/build/lib/clitt/core/tui/minput/form_builder.py +72 -0
- build/lib/build/lib/clitt/core/tui/minput/form_field.py +180 -0
- build/lib/build/lib/clitt/core/tui/minput/input_type.py +30 -0
- build/lib/build/lib/clitt/core/tui/minput/input_validator.py +98 -0
- build/lib/build/lib/clitt/core/tui/minput/menu_input.py +292 -0
- build/lib/build/lib/clitt/core/tui/minput/minput.py +44 -0
- build/lib/build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
- build/lib/build/lib/clitt/core/tui/mselect/__init__.py +12 -0
- build/lib/build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
- build/lib/build/lib/clitt/core/tui/mselect/mselect.py +36 -0
- build/lib/build/lib/clitt/core/tui/table/__init__.py +12 -0
- build/lib/build/lib/clitt/core/tui/table/table_enums.py +47 -0
- build/lib/build/lib/clitt/core/tui/table/table_renderer.py +339 -0
- build/lib/build/lib/clitt/core/tui/tui_application.py +52 -0
- build/lib/build/lib/clitt/core/tui/tui_component.py +154 -0
- build/lib/build/lib/clitt/core/tui/tui_preferences.py +103 -0
- build/lib/build/lib/clitt/utils/__init__.py +11 -0
- build/lib/build/lib/clitt/utils/git_utils.py +66 -0
- build/lib/clitt/__classpath__.py +28 -0
- build/lib/clitt/__init__.py +13 -0
- build/lib/clitt/__main__.py +139 -0
- build/lib/clitt/addons/__init__.py +12 -0
- build/lib/clitt/addons/appman/__init__.py +13 -0
- build/lib/clitt/addons/appman/appman.py +305 -0
- build/lib/clitt/addons/appman/appman_enums.py +39 -0
- build/lib/clitt/addons/appman/templates/__init__.py +11 -0
- build/lib/clitt/addons/widman/__init__.py +14 -0
- build/lib/clitt/addons/widman/widget.py +70 -0
- build/lib/clitt/addons/widman/widget_entry.py +54 -0
- build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
- build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
- build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
- build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
- build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
- build/lib/clitt/addons/widman/widman.py +123 -0
- build/lib/clitt/core/__init__.py +15 -0
- build/lib/clitt/core/exception/__init__.py +11 -0
- build/lib/clitt/core/exception/exceptions.py +19 -0
- build/lib/clitt/core/icons/__init__.py +12 -0
- build/lib/clitt/core/icons/emojis/__init__.py +12 -0
- build/lib/clitt/core/icons/emojis/emojis.py +41 -0
- build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
- build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
- build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
- build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
- build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
- build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
- build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
- build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
- build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
- build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
- build/lib/clitt/core/preferences.py +87 -0
- build/lib/clitt/core/term/__init__.py +14 -0
- build/lib/clitt/core/term/commons.py +106 -0
- build/lib/clitt/core/term/cursor.py +174 -0
- build/lib/clitt/core/term/screen.py +106 -0
- build/lib/clitt/core/term/terminal.py +202 -0
- build/lib/clitt/core/tui/__init__.py +20 -0
- build/lib/clitt/core/tui/line_input/__init__.py +12 -0
- build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
- build/lib/clitt/core/tui/line_input/line_input.py +31 -0
- build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
- build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
- build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
- build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
- build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
- build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
- build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
- build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
- build/lib/clitt/core/tui/menu/__init__.py +16 -0
- build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
- build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
- build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
- build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
- build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
- build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
- build/lib/clitt/core/tui/minput/__init__.py +19 -0
- build/lib/clitt/core/tui/minput/access_type.py +26 -0
- build/lib/clitt/core/tui/minput/field_builder.py +117 -0
- build/lib/clitt/core/tui/minput/form_builder.py +72 -0
- build/lib/clitt/core/tui/minput/form_field.py +180 -0
- build/lib/clitt/core/tui/minput/input_type.py +30 -0
- build/lib/clitt/core/tui/minput/input_validator.py +98 -0
- build/lib/clitt/core/tui/minput/menu_input.py +292 -0
- build/lib/clitt/core/tui/minput/minput.py +44 -0
- build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
- build/lib/clitt/core/tui/mselect/__init__.py +12 -0
- build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
- build/lib/clitt/core/tui/mselect/mselect.py +36 -0
- build/lib/clitt/core/tui/table/__init__.py +12 -0
- build/lib/clitt/core/tui/table/table_enums.py +47 -0
- build/lib/clitt/core/tui/table/table_renderer.py +339 -0
- build/lib/clitt/core/tui/tui_application.py +52 -0
- build/lib/clitt/core/tui/tui_component.py +154 -0
- build/lib/clitt/core/tui/tui_preferences.py +103 -0
- build/lib/clitt/utils/__init__.py +11 -0
- build/lib/clitt/utils/git_utils.py +66 -0
- clitt/.version +1 -1
- clitt/__init__.py +3 -3
- clitt/addons/__init__.py +3 -3
- clitt/addons/appman/__init__.py +3 -3
- clitt/addons/appman/templates/__init__.py +3 -3
- clitt/addons/widman/__init__.py +3 -3
- clitt/addons/widman/widgets/__init__.py +3 -3
- clitt/core/__init__.py +3 -3
- clitt/core/exception/__init__.py +3 -3
- clitt/core/exception/exceptions.py +1 -0
- clitt/core/icons/__init__.py +3 -3
- clitt/core/icons/emojis/__init__.py +3 -3
- clitt/core/icons/font_awesome/__init__.py +3 -3
- clitt/core/term/__init__.py +3 -3
- clitt/core/term/commons.py +40 -16
- clitt/core/term/cursor.py +18 -3
- clitt/core/term/screen.py +15 -0
- clitt/core/term/terminal.py +15 -16
- clitt/core/tui/__init__.py +3 -3
- clitt/core/tui/line_input/__init__.py +3 -3
- clitt/core/tui/line_input/keyboard_input.py +15 -14
- clitt/core/tui/line_input/line_input.py +2 -6
- clitt/core/tui/mchoose/__init__.py +3 -3
- clitt/core/tui/mchoose/mchoose.py +2 -3
- clitt/core/tui/mchoose/menu_choose.py +6 -14
- clitt/core/tui/mdashboard/__init__.py +3 -3
- clitt/core/tui/mdashboard/menu_dashboard.py +2 -8
- clitt/core/tui/menu/__init__.py +3 -3
- clitt/core/tui/minput/__init__.py +3 -3
- clitt/core/tui/mselect/__init__.py +3 -3
- clitt/core/tui/mselect/menu_select.py +2 -3
- clitt/core/tui/table/__init__.py +3 -3
- clitt/core/tui/tui_application.py +4 -5
- clitt/core/tui/tui_component.py +4 -5
- clitt/utils/__init__.py +3 -3
- {hspylib_clitt-0.9.117.dist-info → hspylib_clitt-0.9.119.dist-info}/METADATA +2 -2
- hspylib_clitt-0.9.119.dist-info/RECORD +413 -0
- {hspylib_clitt-0.9.117.dist-info → hspylib_clitt-0.9.119.dist-info}/top_level.txt +1 -0
- hspylib_clitt-0.9.117.dist-info/RECORD +0 -97
- {hspylib_clitt-0.9.117.dist-info → hspylib_clitt-0.9.119.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
@project: HsPyLib
|
|
6
|
+
@package: clitt.utils
|
|
7
|
+
@file: git_utils.py
|
|
8
|
+
@created: Nov 14, 2019
|
|
9
|
+
@author: <B>H</B>ugo <B>S</B>aporetti <B>J</B>unior
|
|
10
|
+
@site: https://github.com/yorevs/hspylib
|
|
11
|
+
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
|
+
|
|
13
|
+
Copyright·(c)·2024,·HSPyLib
|
|
14
|
+
"""
|
|
15
|
+
from clitt.core.term.terminal import Terminal
|
|
16
|
+
from hspylib.modules.application.exit_status import ExitStatus
|
|
17
|
+
from typing import Tuple
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GitTools:
|
|
21
|
+
"""TODO"""
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def top_level_dir() -> Tuple[str, ExitStatus]:
|
|
25
|
+
"""TODO"""
|
|
26
|
+
return Terminal.shell_exec("git rev-parse --show-toplevel")
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def current_branch() -> Tuple[str, ExitStatus]:
|
|
30
|
+
"""TODO"""
|
|
31
|
+
return Terminal.shell_exec("git symbolic-ref --short HEAD")
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def changelog(from_tag: str, to_tag: str) -> Tuple[str, ExitStatus]:
|
|
35
|
+
"""TODO"""
|
|
36
|
+
return Terminal.shell_exec(f"git log --oneline --pretty='format:%h %ad %s' --date=short {from_tag}^..{to_tag}^")
|
|
37
|
+
|
|
38
|
+
@staticmethod
|
|
39
|
+
def unreleased() -> Tuple[str, ExitStatus]:
|
|
40
|
+
"""TODO"""
|
|
41
|
+
latest_tag = Terminal.shell_exec("git describe --tags --abbrev=0 HEAD^")
|
|
42
|
+
return Terminal.shell_exec(f"git log --oneline --pretty='format:%h %ad %s' --date=short '{latest_tag}'..HEAD")
|
|
43
|
+
|
|
44
|
+
@staticmethod
|
|
45
|
+
def release_date(tag_name: str) -> Tuple[str, ExitStatus]:
|
|
46
|
+
"""TODO"""
|
|
47
|
+
return Terminal.shell_exec(f"git log -1 --pretty='format:%ad' --date=short {tag_name}")
|
|
48
|
+
|
|
49
|
+
@staticmethod
|
|
50
|
+
def tag_list() -> Tuple[str, ExitStatus]:
|
|
51
|
+
"""TODO"""
|
|
52
|
+
return Terminal.shell_exec("git log --tags --simplify-by-decoration --pretty='format:%ci %d'")
|
|
53
|
+
|
|
54
|
+
@staticmethod
|
|
55
|
+
def create_tag(version: str, commit_id: str = "HEAD", description: str = None) -> Tuple[str, ExitStatus]:
|
|
56
|
+
"""TODO"""
|
|
57
|
+
return Terminal.shell_exec(f"git tag -a v{version} {commit_id} -m '{description or version}'")
|
|
58
|
+
|
|
59
|
+
@staticmethod
|
|
60
|
+
def search_logs(filter_by: str = ".*") -> Tuple[str, ExitStatus]:
|
|
61
|
+
"""TODO"""
|
|
62
|
+
return Terminal.shell_exec(f"git log --grep='{filter_by}' --pretty=format:'%h %ad %s' --date=short")
|
|
63
|
+
|
|
64
|
+
@staticmethod
|
|
65
|
+
def show_file(filename: str, commit_id: str = "HEAD") -> Tuple[str, ExitStatus]:
|
|
66
|
+
return Terminal.shell_exec(f"git show {commit_id}:{filename}")
|
clitt/.version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.9.
|
|
1
|
+
0.9.119
|
clitt/__init__.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt
|
|
5
|
+
# Package: main.build.lib.clitt
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -10,4 +10,4 @@ __all__ = [
|
|
|
10
10
|
'core',
|
|
11
11
|
'utils'
|
|
12
12
|
]
|
|
13
|
-
__version__ = '0.9.
|
|
13
|
+
__version__ = '0.9.119'
|
clitt/addons/__init__.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.addons
|
|
5
|
+
# Package: main.build.lib.clitt.addons
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
'appman',
|
|
10
10
|
'widman'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.119'
|
clitt/addons/appman/__init__.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.addons.appman
|
|
5
|
+
# Package: main.build.lib.clitt.addons.appman
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -10,4 +10,4 @@ __all__ = [
|
|
|
10
10
|
'appman_enums',
|
|
11
11
|
'templates'
|
|
12
12
|
]
|
|
13
|
-
__version__ = '0.9.
|
|
13
|
+
__version__ = '0.9.119'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.addons.appman.templates
|
|
5
|
+
# Package: main.build.lib.clitt.addons.appman.templates
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
|
|
10
10
|
]
|
|
11
|
-
__version__ = '0.9.
|
|
11
|
+
__version__ = '0.9.119'
|
clitt/addons/widman/__init__.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.addons.widman
|
|
5
|
+
# Package: main.build.lib.clitt.addons.widman
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -11,4 +11,4 @@ __all__ = [
|
|
|
11
11
|
'widgets',
|
|
12
12
|
'widman'
|
|
13
13
|
]
|
|
14
|
-
__version__ = '0.9.
|
|
14
|
+
__version__ = '0.9.119'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.addons.widman.widgets
|
|
5
|
+
# Package: main.build.lib.clitt.addons.widman.widgets
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -11,4 +11,4 @@ __all__ = [
|
|
|
11
11
|
'widget_send_msg',
|
|
12
12
|
'widget_time_calc'
|
|
13
13
|
]
|
|
14
|
-
__version__ = '0.9.
|
|
14
|
+
__version__ = '0.9.119'
|
clitt/core/__init__.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core
|
|
5
|
+
# Package: main.build.lib.clitt.core
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -12,4 +12,4 @@ __all__ = [
|
|
|
12
12
|
'term',
|
|
13
13
|
'tui'
|
|
14
14
|
]
|
|
15
|
-
__version__ = '0.9.
|
|
15
|
+
__version__ = '0.9.119'
|
clitt/core/exception/__init__.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.exception
|
|
5
|
+
# Package: main.build.lib.clitt.core.exception
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
'exceptions'
|
|
10
10
|
]
|
|
11
|
-
__version__ = '0.9.
|
|
11
|
+
__version__ = '0.9.119'
|
clitt/core/icons/__init__.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.icons
|
|
5
|
+
# Package: main.build.lib.clitt.core.icons
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
'emojis',
|
|
10
10
|
'font_awesome'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.119'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.icons.emojis
|
|
5
|
+
# Package: main.build.lib.clitt.core.icons.emojis
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
'emojis',
|
|
10
10
|
'face_smiling'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.119'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.icons.font_awesome
|
|
5
|
+
# Package: main.build.lib.clitt.core.icons.font_awesome
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -15,4 +15,4 @@ __all__ = [
|
|
|
15
15
|
'trickplay_icons',
|
|
16
16
|
'widget_icons'
|
|
17
17
|
]
|
|
18
|
-
__version__ = '0.9.
|
|
18
|
+
__version__ = '0.9.119'
|
clitt/core/term/__init__.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.term
|
|
5
|
+
# Package: main.build.lib.clitt.core.term
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -11,4 +11,4 @@ __all__ = [
|
|
|
11
11
|
'screen',
|
|
12
12
|
'terminal'
|
|
13
13
|
]
|
|
14
|
-
__version__ = '0.9.
|
|
14
|
+
__version__ = '0.9.119'
|
clitt/core/term/commons.py
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
@project: hspylib-clitt
|
|
6
|
+
@package: hspylib-clitt.main.clitt.core.term
|
|
7
|
+
@file: commons.py
|
|
8
|
+
@created: Wed, 20 Mar 2024
|
|
9
|
+
@author: "<B>H</B>ugo <B>S</B>aporetti <B>J</B>unior")"
|
|
10
|
+
@site: "https://github.com/yorevs/hspylib")
|
|
11
|
+
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
|
+
|
|
13
|
+
Copyright 2024, HSPyLib team
|
|
14
|
+
"""
|
|
7
15
|
|
|
8
|
-
import logging as log
|
|
9
16
|
import re
|
|
10
17
|
import sys
|
|
11
18
|
import termios
|
|
12
19
|
import tty
|
|
20
|
+
from shutil import get_terminal_size
|
|
21
|
+
from typing import Callable, Tuple, TypeAlias, Union
|
|
22
|
+
|
|
23
|
+
from hspylib.core.enums.enumeration import Enumeration
|
|
24
|
+
from hspylib.core.tools.commons import is_debugging
|
|
25
|
+
from hspylib.modules.cli.vt100.vt_100 import Vt100
|
|
13
26
|
|
|
14
27
|
# fmt: off
|
|
15
28
|
Dimension : TypeAlias = Tuple[int, int]
|
|
@@ -20,6 +33,14 @@ EraseDirection : TypeAlias = Union["Direction", "Portion"]
|
|
|
20
33
|
# fmt: on
|
|
21
34
|
|
|
22
35
|
|
|
36
|
+
def is_a_tty() -> bool:
|
|
37
|
+
"""Checks whether we are under a tty environment."""
|
|
38
|
+
try:
|
|
39
|
+
return sys.stdout.isatty() and sys.stdin.isatty()
|
|
40
|
+
except ValueError:
|
|
41
|
+
return sys.stdout.isatty()
|
|
42
|
+
|
|
43
|
+
|
|
23
44
|
class Direction(Enumeration):
|
|
24
45
|
"""Provide a base class for the cursor direction."""
|
|
25
46
|
|
|
@@ -44,8 +65,7 @@ def get_dimensions(fallback: Tuple[int, int] = (24, 80)) -> Tuple[int, int]:
|
|
|
44
65
|
"""Retrieve the size of the terminal.
|
|
45
66
|
:return lines, columns
|
|
46
67
|
"""
|
|
47
|
-
if not
|
|
48
|
-
log.warning(NotATerminalError("get_dimensions:: Requires a terminal (TTY)"))
|
|
68
|
+
if not is_a_tty():
|
|
49
69
|
return fallback
|
|
50
70
|
dim = get_terminal_size((fallback[1], fallback[0]))
|
|
51
71
|
return dim.lines, dim.columns
|
|
@@ -55,19 +75,20 @@ def get_cursor_position(fallback: Tuple[int, int] = (0, 0)) -> Tuple[int, int]:
|
|
|
55
75
|
"""Get the terminal cursor position.
|
|
56
76
|
:return line, column
|
|
57
77
|
"""
|
|
58
|
-
pos
|
|
78
|
+
pos = fallback
|
|
59
79
|
|
|
60
|
-
if
|
|
61
|
-
log.warning(NotATerminalError("get_cursor_position:: Requires a terminal (TTY)"))
|
|
80
|
+
if is_debugging():
|
|
62
81
|
return pos
|
|
63
82
|
|
|
64
|
-
if
|
|
83
|
+
if not is_a_tty():
|
|
65
84
|
return pos
|
|
66
85
|
|
|
67
|
-
|
|
68
|
-
attrs =
|
|
86
|
+
buf, re_query_resp = "", r"^\x1b\[(\d*);(\d*)R"
|
|
87
|
+
stdin, attrs = None, None
|
|
69
88
|
|
|
70
89
|
try:
|
|
90
|
+
stdin = sys.stdin.fileno() # Get the stdin file descriptor.
|
|
91
|
+
attrs = termios.tcgetattr(stdin) # Save terminal attributes.
|
|
71
92
|
tty.setcbreak(stdin, termios.TCSANOW)
|
|
72
93
|
sys.stdout.write(Vt100.get_cursor_pos())
|
|
73
94
|
sys.stdout.flush()
|
|
@@ -76,7 +97,10 @@ def get_cursor_position(fallback: Tuple[int, int] = (0, 0)) -> Tuple[int, int]:
|
|
|
76
97
|
if matches := re.match(re_query_resp, buf): # If the response is 'Esc[r;cR'
|
|
77
98
|
groups = matches.groups()
|
|
78
99
|
pos = int(groups[0]), int(groups[1])
|
|
100
|
+
except termios.error:
|
|
101
|
+
pass
|
|
79
102
|
finally:
|
|
80
|
-
|
|
103
|
+
if stdin and attrs:
|
|
104
|
+
termios.tcsetattr(stdin, termios.TCSANOW, attrs) # Reset terminal attributes
|
|
81
105
|
|
|
82
106
|
return pos
|
clitt/core/term/cursor.py
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
@project: hspylib-clitt
|
|
6
|
+
@package: hspylib-clitt.main.clitt.core.term
|
|
7
|
+
@file: cursor.py
|
|
8
|
+
@created: Wed, 20 Mar 2024
|
|
9
|
+
@author: "<B>H</B>ugo <B>S</B>aporetti <B>J</B>unior")"
|
|
10
|
+
@site: "https://github.com/yorevs/hspylib")
|
|
11
|
+
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
|
+
|
|
13
|
+
Copyright 2024, HSPyLib team
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from clitt.core.term.commons import Direction, EraseDirection, get_cursor_position, MoveDirection, Portion, Position
|
|
2
17
|
from hspylib.core.metaclass.singleton import Singleton
|
|
3
18
|
from hspylib.core.tools.commons import sysout
|
|
4
19
|
from hspylib.core.tools.text_tools import last_index_of
|
|
@@ -7,7 +22,7 @@ from hspylib.modules.cli.vt100.vt_code import VtCode
|
|
|
7
22
|
from hspylib.modules.cli.vt100.vt_color import VtColor
|
|
8
23
|
from typing import Any
|
|
9
24
|
|
|
10
|
-
|
|
25
|
+
import os
|
|
11
26
|
|
|
12
27
|
|
|
13
28
|
class Cursor(metaclass=Singleton):
|
|
@@ -120,7 +135,7 @@ class Cursor(metaclass=Singleton):
|
|
|
120
135
|
sysout(obj, end=end)
|
|
121
136
|
text = (str(obj) + end).replace("%EOL%", os.linesep)
|
|
122
137
|
text = VtColor.strip_colors(VtCode.strip_codes(text))
|
|
123
|
-
text_offset = len(text[max(0, last_index_of(text, os.linesep)):])
|
|
138
|
+
text_offset = len(text[max(0, last_index_of(text, os.linesep)) :])
|
|
124
139
|
self.position = self.position[0] + text.count(os.linesep), text_offset + (
|
|
125
140
|
self.position[1] if text.count(os.linesep) == 0 else 0
|
|
126
141
|
)
|
clitt/core/term/screen.py
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
@project: hspylib-clitt
|
|
6
|
+
@package: hspylib-clitt.main.clitt.core.term
|
|
7
|
+
@file: screen.py
|
|
8
|
+
@created: Wed, 20 Mar 2024
|
|
9
|
+
@author: "<B>H</B>ugo <B>S</B>aporetti <B>J</B>unior")"
|
|
10
|
+
@site: "https://github.com/yorevs/hspylib")
|
|
11
|
+
@license: MIT - Please refer to <https://opensource.org/licenses/MIT>
|
|
12
|
+
|
|
13
|
+
Copyright 2024, HSPyLib team
|
|
14
|
+
"""
|
|
15
|
+
|
|
1
16
|
from clitt.core.term.commons import Dimension, get_dimensions, Portion, Resize_Cb
|
|
2
17
|
from clitt.core.term.cursor import Cursor
|
|
3
18
|
from clitt.core.tui.tui_preferences import TUIPreferences
|
clitt/core/term/terminal.py
CHANGED
|
@@ -12,27 +12,26 @@
|
|
|
12
12
|
|
|
13
13
|
Copyright·(c)·2024,·HSPyLib
|
|
14
14
|
"""
|
|
15
|
-
import
|
|
16
|
-
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import select
|
|
20
|
-
import shlex
|
|
21
|
-
import signal
|
|
22
|
-
import sys
|
|
23
|
-
from subprocess import CalledProcessError, Popen, PIPE
|
|
24
|
-
from typing import Any, Optional, Tuple, List, Iterable
|
|
25
|
-
|
|
15
|
+
from clitt.core.exception.exceptions import NotATerminalError
|
|
16
|
+
from clitt.core.term.commons import is_a_tty
|
|
17
|
+
from clitt.core.term.cursor import Cursor
|
|
18
|
+
from clitt.core.term.screen import Screen
|
|
26
19
|
from hspylib.core.enums.charset import Charset
|
|
27
20
|
from hspylib.core.metaclass.singleton import Singleton
|
|
28
21
|
from hspylib.core.tools.commons import sysout
|
|
29
22
|
from hspylib.modules.application.exit_status import ExitStatus
|
|
30
23
|
from hspylib.modules.cli.keyboard import Keyboard
|
|
31
24
|
from hspylib.modules.cli.vt100.vt_100 import Vt100
|
|
25
|
+
from subprocess import CalledProcessError, PIPE, Popen
|
|
26
|
+
from typing import Any, Iterable, List, Optional, Tuple
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
import atexit
|
|
29
|
+
import logging as log
|
|
30
|
+
import os
|
|
31
|
+
import platform
|
|
32
|
+
import select
|
|
33
|
+
import shlex
|
|
34
|
+
import signal
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
class Terminal(metaclass=Singleton):
|
|
@@ -42,7 +41,7 @@ class Terminal(metaclass=Singleton):
|
|
|
42
41
|
|
|
43
42
|
@staticmethod
|
|
44
43
|
def is_a_tty() -> bool:
|
|
45
|
-
return
|
|
44
|
+
return is_a_tty()
|
|
46
45
|
|
|
47
46
|
@staticmethod
|
|
48
47
|
def _chain_pipes(cmd_list: Iterable, **kwargs) -> Popen:
|
|
@@ -55,7 +54,7 @@ class Terminal(metaclass=Singleton):
|
|
|
55
54
|
del kwargs["stderr"]
|
|
56
55
|
if "stdin" in kwargs:
|
|
57
56
|
del kwargs["stdin"]
|
|
58
|
-
commands = map(shlex.split, cmd_list) if
|
|
57
|
+
commands = map(shlex.split, cmd_list) if "shell" not in kwargs else cmd_list
|
|
59
58
|
first_cmd, *rest_cmds = commands
|
|
60
59
|
if len(rest_cmds) > 0:
|
|
61
60
|
procs: List[Popen] = [Popen(first_cmd, stdout=PIPE, stderr=PIPE, **kwargs)]
|
clitt/core/tui/__init__.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.tui
|
|
5
|
+
# Package: main.build.lib.clitt.core.tui
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
@@ -17,4 +17,4 @@ __all__ = [
|
|
|
17
17
|
'tui_component',
|
|
18
18
|
'tui_preferences'
|
|
19
19
|
]
|
|
20
|
-
__version__ = '0.9.
|
|
20
|
+
__version__ = '0.9.119'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.tui.line_input
|
|
5
|
+
# Package: main.build.lib.clitt.core.tui.line_input
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
'keyboard_input',
|
|
10
10
|
'line_input'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.119'
|
|
@@ -13,15 +13,14 @@
|
|
|
13
13
|
Copyright·(c)·2024,·HSPyLib
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
from typing import Optional, List, Dict
|
|
17
|
-
|
|
18
|
-
import pyperclip
|
|
19
|
-
from hspylib.modules.cli.keyboard import Keyboard
|
|
20
|
-
from hspylib.modules.cli.vt100.vt_color import VtColor
|
|
21
|
-
|
|
22
16
|
from clitt.core.term.commons import Direction
|
|
23
17
|
from clitt.core.term.terminal import Terminal
|
|
24
18
|
from clitt.core.tui.tui_component import TUIComponent
|
|
19
|
+
from hspylib.modules.cli.keyboard import Keyboard
|
|
20
|
+
from hspylib.modules.cli.vt100.vt_color import VtColor
|
|
21
|
+
from typing import Dict, List, Optional
|
|
22
|
+
|
|
23
|
+
import pyperclip
|
|
25
24
|
|
|
26
25
|
|
|
27
26
|
class KeyboardInput(TUIComponent):
|
|
@@ -42,7 +41,8 @@ class KeyboardInput(TUIComponent):
|
|
|
42
41
|
@staticmethod
|
|
43
42
|
def preload_history(history: List[str]) -> None:
|
|
44
43
|
"""Preload the input with the provided dictionary."""
|
|
45
|
-
|
|
44
|
+
rev_history = reversed(history)
|
|
45
|
+
for entry in rev_history:
|
|
46
46
|
KeyboardInput._add_history(entry)
|
|
47
47
|
KeyboardInput._HIST_INDEX = 0
|
|
48
48
|
|
|
@@ -97,10 +97,11 @@ class KeyboardInput(TUIComponent):
|
|
|
97
97
|
return text
|
|
98
98
|
|
|
99
99
|
def __init__(
|
|
100
|
-
self,
|
|
100
|
+
self,
|
|
101
|
+
prompt: str = "",
|
|
101
102
|
prompt_color: VtColor = VtColor.NC,
|
|
102
103
|
text_color: VtColor = VtColor.NC,
|
|
103
|
-
navbar_enable: bool = False
|
|
104
|
+
navbar_enable: bool = False,
|
|
104
105
|
):
|
|
105
106
|
super().__init__(prompt)
|
|
106
107
|
self._prompt_color = prompt_color
|
|
@@ -168,18 +169,18 @@ class KeyboardInput(TUIComponent):
|
|
|
168
169
|
if self._input_index > 0:
|
|
169
170
|
self._input_index = max(0, self._input_index - 1)
|
|
170
171
|
self._update_input(
|
|
171
|
-
self._input_text[: self._input_index] + self._input_text[1 + self._input_index:]
|
|
172
|
+
self._input_text[: self._input_index] + self._input_text[1 + self._input_index :]
|
|
172
173
|
)
|
|
173
174
|
case Keyboard.VK_DELETE:
|
|
174
175
|
self._update_input(
|
|
175
|
-
self._input_text[: self._input_index] + self._input_text[1 + self._input_index:]
|
|
176
|
+
self._input_text[: self._input_index] + self._input_text[1 + self._input_index :]
|
|
176
177
|
)
|
|
177
178
|
case Keyboard.VK_CTRL_F: # Forget history
|
|
178
179
|
self.forget_history()
|
|
179
180
|
case Keyboard.VK_CTRL_P: # Paste from clipboard
|
|
180
|
-
text = (pyperclip.paste() or
|
|
181
|
+
text = (pyperclip.paste() or "").replace("\n", "↵")
|
|
181
182
|
self._update_input(
|
|
182
|
-
self._input_text[: self._input_index] + text + self._input_text[self._input_index:]
|
|
183
|
+
self._input_text[: self._input_index] + text + self._input_text[self._input_index :]
|
|
183
184
|
)
|
|
184
185
|
self._input_index += len(text)
|
|
185
186
|
case Keyboard.VK_CTRL_R: # Reset contents
|
|
@@ -201,7 +202,7 @@ class KeyboardInput(TUIComponent):
|
|
|
201
202
|
self._input_index = self.length
|
|
202
203
|
case _ as key if key.val.isprintable():
|
|
203
204
|
self._update_input(
|
|
204
|
-
self._input_text[: self._input_index] + key.val + self._input_text[self._input_index:]
|
|
205
|
+
self._input_text[: self._input_index] + key.val + self._input_text[self._input_index :]
|
|
205
206
|
)
|
|
206
207
|
self._input_index += 1
|
|
207
208
|
case _ as key if key in Keyboard.break_keys():
|
|
@@ -12,18 +12,14 @@
|
|
|
12
12
|
|
|
13
13
|
Copyright·(c)·2024,·HSPyLib
|
|
14
14
|
"""
|
|
15
|
+
from clitt.core.tui.line_input.keyboard_input import KeyboardInput
|
|
15
16
|
from hspylib.modules.cli.keyboard import Keyboard
|
|
16
17
|
from hspylib.modules.cli.vt100.vt_color import VtColor
|
|
17
18
|
from typing import Optional
|
|
18
19
|
|
|
19
|
-
from clitt.core.tui.line_input.keyboard_input import KeyboardInput
|
|
20
|
-
|
|
21
20
|
|
|
22
21
|
def line_input(
|
|
23
|
-
prompt: str = "",
|
|
24
|
-
prompt_color: VtColor = VtColor.NC,
|
|
25
|
-
text_color: VtColor = VtColor.NC,
|
|
26
|
-
navbar_enable: bool = False
|
|
22
|
+
prompt: str = "", prompt_color: VtColor = VtColor.NC, text_color: VtColor = VtColor.NC, navbar_enable: bool = False
|
|
27
23
|
) -> Optional[str | Keyboard]:
|
|
28
24
|
"""Read a string from standard input.
|
|
29
25
|
:param prompt: The message to be displayed to the user.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# _*_ coding: utf-8 _*_
|
|
2
2
|
#
|
|
3
|
-
# hspylib-clitt v0.9.
|
|
3
|
+
# hspylib-clitt v0.9.119
|
|
4
4
|
#
|
|
5
|
-
# Package: main.clitt.core.tui.mchoose
|
|
5
|
+
# Package: main.build.lib.clitt.core.tui.mchoose
|
|
6
6
|
"""Package initialization."""
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
'mchoose',
|
|
10
10
|
'menu_choose'
|
|
11
11
|
]
|
|
12
|
-
__version__ = '0.9.
|
|
12
|
+
__version__ = '0.9.119'
|
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
Copyright·(c)·2024,·HSPyLib
|
|
14
14
|
"""
|
|
15
|
+
from clitt.core.tui.mchoose.menu_choose import MenuChoose
|
|
15
16
|
from hspylib.core.enums.charset import Charset
|
|
16
17
|
from typing import List, Optional, TypeVar
|
|
17
18
|
|
|
18
|
-
from clitt.core.tui.mchoose.menu_choose import MenuChoose
|
|
19
|
-
|
|
20
19
|
T = TypeVar("T")
|
|
21
20
|
|
|
22
21
|
|
|
@@ -24,7 +23,7 @@ def mchoose(
|
|
|
24
23
|
items: List[T],
|
|
25
24
|
checked: bool | List[bool] = False,
|
|
26
25
|
title: str = "Please choose among the options",
|
|
27
|
-
output: str = None
|
|
26
|
+
output: str = None,
|
|
28
27
|
) -> Optional[List[T]]:
|
|
29
28
|
"""
|
|
30
29
|
Terminal UI menu choose input method.
|