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.

Files changed (356) hide show
  1. build/lib/build/lib/build/lib/build/lib/clitt/__classpath__.py +28 -0
  2. build/lib/build/lib/build/lib/build/lib/clitt/__init__.py +13 -0
  3. build/lib/build/lib/build/lib/build/lib/clitt/__main__.py +139 -0
  4. build/lib/build/lib/build/lib/build/lib/clitt/addons/__init__.py +12 -0
  5. build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/__init__.py +13 -0
  6. build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/appman.py +305 -0
  7. build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/appman_enums.py +39 -0
  8. build/lib/build/lib/build/lib/build/lib/clitt/addons/appman/templates/__init__.py +11 -0
  9. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/__init__.py +14 -0
  10. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widget.py +70 -0
  11. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widget_entry.py +54 -0
  12. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
  13. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
  14. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
  15. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
  16. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
  17. build/lib/build/lib/build/lib/build/lib/clitt/addons/widman/widman.py +123 -0
  18. build/lib/build/lib/build/lib/build/lib/clitt/core/__init__.py +15 -0
  19. build/lib/build/lib/build/lib/build/lib/clitt/core/exception/__init__.py +11 -0
  20. build/lib/build/lib/build/lib/build/lib/clitt/core/exception/exceptions.py +19 -0
  21. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/__init__.py +12 -0
  22. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/emojis/__init__.py +12 -0
  23. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/emojis/emojis.py +41 -0
  24. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
  25. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
  26. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
  27. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
  28. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
  29. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
  30. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
  31. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
  32. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
  33. build/lib/build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
  34. build/lib/build/lib/build/lib/build/lib/clitt/core/preferences.py +87 -0
  35. build/lib/build/lib/build/lib/build/lib/clitt/core/term/__init__.py +14 -0
  36. build/lib/build/lib/build/lib/build/lib/clitt/core/term/commons.py +106 -0
  37. build/lib/build/lib/build/lib/build/lib/clitt/core/term/cursor.py +174 -0
  38. build/lib/build/lib/build/lib/build/lib/clitt/core/term/screen.py +106 -0
  39. build/lib/build/lib/build/lib/build/lib/clitt/core/term/terminal.py +202 -0
  40. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/__init__.py +20 -0
  41. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/line_input/__init__.py +12 -0
  42. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
  43. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/line_input/line_input.py +31 -0
  44. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
  45. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
  46. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
  47. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
  48. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
  49. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
  50. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
  51. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
  52. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/__init__.py +16 -0
  53. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
  54. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
  55. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
  56. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
  57. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
  58. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
  59. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/__init__.py +19 -0
  60. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/access_type.py +26 -0
  61. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/field_builder.py +117 -0
  62. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/form_builder.py +72 -0
  63. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/form_field.py +180 -0
  64. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/input_type.py +30 -0
  65. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/input_validator.py +98 -0
  66. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/menu_input.py +292 -0
  67. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/minput.py +44 -0
  68. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
  69. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mselect/__init__.py +12 -0
  70. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
  71. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/mselect/mselect.py +36 -0
  72. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/table/__init__.py +12 -0
  73. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/table/table_enums.py +47 -0
  74. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/table/table_renderer.py +339 -0
  75. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/tui_application.py +52 -0
  76. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/tui_component.py +154 -0
  77. build/lib/build/lib/build/lib/build/lib/clitt/core/tui/tui_preferences.py +103 -0
  78. build/lib/build/lib/build/lib/build/lib/clitt/utils/__init__.py +11 -0
  79. build/lib/build/lib/build/lib/build/lib/clitt/utils/git_utils.py +66 -0
  80. build/lib/build/lib/build/lib/clitt/__classpath__.py +28 -0
  81. build/lib/build/lib/build/lib/clitt/__init__.py +13 -0
  82. build/lib/build/lib/build/lib/clitt/__main__.py +139 -0
  83. build/lib/build/lib/build/lib/clitt/addons/__init__.py +12 -0
  84. build/lib/build/lib/build/lib/clitt/addons/appman/__init__.py +13 -0
  85. build/lib/build/lib/build/lib/clitt/addons/appman/appman.py +305 -0
  86. build/lib/build/lib/build/lib/clitt/addons/appman/appman_enums.py +39 -0
  87. build/lib/build/lib/build/lib/clitt/addons/appman/templates/__init__.py +11 -0
  88. build/lib/build/lib/build/lib/clitt/addons/widman/__init__.py +14 -0
  89. build/lib/build/lib/build/lib/clitt/addons/widman/widget.py +70 -0
  90. build/lib/build/lib/build/lib/clitt/addons/widman/widget_entry.py +54 -0
  91. build/lib/build/lib/build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
  92. build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
  93. build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
  94. build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
  95. build/lib/build/lib/build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
  96. build/lib/build/lib/build/lib/clitt/addons/widman/widman.py +123 -0
  97. build/lib/build/lib/build/lib/clitt/core/__init__.py +15 -0
  98. build/lib/build/lib/build/lib/clitt/core/exception/__init__.py +11 -0
  99. build/lib/build/lib/build/lib/clitt/core/exception/exceptions.py +19 -0
  100. build/lib/build/lib/build/lib/clitt/core/icons/__init__.py +12 -0
  101. build/lib/build/lib/build/lib/clitt/core/icons/emojis/__init__.py +12 -0
  102. build/lib/build/lib/build/lib/clitt/core/icons/emojis/emojis.py +41 -0
  103. build/lib/build/lib/build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
  104. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
  105. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
  106. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
  107. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
  108. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
  109. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
  110. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
  111. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
  112. build/lib/build/lib/build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
  113. build/lib/build/lib/build/lib/clitt/core/preferences.py +87 -0
  114. build/lib/build/lib/build/lib/clitt/core/term/__init__.py +14 -0
  115. build/lib/build/lib/build/lib/clitt/core/term/commons.py +106 -0
  116. build/lib/build/lib/build/lib/clitt/core/term/cursor.py +174 -0
  117. build/lib/build/lib/build/lib/clitt/core/term/screen.py +106 -0
  118. build/lib/build/lib/build/lib/clitt/core/term/terminal.py +202 -0
  119. build/lib/build/lib/build/lib/clitt/core/tui/__init__.py +20 -0
  120. build/lib/build/lib/build/lib/clitt/core/tui/line_input/__init__.py +12 -0
  121. build/lib/build/lib/build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
  122. build/lib/build/lib/build/lib/clitt/core/tui/line_input/line_input.py +31 -0
  123. build/lib/build/lib/build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
  124. build/lib/build/lib/build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
  125. build/lib/build/lib/build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
  126. build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
  127. build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
  128. build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
  129. build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
  130. build/lib/build/lib/build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
  131. build/lib/build/lib/build/lib/clitt/core/tui/menu/__init__.py +16 -0
  132. build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
  133. build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
  134. build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
  135. build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
  136. build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
  137. build/lib/build/lib/build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
  138. build/lib/build/lib/build/lib/clitt/core/tui/minput/__init__.py +19 -0
  139. build/lib/build/lib/build/lib/clitt/core/tui/minput/access_type.py +26 -0
  140. build/lib/build/lib/build/lib/clitt/core/tui/minput/field_builder.py +117 -0
  141. build/lib/build/lib/build/lib/clitt/core/tui/minput/form_builder.py +72 -0
  142. build/lib/build/lib/build/lib/clitt/core/tui/minput/form_field.py +180 -0
  143. build/lib/build/lib/build/lib/clitt/core/tui/minput/input_type.py +30 -0
  144. build/lib/build/lib/build/lib/clitt/core/tui/minput/input_validator.py +98 -0
  145. build/lib/build/lib/build/lib/clitt/core/tui/minput/menu_input.py +292 -0
  146. build/lib/build/lib/build/lib/clitt/core/tui/minput/minput.py +44 -0
  147. build/lib/build/lib/build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
  148. build/lib/build/lib/build/lib/clitt/core/tui/mselect/__init__.py +12 -0
  149. build/lib/build/lib/build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
  150. build/lib/build/lib/build/lib/clitt/core/tui/mselect/mselect.py +36 -0
  151. build/lib/build/lib/build/lib/clitt/core/tui/table/__init__.py +12 -0
  152. build/lib/build/lib/build/lib/clitt/core/tui/table/table_enums.py +47 -0
  153. build/lib/build/lib/build/lib/clitt/core/tui/table/table_renderer.py +339 -0
  154. build/lib/build/lib/build/lib/clitt/core/tui/tui_application.py +52 -0
  155. build/lib/build/lib/build/lib/clitt/core/tui/tui_component.py +154 -0
  156. build/lib/build/lib/build/lib/clitt/core/tui/tui_preferences.py +103 -0
  157. build/lib/build/lib/build/lib/clitt/utils/__init__.py +11 -0
  158. build/lib/build/lib/build/lib/clitt/utils/git_utils.py +66 -0
  159. build/lib/build/lib/clitt/__classpath__.py +28 -0
  160. build/lib/build/lib/clitt/__init__.py +13 -0
  161. build/lib/build/lib/clitt/__main__.py +139 -0
  162. build/lib/build/lib/clitt/addons/__init__.py +12 -0
  163. build/lib/build/lib/clitt/addons/appman/__init__.py +13 -0
  164. build/lib/build/lib/clitt/addons/appman/appman.py +305 -0
  165. build/lib/build/lib/clitt/addons/appman/appman_enums.py +39 -0
  166. build/lib/build/lib/clitt/addons/appman/templates/__init__.py +11 -0
  167. build/lib/build/lib/clitt/addons/widman/__init__.py +14 -0
  168. build/lib/build/lib/clitt/addons/widman/widget.py +70 -0
  169. build/lib/build/lib/clitt/addons/widman/widget_entry.py +54 -0
  170. build/lib/build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
  171. build/lib/build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
  172. build/lib/build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
  173. build/lib/build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
  174. build/lib/build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
  175. build/lib/build/lib/clitt/addons/widman/widman.py +123 -0
  176. build/lib/build/lib/clitt/core/__init__.py +15 -0
  177. build/lib/build/lib/clitt/core/exception/__init__.py +11 -0
  178. build/lib/build/lib/clitt/core/exception/exceptions.py +19 -0
  179. build/lib/build/lib/clitt/core/icons/__init__.py +12 -0
  180. build/lib/build/lib/clitt/core/icons/emojis/__init__.py +12 -0
  181. build/lib/build/lib/clitt/core/icons/emojis/emojis.py +41 -0
  182. build/lib/build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
  183. build/lib/build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
  184. build/lib/build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
  185. build/lib/build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
  186. build/lib/build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
  187. build/lib/build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
  188. build/lib/build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
  189. build/lib/build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
  190. build/lib/build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
  191. build/lib/build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
  192. build/lib/build/lib/clitt/core/preferences.py +87 -0
  193. build/lib/build/lib/clitt/core/term/__init__.py +14 -0
  194. build/lib/build/lib/clitt/core/term/commons.py +106 -0
  195. build/lib/build/lib/clitt/core/term/cursor.py +174 -0
  196. build/lib/build/lib/clitt/core/term/screen.py +106 -0
  197. build/lib/build/lib/clitt/core/term/terminal.py +202 -0
  198. build/lib/build/lib/clitt/core/tui/__init__.py +20 -0
  199. build/lib/build/lib/clitt/core/tui/line_input/__init__.py +12 -0
  200. build/lib/build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
  201. build/lib/build/lib/clitt/core/tui/line_input/line_input.py +31 -0
  202. build/lib/build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
  203. build/lib/build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
  204. build/lib/build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
  205. build/lib/build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
  206. build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
  207. build/lib/build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
  208. build/lib/build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
  209. build/lib/build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
  210. build/lib/build/lib/clitt/core/tui/menu/__init__.py +16 -0
  211. build/lib/build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
  212. build/lib/build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
  213. build/lib/build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
  214. build/lib/build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
  215. build/lib/build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
  216. build/lib/build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
  217. build/lib/build/lib/clitt/core/tui/minput/__init__.py +19 -0
  218. build/lib/build/lib/clitt/core/tui/minput/access_type.py +26 -0
  219. build/lib/build/lib/clitt/core/tui/minput/field_builder.py +117 -0
  220. build/lib/build/lib/clitt/core/tui/minput/form_builder.py +72 -0
  221. build/lib/build/lib/clitt/core/tui/minput/form_field.py +180 -0
  222. build/lib/build/lib/clitt/core/tui/minput/input_type.py +30 -0
  223. build/lib/build/lib/clitt/core/tui/minput/input_validator.py +98 -0
  224. build/lib/build/lib/clitt/core/tui/minput/menu_input.py +292 -0
  225. build/lib/build/lib/clitt/core/tui/minput/minput.py +44 -0
  226. build/lib/build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
  227. build/lib/build/lib/clitt/core/tui/mselect/__init__.py +12 -0
  228. build/lib/build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
  229. build/lib/build/lib/clitt/core/tui/mselect/mselect.py +36 -0
  230. build/lib/build/lib/clitt/core/tui/table/__init__.py +12 -0
  231. build/lib/build/lib/clitt/core/tui/table/table_enums.py +47 -0
  232. build/lib/build/lib/clitt/core/tui/table/table_renderer.py +339 -0
  233. build/lib/build/lib/clitt/core/tui/tui_application.py +52 -0
  234. build/lib/build/lib/clitt/core/tui/tui_component.py +154 -0
  235. build/lib/build/lib/clitt/core/tui/tui_preferences.py +103 -0
  236. build/lib/build/lib/clitt/utils/__init__.py +11 -0
  237. build/lib/build/lib/clitt/utils/git_utils.py +66 -0
  238. build/lib/clitt/__classpath__.py +28 -0
  239. build/lib/clitt/__init__.py +13 -0
  240. build/lib/clitt/__main__.py +139 -0
  241. build/lib/clitt/addons/__init__.py +12 -0
  242. build/lib/clitt/addons/appman/__init__.py +13 -0
  243. build/lib/clitt/addons/appman/appman.py +305 -0
  244. build/lib/clitt/addons/appman/appman_enums.py +39 -0
  245. build/lib/clitt/addons/appman/templates/__init__.py +11 -0
  246. build/lib/clitt/addons/widman/__init__.py +14 -0
  247. build/lib/clitt/addons/widman/widget.py +70 -0
  248. build/lib/clitt/addons/widman/widget_entry.py +54 -0
  249. build/lib/clitt/addons/widman/widgets/__init__.py +14 -0
  250. build/lib/clitt/addons/widman/widgets/widget_free.py +110 -0
  251. build/lib/clitt/addons/widman/widgets/widget_punch.py +246 -0
  252. build/lib/clitt/addons/widman/widgets/widget_send_msg.py +272 -0
  253. build/lib/clitt/addons/widman/widgets/widget_time_calc.py +146 -0
  254. build/lib/clitt/addons/widman/widman.py +123 -0
  255. build/lib/clitt/core/__init__.py +15 -0
  256. build/lib/clitt/core/exception/__init__.py +11 -0
  257. build/lib/clitt/core/exception/exceptions.py +19 -0
  258. build/lib/clitt/core/icons/__init__.py +12 -0
  259. build/lib/clitt/core/icons/emojis/__init__.py +12 -0
  260. build/lib/clitt/core/icons/emojis/emojis.py +41 -0
  261. build/lib/clitt/core/icons/emojis/face_smiling.py +40 -0
  262. build/lib/clitt/core/icons/font_awesome/__init__.py +18 -0
  263. build/lib/clitt/core/icons/font_awesome/app_icons.py +55 -0
  264. build/lib/clitt/core/icons/font_awesome/awesome.py +76 -0
  265. build/lib/clitt/core/icons/font_awesome/dashboard_icons.py +93 -0
  266. build/lib/clitt/core/icons/font_awesome/form_icons.py +69 -0
  267. build/lib/clitt/core/icons/font_awesome/game_icons.py +59 -0
  268. build/lib/clitt/core/icons/font_awesome/nav_icons.py +42 -0
  269. build/lib/clitt/core/icons/font_awesome/trickplay_icons.py +39 -0
  270. build/lib/clitt/core/icons/font_awesome/widget_icons.py +37 -0
  271. build/lib/clitt/core/preferences.py +87 -0
  272. build/lib/clitt/core/term/__init__.py +14 -0
  273. build/lib/clitt/core/term/commons.py +106 -0
  274. build/lib/clitt/core/term/cursor.py +174 -0
  275. build/lib/clitt/core/term/screen.py +106 -0
  276. build/lib/clitt/core/term/terminal.py +202 -0
  277. build/lib/clitt/core/tui/__init__.py +20 -0
  278. build/lib/clitt/core/tui/line_input/__init__.py +12 -0
  279. build/lib/clitt/core/tui/line_input/keyboard_input.py +229 -0
  280. build/lib/clitt/core/tui/line_input/line_input.py +31 -0
  281. build/lib/clitt/core/tui/mchoose/__init__.py +12 -0
  282. build/lib/clitt/core/tui/mchoose/mchoose.py +43 -0
  283. build/lib/clitt/core/tui/mchoose/menu_choose.py +192 -0
  284. build/lib/clitt/core/tui/mdashboard/__init__.py +14 -0
  285. build/lib/clitt/core/tui/mdashboard/dashboard_builder.py +54 -0
  286. build/lib/clitt/core/tui/mdashboard/dashboard_item.py +31 -0
  287. build/lib/clitt/core/tui/mdashboard/mdashboard.py +26 -0
  288. build/lib/clitt/core/tui/mdashboard/menu_dashboard.py +148 -0
  289. build/lib/clitt/core/tui/menu/__init__.py +16 -0
  290. build/lib/clitt/core/tui/menu/tui_menu.py +111 -0
  291. build/lib/clitt/core/tui/menu/tui_menu_action.py +47 -0
  292. build/lib/clitt/core/tui/menu/tui_menu_factory.py +117 -0
  293. build/lib/clitt/core/tui/menu/tui_menu_item.py +196 -0
  294. build/lib/clitt/core/tui/menu/tui_menu_ui.py +98 -0
  295. build/lib/clitt/core/tui/menu/tui_menu_view.py +57 -0
  296. build/lib/clitt/core/tui/minput/__init__.py +19 -0
  297. build/lib/clitt/core/tui/minput/access_type.py +26 -0
  298. build/lib/clitt/core/tui/minput/field_builder.py +117 -0
  299. build/lib/clitt/core/tui/minput/form_builder.py +72 -0
  300. build/lib/clitt/core/tui/minput/form_field.py +180 -0
  301. build/lib/clitt/core/tui/minput/input_type.py +30 -0
  302. build/lib/clitt/core/tui/minput/input_validator.py +98 -0
  303. build/lib/clitt/core/tui/minput/menu_input.py +292 -0
  304. build/lib/clitt/core/tui/minput/minput.py +44 -0
  305. build/lib/clitt/core/tui/minput/minput_utils.py +156 -0
  306. build/lib/clitt/core/tui/mselect/__init__.py +12 -0
  307. build/lib/clitt/core/tui/mselect/menu_select.py +170 -0
  308. build/lib/clitt/core/tui/mselect/mselect.py +36 -0
  309. build/lib/clitt/core/tui/table/__init__.py +12 -0
  310. build/lib/clitt/core/tui/table/table_enums.py +47 -0
  311. build/lib/clitt/core/tui/table/table_renderer.py +339 -0
  312. build/lib/clitt/core/tui/tui_application.py +52 -0
  313. build/lib/clitt/core/tui/tui_component.py +154 -0
  314. build/lib/clitt/core/tui/tui_preferences.py +103 -0
  315. build/lib/clitt/utils/__init__.py +11 -0
  316. build/lib/clitt/utils/git_utils.py +66 -0
  317. clitt/.version +1 -1
  318. clitt/__init__.py +3 -3
  319. clitt/addons/__init__.py +3 -3
  320. clitt/addons/appman/__init__.py +3 -3
  321. clitt/addons/appman/templates/__init__.py +3 -3
  322. clitt/addons/widman/__init__.py +3 -3
  323. clitt/addons/widman/widgets/__init__.py +3 -3
  324. clitt/core/__init__.py +3 -3
  325. clitt/core/exception/__init__.py +3 -3
  326. clitt/core/exception/exceptions.py +1 -0
  327. clitt/core/icons/__init__.py +3 -3
  328. clitt/core/icons/emojis/__init__.py +3 -3
  329. clitt/core/icons/font_awesome/__init__.py +3 -3
  330. clitt/core/term/__init__.py +3 -3
  331. clitt/core/term/commons.py +40 -16
  332. clitt/core/term/cursor.py +18 -3
  333. clitt/core/term/screen.py +15 -0
  334. clitt/core/term/terminal.py +15 -16
  335. clitt/core/tui/__init__.py +3 -3
  336. clitt/core/tui/line_input/__init__.py +3 -3
  337. clitt/core/tui/line_input/keyboard_input.py +15 -14
  338. clitt/core/tui/line_input/line_input.py +2 -6
  339. clitt/core/tui/mchoose/__init__.py +3 -3
  340. clitt/core/tui/mchoose/mchoose.py +2 -3
  341. clitt/core/tui/mchoose/menu_choose.py +6 -14
  342. clitt/core/tui/mdashboard/__init__.py +3 -3
  343. clitt/core/tui/mdashboard/menu_dashboard.py +2 -8
  344. clitt/core/tui/menu/__init__.py +3 -3
  345. clitt/core/tui/minput/__init__.py +3 -3
  346. clitt/core/tui/mselect/__init__.py +3 -3
  347. clitt/core/tui/mselect/menu_select.py +2 -3
  348. clitt/core/tui/table/__init__.py +3 -3
  349. clitt/core/tui/tui_application.py +4 -5
  350. clitt/core/tui/tui_component.py +4 -5
  351. clitt/utils/__init__.py +3 -3
  352. {hspylib_clitt-0.9.117.dist-info → hspylib_clitt-0.9.119.dist-info}/METADATA +2 -2
  353. hspylib_clitt-0.9.119.dist-info/RECORD +413 -0
  354. {hspylib_clitt-0.9.117.dist-info → hspylib_clitt-0.9.119.dist-info}/top_level.txt +1 -0
  355. hspylib_clitt-0.9.117.dist-info/RECORD +0 -97
  356. {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.117
1
+ 0.9.119
clitt/__init__.py CHANGED
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
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.117
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.117'
12
+ __version__ = '0.9.119'
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
13
+ __version__ = '0.9.119'
@@ -1,11 +1,11 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
11
+ __version__ = '0.9.119'
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
14
+ __version__ = '0.9.119'
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
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.117
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.117'
15
+ __version__ = '0.9.119'
@@ -1,11 +1,11 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
11
+ __version__ = '0.9.119'
@@ -16,3 +16,4 @@
16
16
 
17
17
  class NotATerminalError(NotImplementedError):
18
18
  """Raised when a TTY terminal is required"""
19
+
@@ -1,12 +1,12 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
12
+ __version__ = '0.9.119'
@@ -1,12 +1,12 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
12
+ __version__ = '0.9.119'
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
18
+ __version__ = '0.9.119'
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
14
+ __version__ = '0.9.119'
@@ -1,15 +1,28 @@
1
- from clitt.core.exception.exceptions import NotATerminalError
2
- from hspylib.core.enums.enumeration import Enumeration
3
- from hspylib.core.tools.commons import is_debugging
4
- from hspylib.modules.cli.vt100.vt_100 import Vt100
5
- from shutil import get_terminal_size
6
- from typing import Callable, Tuple, TypeAlias, Union
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 sys.stdout.isatty():
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, buf, re_query_resp = fallback, "", r"^\x1b\[(\d*);(\d*)R"
78
+ pos = fallback
59
79
 
60
- if not sys.stdout.isatty():
61
- log.warning(NotATerminalError("get_cursor_position:: Requires a terminal (TTY)"))
80
+ if is_debugging():
62
81
  return pos
63
82
 
64
- if is_debugging():
83
+ if not is_a_tty():
65
84
  return pos
66
85
 
67
- stdin = sys.stdin.fileno() # Get the stdin file descriptor.
68
- attrs = termios.tcgetattr(stdin) # Save terminal attributes.
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
- termios.tcsetattr(stdin, termios.TCSANOW, attrs) # Reset terminal attributes
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
- import os
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
- from clitt.core.term.commons import Direction, EraseDirection, get_cursor_position, MoveDirection, Position, Portion
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
@@ -12,27 +12,26 @@
12
12
 
13
13
  Copyright·(c)·2024,·HSPyLib
14
14
  """
15
- import atexit
16
- import logging as log
17
- import os
18
- import platform
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
- from clitt.core.exception.exceptions import NotATerminalError
34
- from clitt.core.term.cursor import Cursor
35
- from clitt.core.term.screen import Screen
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 sys.stdout.isatty()
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 'shell' not in kwargs else cmd_list
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)]
@@ -1,8 +1,8 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
20
+ __version__ = '0.9.119'
@@ -1,12 +1,12 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.117
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.117'
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
- for entry in history:
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, prompt: str = "",
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 '').replace("\n", "↵")
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.117
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.117'
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.