hspylib-clitt 0.9.116__tar.gz → 0.9.118__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of hspylib-clitt might be problematic. Click here for more details.

Files changed (104) hide show
  1. {hspylib-clitt-0.9.116/hspylib_clitt.egg-info → hspylib-clitt-0.9.118}/PKG-INFO +2 -2
  2. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/README.md +1 -1
  3. hspylib-clitt-0.9.118/clitt/.version +1 -0
  4. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/__classpath__.py +2 -2
  5. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/__init__.py +2 -2
  6. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/__main__.py +3 -3
  7. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/__init__.py +2 -2
  8. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/__init__.py +2 -2
  9. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/__init__.py +2 -2
  10. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/main_qt_view.py.tpl +1 -1
  11. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/__init__.py +2 -2
  12. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widgets/__init__.py +2 -2
  13. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/__init__.py +2 -2
  14. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/exception/__init__.py +2 -2
  15. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/exception/exceptions.py +1 -0
  16. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/__init__.py +2 -2
  17. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/emojis/__init__.py +2 -2
  18. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/__init__.py +2 -2
  19. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/term/__init__.py +2 -2
  20. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/term/commons.py +33 -8
  21. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/term/cursor.py +19 -4
  22. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/term/screen.py +16 -1
  23. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/term/terminal.py +16 -17
  24. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/__init__.py +2 -2
  25. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/line_input/__init__.py +2 -2
  26. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/line_input/keyboard_input.py +36 -35
  27. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/line_input/line_input.py +5 -17
  28. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mchoose/__init__.py +2 -2
  29. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mchoose/mchoose.py +2 -3
  30. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mchoose/menu_choose.py +6 -14
  31. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mdashboard/__init__.py +2 -2
  32. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mdashboard/menu_dashboard.py +2 -8
  33. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/__init__.py +2 -2
  34. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/__init__.py +2 -2
  35. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mselect/__init__.py +2 -2
  36. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mselect/menu_select.py +2 -3
  37. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/table/__init__.py +2 -2
  38. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/tui_application.py +8 -21
  39. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/tui_component.py +4 -5
  40. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/tui_preferences.py +1 -1
  41. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/utils/__init__.py +2 -2
  42. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118/hspylib_clitt.egg-info}/PKG-INFO +2 -2
  43. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/hspylib_clitt.egg-info/top_level.txt +0 -1
  44. hspylib-clitt-0.9.116/clitt/.version +0 -1
  45. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/MANIFEST.in +0 -0
  46. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/appman.py +0 -0
  47. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/appman_enums.py +0 -0
  48. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/build.gradle.tpl +0 -0
  49. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/classpath.py.tpl +0 -0
  50. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/dependencies.hspd.tpl +0 -0
  51. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/gitignore.tpl +0 -0
  52. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/main.py.tpl +0 -0
  53. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/main_qt.py.tpl +0 -0
  54. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/main_qt_view.ui.tpl +0 -0
  55. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/run.sh.tpl +0 -0
  56. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/test_main.py.tpl +0 -0
  57. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/usage.txt.tpl +0 -0
  58. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/appman/templates/widget.py.tpl +0 -0
  59. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widget.py +0 -0
  60. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widget_entry.py +0 -0
  61. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widgets/widget_free.py +0 -0
  62. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widgets/widget_punch.py +0 -0
  63. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widgets/widget_send_msg.py +0 -0
  64. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widgets/widget_time_calc.py +0 -0
  65. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/addons/widman/widman.py +0 -0
  66. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/emojis/emojis.py +0 -0
  67. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/emojis/face_smiling.py +0 -0
  68. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/app_icons.py +0 -0
  69. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/awesome.py +0 -0
  70. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/dashboard_icons.py +0 -0
  71. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/form_icons.py +0 -0
  72. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/game_icons.py +0 -0
  73. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/nav_icons.py +0 -0
  74. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/trickplay_icons.py +0 -0
  75. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/icons/font_awesome/widget_icons.py +0 -0
  76. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/preferences.py +0 -0
  77. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mdashboard/dashboard_builder.py +0 -0
  78. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mdashboard/dashboard_item.py +0 -0
  79. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mdashboard/mdashboard.py +0 -0
  80. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/tui_menu.py +0 -0
  81. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/tui_menu_action.py +0 -0
  82. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/tui_menu_factory.py +0 -0
  83. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/tui_menu_item.py +0 -0
  84. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/tui_menu_ui.py +0 -0
  85. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/menu/tui_menu_view.py +0 -0
  86. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/access_type.py +0 -0
  87. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/field_builder.py +0 -0
  88. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/form_builder.py +0 -0
  89. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/form_field.py +0 -0
  90. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/input_type.py +0 -0
  91. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/input_validator.py +0 -0
  92. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/menu_input.py +0 -0
  93. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/minput.py +0 -0
  94. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/minput/minput_utils.py +0 -0
  95. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/mselect/mselect.py +0 -0
  96. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/table/table_enums.py +0 -0
  97. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/core/tui/table/table_renderer.py +0 -0
  98. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/utils/git_utils.py +0 -0
  99. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/clitt/welcome.txt +0 -0
  100. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/hspylib_clitt.egg-info/SOURCES.txt +0 -0
  101. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/hspylib_clitt.egg-info/dependency_links.txt +0 -0
  102. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/hspylib_clitt.egg-info/requires.txt +0 -0
  103. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/setup.cfg +0 -0
  104. {hspylib-clitt-0.9.116 → hspylib-clitt-0.9.118}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hspylib-clitt
3
- Version: 0.9.116
3
+ Version: 0.9.118
4
4
  Summary: HsPyLib - CLI Terminal Tools
5
5
  Home-page: https://github.com/yorevs/hspylib
6
6
  Author: Hugo Saporetti Junior
@@ -35,7 +35,7 @@ Requires-Dist: urllib3<2.0.0
35
35
  ## Create professional CLI applications
36
36
 
37
37
  [![License](https://badgen.net/badge/license/MIT/gray)](LICENSE.md)
38
- [![Release](https://badgen.net/badge/release/v0.9.116/gray)](CHANGELOG.md#unreleased)
38
+ [![Release](https://badgen.net/badge/release/v0.9.118/gray)](CHANGELOG.md#unreleased)
39
39
  [![PyPi](https://badgen.net/badge/icon/python?icon=pypi&label)](https://pypi.org/project/hspylib-clitt)
40
40
  [![GitHub](https://badgen.net/badge/icon/github?icon=github&label)](https://github.com/yorevs/hspylib)
41
41
  [![Gitter](https://badgen.net/badge/icon/gitter?icon=gitter&label)](https://gitter.im/hspylib/community)
@@ -3,7 +3,7 @@
3
3
  ## Create professional CLI applications
4
4
 
5
5
  [![License](https://badgen.net/badge/license/MIT/gray)](LICENSE.md)
6
- [![Release](https://badgen.net/badge/release/v0.9.116/gray)](CHANGELOG.md#unreleased)
6
+ [![Release](https://badgen.net/badge/release/v0.9.118/gray)](CHANGELOG.md#unreleased)
7
7
  [![PyPi](https://badgen.net/badge/icon/python?icon=pypi&label)](https://pypi.org/project/hspylib-clitt)
8
8
  [![GitHub](https://badgen.net/badge/icon/github?icon=github&label)](https://github.com/yorevs/hspylib)
9
9
  [![Gitter](https://badgen.net/badge/icon/gitter?icon=gitter&label)](https://gitter.im/hspylib/community)
@@ -0,0 +1 @@
1
+ 0.9.118
@@ -18,11 +18,11 @@ from hspylib.core.tools.commons import get_path, run_dir
18
18
 
19
19
 
20
20
  class _Classpath(Classpath):
21
- """TODO"""
21
+ """Provide a class to help locating user-defined classes, packages, sources and resources."""
22
22
 
23
23
  def __init__(self):
24
24
  super().__init__(get_path(__file__), get_path(run_dir()), (get_path(__file__) / "resources"))
25
25
 
26
26
 
27
27
  # Instantiate the classpath singleton
28
- assert _Classpath().INSTANCE is not None, "Failed to create Classpath instance"
28
+ assert (classpath := _Classpath().INSTANCE) is not None, "Failed to create Classpath instance"
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt
6
6
  """Package initialization."""
@@ -10,4 +10,4 @@ __all__ = [
10
10
  'core',
11
11
  'utils'
12
12
  ]
13
- __version__ = '0.9.116'
13
+ __version__ = '0.9.118'
@@ -12,7 +12,7 @@
12
12
 
13
13
  Copyright·(c)·2024,·HSPyLib
14
14
  """
15
- from clitt.__classpath__ import _Classpath
15
+ from clitt.__classpath__ import classpath
16
16
  from clitt.addons.appman.appman import AppManager
17
17
  from clitt.addons.appman.appman_enums import AppExtension, AppType
18
18
  from clitt.addons.widman.widman import WidgetManager
@@ -31,10 +31,10 @@ class Main(TUIApplication):
31
31
  """HsPyLib CLI Terminal Tools - Create professional CLI applications."""
32
32
 
33
33
  # The welcome message
34
- DESCRIPTION = _Classpath.get_source_path("welcome.txt").read_text(encoding=Charset.UTF_8.val)
34
+ DESCRIPTION = classpath.get_source("welcome.txt").read_text(encoding=Charset.UTF_8.val)
35
35
 
36
36
  # Location of the .version file
37
- VERSION_DIR = _Classpath.source_path()
37
+ VERSION_DIR = classpath.source_path()
38
38
 
39
39
  class Addon(Enumeration):
40
40
  """HsPyLib addon types."""
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.addons
6
6
  """Package initialization."""
@@ -9,4 +9,4 @@ __all__ = [
9
9
  'appman',
10
10
  'widman'
11
11
  ]
12
- __version__ = '0.9.116'
12
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.addons.appman
6
6
  """Package initialization."""
@@ -10,4 +10,4 @@ __all__ = [
10
10
  'appman_enums',
11
11
  'templates'
12
12
  ]
13
- __version__ = '0.9.116'
13
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.addons.appman.templates
6
6
  """Package initialization."""
@@ -8,4 +8,4 @@
8
8
  __all__ = [
9
9
 
10
10
  ]
11
- __version__ = '0.9.116'
11
+ __version__ = '0.9.118'
@@ -6,7 +6,7 @@ from %APP_NAME%.__classpath__ import _Classpath
6
6
 
7
7
  class MainQtView(QtView):
8
8
  """Main application view"""
9
- VERSION = _Classpath.get_source_path(".version").read_text(encoding=Charset.UTF_8.val)
9
+ VERSION = classpath.get_source(".version").read_text(encoding=Charset.UTF_8.val)
10
10
 
11
11
  FORMS_DIR = str(_Classpath.resource_path() / "forms")
12
12
 
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.addons.widman
6
6
  """Package initialization."""
@@ -11,4 +11,4 @@ __all__ = [
11
11
  'widgets',
12
12
  'widman'
13
13
  ]
14
- __version__ = '0.9.116'
14
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.addons.widman.widgets
6
6
  """Package initialization."""
@@ -11,4 +11,4 @@ __all__ = [
11
11
  'widget_send_msg',
12
12
  'widget_time_calc'
13
13
  ]
14
- __version__ = '0.9.116'
14
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core
6
6
  """Package initialization."""
@@ -12,4 +12,4 @@ __all__ = [
12
12
  'term',
13
13
  'tui'
14
14
  ]
15
- __version__ = '0.9.116'
15
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.exception
6
6
  """Package initialization."""
@@ -8,4 +8,4 @@
8
8
  __all__ = [
9
9
  'exceptions'
10
10
  ]
11
- __version__ = '0.9.116'
11
+ __version__ = '0.9.118'
@@ -16,3 +16,4 @@
16
16
 
17
17
  class NotATerminalError(NotImplementedError):
18
18
  """Raised when a TTY terminal is required"""
19
+
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.icons
6
6
  """Package initialization."""
@@ -9,4 +9,4 @@ __all__ = [
9
9
  'emojis',
10
10
  'font_awesome'
11
11
  ]
12
- __version__ = '0.9.116'
12
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.icons.emojis
6
6
  """Package initialization."""
@@ -9,4 +9,4 @@ __all__ = [
9
9
  'emojis',
10
10
  'face_smiling'
11
11
  ]
12
- __version__ = '0.9.116'
12
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.icons.font_awesome
6
6
  """Package initialization."""
@@ -15,4 +15,4 @@ __all__ = [
15
15
  'trickplay_icons',
16
16
  'widget_icons'
17
17
  ]
18
- __version__ = '0.9.116'
18
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.term
6
6
  """Package initialization."""
@@ -11,4 +11,4 @@ __all__ = [
11
11
  'screen',
12
12
  'terminal'
13
13
  ]
14
- __version__ = '0.9.116'
14
+ __version__ = '0.9.118'
@@ -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: 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
+ """
15
+
1
16
  from clitt.core.exception.exceptions import NotATerminalError
2
17
  from hspylib.core.enums.enumeration import Enumeration
3
18
  from hspylib.core.tools.commons import is_debugging
@@ -20,6 +35,11 @@ EraseDirection : TypeAlias = Union["Direction", "Portion"]
20
35
  # fmt: on
21
36
 
22
37
 
38
+ def is_a_tty() -> bool:
39
+ """Checks whether we are under a tty environment."""
40
+ return sys.stdout.isatty() and sys.stdin.isatty()
41
+
42
+
23
43
  class Direction(Enumeration):
24
44
  """Provide a base class for the cursor direction."""
25
45
 
@@ -44,7 +64,7 @@ def get_dimensions(fallback: Tuple[int, int] = (24, 80)) -> Tuple[int, int]:
44
64
  """Retrieve the size of the terminal.
45
65
  :return lines, columns
46
66
  """
47
- if not sys.stdout.isatty():
67
+ if not is_a_tty():
48
68
  log.warning(NotATerminalError("get_dimensions:: Requires a terminal (TTY)"))
49
69
  return fallback
50
70
  dim = get_terminal_size((fallback[1], fallback[0]))
@@ -55,19 +75,21 @@ 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():
84
+ log.warning(NotATerminalError("get_cursor_position:: Requires a terminal (TTY)"))
65
85
  return pos
66
86
 
67
- stdin = sys.stdin.fileno() # Get the stdin file descriptor.
68
- attrs = termios.tcgetattr(stdin) # Save terminal attributes.
87
+ buf, re_query_resp = "", r"^\x1b\[(\d*);(\d*)R"
88
+ stdin, attrs = None, None
69
89
 
70
90
  try:
91
+ stdin = sys.stdin.fileno() # Get the stdin file descriptor.
92
+ attrs = termios.tcgetattr(stdin) # Save terminal attributes.
71
93
  tty.setcbreak(stdin, termios.TCSANOW)
72
94
  sys.stdout.write(Vt100.get_cursor_pos())
73
95
  sys.stdout.flush()
@@ -76,7 +98,10 @@ def get_cursor_position(fallback: Tuple[int, int] = (0, 0)) -> Tuple[int, int]:
76
98
  if matches := re.match(re_query_resp, buf): # If the response is 'Esc[r;cR'
77
99
  groups = matches.groups()
78
100
  pos = int(groups[0]), int(groups[1])
101
+ except termios.error:
102
+ log.warning(NotATerminalError("get_cursor_position:: Requires a terminal (TTY)"))
79
103
  finally:
80
- termios.tcsetattr(stdin, termios.TCSANOW, attrs) # Reset terminal attributes
104
+ if stdin and attrs:
105
+ termios.tcsetattr(stdin, termios.TCSANOW, attrs) # Reset terminal attributes
81
106
 
82
107
  return pos
@@ -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
  )
@@ -156,4 +171,4 @@ class Cursor(metaclass=Singleton):
156
171
  return self.position
157
172
 
158
173
 
159
- assert Cursor().INSTANCE is not None, "Failed to create Cursor instance"
174
+ assert (cursor := Cursor().INSTANCE) is not None, "Failed to create Cursor instance"
@@ -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
@@ -88,4 +103,4 @@ class Screen(metaclass=Singleton):
88
103
  self._resize_timer.start()
89
104
 
90
105
 
91
- assert Screen().INSTANCE is not None, "Failed to create Screen instance"
106
+ assert (screen := Screen().INSTANCE) is not None, "Failed to create Screen instance"
@@ -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)]
@@ -200,4 +199,4 @@ class Terminal(metaclass=Singleton):
200
199
  return self.screen.cursor
201
200
 
202
201
 
203
- assert Terminal().INSTANCE is not None, "Failed to create Terminal instance"
202
+ assert (terminal := Terminal().INSTANCE) is not None, "Failed to create Terminal instance"
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.tui
6
6
  """Package initialization."""
@@ -17,4 +17,4 @@ __all__ = [
17
17
  'tui_component',
18
18
  'tui_preferences'
19
19
  ]
20
- __version__ = '0.9.116'
20
+ __version__ = '0.9.118'
@@ -1,6 +1,6 @@
1
1
  # _*_ coding: utf-8 _*_
2
2
  #
3
- # hspylib-clitt v0.9.116
3
+ # hspylib-clitt v0.9.118
4
4
  #
5
5
  # Package: main.clitt.core.tui.line_input
6
6
  """Package initialization."""
@@ -9,4 +9,4 @@ __all__ = [
9
9
  'keyboard_input',
10
10
  'line_input'
11
11
  ]
12
- __version__ = '0.9.116'
12
+ __version__ = '0.9.118'