logger-36 2025.4__py3-none-any.whl → 2025.6__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/__init__.py +2 -1
- logger_36/api/logger.py +1 -1
- logger_36/api/storage.py +1 -1
- logger_36/catalog/config/console_rich.py +9 -9
- logger_36/{config/logger.py → catalog/config/optional.py} +8 -51
- logger_36/catalog/handler/console.py +15 -8
- logger_36/catalog/handler/console_rich.py +20 -13
- logger_36/catalog/handler/file.py +14 -8
- logger_36/catalog/handler/generic.py +20 -12
- logger_36/catalog/logger/chronos.py +2 -2
- logger_36/catalog/logger/gpu.py +6 -6
- logger_36/catalog/logger/memory.py +3 -3
- logger_36/catalog/logger/system.py +2 -2
- logger_36/constant/error.py +1 -1
- logger_36/constant/handler.py +2 -2
- logger_36/constant/logger.py +2 -9
- logger_36/content.py +3 -3
- logger_36/exception.py +51 -17
- logger_36/gpu.py +1 -1
- logger_36/handler.py +28 -41
- logger_36/instance/logger.py +1 -1
- logger_36/memory.py +9 -6
- logger_36/storage.py +1 -1
- logger_36/system.py +1 -1
- logger_36/task/format/rule.py +4 -2
- logger_36/task/inspection.py +3 -3
- logger_36/task/measure/chronos.py +1 -3
- logger_36/task/measure/memory.py +2 -2
- logger_36/task/storage.py +16 -16
- logger_36/time.py +2 -2
- logger_36/type/handler.py +31 -12
- logger_36/type/issue.py +2 -2
- logger_36/type/logger.py +90 -44
- logger_36/version.py +1 -1
- {logger_36-2025.4.dist-info → logger_36-2025.6.dist-info}/METADATA +1 -1
- logger_36-2025.6.dist-info/RECORD +52 -0
- logger_36-2025.4.dist-info/RECORD +0 -52
- {logger_36-2025.4.dist-info → logger_36-2025.6.dist-info}/WHEEL +0 -0
- {logger_36-2025.4.dist-info → logger_36-2025.6.dist-info}/top_level.txt +0 -0
logger_36/type/logger.py
CHANGED
@@ -5,8 +5,8 @@ SEE COPYRIGHT NOTICE BELOW
|
|
5
5
|
"""
|
6
6
|
|
7
7
|
import dataclasses as d
|
8
|
-
import logging as
|
9
|
-
import sys as
|
8
|
+
import logging as l
|
9
|
+
import sys as s
|
10
10
|
import traceback as tcbk
|
11
11
|
import types as t
|
12
12
|
import typing as h
|
@@ -24,13 +24,12 @@ from logger_36.config.message import (
|
|
24
24
|
TIME_FORMAT,
|
25
25
|
)
|
26
26
|
from logger_36.constant.generic import NOT_PASSED
|
27
|
-
from logger_36.constant.handler import ANONYMOUS
|
27
|
+
from logger_36.constant.handler import ANONYMOUS, HANDLER_KINDS, handler_codes_h
|
28
28
|
from logger_36.constant.issue import ISSUE_LEVEL_SEPARATOR, ORDER, order_h
|
29
29
|
from logger_36.constant.logger import (
|
30
30
|
LOGGER_NAME,
|
31
31
|
WARNING_LOGGER_NAME,
|
32
32
|
WARNING_TYPE_COMPILED_PATTERN,
|
33
|
-
logger_handle_h,
|
34
33
|
)
|
35
34
|
from logger_36.constant.memory import UNKNOWN_MEMORY_USAGE
|
36
35
|
from logger_36.constant.message import TIME_LENGTH_m_1, expected_op_h
|
@@ -39,25 +38,32 @@ from logger_36.constant.record import (
|
|
39
38
|
SHOW_W_RULE_ATTR,
|
40
39
|
STORE_MEMORY_ATTR,
|
41
40
|
)
|
41
|
+
from logger_36.exception import OverrideExceptionFormat
|
42
|
+
from logger_36.handler import AddRichConsoleHandler
|
42
43
|
from logger_36.task.format.message import MessageWithActualExpected
|
43
44
|
from logger_36.task.measure.chronos import ElapsedTime
|
44
45
|
from logger_36.task.measure.memory import CurrentUsage as CurrentMemoryUsage
|
45
46
|
from logger_36.type.issue import NewIssue, issue_t
|
46
47
|
|
47
|
-
|
48
|
+
base_t = l.Logger
|
49
|
+
|
50
|
+
logger_handle_raw_h = h.Callable[[l.LogRecord], None]
|
51
|
+
logger_handle_with_self_h = h.Callable[[l.Logger, l.LogRecord], None]
|
52
|
+
logger_handle_h = logger_handle_raw_h | logger_handle_with_self_h
|
48
53
|
|
49
54
|
_DATE_TIME_ORIGIN = date_time_t.fromtimestamp(1970, None)
|
50
55
|
_DATE_ORIGIN = _DATE_TIME_ORIGIN.date()
|
51
56
|
|
52
57
|
|
53
58
|
@d.dataclass(slots=True, repr=False, eq=False)
|
54
|
-
class logger_t(
|
59
|
+
class logger_t(base_t):
|
55
60
|
"""
|
56
61
|
intercepted_wrn_handle: When warning interception is on, this stores the original
|
57
62
|
"handle" method of the Python warning logger.
|
58
63
|
"""
|
64
|
+
|
59
65
|
name_: d.InitVar[str] = LOGGER_NAME
|
60
|
-
level_: d.InitVar[int] =
|
66
|
+
level_: d.InitVar[int] = l.NOTSET
|
61
67
|
activate_wrn_interceptions: d.InitVar[bool] = True
|
62
68
|
|
63
69
|
# Must not be False until at least one handler has been added.
|
@@ -65,7 +71,7 @@ class logger_t(logger_base_t):
|
|
65
71
|
exit_on_error: bool = False # Implies exit_on_critical.
|
66
72
|
exit_on_critical: bool = False
|
67
73
|
|
68
|
-
on_hold: list[
|
74
|
+
on_hold: list[l.LogRecord] = d.field(init=False, default_factory=list)
|
69
75
|
events: dict[int, int] = d.field(init=False, default_factory=dict)
|
70
76
|
last_message_now: date_time_t = d.field(init=False, default=_DATE_TIME_ORIGIN)
|
71
77
|
last_message_date: date_t = d.field(init=False, default=_DATE_ORIGIN)
|
@@ -82,11 +88,11 @@ class logger_t(logger_base_t):
|
|
82
88
|
self, name_: str, level_: int, activate_wrn_interceptions: bool
|
83
89
|
) -> None:
|
84
90
|
""""""
|
85
|
-
|
91
|
+
base_t.__init__(self, name_)
|
86
92
|
self.setLevel(level_)
|
87
|
-
self.propagate = False # Part of
|
93
|
+
self.propagate = False # Part of base_t.
|
88
94
|
|
89
|
-
for level in
|
95
|
+
for level in l.getLevelNamesMapping().values():
|
90
96
|
self.events[level] = 0
|
91
97
|
|
92
98
|
if activate_wrn_interceptions:
|
@@ -94,6 +100,44 @@ class logger_t(logger_base_t):
|
|
94
100
|
if self.exit_on_error:
|
95
101
|
self.exit_on_critical = True
|
96
102
|
|
103
|
+
def SetLevel(
|
104
|
+
self,
|
105
|
+
level: int,
|
106
|
+
/,
|
107
|
+
*,
|
108
|
+
which: handler_codes_h | str = "a",
|
109
|
+
) -> None:
|
110
|
+
"""
|
111
|
+
Set level of handlers, but the logger level is not modified.
|
112
|
+
|
113
|
+
which: if not a handler_codes_h, then it corresponds to a handler name.
|
114
|
+
"""
|
115
|
+
found = False
|
116
|
+
for handler in self.handlers:
|
117
|
+
if (
|
118
|
+
(which == "a")
|
119
|
+
or ((which in "cfg") and (getattr(handler, "kind", None) == which))
|
120
|
+
or (which == handler.name)
|
121
|
+
):
|
122
|
+
handler.setLevel(level)
|
123
|
+
if which not in HANDLER_KINDS:
|
124
|
+
return
|
125
|
+
found = True
|
126
|
+
|
127
|
+
if not found:
|
128
|
+
raise ValueError(
|
129
|
+
MessageWithActualExpected(
|
130
|
+
"Handler not found",
|
131
|
+
actual=which,
|
132
|
+
expected=f"{str(HANDLER_KINDS)[1:-1]}, or a handler name",
|
133
|
+
)
|
134
|
+
)
|
135
|
+
|
136
|
+
def MakeRich(self, *, alternating_lines: int = 2) -> None:
|
137
|
+
""""""
|
138
|
+
OverrideExceptionFormat()
|
139
|
+
AddRichConsoleHandler(self, alternating_lines=alternating_lines)
|
140
|
+
|
97
141
|
def ResetEventCounts(self) -> None:
|
98
142
|
""""""
|
99
143
|
for level in self.events:
|
@@ -105,21 +149,21 @@ class logger_t(logger_base_t):
|
|
105
149
|
handlers yet.
|
106
150
|
"""
|
107
151
|
if self.intercepted_wrn_handle is None:
|
108
|
-
logger =
|
152
|
+
logger = l.getLogger(WARNING_LOGGER_NAME)
|
109
153
|
self.intercepted_wrn_handle = logger.handle
|
110
154
|
logger.handle = t.MethodType(_HandleForWarnings(self), logger)
|
111
155
|
|
112
|
-
|
156
|
+
l.captureWarnings(True)
|
113
157
|
self.info("Warning Interception: ON")
|
114
158
|
|
115
159
|
def _DeactivateWarningInterceptions(self) -> None:
|
116
160
|
""""""
|
117
161
|
if self.intercepted_wrn_handle is not None:
|
118
|
-
logger =
|
162
|
+
logger = l.getLogger(WARNING_LOGGER_NAME)
|
119
163
|
logger.handle = self.intercepted_wrn_handle
|
120
164
|
self.intercepted_wrn_handle = None
|
121
165
|
|
122
|
-
|
166
|
+
l.captureWarnings(False)
|
123
167
|
self.info("Warning Interception: OFF")
|
124
168
|
|
125
169
|
def ToggleWarningInterceptions(self, state: bool, /) -> None:
|
@@ -134,8 +178,8 @@ class logger_t(logger_base_t):
|
|
134
178
|
if state:
|
135
179
|
self.ToggleLogInterceptions(False)
|
136
180
|
|
137
|
-
all_loggers = [
|
138
|
-
|
181
|
+
all_loggers = [l.getLogger()] + [
|
182
|
+
l.getLogger(_nme)
|
139
183
|
for _nme in self.manager.loggerDict
|
140
184
|
if _nme not in (self.name, WARNING_LOGGER_NAME)
|
141
185
|
]
|
@@ -151,7 +195,7 @@ class logger_t(logger_base_t):
|
|
151
195
|
self.info(f"Now Intercepting LOGs from: {as_str}")
|
152
196
|
elif self.intercepted_log_handles.__len__() > 0:
|
153
197
|
for name, handle in self.intercepted_log_handles.items():
|
154
|
-
logger =
|
198
|
+
logger = l.getLogger(name)
|
155
199
|
logger.handle = handle
|
156
200
|
self.intercepted_log_handles.clear()
|
157
201
|
self.info("Log Interception: OFF")
|
@@ -174,10 +218,12 @@ class logger_t(logger_base_t):
|
|
174
218
|
|
175
219
|
return "?", UNKNOWN_MEMORY_USAGE
|
176
220
|
|
177
|
-
def AddHandler(
|
221
|
+
def AddHandler(
|
222
|
+
self, handler: l.Handler, /, *, should_hold_messages: bool = False
|
223
|
+
) -> None:
|
178
224
|
""""""
|
179
225
|
self.should_hold_messages = should_hold_messages
|
180
|
-
|
226
|
+
base_t.addHandler(self, handler)
|
181
227
|
|
182
228
|
extension = getattr(handler, "extension", None)
|
183
229
|
if extension is None:
|
@@ -195,25 +241,25 @@ class logger_t(logger_base_t):
|
|
195
241
|
|
196
242
|
self.info(
|
197
243
|
f'New handler "{name}" of type "{type(handler).__name__}" and '
|
198
|
-
f"level {handler.level}={
|
244
|
+
f"level {handler.level}={l.getLevelName(handler.level)}{path}",
|
199
245
|
)
|
200
246
|
|
201
|
-
def handle(self, record:
|
247
|
+
def handle(self, record: l.LogRecord, /) -> None:
|
202
248
|
""""""
|
203
249
|
elapsed_time, now = ElapsedTime(should_return_now=True)
|
204
250
|
|
205
251
|
if (self.on_hold.__len__() > 0) and not self.should_hold_messages:
|
206
252
|
for held in self.on_hold:
|
207
|
-
|
253
|
+
base_t.handle(self, held)
|
208
254
|
self.on_hold.clear()
|
209
255
|
|
210
256
|
if (date := now.date()) != self.last_message_date:
|
211
257
|
self.last_message_date = date
|
212
258
|
# levelno: Added for management by logging.Logger.handle.
|
213
|
-
date_record =
|
259
|
+
date_record = l.makeLogRecord(
|
214
260
|
{
|
215
261
|
"name": self.name,
|
216
|
-
"levelno":
|
262
|
+
"levelno": l.INFO,
|
217
263
|
"msg": f"DATE: {date.strftime(DATE_FORMAT)}",
|
218
264
|
SHOW_W_RULE_ATTR: True,
|
219
265
|
}
|
@@ -221,7 +267,7 @@ class logger_t(logger_base_t):
|
|
221
267
|
if self.should_hold_messages:
|
222
268
|
self.on_hold.append(date_record)
|
223
269
|
else:
|
224
|
-
|
270
|
+
base_t.handle(self, date_record)
|
225
271
|
|
226
272
|
# When.
|
227
273
|
if now - self.last_message_now > LONG_ENOUGH:
|
@@ -235,12 +281,12 @@ class logger_t(logger_base_t):
|
|
235
281
|
# Where.
|
236
282
|
# Memory usage is also stored if there are no handlers yet, just in case.
|
237
283
|
should_store_where = self.any_handler_stores_memory or not self.hasHandlers()
|
238
|
-
should_show_where = (record.levelno !=
|
284
|
+
should_show_where = (record.levelno != l.INFO) and not hasattr(
|
239
285
|
record, HIDE_WHERE_ATTR
|
240
286
|
)
|
241
287
|
if should_store_where or should_show_where:
|
242
288
|
module = path_t(record.pathname)
|
243
|
-
for path in
|
289
|
+
for path in s.path:
|
244
290
|
if module.is_relative_to(path):
|
245
291
|
module = module.relative_to(path).with_suffix("")
|
246
292
|
module = str(module).replace(FOLDER_SEPARATOR, ".")
|
@@ -263,14 +309,14 @@ class logger_t(logger_base_t):
|
|
263
309
|
if self.should_hold_messages:
|
264
310
|
self.on_hold.append(record)
|
265
311
|
else:
|
266
|
-
|
312
|
+
base_t.handle(self, record)
|
267
313
|
|
268
|
-
if (self.exit_on_critical and (record.levelno is
|
269
|
-
self.exit_on_error and (record.levelno is
|
314
|
+
if (self.exit_on_critical and (record.levelno is l.CRITICAL)) or (
|
315
|
+
self.exit_on_error and (record.levelno is l.ERROR)
|
270
316
|
):
|
271
|
-
# Also works if self.exit_on_error and record.levelno is
|
317
|
+
# Also works if self.exit_on_error and record.levelno is l.CRITICAL since
|
272
318
|
# __post_init__ set self.exit_on_critical if self.exit_on_error.
|
273
|
-
|
319
|
+
s.exit(1)
|
274
320
|
|
275
321
|
self.events[record.levelno] += 1
|
276
322
|
|
@@ -282,7 +328,7 @@ class logger_t(logger_base_t):
|
|
282
328
|
message: str,
|
283
329
|
/,
|
284
330
|
*,
|
285
|
-
level: int | str =
|
331
|
+
level: int | str = l.ERROR,
|
286
332
|
actual: h.Any = NOT_PASSED,
|
287
333
|
expected: h.Any | None = None,
|
288
334
|
expected_is_choices: bool = False,
|
@@ -291,7 +337,7 @@ class logger_t(logger_base_t):
|
|
291
337
|
) -> None:
|
292
338
|
""""""
|
293
339
|
if isinstance(level, str):
|
294
|
-
level =
|
340
|
+
level = l.getLevelNamesMapping()[level.upper()]
|
295
341
|
message = MessageWithActualExpected(
|
296
342
|
message,
|
297
343
|
actual=actual,
|
@@ -307,12 +353,12 @@ class logger_t(logger_base_t):
|
|
307
353
|
exception: Exception,
|
308
354
|
/,
|
309
355
|
*,
|
310
|
-
level: int | str =
|
356
|
+
level: int | str = l.ERROR,
|
311
357
|
should_remove_caller: bool = False,
|
312
358
|
) -> None:
|
313
359
|
""""""
|
314
360
|
if isinstance(level, str):
|
315
|
-
level =
|
361
|
+
level = l.getLevelNamesMapping()[level.upper()]
|
316
362
|
lines = tcbk.format_exception(exception)
|
317
363
|
if should_remove_caller:
|
318
364
|
message = "\n".join(lines[:1] + lines[2:])
|
@@ -359,7 +405,7 @@ class logger_t(logger_base_t):
|
|
359
405
|
message: str,
|
360
406
|
/,
|
361
407
|
*,
|
362
|
-
level: int =
|
408
|
+
level: int = l.ERROR,
|
363
409
|
actual: h.Any = NOT_PASSED,
|
364
410
|
expected: h.Any | None = None,
|
365
411
|
expected_is_choices: bool = False,
|
@@ -454,10 +500,10 @@ class logger_t(logger_base_t):
|
|
454
500
|
return False
|
455
501
|
|
456
502
|
|
457
|
-
def _HandleForWarnings(interceptor:
|
503
|
+
def _HandleForWarnings(interceptor: base_t, /) -> logger_handle_h:
|
458
504
|
""""""
|
459
505
|
|
460
|
-
def handle_p(_:
|
506
|
+
def handle_p(_: base_t, record: l.LogRecord, /) -> None:
|
461
507
|
pieces = WARNING_TYPE_COMPILED_PATTERN.match(record.msg)
|
462
508
|
if pieces is None:
|
463
509
|
# The warning message does not follow the default format.
|
@@ -470,7 +516,7 @@ def _HandleForWarnings(interceptor: logger_base_t, /) -> logger_handle_h:
|
|
470
516
|
kind = GetPiece(3)
|
471
517
|
message = GetPiece(4).strip()
|
472
518
|
|
473
|
-
duplicate =
|
519
|
+
duplicate = l.makeLogRecord(record.__dict__)
|
474
520
|
duplicate.msg = f"{kind}: {message}"
|
475
521
|
duplicate.pathname = path
|
476
522
|
duplicate.module = path_t(path).stem
|
@@ -483,12 +529,12 @@ def _HandleForWarnings(interceptor: logger_base_t, /) -> logger_handle_h:
|
|
483
529
|
|
484
530
|
|
485
531
|
def _HandleForInterceptions(
|
486
|
-
intercepted:
|
532
|
+
intercepted: base_t, interceptor: base_t, /
|
487
533
|
) -> logger_handle_h:
|
488
534
|
""""""
|
489
535
|
|
490
|
-
def handle_p(_:
|
491
|
-
duplicate =
|
536
|
+
def handle_p(_: base_t, record: l.LogRecord, /) -> None:
|
537
|
+
duplicate = l.makeLogRecord(record.__dict__)
|
492
538
|
duplicate.msg = f"{record.msg} :{intercepted.name}:"
|
493
539
|
interceptor.handle(duplicate)
|
494
540
|
|
logger_36/version.py
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
logger_36/__init__.py,sha256=3BtAgxFb14e9zzC5fXwqSQxstsd3BO0b_KVu3_wbLwg,2592
|
2
|
+
logger_36/content.py,sha256=clHYYUKa8n4qef6PVlUV4mFHRRf6fnm9wEd2fu9oagA,2381
|
3
|
+
logger_36/exception.py,sha256=YNT4S_gvz7WQUSWILFAwI01h5-BVw1d0oT97zjnw3dU,4575
|
4
|
+
logger_36/gpu.py,sha256=BOumedCAPWvCo7J-KJ3XE-jr5S0KSmgcFv_S4QKRPO8,2252
|
5
|
+
logger_36/handler.py,sha256=hEKhfsKHhg8UqSrBTVe7w0lubf9SSkuGMi81oXwjPoo,6326
|
6
|
+
logger_36/memory.py,sha256=szJVk4UTXsbYv3B-W9LFttf1F3j86GXHsKgEUOsXKl4,2743
|
7
|
+
logger_36/storage.py,sha256=sCxkHQH4xMaseweK1p2M1j0j2PxNPpy9MytPdg1sKiQ,2239
|
8
|
+
logger_36/system.py,sha256=cgOMF_OneYeIJDMbIbIDx96EZss2uAdkk8QofOC7O1U,2251
|
9
|
+
logger_36/time.py,sha256=Uw1jQtY1njsRuIPRAXX44v4nPOo84MSBu_WK_YCRzQs,2324
|
10
|
+
logger_36/version.py,sha256=eAXepMLNtMw0muvMucofZ1LJ6BBOIZKujqvtOs93Qho,2205
|
11
|
+
logger_36/api/logger.py,sha256=TE3ATbymeWX-wBKBFkVz2FxUyJnaqY7vzFwAONVsp2o,2233
|
12
|
+
logger_36/api/storage.py,sha256=KT52AGR37nsMrhKTVfG8R-Dc7lmCXjWML18cOqqCXZY,2239
|
13
|
+
logger_36/catalog/config/console_rich.py,sha256=lAa5Ev5BhXvmQzfIt1FNihMNUQJFlXaIzNanAMdgtd0,2861
|
14
|
+
logger_36/catalog/config/optional.py,sha256=HaN6mbx7gHBBppNvUw1ckhYTOrlYqb-b_r0mzPcHPjM,2398
|
15
|
+
logger_36/catalog/handler/console.py,sha256=tLMroj95xt_IC9Vra4M5TCDRKrU4mSkfvUg9GliQ_l8,4402
|
16
|
+
logger_36/catalog/handler/console_rich.py,sha256=gkRnbhwyFFrS4nGvgUn9lElh7YNCAaC2-7dAex5bHzI,8592
|
17
|
+
logger_36/catalog/handler/file.py,sha256=hCb21GahjeRbBJGtPsa2PPme7LmlZ8ftF3Q_BMKRiA8,4865
|
18
|
+
logger_36/catalog/handler/generic.py,sha256=Y6rxfKkWe9cA196ntt6p0_rcjEeESGFCKWVlo1WIzW0,9335
|
19
|
+
logger_36/catalog/logger/chronos.py,sha256=ocY13f98EfknU7wZCv0FS9Xb7pTNaWCPSusXFIEvEd4,2437
|
20
|
+
logger_36/catalog/logger/gpu.py,sha256=lzrkqrMnXsszRB_TiHFqnNNI7JhNat8qL2OSlnHDe5c,3412
|
21
|
+
logger_36/catalog/logger/memory.py,sha256=CWhr2J4BqArJxzH6tS-ZThr-rYPAQGtuLn0pP7Iryfg,4685
|
22
|
+
logger_36/catalog/logger/system.py,sha256=KXP2jdPd-ACFNdA0wWdmOLwuxt4baUvXkuChyOHyfy0,3066
|
23
|
+
logger_36/config/issue.py,sha256=G-i5p6lhZCLAOa-VTMyL9ZonvGCvhdoQ5KZdSWgP-FU,2267
|
24
|
+
logger_36/config/memory.py,sha256=yCX5phsB_KJMr5xHpVUeOHFhAA7p_8yahP3X28VndOY,2217
|
25
|
+
logger_36/config/message.py,sha256=yfbMO_Jk1IbWvT6Lp6hVpID2Tr99cuiJ-ZaMBesIFXw,2527
|
26
|
+
logger_36/config/system.py,sha256=HD8ZuwsXhEAExeZrww8YoDkQGMs4T5RDqQMb1W4qVgc,2477
|
27
|
+
logger_36/constant/error.py,sha256=LzsS_P1IoH3ct_ifNWi9LzJ-X_Y5DN1naTLwwIFzDQA,2827
|
28
|
+
logger_36/constant/generic.py,sha256=t6aRb66_NHwMhR1p7BZ4QXTU2jpLz-H5YAL4PuMtKx8,2244
|
29
|
+
logger_36/constant/handler.py,sha256=PQUehMK9Yg0_rBDcMc8xpUbAsCauCLy_eS_ntiWew1Y,2378
|
30
|
+
logger_36/constant/issue.py,sha256=01l8itRPWGS5F6gXtsXUJgGR-4lS1Eu3_YeKC-khKLw,2315
|
31
|
+
logger_36/constant/logger.py,sha256=2qRkteblpbHrq9x0aiw9MPquyXrSRd6_yMQnPEhFp2U,2468
|
32
|
+
logger_36/constant/memory.py,sha256=ZL1MwbdtNsrCrOwzEyfTsfOoOsRBTJtbbf3otHGnxXo,2343
|
33
|
+
logger_36/constant/message.py,sha256=Ys_CAyhENlT8Z3rr-AxO4hjdl1jLsKzVSPQ8wqLOCPQ,2838
|
34
|
+
logger_36/constant/record.py,sha256=9Q28lVH_s0og4v74delgwIPAJ9G28I5rBM-brXcoY80,2308
|
35
|
+
logger_36/constant/system.py,sha256=G2mzBTxRXoJMxb53TnmBaceMJC_q3WonoCG7y6nC_R8,2430
|
36
|
+
logger_36/instance/logger.py,sha256=oTw5svRzKRJKvGrrZUtutJIOjp5UISft3fl0Ze7DOBE,2241
|
37
|
+
logger_36/instance/loggers.py,sha256=RCWpC1NPAf6vXnFc9NqsSALv-x-FEzcH6k_OlxTxeQk,2251
|
38
|
+
logger_36/task/inspection.py,sha256=KZzmQyREQ6VmBWCLyNIYIOOISW9C_fC9TWTSX90zGDk,5019
|
39
|
+
logger_36/task/storage.py,sha256=2B4OU7RqpUe98-pY9fadfnW8aFwxtsLSRGKkBtGWn-k,5686
|
40
|
+
logger_36/task/format/memory.py,sha256=jpQS8tAdxy7GM_FzqEIJUU3m-6O9iX-jiyO7gx5YwR8,4266
|
41
|
+
logger_36/task/format/message.py,sha256=T2V2gUlUQqSojyRrz4I4uAHwNe6eBEsuAe6V-LTyx0k,3867
|
42
|
+
logger_36/task/format/rule.py,sha256=vkf-HivFb4VqV2GeOPVqMAp99krtziI-kXhox3UVnzw,2873
|
43
|
+
logger_36/task/measure/chronos.py,sha256=1kVhu6jZlNAtNWQQh8ZVuRwZIAC9gGz3_ul1tn0t4Yw,3055
|
44
|
+
logger_36/task/measure/memory.py,sha256=OjU5EYFH8SnzlCQKAoiXvauUlwQYOrH34jFXTVYF0jE,2517
|
45
|
+
logger_36/type/handler.py,sha256=7M8f8U-zedzo-1AR7iIxHnzRHsuDj9IM0WtrqG2GMY0,6902
|
46
|
+
logger_36/type/issue.py,sha256=2rGsFqaQJCbeml9xN08mN_nK79L8qscaS_0ws36Y0bI,3214
|
47
|
+
logger_36/type/logger.py,sha256=4cCa-u1ktDdlj96aOWz6OsDJ_WhuN7eKEEALIHDS9NY,20451
|
48
|
+
logger_36/type/loggers.py,sha256=znqxWBnfQxvkg3VUfbTUvt3S6Kq0DAzWWepxQDt9suI,2871
|
49
|
+
logger_36-2025.6.dist-info/METADATA,sha256=AQ37dDMn1ZG7E3X5x29OR4_GaeG_FWcVkjew0B9hbzw,6505
|
50
|
+
logger_36-2025.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
51
|
+
logger_36-2025.6.dist-info/top_level.txt,sha256=sM95BTMWmslEEgR_1pzwZsOeSp8C_QBiu8ImbFr0XLc,10
|
52
|
+
logger_36-2025.6.dist-info/RECORD,,
|
@@ -1,52 +0,0 @@
|
|
1
|
-
logger_36/__init__.py,sha256=R2KOBgWqAFZz7wZXXlRu32B0e1-jJtbnJvzKueCoPjw,2596
|
2
|
-
logger_36/content.py,sha256=ni9gdYYNZoDa91KNianWBluOBe9KxZMZtzalcBS6vhE,2357
|
3
|
-
logger_36/exception.py,sha256=URyi0OX9fh7QAyJ6eVbHW8mO_RDrBoWIcqvB_h2FBNo,3429
|
4
|
-
logger_36/gpu.py,sha256=YYFk6aYQrBDJfxQaDm-ar16T6SlOSL6jJWTOgvpF4EU,2244
|
5
|
-
logger_36/handler.py,sha256=vg8LOD0YzGQxyoKB7qr7c4rueRwp-sDF1svDHwffumg,6565
|
6
|
-
logger_36/memory.py,sha256=FTc3qCeMqnCNvHJ4Yds73noPENQx_U1MYB-R4LLUjVQ,2682
|
7
|
-
logger_36/storage.py,sha256=TNfIXEfHcjixv75wocUyqwX62iDYsor4srRqC3FNzbc,2231
|
8
|
-
logger_36/system.py,sha256=xzm6cMeTaCX9VX9ZRXUXgfqoT9oUtv3W2o_H2W0P-4Q,2243
|
9
|
-
logger_36/time.py,sha256=_CtpQeUZdsUNGNfwzhoWUiUvawRgmonqwZPHouzWf5M,2308
|
10
|
-
logger_36/version.py,sha256=TmuyLb-2leESnpcl63Z0hezoJcxGma4k4K_pW7TL6SI,2205
|
11
|
-
logger_36/api/logger.py,sha256=Wg2nzQeuRVZ4v-oy3Q2KdYsHSzF9v7a0Fk6BzLnbkYw,2225
|
12
|
-
logger_36/api/storage.py,sha256=evKVqIsslA5X82LaZ2HQDxp7ltyNOn8Tr-3-Pic3eUo,2231
|
13
|
-
logger_36/catalog/config/console_rich.py,sha256=iyPFozVpw18qkRTBovhb2X2WM93MW5QqgwGQDSzUijI,2866
|
14
|
-
logger_36/catalog/handler/console.py,sha256=KL8oGdtQUUE8I5Pc_5wmD1MdDSw8E7dpybkzmFWKRUY,4247
|
15
|
-
logger_36/catalog/handler/console_rich.py,sha256=J1qb9Dd_GVKxGoDUw8ibg54YjR0pgaDo6evR9IUzYT8,8376
|
16
|
-
logger_36/catalog/handler/file.py,sha256=Ryb8ZMutOYgLmcNszK25yc9MqRn2qu6ACzvjNoeVxiA,4711
|
17
|
-
logger_36/catalog/handler/generic.py,sha256=ntHrrRg4nb7LPjfwxM9U7AFj-azubrCuFYJKlhJ6el8,9144
|
18
|
-
logger_36/catalog/logger/chronos.py,sha256=7_Y_HxRHwwHyjOb2v4Y3CxMGCaJBWm7q8wlw05jZGvs,2447
|
19
|
-
logger_36/catalog/logger/gpu.py,sha256=KYCQN2wD9sxzUrcVS9633h0BmvaFMW-aniA6QK50H2g,3423
|
20
|
-
logger_36/catalog/logger/memory.py,sha256=xVPzFPL0v0X2yyjqxA3YIb8CGB2VMP0qz9c_PILatlE,4700
|
21
|
-
logger_36/catalog/logger/system.py,sha256=WRDlh0tr8NYp6AeVjLkmzuBMwtJxSokl4_mMJRH9OBU,3076
|
22
|
-
logger_36/config/issue.py,sha256=G-i5p6lhZCLAOa-VTMyL9ZonvGCvhdoQ5KZdSWgP-FU,2267
|
23
|
-
logger_36/config/logger.py,sha256=9vQ8m1sJsK8tjnh5SZEKzofqeVJbsULTm-ev2rk0x7M,3760
|
24
|
-
logger_36/config/memory.py,sha256=yCX5phsB_KJMr5xHpVUeOHFhAA7p_8yahP3X28VndOY,2217
|
25
|
-
logger_36/config/message.py,sha256=yfbMO_Jk1IbWvT6Lp6hVpID2Tr99cuiJ-ZaMBesIFXw,2527
|
26
|
-
logger_36/config/system.py,sha256=HD8ZuwsXhEAExeZrww8YoDkQGMs4T5RDqQMb1W4qVgc,2477
|
27
|
-
logger_36/constant/error.py,sha256=1gdnCwUu3d3ThL4AKxzjn7ijSTBWlr2g-8cAKbubl4A,2825
|
28
|
-
logger_36/constant/generic.py,sha256=t6aRb66_NHwMhR1p7BZ4QXTU2jpLz-H5YAL4PuMtKx8,2244
|
29
|
-
logger_36/constant/handler.py,sha256=cBf_bPB9fceCuIpzmqj345vaas-kx17YRO-rFF3Cvms,2338
|
30
|
-
logger_36/constant/issue.py,sha256=01l8itRPWGS5F6gXtsXUJgGR-4lS1Eu3_YeKC-khKLw,2315
|
31
|
-
logger_36/constant/logger.py,sha256=biZ-sE3PzwD2oV1qJ2epNN79BETMq7XOvgRAccqHhVQ,2676
|
32
|
-
logger_36/constant/memory.py,sha256=ZL1MwbdtNsrCrOwzEyfTsfOoOsRBTJtbbf3otHGnxXo,2343
|
33
|
-
logger_36/constant/message.py,sha256=Ys_CAyhENlT8Z3rr-AxO4hjdl1jLsKzVSPQ8wqLOCPQ,2838
|
34
|
-
logger_36/constant/record.py,sha256=9Q28lVH_s0og4v74delgwIPAJ9G28I5rBM-brXcoY80,2308
|
35
|
-
logger_36/constant/system.py,sha256=G2mzBTxRXoJMxb53TnmBaceMJC_q3WonoCG7y6nC_R8,2430
|
36
|
-
logger_36/instance/logger.py,sha256=ttKjl9MD7FUjqCWjv5w2hmmpDYxgaORcYf9NaaE9W_M,2246
|
37
|
-
logger_36/instance/loggers.py,sha256=RCWpC1NPAf6vXnFc9NqsSALv-x-FEzcH6k_OlxTxeQk,2251
|
38
|
-
logger_36/task/inspection.py,sha256=f9VkVrwMJ_ixV9rFu3XUNpmCbEgoo1tssqd2nMeGYLI,5028
|
39
|
-
logger_36/task/storage.py,sha256=rMqcVieK9KUEqE3fZWu2M1K99KCVzjsB4baUph5ITbs,5700
|
40
|
-
logger_36/task/format/memory.py,sha256=jpQS8tAdxy7GM_FzqEIJUU3m-6O9iX-jiyO7gx5YwR8,4266
|
41
|
-
logger_36/task/format/message.py,sha256=T2V2gUlUQqSojyRrz4I4uAHwNe6eBEsuAe6V-LTyx0k,3867
|
42
|
-
logger_36/task/format/rule.py,sha256=OjNZQa_dZrH4Vhide6xm3EuV0lLC6tR1Q2_ZAxD7ito,2813
|
43
|
-
logger_36/task/measure/chronos.py,sha256=bgF_VQ65bpwloZ_uqN8N-hQPnUGgWV-u_vdodbwi59g,3061
|
44
|
-
logger_36/task/measure/memory.py,sha256=-V9UDFlDwmtUlfBzovcMgmsaYxwyoE1YmfXjXZ2iuNc,2512
|
45
|
-
logger_36/type/handler.py,sha256=HJ547swaN1bdxnxoU4cIinWUkww3YAQ1vYgtugWk5X4,6474
|
46
|
-
logger_36/type/issue.py,sha256=p2upR8vAXPkrnSwPuM3R1hmTkRwJwL1e658L6WwSWfQ,3220
|
47
|
-
logger_36/type/logger.py,sha256=tnA8T4W54HL9iV_0NiS_bLpq8fDj5bGYhl_ge96unVI,19136
|
48
|
-
logger_36/type/loggers.py,sha256=znqxWBnfQxvkg3VUfbTUvt3S6Kq0DAzWWepxQDt9suI,2871
|
49
|
-
logger_36-2025.4.dist-info/METADATA,sha256=34fPgMxKwPHoc-9v1YUus_suCITsZPzxiY7BW9wG3GY,6505
|
50
|
-
logger_36-2025.4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
51
|
-
logger_36-2025.4.dist-info/top_level.txt,sha256=sM95BTMWmslEEgR_1pzwZsOeSp8C_QBiu8ImbFr0XLc,10
|
52
|
-
logger_36-2025.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|