logger-36 2024.21__py3-none-any.whl → 2024.22__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.
- logger_36/constant/issue.py +2 -0
- logger_36/type/issue.py +4 -1
- logger_36/type/logger.py +36 -21
- logger_36/version.py +1 -1
- {logger_36-2024.21.dist-info → logger_36-2024.22.dist-info}/METADATA +1 -1
- {logger_36-2024.21.dist-info → logger_36-2024.22.dist-info}/RECORD +8 -8
- {logger_36-2024.21.dist-info → logger_36-2024.22.dist-info}/WHEEL +1 -1
- {logger_36-2024.21.dist-info → logger_36-2024.22.dist-info}/top_level.txt +0 -0
logger_36/constant/issue.py
CHANGED
logger_36/type/issue.py
CHANGED
@@ -4,10 +4,12 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
|
4
4
|
SEE COPYRIGHT NOTICE BELOW
|
5
5
|
"""
|
6
6
|
|
7
|
+
import logging as lggg
|
7
8
|
import typing as h
|
8
9
|
|
9
10
|
from logger_36.config.issue import ISSUE_BASE_CONTEXT
|
10
11
|
from logger_36.constant.generic import NOT_PASSED
|
12
|
+
from logger_36.constant.issue import ISSUE_LEVEL_SEPARATOR
|
11
13
|
from logger_36.constant.message import expected_op_h
|
12
14
|
from logger_36.task.format.message import FormattedMessage
|
13
15
|
|
@@ -20,6 +22,7 @@ def NewIssue(
|
|
20
22
|
message: str,
|
21
23
|
/,
|
22
24
|
*,
|
25
|
+
level: int = lggg.ERROR,
|
23
26
|
actual: h.Any = NOT_PASSED,
|
24
27
|
expected: h.Any | None = None,
|
25
28
|
expected_op: expected_op_h = "=",
|
@@ -36,7 +39,7 @@ def NewIssue(
|
|
36
39
|
with_final_dot=with_final_dot,
|
37
40
|
)
|
38
41
|
|
39
|
-
return f"{context}{separator}{message}"
|
42
|
+
return f"{level}{ISSUE_LEVEL_SEPARATOR}{context}{separator}{message}"
|
40
43
|
|
41
44
|
|
42
45
|
"""
|
logger_36/type/logger.py
CHANGED
@@ -17,7 +17,7 @@ from traceback import TracebackException as traceback_t
|
|
17
17
|
from logger_36.config.issue import ISSUE_CONTEXT_END, ISSUE_CONTEXT_SEPARATOR
|
18
18
|
from logger_36.config.message import DATE_FORMAT
|
19
19
|
from logger_36.constant.generic import NOT_PASSED
|
20
|
-
from logger_36.constant.issue import ORDER, order_h
|
20
|
+
from logger_36.constant.issue import ISSUE_LEVEL_SEPARATOR, ORDER, order_h
|
21
21
|
from logger_36.constant.logger import (
|
22
22
|
HIDE_WHERE_KWARG,
|
23
23
|
LOGGER_NAME,
|
@@ -221,11 +221,12 @@ class logger_t(lggg.Logger):
|
|
221
221
|
# __post_init__ set self.exit_on_critical if self.exit_on_error.
|
222
222
|
sstm.exit(1)
|
223
223
|
|
224
|
-
def
|
224
|
+
def log_exception(
|
225
225
|
self,
|
226
226
|
exception: Exception,
|
227
227
|
/,
|
228
228
|
*,
|
229
|
+
level: int = lggg.ERROR,
|
229
230
|
should_remove_caller: bool = False,
|
230
231
|
) -> None:
|
231
232
|
""""""
|
@@ -233,9 +234,12 @@ class logger_t(lggg.Logger):
|
|
233
234
|
if should_remove_caller:
|
234
235
|
message = "\n".join(lines[:1] + lines[2:])
|
235
236
|
else:
|
237
|
+
# TODO: Explain:
|
238
|
+
# - Why it's not: "\n".join(lines)?
|
239
|
+
# - Why adding excpetion name here and not when removing caller?
|
236
240
|
formatted = "".join(lines)
|
237
241
|
message = f"{type(exception).__name__}:\n{formatted}"
|
238
|
-
self.
|
242
|
+
self.log(level, message)
|
239
243
|
|
240
244
|
def AddContextLevel(self, new_level: str, /) -> None:
|
241
245
|
""""""
|
@@ -255,6 +259,7 @@ class logger_t(lggg.Logger):
|
|
255
259
|
message: str,
|
256
260
|
/,
|
257
261
|
*,
|
262
|
+
level: int = lggg.ERROR,
|
258
263
|
actual: h.Any = NOT_PASSED,
|
259
264
|
expected: h.Any | None = None,
|
260
265
|
expected_op: expected_op_h = "=",
|
@@ -266,6 +271,7 @@ class logger_t(lggg.Logger):
|
|
266
271
|
context,
|
267
272
|
ISSUE_CONTEXT_END,
|
268
273
|
message,
|
274
|
+
level=level,
|
269
275
|
actual=actual,
|
270
276
|
expected=expected,
|
271
277
|
expected_op=expected_op,
|
@@ -280,12 +286,15 @@ class logger_t(lggg.Logger):
|
|
280
286
|
|
281
287
|
def CommitIssues(
|
282
288
|
self,
|
283
|
-
level: int | type[Exception],
|
284
289
|
/,
|
285
290
|
*,
|
286
291
|
order: order_h = "when",
|
292
|
+
unified: bool = False,
|
287
293
|
) -> None:
|
288
|
-
"""
|
294
|
+
"""
|
295
|
+
Note that issues after an issue with a level triggering process exit will not be
|
296
|
+
logged.
|
297
|
+
"""
|
289
298
|
if not self.has_staged_issues:
|
290
299
|
return
|
291
300
|
|
@@ -302,22 +311,28 @@ class logger_t(lggg.Logger):
|
|
302
311
|
issues = self.staged_issues
|
303
312
|
else: # order == "context"
|
304
313
|
issues = sorted(self.staged_issues, key=lambda _elm: _elm.context)
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
314
|
+
"""
|
315
|
+
Format issues as an exception:
|
316
|
+
try:
|
317
|
+
raise ValueError("\n" + "\n".join(issues))
|
318
|
+
except ValueError as exception:
|
319
|
+
lines = ["Traceback (most recent call last):"] + tcbk.format_stack()[:-1]
|
320
|
+
lines[-1] = lines[-1][:-1]
|
321
|
+
lines.extend(tcbk.format_exception_only(exception))
|
322
|
+
formatted = "\n".join(lines)
|
323
|
+
"""
|
324
|
+
|
325
|
+
if unified:
|
326
|
+
level, _ = issues[0].split(ISSUE_LEVEL_SEPARATOR, maxsplit=1)
|
327
|
+
wo_level = []
|
328
|
+
for issue in issues:
|
329
|
+
_, issue = issue.split(ISSUE_LEVEL_SEPARATOR, maxsplit=1)
|
330
|
+
wo_level.append(issue)
|
331
|
+
self.log(int(level), "\n".join(wo_level), stacklevel=2)
|
332
|
+
else:
|
333
|
+
for issue in issues:
|
334
|
+
level, issue = issue.split(ISSUE_LEVEL_SEPARATOR, maxsplit=1)
|
335
|
+
self.log(int(level), issue, stacklevel=2)
|
321
336
|
self.staged_issues.clear()
|
322
337
|
|
323
338
|
def ShowMessage(self, message: str, /) -> None:
|
logger_36/version.py
CHANGED
@@ -5,7 +5,7 @@ logger_36/logger.py,sha256=7LJtdT7TmfFsn6r34iTr6OGvEjXlU6hKXEO2c5Lm2zY,2386
|
|
5
5
|
logger_36/logger_gpu.py,sha256=YYFk6aYQrBDJfxQaDm-ar16T6SlOSL6jJWTOgvpF4EU,2244
|
6
6
|
logger_36/measure.py,sha256=P507VNbVKAf4jYGnGX-3rlDrVbrYP0ZD3nxFmAFvhyI,2404
|
7
7
|
logger_36/storage.py,sha256=O8pDmiL0B3LJpKrhi8a9IMBXs6MwW6r1bMUn_cSDAaY,2246
|
8
|
-
logger_36/version.py,sha256=
|
8
|
+
logger_36/version.py,sha256=JPQbndmeGc-ytruoejhakNRfDt3ogZPJwu9ZkQINvwA,2206
|
9
9
|
logger_36/catalog/config/console_rich.py,sha256=QDkgSs3I7ZULvkd1q4J1hdvgyB857JJcJWxM9fdL51Y,2883
|
10
10
|
logger_36/catalog/handler/console.py,sha256=SF9S3CUoEPp5dh7RrqotywDJjMgRp0rD9sO3eLVXnkA,4004
|
11
11
|
logger_36/catalog/handler/console_rich.py,sha256=Ti1k2E1ox4egzicghTb9Wv30xiWaBbWwe8ouopJsujY,8792
|
@@ -23,7 +23,7 @@ logger_36/config/system.py,sha256=HD8ZuwsXhEAExeZrww8YoDkQGMs4T5RDqQMb1W4qVgc,24
|
|
23
23
|
logger_36/constant/error.py,sha256=1gdnCwUu3d3ThL4AKxzjn7ijSTBWlr2g-8cAKbubl4A,2825
|
24
24
|
logger_36/constant/generic.py,sha256=t6aRb66_NHwMhR1p7BZ4QXTU2jpLz-H5YAL4PuMtKx8,2244
|
25
25
|
logger_36/constant/handler.py,sha256=HM8qCSEMGNMCzddjUUNBPGL-3d0qU-EmG5eW4ZQHW6A,2311
|
26
|
-
logger_36/constant/issue.py,sha256=
|
26
|
+
logger_36/constant/issue.py,sha256=01l8itRPWGS5F6gXtsXUJgGR-4lS1Eu3_YeKC-khKLw,2315
|
27
27
|
logger_36/constant/logger.py,sha256=0GhemAQ_YBiRO5WQBuNTczuejyVu2IYCsgqPRIbL8es,2780
|
28
28
|
logger_36/constant/memory.py,sha256=ZL1MwbdtNsrCrOwzEyfTsfOoOsRBTJtbbf3otHGnxXo,2343
|
29
29
|
logger_36/constant/message.py,sha256=RKQL-YmEDds5q7HuHTeDebz7_h3zWDX0PNxu-RTwL2I,2714
|
@@ -39,10 +39,10 @@ logger_36/task/format/rule.py,sha256=YEe8wG_QLy9vRZqmT2bWlvKT-Dxp4pGaZVmEuwwODyE
|
|
39
39
|
logger_36/task/measure/chronos.py,sha256=t-y0bVm1SmF-3wI9pR9Bp6-qzVlsE94fZTZr5a_hZUA,2884
|
40
40
|
logger_36/task/measure/memory.py,sha256=eVw5WOYLyn8o4O4mMArdX2MzsVuhhNDovjYEkk-MIaU,2504
|
41
41
|
logger_36/type/handler.py,sha256=BXpevZhLq5V_IdUfi_LZA4czzlH2SGLpgvbqUBe5X10,8311
|
42
|
-
logger_36/type/issue.py,sha256=
|
43
|
-
logger_36/type/logger.py,sha256=
|
42
|
+
logger_36/type/issue.py,sha256=5NCcDX8uTcp4Zd7HoRTYB2_f3RVjqHeDEavkssr6bg0,3114
|
43
|
+
logger_36/type/logger.py,sha256=sH-eEEt3_kdYSTS4C3sLXA_pp-2MH-D_Bf6EDlJNY1E,15935
|
44
44
|
logger_36/type/loggers.py,sha256=znqxWBnfQxvkg3VUfbTUvt3S6Kq0DAzWWepxQDt9suI,2871
|
45
|
-
logger_36-2024.
|
46
|
-
logger_36-2024.
|
47
|
-
logger_36-2024.
|
48
|
-
logger_36-2024.
|
45
|
+
logger_36-2024.22.dist-info/METADATA,sha256=K5YZ0rA-ldUEqGnM3lMh09FzH9fmEY7gTZC7eWyTpcE,6276
|
46
|
+
logger_36-2024.22.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
47
|
+
logger_36-2024.22.dist-info/top_level.txt,sha256=sM95BTMWmslEEgR_1pzwZsOeSp8C_QBiu8ImbFr0XLc,10
|
48
|
+
logger_36-2024.22.dist-info/RECORD,,
|
File without changes
|