bear-utils 0.8.25__tar.gz → 0.8.26__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.
Files changed (120) hide show
  1. {bear_utils-0.8.25 → bear_utils-0.8.26}/.bumpversion.cfg +1 -1
  2. {bear_utils-0.8.25 → bear_utils-0.8.26}/PKG-INFO +2 -2
  3. {bear_utils-0.8.25 → bear_utils-0.8.26}/README.md +1 -1
  4. {bear_utils-0.8.25 → bear_utils-0.8.26}/pyproject.toml +1 -1
  5. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/__init__.py +2 -2
  6. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/_tools.py +101 -33
  7. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_logger.py +1 -1
  8. {bear_utils-0.8.25 → bear_utils-0.8.26}/.gitignore +0 -0
  9. {bear_utils-0.8.25 → bear_utils-0.8.26}/.python-version +0 -0
  10. {bear_utils-0.8.25 → bear_utils-0.8.26}/AGENTS.md +0 -0
  11. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/coverage.ini +0 -0
  12. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/default.toml +0 -0
  13. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/git-changelog.toml +0 -0
  14. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/pytest.ini +0 -0
  15. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/ruff.toml +0 -0
  16. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/vscode/launch.json +0 -0
  17. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/vscode/settings.json +0 -0
  18. {bear_utils-0.8.25 → bear_utils-0.8.26}/config/vscode/tasks.json +0 -0
  19. {bear_utils-0.8.25 → bear_utils-0.8.26}/directory_structure.txt +0 -0
  20. {bear_utils-0.8.25 → bear_utils-0.8.26}/directory_structure.xml +0 -0
  21. {bear_utils-0.8.25 → bear_utils-0.8.26}/maskfile.md +0 -0
  22. {bear_utils-0.8.25 → bear_utils-0.8.26}/noxfile.py +0 -0
  23. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/__init__.py +0 -0
  24. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/__main__.py +0 -0
  25. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/_internal/__init__.py +0 -0
  26. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/_internal/cli.py +0 -0
  27. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/_internal/debug.py +0 -0
  28. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/ai/__init__.py +0 -0
  29. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/ai/ai_helpers/__init__.py +0 -0
  30. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/ai/ai_helpers/_common.py +0 -0
  31. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/ai/ai_helpers/_config.py +0 -0
  32. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/ai/ai_helpers/_parsers.py +0 -0
  33. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/ai/ai_helpers/_types.py +0 -0
  34. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cache/__init__.py +0 -0
  35. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/__init__.py +0 -0
  36. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/commands.py +0 -0
  37. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/prompt_helpers.py +0 -0
  38. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/shell/__init__.py +0 -0
  39. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/shell/_base_command.py +0 -0
  40. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/shell/_base_shell.py +0 -0
  41. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/shell/_common.py +0 -0
  42. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/cli/typer_bridge.py +0 -0
  43. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/config/__init__.py +0 -0
  44. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/config/config_manager.py +0 -0
  45. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/config/dir_manager.py +0 -0
  46. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/config/settings_manager.py +0 -0
  47. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/constants/__init__.py +0 -0
  48. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/constants/_exceptions.py +0 -0
  49. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/constants/_lazy_typing.py +0 -0
  50. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/constants/date_related.py +0 -0
  51. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/constants/server.py +0 -0
  52. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/constants/time_related.py +0 -0
  53. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/database/__init__.py +0 -0
  54. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/database/_db_manager.py +0 -0
  55. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/events/__init__.py +0 -0
  56. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/events/events_class.py +0 -0
  57. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/events/events_module.py +0 -0
  58. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/_async_helpers.py +0 -0
  59. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/platform_utils.py +0 -0
  60. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/responses/__init__.py +0 -0
  61. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/responses/function_response.py +0 -0
  62. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/wrappers/__init__.py +0 -0
  63. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/wrappers/add_methods.py +0 -0
  64. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/extras/wrappers/string_io.py +0 -0
  65. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/__init__.py +0 -0
  66. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/__init__.py +0 -0
  67. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/_base_file_handler.py +0 -0
  68. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/file_handler_factory.py +0 -0
  69. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/json_file_handler.py +0 -0
  70. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/log_file_handler.py +0 -0
  71. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/toml_file_handler.py +0 -0
  72. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/txt_file_handler.py +0 -0
  73. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/file_handlers/yaml_file_handler.py +0 -0
  74. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/files/ignore_parser.py +0 -0
  75. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/graphics/__init__.py +0 -0
  76. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/graphics/bear_gradient.py +0 -0
  77. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/graphics/image_helpers.py +0 -0
  78. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/__init__.py +0 -0
  79. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/__init__.py +0 -0
  80. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/_settings.py +0 -0
  81. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/_types.py +0 -0
  82. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/qt_app.py +0 -0
  83. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/qt_color_picker.py +0 -0
  84. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/qt_file_handler.py +0 -0
  85. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/gui/gui_tools/qt_input_dialog.py +0 -0
  86. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/__init__.py +0 -0
  87. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/_common.py +0 -0
  88. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/_console_junk.py +0 -0
  89. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/_log_level.py +0 -0
  90. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/_styles.py +0 -0
  91. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/logger_protocol.py +0 -0
  92. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/__init__.py +0 -0
  93. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/_level_sin.py +0 -0
  94. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/base_logger.py +0 -0
  95. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/base_logger.pyi +0 -0
  96. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/basic_logger/__init__.py +0 -0
  97. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/basic_logger/logger.py +0 -0
  98. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/basic_logger/logger.pyi +0 -0
  99. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/buffer_logger.py +0 -0
  100. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/console_logger.py +0 -0
  101. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/console_logger.pyi +0 -0
  102. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/fastapi_logger.py +0 -0
  103. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/file_logger.py +0 -0
  104. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/simple_logger.py +0 -0
  105. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/sub_logger.py +0 -0
  106. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/logger_manager/loggers/sub_logger.pyi +0 -0
  107. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/monitoring/__init__.py +0 -0
  108. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/monitoring/_common.py +0 -0
  109. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/monitoring/host_monitor.py +0 -0
  110. {bear_utils-0.8.25 → bear_utils-0.8.26}/src/bear_utils/time/__init__.py +0 -0
  111. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/__init__.py +0 -0
  112. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_add_ord_suffix.py +0 -0
  113. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_clipboard.py +0 -0
  114. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_database_manager.py +0 -0
  115. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_default_shell.py +0 -0
  116. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_function_response.py +0 -0
  117. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_gradient.py +0 -0
  118. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_platform_utils.py +0 -0
  119. {bear_utils-0.8.25 → bear_utils-0.8.26}/tests/test_prompt_helpers.py +0 -0
  120. {bear_utils-0.8.25 → bear_utils-0.8.26}/uv.lock +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 0.8.25
2
+ current_version = 0.8.26
3
3
 
4
4
  [bumpversion:file:pyproject.toml]
5
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bear-utils
3
- Version: 0.8.25
3
+ Version: 0.8.26
4
4
  Summary: Various utilities for Bear programmers, including a rich logging utility, a disk cache, and a SQLite database wrapper amongst other things.
5
5
  Author-email: chaz <bright.lid5647@fastmail.com>
6
6
  Requires-Python: >=3.12
@@ -25,7 +25,7 @@ Provides-Extra: gui
25
25
  Requires-Dist: pyqt6>=6.9.0; extra == 'gui'
26
26
  Description-Content-Type: text/markdown
27
27
 
28
- # Bear Utils v# Bear Utils v0.8.25
28
+ # Bear Utils v# Bear Utils v0.8.26
29
29
 
30
30
  Personal set of tools and utilities for Python projects, focusing on modularity and ease of use. This library includes components for caching, database management, logging, time handling, file operations, CLI prompts, image processing, clipboard interaction, gradient utilities, event systems, and async helpers.
31
31
 
@@ -1,4 +1,4 @@
1
- # Bear Utils v# Bear Utils v0.8.25
1
+ # Bear Utils v# Bear Utils v0.8.26
2
2
 
3
3
  Personal set of tools and utilities for Python projects, focusing on modularity and ease of use. This library includes components for caching, database management, logging, time handling, file operations, CLI prompts, image processing, clipboard interaction, gradient utilities, event systems, and async helpers.
4
4
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bear-utils"
3
- version = "0.8.25"
3
+ version = "0.8.26"
4
4
  description = "Various utilities for Bear programmers, including a rich logging utility, a disk cache, and a SQLite database wrapper amongst other things."
5
5
  authors = [{ name = "chaz", email = "bright.lid5647@fastmail.com" }]
6
6
  readme = "README.md"
@@ -2,7 +2,7 @@
2
2
 
3
3
  from singleton_base import SingletonBase
4
4
 
5
- from ._tools import ClipboardManager, clear_clipboard, copy_to_clipboard, fmt_header, paste_from_clipboard
5
+ from ._tools import ClipboardManager, ascii_header, clear_clipboard, copy_to_clipboard, paste_from_clipboard
6
6
  from .platform_utils import OS, get_platform, is_linux, is_macos, is_windows
7
7
  from .wrappers.add_methods import add_comparison_methods
8
8
 
@@ -11,9 +11,9 @@ __all__ = [
11
11
  "ClipboardManager",
12
12
  "SingletonBase",
13
13
  "add_comparison_methods",
14
+ "ascii_header",
14
15
  "clear_clipboard",
15
16
  "copy_to_clipboard",
16
- "fmt_header",
17
17
  "get_platform",
18
18
  "is_linux",
19
19
  "is_macos",
@@ -5,42 +5,16 @@ from functools import cached_property
5
5
  import shutil
6
6
  from typing import TYPE_CHECKING
7
7
 
8
+ from rich.console import Console
9
+
8
10
  from bear_utils.cli.shell._base_command import BaseShellCommand as ShellCommand
9
11
  from bear_utils.cli.shell._base_shell import AsyncShellSession
10
12
  from bear_utils.extras.platform_utils import OS, get_platform
11
- from bear_utils.logger_manager.loggers.base_logger import BaseLogger
12
13
 
13
14
  if TYPE_CHECKING:
14
15
  from subprocess import CompletedProcess
15
16
 
16
17
 
17
- class TextHelper:
18
- @cached_property
19
- def local_console(self) -> BaseLogger:
20
- from bear_utils.logger_manager import BaseLogger # noqa: PLC0415
21
-
22
- init: bool = not BaseLogger.has_instance()
23
- return BaseLogger.get_instance(init=init)
24
-
25
- def print_header(
26
- self,
27
- title: str,
28
- sep: str = "#",
29
- length: int = 60,
30
- s1: str = "bold red",
31
- s2: str = "bold blue",
32
- return_txt: bool = False,
33
- ) -> str:
34
- """Generate a header string"""
35
- # FIXME: There are probably better ways to do this, but this is OK.
36
- fill: str = sep * length
37
- title = f" {title} ".center(length, sep).replace(title, f"[{s1}]{title}[/{s1}]")
38
- output_text: str = f"\n{fill}\n{title}\n{fill}\n"
39
- if not return_txt:
40
- self.local_console.print(output_text, style=s2)
41
- return output_text
42
-
43
-
44
18
  class ClipboardManager:
45
19
  """A class to manage clipboard operations such as copying, pasting, and clearing.
46
20
 
@@ -201,9 +175,71 @@ async def clear_clipboard_async() -> int:
201
175
  return await clipboard_manager.clear()
202
176
 
203
177
 
204
- def fmt_header(
178
+ class TextHelper:
179
+ @cached_property
180
+ def local_console(self) -> Console:
181
+ return Console()
182
+
183
+ def print_header(
184
+ self,
185
+ title: str,
186
+ top_sep: str = "#",
187
+ left_sep: str = ">",
188
+ right_sep: str = "<",
189
+ bottom_sep: str = "#",
190
+ length: int = 60,
191
+ s1: str = "bold red",
192
+ s2: str = "bold blue",
193
+ return_txt: bool = False,
194
+ ) -> str:
195
+ """Generate a header string with customizable separators for each line.
196
+
197
+ Args:
198
+ title: The title text to display
199
+ top_sep: Character(s) for the top separator line
200
+ left_sep: Character(s) for the left side of title line
201
+ right_sep: Character(s) for the right side of title line
202
+ bottom_sep: Character(s) for the bottom separator line
203
+ length: Total width of each line
204
+ s1: Style for the title text
205
+ s2: Style for the entire header block
206
+ return_txt: If True, return the text instead of printing
207
+ """
208
+ # Top line: all top_sep characters
209
+ top_line: str = top_sep * length
210
+
211
+ # Bottom line: all bottom_sep characters
212
+ bottom_line: str = bottom_sep * length
213
+
214
+ # Title line: left_sep chars + title + right_sep chars
215
+ title_with_spaces = f" {title} "
216
+ styled_title = f"[{s1}]{title}[/{s1}]"
217
+
218
+ # Calculate padding needed on each side
219
+ title_length = len(title_with_spaces)
220
+ remaining_space = length - title_length
221
+ left_padding = remaining_space // 2
222
+ right_padding = remaining_space - left_padding
223
+
224
+ # Build the title line with different left and right separators
225
+ title_line = (
226
+ (left_sep * left_padding) + title_with_spaces.replace(title, styled_title) + (right_sep * right_padding)
227
+ )
228
+
229
+ # Assemble the complete header
230
+ output_text: str = f"\n{top_line}\n{title_line}\n{bottom_line}\n"
231
+
232
+ if not return_txt:
233
+ self.local_console.print(output_text, style=s2)
234
+ return output_text
235
+
236
+
237
+ def ascii_header(
205
238
  title: str,
206
- sep: str = "#",
239
+ top_sep: str = "#",
240
+ left_sep: str = ">",
241
+ right_sep: str = "<",
242
+ bottom_sep: str = "#",
207
243
  length: int = 60,
208
244
  style1: str = "bold red",
209
245
  style2: str = "bold blue",
@@ -213,13 +249,45 @@ def fmt_header(
213
249
 
214
250
  Args:
215
251
  title (str): The title to display in the header.
216
- sep (str): The character to use for the separator. Defaults to '#'.
252
+ top_sep (str): The character to use for the top separator line. Defaults to '#'.
253
+ left_sep (str): The character to use for the left side of title line. Defaults to '>'.
254
+ right_sep (str): The character to use for the right side of title line. Defaults to '<'.
255
+ bottom_sep (str): The character to use for the bottom separator line. Defaults to '#'.
217
256
  length (int): The total length of the header line. Defaults to 60.
218
257
  style1 (str): The style for the title text. Defaults to 'bold red'.
219
258
  style2 (str): The style for the separator text. Defaults to 'bold blue'.
259
+ print_out (bool): Whether to print the header or just return it. Defaults to True.
220
260
  """
221
261
  text_helper = TextHelper()
222
262
  if print_out:
223
- text_helper.print_header(title=title, sep=sep, length=length, s1=style1, s2=style2, return_txt=False)
263
+ text_helper.print_header(
264
+ title=title,
265
+ top_sep=top_sep,
266
+ left_sep=left_sep,
267
+ right_sep=right_sep,
268
+ bottom_sep=bottom_sep,
269
+ length=length,
270
+ s1=style1,
271
+ s2=style2,
272
+ return_txt=False,
273
+ )
224
274
  return ""
225
- return text_helper.print_header(title=title, sep=sep, length=length, s1=style1, s2=style2, return_txt=True)
275
+ return text_helper.print_header(
276
+ title=title,
277
+ top_sep=top_sep,
278
+ left_sep=left_sep,
279
+ right_sep=right_sep,
280
+ bottom_sep=bottom_sep,
281
+ length=length,
282
+ s1=style1,
283
+ s2=style2,
284
+ return_txt=True,
285
+ )
286
+
287
+
288
+ if __name__ == "__main__":
289
+ # Example usage of the TextHelper
290
+ text_helper = TextHelper()
291
+ text_helper.print_header("My Title", top_sep="#", bottom_sep="#")
292
+ text_helper.print_header("My Title", top_sep="=", left_sep=">", right_sep="<", bottom_sep="=")
293
+ text_helper.print_header("My Title", top_sep="-", left_sep="[", right_sep="]", bottom_sep="-")
@@ -6,7 +6,7 @@ import pytest
6
6
  from rich.console import Console
7
7
 
8
8
  from bear_utils import VERBOSE, BufferLogger, ConsoleLogger, FileLogger
9
- from bear_utils.extras import fmt_header
9
+ from bear_utils.extras import ascii_header as fmt_header
10
10
 
11
11
  console = Console()
12
12
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes