bear-utils 0.8.0__tar.gz → 0.8.2__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.
- {bear_utils-0.8.0 → bear_utils-0.8.2}/.bumpversion.cfg +1 -1
- {bear_utils-0.8.0 → bear_utils-0.8.2}/PKG-INFO +4 -4
- {bear_utils-0.8.0 → bear_utils-0.8.2}/README.md +2 -2
- {bear_utils-0.8.0 → bear_utils-0.8.2}/pyproject.toml +2 -2
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/config/settings_manager.py +1 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/monitoring/host_monitor.py +1 -1
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_function_response.py +20 -24
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_logger.py +10 -10
- {bear_utils-0.8.0 → bear_utils-0.8.2}/uv.lock +5 -80
- {bear_utils-0.8.0 → bear_utils-0.8.2}/.gitignore +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/.python-version +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/AGENTS.md +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/coverage.ini +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/default.toml +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/git-changelog.toml +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/pytest.ini +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/ruff.toml +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/vscode/launch.json +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/vscode/settings.json +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/config/vscode/tasks.json +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/directory_structure.txt +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/maskfile.md +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/noxfile.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/__main__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/_internal/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/_internal/cli.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/_internal/debug.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/ai/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/ai/ai_helpers/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/ai/ai_helpers/_common.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/ai/ai_helpers/_config.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/ai/ai_helpers/_parsers.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/ai/ai_helpers/_types.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cache/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/commands.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/prompt_helpers.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/shell/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/shell/_base_command.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/shell/_base_shell.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/cli/shell/_common.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/config/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/config/config_manager.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/config/dir_manager.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/constants/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/constants/_exceptions.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/constants/_lazy_typing.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/constants/date_related.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/constants/logger_protocol.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/constants/time_related.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/database/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/database/_db_manager.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/events/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/events/events_class.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/events/events_module.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/_async_helpers.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/_tools.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/platform_utils.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/responses/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/responses/function_response.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/wrappers/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/extras/wrappers/add_methods.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/_base_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/file_handler_factory.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/json_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/log_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/toml_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/txt_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/yaml_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/ignore_parser.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/graphics/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/graphics/bear_gradient.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/graphics/image_helpers.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/_settings.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/_types.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/qt_app.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/qt_color_picker.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/qt_file_handler.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/gui/gui_tools/qt_input_dialog.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/_common.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/_console_junk.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/_styles.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_base_logger.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_base_logger.pyi +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_buffer_logger.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_console_logger.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_console_logger.pyi +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_file_logger.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_level_sin.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_logger.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_sub_logger.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_sub_logger.pyi +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/monitoring/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/monitoring/_common.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/time/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/__init__.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_add_ord_suffix.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_clipboard.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_default_shell.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_gradient.py +0 -0
- {bear_utils-0.8.0 → bear_utils-0.8.2}/tests/test_platform_utils.py +0 -0
@@ -1,10 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: bear-utils
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.2
|
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
|
7
|
-
Requires-Dist: bear-epoch-time>=1.
|
7
|
+
Requires-Dist: bear-epoch-time>=1.1.1
|
8
8
|
Requires-Dist: diskcache<6.0.0,>=5.6.3
|
9
9
|
Requires-Dist: httpx>=0.28.1
|
10
10
|
Requires-Dist: pathspec>=0.12.1
|
@@ -20,7 +20,7 @@ Requires-Dist: tinydb>=4.8.2
|
|
20
20
|
Requires-Dist: toml>=0.10.2
|
21
21
|
Description-Content-Type: text/markdown
|
22
22
|
|
23
|
-
# Bear Utils v# Bear Utils v0.8.
|
23
|
+
# Bear Utils v# Bear Utils v0.8.2
|
24
24
|
|
25
25
|
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.
|
26
26
|
|
@@ -87,7 +87,7 @@ with db.session() as session:
|
|
87
87
|
The `logging` package provides an enhanced console logger using rich:
|
88
88
|
|
89
89
|
```python
|
90
|
-
from bear_utils.
|
90
|
+
from bear_utils.logger_manager import ConsoleLogger
|
91
91
|
|
92
92
|
logger = ConsoleLogger()
|
93
93
|
logger.info("Information message")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Bear Utils v# Bear Utils v0.8.
|
1
|
+
# Bear Utils v# Bear Utils v0.8.2
|
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
|
|
@@ -65,7 +65,7 @@ with db.session() as session:
|
|
65
65
|
The `logging` package provides an enhanced console logger using rich:
|
66
66
|
|
67
67
|
```python
|
68
|
-
from bear_utils.
|
68
|
+
from bear_utils.logger_manager import ConsoleLogger
|
69
69
|
|
70
70
|
logger = ConsoleLogger()
|
71
71
|
logger.info("Information message")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "bear-utils"
|
3
|
-
version = "0.8.
|
3
|
+
version = "0.8.2"
|
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"
|
@@ -17,7 +17,7 @@ dependencies = [
|
|
17
17
|
"pyyaml>=6.0.2",
|
18
18
|
"singleton-base>=1.0.5",
|
19
19
|
"httpx>=0.28.1",
|
20
|
-
"bear-epoch-time>=1.
|
20
|
+
"bear-epoch-time>=1.1.1",
|
21
21
|
"toml>=0.10.2",
|
22
22
|
"tinydb>=4.8.2",
|
23
23
|
]
|
@@ -27,6 +27,7 @@ class SettingsManager:
|
|
27
27
|
self.cache: dict[str, Any] = {}
|
28
28
|
file_name: str = f"{settings_name}.json"
|
29
29
|
self.file_path: Path = Path(folder_path) / file_name if folder_path else get_config_folder() / file_name
|
30
|
+
|
30
31
|
self.db: TinyDB = TinyDB(self.file_path, indent=4, ensure_ascii=False)
|
31
32
|
|
32
33
|
atexit.register(self.close)
|
@@ -306,7 +306,7 @@ class HostMonitor:
|
|
306
306
|
if current_cpu_samples:
|
307
307
|
return round(sum(current_cpu_samples) / len(current_cpu_samples), 2)
|
308
308
|
except Exception as e:
|
309
|
-
|
309
|
+
self.console.error(f"Error getting CPU temperature: {e}", exc_info=True)
|
310
310
|
return 0.0
|
311
311
|
|
312
312
|
async def get_avg_mem_usage(self) -> float:
|
@@ -203,7 +203,7 @@ class TestSubTaskMethod:
|
|
203
203
|
"""Test basic sub_task functionality."""
|
204
204
|
main_response = FunctionResponse(name="main_task")
|
205
205
|
main_response.sub_task(name="subtask_1", content="sub content")
|
206
|
-
|
206
|
+
|
207
207
|
assert main_response.number_of_tasks == 1
|
208
208
|
assert main_response.content == ["subtask_1: sub content"]
|
209
209
|
assert main_response.error == []
|
@@ -212,7 +212,7 @@ class TestSubTaskMethod:
|
|
212
212
|
"""Test sub_task with error."""
|
213
213
|
main_response = FunctionResponse(name="main_task")
|
214
214
|
main_response.sub_task(name="failed_subtask", error="something went wrong")
|
215
|
-
|
215
|
+
|
216
216
|
assert main_response.number_of_tasks == 1
|
217
217
|
assert main_response.content == []
|
218
218
|
assert main_response.error == ["failed_subtask: something went wrong"]
|
@@ -221,28 +221,27 @@ class TestSubTaskMethod:
|
|
221
221
|
"""Test that sub_task inherits returncode from parent."""
|
222
222
|
main_response = FunctionResponse(name="main_task", returncode=5)
|
223
223
|
main_response.sub_task(name="subtask", content="test")
|
224
|
-
|
225
224
|
# The sub_task should inherit the parent's returncode
|
226
225
|
assert main_response.number_of_tasks == 1
|
227
226
|
# Can't directly test the sub-response returncode, but the behavior should be consistent
|
228
|
-
|
227
|
+
|
228
|
+
# The sub_task should inherit the parent's returncode
|
229
|
+
assert main_response.number_of_tasks == 1
|
230
|
+
# Can't directly test the sub-response returncode, but the behavior should be consistent
|
231
|
+
|
229
232
|
def test_sub_task_override_returncode(self):
|
230
233
|
"""Test that sub_task can override returncode."""
|
231
234
|
main_response = FunctionResponse(name="main_task", returncode=0)
|
232
235
|
main_response.sub_task(name="subtask", content="test", returncode=2)
|
233
|
-
|
236
|
+
|
234
237
|
assert main_response.number_of_tasks == 1
|
235
238
|
# The sub-task uses the overridden returncode
|
236
|
-
|
239
|
+
|
237
240
|
def test_sub_task_with_extra_and_kwargs(self):
|
238
241
|
"""Test sub_task with extra metadata."""
|
239
242
|
main_response = FunctionResponse(name="main_task")
|
240
|
-
main_response.sub_task(
|
241
|
-
|
242
|
-
content="test content",
|
243
|
-
extra={"key": "value"}
|
244
|
-
)
|
245
|
-
|
243
|
+
main_response.sub_task(name="subtask", content="test content", extra={"key": "value"})
|
244
|
+
|
246
245
|
assert main_response.number_of_tasks == 1
|
247
246
|
assert main_response.content == ["subtask: test content"]
|
248
247
|
# Extra metadata gets merged into main response
|
@@ -253,25 +252,26 @@ class TestSubTaskMethod:
|
|
253
252
|
"""Test that sub_task inherits logger from parent."""
|
254
253
|
# Create main response without logger initially
|
255
254
|
main_response = FunctionResponse(name="main_task")
|
256
|
-
|
255
|
+
|
257
256
|
# Add subtask - should work even without logger
|
258
257
|
main_response.sub_task(name="subtask", content="test")
|
259
|
-
|
258
|
+
|
260
259
|
assert main_response.number_of_tasks == 1
|
261
260
|
assert main_response.content == ["subtask: test"]
|
262
261
|
|
263
262
|
def test_sub_task_multiple_operations(self):
|
264
263
|
"""Test adding multiple sub_tasks."""
|
265
264
|
main_response = FunctionResponse(name="batch_operation")
|
266
|
-
|
265
|
+
|
267
266
|
# Add multiple subtasks
|
268
267
|
main_response.sub_task(name="task1", content="completed task 1")
|
269
268
|
main_response.sub_task(name="task2", error="task 2 failed")
|
270
269
|
main_response.sub_task(name="task3", content="completed task 3")
|
271
|
-
|
270
|
+
|
272
271
|
assert main_response.number_of_tasks == 3
|
273
272
|
assert len(main_response.content) == 2 # Two successful
|
274
|
-
assert len(main_response.error) == 1
|
273
|
+
assert len(main_response.error) == 1 # One failed
|
274
|
+
|
275
275
|
assert "task1: completed task 1" in main_response.content
|
276
276
|
assert "task2: task 2 failed" in main_response.error
|
277
277
|
assert "task3: completed task 3" in main_response.content
|
@@ -279,12 +279,9 @@ class TestSubTaskMethod:
|
|
279
279
|
def test_sub_task_list_content_and_error(self):
|
280
280
|
"""Test sub_task with list content and errors."""
|
281
281
|
main_response = FunctionResponse(name="main_task")
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
error=["warning 1", "warning 2"]
|
286
|
-
)
|
287
|
-
|
282
|
+
|
283
|
+
main_response.sub_task(name="multi_subtask", content=["output 1", "output 2"], error=["warning 1", "warning 2"])
|
284
|
+
|
288
285
|
assert main_response.number_of_tasks == 1
|
289
286
|
assert "multi_subtask: output 1" in main_response.content
|
290
287
|
assert "multi_subtask: output 2" in main_response.content
|
@@ -295,7 +292,6 @@ class TestSubTaskMethod:
|
|
295
292
|
"""Test sub_task with empty name."""
|
296
293
|
main_response = FunctionResponse(name="main_task")
|
297
294
|
main_response.sub_task(content="content without name")
|
298
|
-
|
299
295
|
assert main_response.number_of_tasks == 1
|
300
296
|
# Should still add content, just without name prefix
|
301
297
|
assert "content without name" in main_response.content
|
@@ -16,10 +16,11 @@ class TestLoggerFactory:
|
|
16
16
|
|
17
17
|
@staticmethod
|
18
18
|
def create_console_logger(**kwargs) -> ConsoleLogger:
|
19
|
+
"""Create a ConsoleLogger instance for testing."""
|
19
20
|
if ConsoleLogger.has_instance():
|
20
21
|
ConsoleLogger.reset_instance()
|
21
22
|
|
22
|
-
import logging
|
23
|
+
import logging # noqa: PLC0415
|
23
24
|
|
24
25
|
logging.getLogger().handlers.clear()
|
25
26
|
|
@@ -34,15 +35,14 @@ class TestLoggerFactory:
|
|
34
35
|
"logger_mode": True,
|
35
36
|
}
|
36
37
|
defaults.update(kwargs)
|
37
|
-
|
38
|
-
return instance
|
38
|
+
return ConsoleLogger.get_instance(init=True, **defaults)
|
39
39
|
|
40
40
|
@staticmethod
|
41
41
|
def create_file_logger(**kwargs):
|
42
42
|
if FileLogger.has_instance():
|
43
43
|
FileLogger.reset_instance()
|
44
44
|
|
45
|
-
import logging
|
45
|
+
import logging # noqa: PLC0415
|
46
46
|
|
47
47
|
logging.getLogger().handlers.clear()
|
48
48
|
|
@@ -62,7 +62,7 @@ class TestLoggerFactory:
|
|
62
62
|
if BufferLogger.has_instance():
|
63
63
|
BufferLogger.reset_instance()
|
64
64
|
|
65
|
-
import logging
|
65
|
+
import logging # noqa: PLC0415
|
66
66
|
|
67
67
|
logging.getLogger().handlers.clear()
|
68
68
|
|
@@ -229,7 +229,7 @@ class TestVisualVerification:
|
|
229
229
|
with capsys.disabled():
|
230
230
|
fmt_header("Visual Test: Traceback Verification")
|
231
231
|
try:
|
232
|
-
v = 200 / 0
|
232
|
+
v: float = 200 / 0 # noqa: F841 # Intentionally cause a ZeroDivisionError
|
233
233
|
except Exception:
|
234
234
|
logger.error("Test", exc_info=True)
|
235
235
|
|
@@ -243,7 +243,7 @@ class TestVisualVerification:
|
|
243
243
|
fmt_header("Visual Test: Sub Logger Traceback Verification")
|
244
244
|
|
245
245
|
try:
|
246
|
-
v = 200 / 0
|
246
|
+
v: float = 200 / 0 # noqa: F841 # Intentionally cause a ZeroDivisionError
|
247
247
|
except Exception:
|
248
248
|
sub_logger.error("SubLogger Test", exc_info=True)
|
249
249
|
|
@@ -252,8 +252,8 @@ class TestVisualVerification:
|
|
252
252
|
|
253
253
|
def test_buffer_logger(self):
|
254
254
|
"""Test that BufferLogger works correctly."""
|
255
|
-
from contextlib import redirect_stdout
|
256
|
-
from io import StringIO
|
255
|
+
from contextlib import redirect_stdout # noqa: PLC0415
|
256
|
+
from io import StringIO # noqa: PLC0415
|
257
257
|
|
258
258
|
logger: BufferLogger = TestLoggerFactory.create_buffer_logger()
|
259
259
|
fmt_header("Test Buffer Logger")
|
@@ -289,7 +289,7 @@ class TestVisualVerification:
|
|
289
289
|
fmt_header("Visual Test: Buffer Logger Traceback Verification")
|
290
290
|
|
291
291
|
try:
|
292
|
-
v = 200 / 0
|
292
|
+
v: float = 200 / 0 # noqa: F841 # Intentionally cause a ZeroDivisionError
|
293
293
|
except Exception:
|
294
294
|
logger.error("BufferLogger Test happened on purpose!", exc_info=True)
|
295
295
|
|
@@ -45,23 +45,22 @@ wheels = [
|
|
45
45
|
|
46
46
|
[[package]]
|
47
47
|
name = "bear-epoch-time"
|
48
|
-
version = "1.
|
48
|
+
version = "1.1.1"
|
49
49
|
source = { registry = "https://pypi.org/simple/" }
|
50
50
|
dependencies = [
|
51
51
|
{ name = "python-dateutil" },
|
52
52
|
{ name = "pytz" },
|
53
53
|
{ name = "rich" },
|
54
|
-
{ name = "rich-tree-cli" },
|
55
54
|
{ name = "tzlocal" },
|
56
55
|
]
|
57
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
56
|
+
sdist = { url = "https://files.pythonhosted.org/packages/3e/5a/1045fb6fc92d342765e732d2702548a90c933aba5a33a431ce40da414e98/bear_epoch_time-1.1.1.tar.gz", hash = "sha256:db7477e7551584b827f97249a85ee8085213ea8b079b0866fb9d523152785746", size = 32023, upload_time = "2025-07-07T19:40:07.073Z" }
|
58
57
|
wheels = [
|
59
|
-
{ url = "https://files.pythonhosted.org/packages/
|
58
|
+
{ url = "https://files.pythonhosted.org/packages/be/7b/209297b64a6a2dd504b618d645fa419a1d44f21ba2745283d561672891cf/bear_epoch_time-1.1.1-py3-none-any.whl", hash = "sha256:f2594ef69cb0cbb87e009f7a76f2439e439bb07b5252b39a7956c2cb9b9c85c3", size = 15140, upload_time = "2025-07-07T19:40:06.208Z" },
|
60
59
|
]
|
61
60
|
|
62
61
|
[[package]]
|
63
62
|
name = "bear-utils"
|
64
|
-
version = "0.
|
63
|
+
version = "0.8.0"
|
65
64
|
source = { editable = "." }
|
66
65
|
dependencies = [
|
67
66
|
{ name = "bear-epoch-time" },
|
@@ -96,7 +95,7 @@ gui = [
|
|
96
95
|
|
97
96
|
[package.metadata]
|
98
97
|
requires-dist = [
|
99
|
-
{ name = "bear-epoch-time", specifier = ">=1.
|
98
|
+
{ name = "bear-epoch-time", specifier = ">=1.1.1" },
|
100
99
|
{ name = "diskcache", specifier = ">=5.6.3,<6.0.0" },
|
101
100
|
{ name = "httpx", specifier = ">=0.28.1" },
|
102
101
|
{ name = "pathspec", specifier = ">=0.12.1" },
|
@@ -493,18 +492,6 @@ wheels = [
|
|
493
492
|
{ url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" },
|
494
493
|
]
|
495
494
|
|
496
|
-
[[package]]
|
497
|
-
name = "jinja2"
|
498
|
-
version = "3.1.6"
|
499
|
-
source = { registry = "https://pypi.org/simple/" }
|
500
|
-
dependencies = [
|
501
|
-
{ name = "markupsafe" },
|
502
|
-
]
|
503
|
-
sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload_time = "2025-03-05T20:05:02.478Z" }
|
504
|
-
wheels = [
|
505
|
-
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload_time = "2025-03-05T20:05:00.369Z" },
|
506
|
-
]
|
507
|
-
|
508
495
|
[[package]]
|
509
496
|
name = "keyring"
|
510
497
|
version = "25.6.0"
|
@@ -534,44 +521,6 @@ wheels = [
|
|
534
521
|
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload_time = "2023-06-03T06:41:11.019Z" },
|
535
522
|
]
|
536
523
|
|
537
|
-
[[package]]
|
538
|
-
name = "markupsafe"
|
539
|
-
version = "3.0.2"
|
540
|
-
source = { registry = "https://pypi.org/simple/" }
|
541
|
-
sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" }
|
542
|
-
wheels = [
|
543
|
-
{ url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload_time = "2024-10-18T15:21:13.777Z" },
|
544
|
-
{ url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload_time = "2024-10-18T15:21:14.822Z" },
|
545
|
-
{ url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload_time = "2024-10-18T15:21:15.642Z" },
|
546
|
-
{ url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload_time = "2024-10-18T15:21:17.133Z" },
|
547
|
-
{ url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload_time = "2024-10-18T15:21:18.064Z" },
|
548
|
-
{ url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload_time = "2024-10-18T15:21:18.859Z" },
|
549
|
-
{ url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload_time = "2024-10-18T15:21:19.671Z" },
|
550
|
-
{ url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload_time = "2024-10-18T15:21:20.971Z" },
|
551
|
-
{ url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload_time = "2024-10-18T15:21:22.646Z" },
|
552
|
-
{ url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload_time = "2024-10-18T15:21:23.499Z" },
|
553
|
-
{ url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" },
|
554
|
-
{ url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" },
|
555
|
-
{ url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" },
|
556
|
-
{ url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" },
|
557
|
-
{ url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" },
|
558
|
-
{ url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" },
|
559
|
-
{ url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" },
|
560
|
-
{ url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" },
|
561
|
-
{ url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" },
|
562
|
-
{ url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" },
|
563
|
-
{ url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" },
|
564
|
-
{ url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" },
|
565
|
-
{ url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" },
|
566
|
-
{ url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" },
|
567
|
-
{ url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" },
|
568
|
-
{ url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" },
|
569
|
-
{ url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" },
|
570
|
-
{ url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" },
|
571
|
-
{ url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" },
|
572
|
-
{ url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" },
|
573
|
-
]
|
574
|
-
|
575
524
|
[[package]]
|
576
525
|
name = "mdurl"
|
577
526
|
version = "0.1.2"
|
@@ -1033,21 +982,6 @@ wheels = [
|
|
1033
982
|
{ url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload_time = "2025-03-30T14:15:12.283Z" },
|
1034
983
|
]
|
1035
984
|
|
1036
|
-
[[package]]
|
1037
|
-
name = "rich-tree-cli"
|
1038
|
-
version = "0.3.15"
|
1039
|
-
source = { registry = "https://pypi.org/simple/" }
|
1040
|
-
dependencies = [
|
1041
|
-
{ name = "jinja2" },
|
1042
|
-
{ name = "pathspec" },
|
1043
|
-
{ name = "rich" },
|
1044
|
-
{ name = "tomli-w" },
|
1045
|
-
]
|
1046
|
-
sdist = { url = "https://files.pythonhosted.org/packages/f6/23/d6ce2039fdd30aae1d489e79a741a8cfb6d592382f178b09bd8bf4ca46ae/rich_tree_cli-0.3.15.tar.gz", hash = "sha256:1b6f03b7cb4e8ad5226d9434ee73c40cf2b18edd20ffa282d285afe5caab8f7e", size = 65297, upload_time = "2025-06-16T05:11:40.017Z" }
|
1047
|
-
wheels = [
|
1048
|
-
{ url = "https://files.pythonhosted.org/packages/17/7c/f43ee0089dcaafe40dbe128c6e81248d670d717fae681ccb11ef3fc326a9/rich_tree_cli-0.3.15-py3-none-any.whl", hash = "sha256:9f9b6f9edaa638368b439aaf7d98771ab901aeac1ce79e4e63be295dda07a90d", size = 30863, upload_time = "2025-06-16T05:11:39.196Z" },
|
1049
|
-
]
|
1050
|
-
|
1051
985
|
[[package]]
|
1052
986
|
name = "secretstorage"
|
1053
987
|
version = "3.3.3"
|
@@ -1135,15 +1069,6 @@ wheels = [
|
|
1135
1069
|
{ url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload_time = "2020-11-01T01:40:20.672Z" },
|
1136
1070
|
]
|
1137
1071
|
|
1138
|
-
[[package]]
|
1139
|
-
name = "tomli-w"
|
1140
|
-
version = "1.2.0"
|
1141
|
-
source = { registry = "https://pypi.org/simple/" }
|
1142
|
-
sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184, upload_time = "2025-01-15T12:07:24.262Z" }
|
1143
|
-
wheels = [
|
1144
|
-
{ url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675, upload_time = "2025-01-15T12:07:22.074Z" },
|
1145
|
-
]
|
1146
|
-
|
1147
1072
|
[[package]]
|
1148
1073
|
name = "twine"
|
1149
1074
|
version = "6.1.0"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/_base_file_handler.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/file_handler_factory.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/json_file_handler.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/log_file_handler.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/toml_file_handler.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/txt_file_handler.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/files/file_handlers/yaml_file_handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_base_logger.pyi
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_buffer_logger.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_console_logger.py
RENAMED
File without changes
|
{bear_utils-0.8.0 → bear_utils-0.8.2}/src/bear_utils/logger_manager/loggers/_console_logger.pyi
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|