logger-36 2024.27__py3-none-any.whl → 2024.29__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/catalog/config/console_rich.py +9 -9
- logger_36/catalog/handler/console.py +12 -11
- logger_36/catalog/handler/console_rich.py +24 -42
- logger_36/catalog/handler/file.py +12 -11
- logger_36/catalog/handler/generic.py +33 -15
- logger_36/catalog/logger/chronos.py +1 -2
- logger_36/catalog/logger/gpu.py +0 -2
- logger_36/catalog/logger/memory.py +6 -9
- logger_36/catalog/logger/system.py +0 -2
- logger_36/config/logger.py +2 -2
- logger_36/config/message.py +5 -6
- logger_36/constant/logger.py +0 -4
- logger_36/constant/message.py +3 -1
- logger_36/constant/record.py +3 -4
- logger_36/content.py +1 -1
- logger_36/handler.py +10 -19
- logger_36/task/format/memory.py +2 -2
- logger_36/task/format/message.py +1 -25
- logger_36/task/measure/chronos.py +19 -9
- logger_36/type/handler.py +34 -73
- logger_36/type/issue.py +2 -2
- logger_36/type/logger.py +99 -57
- logger_36/version.py +1 -1
- {logger_36-2024.27.dist-info → logger_36-2024.29.dist-info}/METADATA +1 -1
- logger_36-2024.29.dist-info/RECORD +52 -0
- {logger_36-2024.27.dist-info → logger_36-2024.29.dist-info}/WHEEL +1 -1
- logger_36-2024.27.dist-info/RECORD +0 -52
- {logger_36-2024.27.dist-info → logger_36-2024.29.dist-info}/top_level.txt +0 -0
logger_36/type/logger.py
CHANGED
@@ -10,36 +10,47 @@ import sys as sstm
|
|
10
10
|
import traceback as tcbk
|
11
11
|
import types as t
|
12
12
|
import typing as h
|
13
|
-
from datetime import
|
13
|
+
from datetime import date as date_t
|
14
|
+
from datetime import datetime as date_time_t
|
15
|
+
from os import sep as FOLDER_SEPARATOR
|
14
16
|
from pathlib import Path as path_t
|
15
17
|
from traceback import TracebackException as traceback_t
|
16
18
|
|
17
19
|
from logger_36.config.issue import ISSUE_CONTEXT_END, ISSUE_CONTEXT_SEPARATOR
|
18
|
-
from logger_36.config.message import
|
20
|
+
from logger_36.config.message import (
|
21
|
+
DATE_FORMAT,
|
22
|
+
ELAPSED_TIME_SEPARATOR,
|
23
|
+
LONG_ENOUGH,
|
24
|
+
TIME_FORMAT,
|
25
|
+
)
|
19
26
|
from logger_36.constant.generic import NOT_PASSED
|
20
27
|
from logger_36.constant.issue import ISSUE_LEVEL_SEPARATOR, ORDER, order_h
|
21
28
|
from logger_36.constant.logger import (
|
22
|
-
HIDE_WHERE_KWARG,
|
23
29
|
LOGGER_NAME,
|
24
30
|
WARNING_LOGGER_NAME,
|
25
31
|
WARNING_TYPE_COMPILED_PATTERN,
|
26
32
|
logger_handle_h,
|
27
33
|
)
|
28
34
|
from logger_36.constant.memory import UNKNOWN_MEMORY_USAGE
|
29
|
-
from logger_36.constant.message import expected_op_h
|
30
|
-
from logger_36.constant.record import
|
31
|
-
|
32
|
-
|
35
|
+
from logger_36.constant.message import TIME_LENGTH_m_1, expected_op_h
|
36
|
+
from logger_36.constant.record import (
|
37
|
+
HIDE_WHERE_ATTR,
|
38
|
+
SHOW_W_RULE_ATTR,
|
39
|
+
STORE_MEMORY_ATTR,
|
33
40
|
)
|
34
|
-
from logger_36.task.format.message import
|
35
|
-
from logger_36.task.format.rule import Rule
|
41
|
+
from logger_36.task.format.message import MessageWithActualExpected
|
36
42
|
from logger_36.task.measure.chronos import ElapsedTime
|
37
43
|
from logger_36.task.measure.memory import CurrentUsage as CurrentMemoryUsage
|
38
44
|
from logger_36.type.issue import NewIssue, issue_t
|
39
45
|
|
46
|
+
logger_base_t = lggg.Logger
|
47
|
+
|
48
|
+
_DATE_TIME_ORIGIN = date_time_t.fromtimestamp(1970, None)
|
49
|
+
_DATE_ORIGIN = _DATE_TIME_ORIGIN.date()
|
50
|
+
|
40
51
|
|
41
52
|
@d.dataclass(slots=True, repr=False, eq=False)
|
42
|
-
class logger_t(
|
53
|
+
class logger_t(logger_base_t):
|
43
54
|
name_: d.InitVar[str] = LOGGER_NAME
|
44
55
|
level_: d.InitVar[int] = lggg.NOTSET
|
45
56
|
activate_wrn_interceptions: d.InitVar[bool] = True
|
@@ -51,8 +62,9 @@ class logger_t(lggg.Logger):
|
|
51
62
|
|
52
63
|
on_hold: list[lggg.LogRecord] = d.field(init=False, default_factory=list)
|
53
64
|
events: dict[int, int] = d.field(init=False, default_factory=dict)
|
54
|
-
|
55
|
-
|
65
|
+
last_message_now: date_time_t = d.field(init=False, default=_DATE_TIME_ORIGIN)
|
66
|
+
last_message_date: date_t = d.field(init=False, default=_DATE_ORIGIN)
|
67
|
+
any_handler_stores_memory: bool = d.field(init=False, default=False)
|
56
68
|
memory_usages: list[tuple[str, int]] = d.field(init=False, default_factory=list)
|
57
69
|
context_levels: list[str] = d.field(init=False, default_factory=list)
|
58
70
|
staged_issues: list[issue_t] = d.field(init=False, default_factory=list)
|
@@ -65,9 +77,9 @@ class logger_t(lggg.Logger):
|
|
65
77
|
self, name_: str, level_: int, activate_wrn_interceptions: bool
|
66
78
|
) -> None:
|
67
79
|
""""""
|
68
|
-
|
80
|
+
logger_base_t.__init__(self, name_)
|
69
81
|
self.setLevel(level_)
|
70
|
-
self.propagate = False # Part of
|
82
|
+
self.propagate = False # Part of logger_base_t.
|
71
83
|
|
72
84
|
for level in lggg.getLevelNamesMapping().values():
|
73
85
|
self.events[level] = 0
|
@@ -93,7 +105,7 @@ class logger_t(lggg.Logger):
|
|
93
105
|
logger.handle = t.MethodType(_HandleForWarnings(self), logger)
|
94
106
|
|
95
107
|
lggg.captureWarnings(True)
|
96
|
-
self.info("Warning Interception: ON"
|
108
|
+
self.info("Warning Interception: ON")
|
97
109
|
|
98
110
|
def _DeactivateWarningInterceptions(self) -> None:
|
99
111
|
""""""
|
@@ -103,7 +115,7 @@ class logger_t(lggg.Logger):
|
|
103
115
|
self.intercepted_wrn_handle = None
|
104
116
|
|
105
117
|
lggg.captureWarnings(False)
|
106
|
-
self.info("Warning Interception: OFF"
|
118
|
+
self.info("Warning Interception: OFF")
|
107
119
|
|
108
120
|
def ToggleWarningInterceptions(self, state: bool, /) -> None:
|
109
121
|
""""""
|
@@ -131,16 +143,13 @@ class logger_t(lggg.Logger):
|
|
131
143
|
intercepted = sorted(self.intercepted_log_handles.keys())
|
132
144
|
if intercepted.__len__() > 0:
|
133
145
|
as_str = ", ".join(intercepted)
|
134
|
-
self.info(
|
135
|
-
f"Now Intercepting LOGs from: {as_str}",
|
136
|
-
**HIDE_WHERE_KWARG,
|
137
|
-
)
|
146
|
+
self.info(f"Now Intercepting LOGs from: {as_str}")
|
138
147
|
elif self.intercepted_log_handles.__len__() > 0:
|
139
148
|
for name, handle in self.intercepted_log_handles.items():
|
140
149
|
logger = lggg.getLogger(name)
|
141
150
|
logger.handle = handle
|
142
151
|
self.intercepted_log_handles.clear()
|
143
|
-
self.info("Log Interception: OFF"
|
152
|
+
self.info("Log Interception: OFF")
|
144
153
|
|
145
154
|
@property
|
146
155
|
def max_memory_usage(self) -> int:
|
@@ -163,15 +172,15 @@ class logger_t(lggg.Logger):
|
|
163
172
|
def AddHandler(self, handler: lggg.Handler, should_hold_messages: bool, /) -> None:
|
164
173
|
""""""
|
165
174
|
self.should_hold_messages = should_hold_messages
|
166
|
-
|
175
|
+
logger_base_t.addHandler(self, handler)
|
167
176
|
|
168
177
|
extension = getattr(handler, "extension", None)
|
169
178
|
if extension is None:
|
170
|
-
|
179
|
+
should_store_memory_usage = False
|
171
180
|
else:
|
172
|
-
|
173
|
-
if
|
174
|
-
self.
|
181
|
+
should_store_memory_usage = getattr(extension, STORE_MEMORY_ATTR, False)
|
182
|
+
if should_store_memory_usage:
|
183
|
+
self.any_handler_stores_memory = True
|
175
184
|
|
176
185
|
extension = getattr(handler, "extension", handler.name)
|
177
186
|
if isinstance(extension, str):
|
@@ -181,51 +190,75 @@ class logger_t(lggg.Logger):
|
|
181
190
|
self.info(
|
182
191
|
f'New handler "{name}" with class "{type(handler).__name__}" and '
|
183
192
|
f"level {lggg.getLevelName(handler.level)}",
|
184
|
-
**HIDE_WHERE_KWARG,
|
185
193
|
)
|
186
194
|
|
187
195
|
def handle(self, record: lggg.LogRecord, /) -> None:
|
188
196
|
""""""
|
189
|
-
|
190
|
-
for hold in self.on_hold:
|
191
|
-
lggg.Logger.handle(self, hold)
|
192
|
-
self.on_hold.clear()
|
193
|
-
|
194
|
-
record.elapsed_time = ElapsedTime()
|
197
|
+
elapsed_time, now = ElapsedTime(should_return_now=True)
|
195
198
|
|
196
|
-
if self.
|
197
|
-
|
198
|
-
|
199
|
-
self.
|
200
|
-
(f"{record.module}.{record.funcName}.{record.lineno}", usage)
|
201
|
-
)
|
202
|
-
|
203
|
-
value, unit = FormattedMemoryUsage(usage, 1)
|
204
|
-
record.memory_usage = f"{value}{unit}"
|
199
|
+
if (self.on_hold.__len__() > 0) and not self.should_hold_messages:
|
200
|
+
for held in self.on_hold:
|
201
|
+
logger_base_t.handle(self, held)
|
202
|
+
self.on_hold.clear()
|
205
203
|
|
206
|
-
date
|
207
|
-
if date != self.last_message_date:
|
204
|
+
if (date := now.date()) != self.last_message_date:
|
208
205
|
self.last_message_date = date
|
209
206
|
# levelno: Added for management by logging.Logger.handle.
|
210
207
|
date_record = lggg.makeLogRecord(
|
211
208
|
{
|
212
209
|
"name": self.name,
|
213
210
|
"levelno": lggg.INFO,
|
214
|
-
"msg": f"DATE: {date}",
|
211
|
+
"msg": f"DATE: {date.strftime(DATE_FORMAT)}",
|
215
212
|
SHOW_W_RULE_ATTR: True,
|
216
213
|
}
|
217
214
|
)
|
218
215
|
if self.should_hold_messages:
|
219
216
|
self.on_hold.append(date_record)
|
220
217
|
else:
|
221
|
-
|
218
|
+
logger_base_t.handle(self, date_record)
|
219
|
+
|
220
|
+
# When.
|
221
|
+
if now - self.last_message_now > LONG_ENOUGH:
|
222
|
+
record.when_or_elapsed = now.strftime(TIME_FORMAT)
|
223
|
+
else:
|
224
|
+
record.when_or_elapsed = (
|
225
|
+
f"{ELAPSED_TIME_SEPARATOR}{elapsed_time:.<{TIME_LENGTH_m_1}}"
|
226
|
+
)
|
227
|
+
self.last_message_now = now
|
228
|
+
|
229
|
+
# Where.
|
230
|
+
# Memory usage is also stored if there are no handlers yet, just in case.
|
231
|
+
should_store_where = self.any_handler_stores_memory or not self.hasHandlers()
|
232
|
+
should_show_where = (record.levelno != lggg.INFO) and not hasattr(
|
233
|
+
record, HIDE_WHERE_ATTR
|
234
|
+
)
|
235
|
+
if should_store_where or should_show_where:
|
236
|
+
module = path_t(record.pathname)
|
237
|
+
for path in sstm.path:
|
238
|
+
if module.is_relative_to(path):
|
239
|
+
module = module.relative_to(path).with_suffix("")
|
240
|
+
module = str(module).replace(FOLDER_SEPARATOR, ".")
|
241
|
+
break
|
242
|
+
else:
|
243
|
+
module = record.module
|
244
|
+
where = f"{module}:{record.funcName}:{record.lineno}"
|
245
|
+
if should_show_where:
|
246
|
+
record.where = where
|
247
|
+
else:
|
248
|
+
where = None
|
249
|
+
|
250
|
+
# How.
|
251
|
+
record.level_first_letter = record.levelname[0]
|
252
|
+
|
253
|
+
# What.
|
254
|
+
if not isinstance(record.msg, str):
|
255
|
+
record.msg = str(record.msg)
|
222
256
|
|
223
257
|
if self.should_hold_messages:
|
224
258
|
self.on_hold.append(record)
|
225
259
|
else:
|
226
|
-
|
260
|
+
logger_base_t.handle(self, record)
|
227
261
|
|
228
|
-
self.events[record.levelno] += 1
|
229
262
|
if (self.exit_on_critical and (record.levelno is lggg.CRITICAL)) or (
|
230
263
|
self.exit_on_error and (record.levelno is lggg.ERROR)
|
231
264
|
):
|
@@ -233,6 +266,11 @@ class logger_t(lggg.Logger):
|
|
233
266
|
# __post_init__ set self.exit_on_critical if self.exit_on_error.
|
234
267
|
sstm.exit(1)
|
235
268
|
|
269
|
+
self.events[record.levelno] += 1
|
270
|
+
|
271
|
+
if should_store_where:
|
272
|
+
self.memory_usages.append((where, CurrentMemoryUsage()))
|
273
|
+
|
236
274
|
def Log(
|
237
275
|
self,
|
238
276
|
message: str,
|
@@ -248,7 +286,7 @@ class logger_t(lggg.Logger):
|
|
248
286
|
""""""
|
249
287
|
if isinstance(level, str):
|
250
288
|
level = lggg.getLevelNamesMapping()[level.upper()]
|
251
|
-
message =
|
289
|
+
message = MessageWithActualExpected(
|
252
290
|
message,
|
253
291
|
actual=actual,
|
254
292
|
expected=expected,
|
@@ -292,7 +330,10 @@ class logger_t(lggg.Logger):
|
|
292
330
|
|
293
331
|
def DisplayRule(self, /, *, text: str | None = None, color: str = "white") -> None:
|
294
332
|
""""""
|
295
|
-
self.
|
333
|
+
for handler in self.handlers:
|
334
|
+
DisplayRule = getattr(handler, "DisplayRule", None)
|
335
|
+
if DisplayRule is not None:
|
336
|
+
DisplayRule(text=text, color=color)
|
296
337
|
|
297
338
|
def AddContextLevel(self, new_level: str, /) -> None:
|
298
339
|
""""""
|
@@ -355,7 +396,7 @@ class logger_t(lggg.Logger):
|
|
355
396
|
|
356
397
|
if order not in ORDER:
|
357
398
|
raise ValueError(
|
358
|
-
|
399
|
+
MessageWithActualExpected(
|
359
400
|
"Invalid commit order",
|
360
401
|
actual=order,
|
361
402
|
expected=f"One of {str(ORDER)[1:-1]}",
|
@@ -377,17 +418,18 @@ class logger_t(lggg.Logger):
|
|
377
418
|
formatted = "\n".join(lines)
|
378
419
|
"""
|
379
420
|
|
421
|
+
hide_where = {HIDE_WHERE_ATTR: None}
|
380
422
|
if unified:
|
381
423
|
level, _ = issues[0].split(ISSUE_LEVEL_SEPARATOR, maxsplit=1)
|
382
424
|
wo_level = []
|
383
425
|
for issue in issues:
|
384
426
|
_, issue = issue.split(ISSUE_LEVEL_SEPARATOR, maxsplit=1)
|
385
427
|
wo_level.append(issue)
|
386
|
-
self.log(int(level), "\n".join(wo_level), stacklevel=2)
|
428
|
+
self.log(int(level), "\n".join(wo_level), stacklevel=2, extra=hide_where)
|
387
429
|
else:
|
388
430
|
for issue in issues:
|
389
431
|
level, issue = issue.split(ISSUE_LEVEL_SEPARATOR, maxsplit=1)
|
390
|
-
self.log(int(level), issue, stacklevel=2)
|
432
|
+
self.log(int(level), issue, stacklevel=2, extra=hide_where)
|
391
433
|
self.staged_issues.clear()
|
392
434
|
|
393
435
|
def __enter__(self) -> None:
|
@@ -406,10 +448,10 @@ class logger_t(lggg.Logger):
|
|
406
448
|
return False
|
407
449
|
|
408
450
|
|
409
|
-
def _HandleForWarnings(interceptor:
|
451
|
+
def _HandleForWarnings(interceptor: logger_base_t, /) -> logger_handle_h:
|
410
452
|
""""""
|
411
453
|
|
412
|
-
def handle_p(_:
|
454
|
+
def handle_p(_: logger_base_t, record: lggg.LogRecord, /) -> None:
|
413
455
|
pieces = WARNING_TYPE_COMPILED_PATTERN.match(record.msg)
|
414
456
|
if pieces is None:
|
415
457
|
# The warning message does not follow the default format.
|
@@ -435,11 +477,11 @@ def _HandleForWarnings(interceptor: lggg.Logger, /) -> logger_handle_h:
|
|
435
477
|
|
436
478
|
|
437
479
|
def _HandleForInterceptions(
|
438
|
-
intercepted:
|
480
|
+
intercepted: logger_base_t, interceptor: logger_base_t, /
|
439
481
|
) -> logger_handle_h:
|
440
482
|
""""""
|
441
483
|
|
442
|
-
def handle_p(_:
|
484
|
+
def handle_p(_: logger_base_t, record: lggg.LogRecord, /) -> None:
|
443
485
|
duplicate = lggg.makeLogRecord(record.__dict__)
|
444
486
|
duplicate.msg = f"{record.msg} :{intercepted.name}:"
|
445
487
|
interceptor.handle(duplicate)
|
logger_36/version.py
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
logger_36/__init__.py,sha256=NtDTs3eMKaXTJeujmgj1um3cBVLti0tYuOsdtVk9o9Q,2269
|
2
|
+
logger_36/content.py,sha256=ni9gdYYNZoDa91KNianWBluOBe9KxZMZtzalcBS6vhE,2357
|
3
|
+
logger_36/exception.py,sha256=UsFcsAvd1L4aLj6h7T-DilDm6yO501HDYnGekibiMAU,3260
|
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=FPamC8R6aakwwSJ4-41eIPnI5eDVF1QjdoZc8H7gmdA,2206
|
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=of4C26UZcA10-dBrdRGWVk4u9NycX_9VIgINGevEB14,8330
|
16
|
+
logger_36/catalog/handler/file.py,sha256=JgtfBQfgQldxqogzAVYOquX3pLE-qOqnbhZbu9H3tXo,4699
|
17
|
+
logger_36/catalog/handler/generic.py,sha256=U1X2B7ptLWtdtiDh_Lri55JmygTPnY9wXwmFsPZcZuE,9002
|
18
|
+
logger_36/catalog/logger/chronos.py,sha256=7_Y_HxRHwwHyjOb2v4Y3CxMGCaJBWm7q8wlw05jZGvs,2447
|
19
|
+
logger_36/catalog/logger/gpu.py,sha256=QPESzp3V-Qhx2A99A5N3IsM9tA6ikqSPos0MKJyu-ls,3407
|
20
|
+
logger_36/catalog/logger/memory.py,sha256=Wv6thZ4ydM_x3mZkpz6XnOm7jaWjXWb3mEQuk4EKXb0,4693
|
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=HM8qCSEMGNMCzddjUUNBPGL-3d0qU-EmG5eW4ZQHW6A,2311
|
30
|
+
logger_36/constant/issue.py,sha256=01l8itRPWGS5F6gXtsXUJgGR-4lS1Eu3_YeKC-khKLw,2315
|
31
|
+
logger_36/constant/logger.py,sha256=QkaFk3I9JF83nkzrk8c1Jl0j_eSTEzGyeJbNgQdoSlE,2670
|
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=XaSeu-iBCa0N8HNpwCV7cLprj-lbOJocpTIKUgSOvsc,5668
|
40
|
+
logger_36/task/format/memory.py,sha256=WDwRwuZbYwNxXIe_xo-r0XJtFZ0gRnE6wgTaXx_fEbc,4259
|
41
|
+
logger_36/task/format/message.py,sha256=T2V2gUlUQqSojyRrz4I4uAHwNe6eBEsuAe6V-LTyx0k,3867
|
42
|
+
logger_36/task/format/rule.py,sha256=M4a8uW7FEvMI9f4s32A9-DoP0WVlLkyXamGnqbzZ65A,2797
|
43
|
+
logger_36/task/measure/chronos.py,sha256=OhQHPFKJvTEizpj7Uvysu8r9dTpzPgKz1SoTztlEcnI,3066
|
44
|
+
logger_36/task/measure/memory.py,sha256=eVw5WOYLyn8o4O4mMArdX2MzsVuhhNDovjYEkk-MIaU,2504
|
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=kYPiUOR_qs9DWBaHH4damx7xsh-OlFbYLHY1enyzn3w,18884
|
48
|
+
logger_36/type/loggers.py,sha256=znqxWBnfQxvkg3VUfbTUvt3S6Kq0DAzWWepxQDt9suI,2871
|
49
|
+
logger_36-2024.29.dist-info/METADATA,sha256=vV3RAljMWV9CptX6oIUtgz6sqQflABEhCCymI6-hBGw,6276
|
50
|
+
logger_36-2024.29.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
51
|
+
logger_36-2024.29.dist-info/top_level.txt,sha256=sM95BTMWmslEEgR_1pzwZsOeSp8C_QBiu8ImbFr0XLc,10
|
52
|
+
logger_36-2024.29.dist-info/RECORD,,
|
@@ -1,52 +0,0 @@
|
|
1
|
-
logger_36/__init__.py,sha256=NtDTs3eMKaXTJeujmgj1um3cBVLti0tYuOsdtVk9o9Q,2269
|
2
|
-
logger_36/content.py,sha256=jobWhMw249uLfi8d8RFpKQRyyMXD7YQg-DxPMqvj2xs,2348
|
3
|
-
logger_36/exception.py,sha256=UsFcsAvd1L4aLj6h7T-DilDm6yO501HDYnGekibiMAU,3260
|
4
|
-
logger_36/gpu.py,sha256=YYFk6aYQrBDJfxQaDm-ar16T6SlOSL6jJWTOgvpF4EU,2244
|
5
|
-
logger_36/handler.py,sha256=9KUu02RpKGKBR358gqS5G1Zut5C6MyBgGzRsQYFBAtY,6721
|
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=BHE8FGk7UVmYkZxuzPzeyQAKQ3Sf9l6PQlGieBCQ9-w,2206
|
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=FphhhrwYZ3BbdOjmmFa0xYSGag5Vi9t3eoU405NRNOY,2890
|
14
|
-
logger_36/catalog/handler/console.py,sha256=gSNFCoKfTFg7ID8lJjlbZuVi-4C5j-eQX1q_vllXL9s,4183
|
15
|
-
logger_36/catalog/handler/console_rich.py,sha256=L1sxLTbf2So88s1Y8tVygGJO71iIpDlYr9lbMJ5lHk0,8817
|
16
|
-
logger_36/catalog/handler/file.py,sha256=YBl0-1jBn4W0fm_WYg9zMHwFU9DRaDKOBQsLGle_BSs,4635
|
17
|
-
logger_36/catalog/handler/generic.py,sha256=wG6Z1-lHj_9o6cPurEVpPctFlec3BFeqx2mZU_krJt8,8379
|
18
|
-
logger_36/catalog/logger/chronos.py,sha256=eLqQw8N9vaGO23OCf5RrYDPbUeu7epUvDt9rH-dN7i0,2522
|
19
|
-
logger_36/catalog/logger/gpu.py,sha256=vUFSP17e7U4nenMi5IMlDiP3cZvXe6nqEDpoqzTavdg,3490
|
20
|
-
logger_36/catalog/logger/memory.py,sha256=Zel_UCnHqGAqf_YuKpvjt0OIOo9vwKYpFM9g_2bjir0,4790
|
21
|
-
logger_36/catalog/logger/system.py,sha256=FQ3w1zIN1ab6y8QYtcYDULhyJYy4iwTwHoDs8Mi2IdQ,3159
|
22
|
-
logger_36/config/issue.py,sha256=G-i5p6lhZCLAOa-VTMyL9ZonvGCvhdoQ5KZdSWgP-FU,2267
|
23
|
-
logger_36/config/logger.py,sha256=1uzuguWShCU13LtPBPs7tgP_iSnl3SE5hF-iqieaBYQ,3742
|
24
|
-
logger_36/config/memory.py,sha256=yCX5phsB_KJMr5xHpVUeOHFhAA7p_8yahP3X28VndOY,2217
|
25
|
-
logger_36/config/message.py,sha256=SP5hq83WU2gr1G4drne-HLRwArH_ciLzE8ffUGLutc0,2649
|
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=HM8qCSEMGNMCzddjUUNBPGL-3d0qU-EmG5eW4ZQHW6A,2311
|
30
|
-
logger_36/constant/issue.py,sha256=01l8itRPWGS5F6gXtsXUJgGR-4lS1Eu3_YeKC-khKLw,2315
|
31
|
-
logger_36/constant/logger.py,sha256=0GhemAQ_YBiRO5WQBuNTczuejyVu2IYCsgqPRIbL8es,2780
|
32
|
-
logger_36/constant/memory.py,sha256=ZL1MwbdtNsrCrOwzEyfTsfOoOsRBTJtbbf3otHGnxXo,2343
|
33
|
-
logger_36/constant/message.py,sha256=u7VH3mj_oW0W33UBIVVzZN1L7iQf4XW0BBr72w6y7bw,2745
|
34
|
-
logger_36/constant/record.py,sha256=zebZYR4buX1lGfc7IyuvEh8zOpk7hx0aS4pJ12H0flI,2311
|
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=XaSeu-iBCa0N8HNpwCV7cLprj-lbOJocpTIKUgSOvsc,5668
|
40
|
-
logger_36/task/format/memory.py,sha256=ECOdHjdxIqXivOwtcmwpLDMYUrutIeOTCn1L4d3-U8k,4241
|
41
|
-
logger_36/task/format/message.py,sha256=HuV8we1mqh7Xcd4vbwoC0mJ8f_PjtP4sX3WFM6W7Oew,4420
|
42
|
-
logger_36/task/format/rule.py,sha256=M4a8uW7FEvMI9f4s32A9-DoP0WVlLkyXamGnqbzZ65A,2797
|
43
|
-
logger_36/task/measure/chronos.py,sha256=PX7dESj0znstwAWW2tTQ5gcQuIlexzt1ZKcccyp-Ap0,2870
|
44
|
-
logger_36/task/measure/memory.py,sha256=eVw5WOYLyn8o4O4mMArdX2MzsVuhhNDovjYEkk-MIaU,2504
|
45
|
-
logger_36/type/handler.py,sha256=BXpevZhLq5V_IdUfi_LZA4czzlH2SGLpgvbqUBe5X10,8311
|
46
|
-
logger_36/type/issue.py,sha256=Y7OCLCzVt6Yvkecwj8HXLdZjg33oMxexc9XkYHzUhh4,3202
|
47
|
-
logger_36/type/logger.py,sha256=J08I5sw7Lr2bEDJo2aJc5b4LgTvU_5O4RCDoBnqsSEw,17432
|
48
|
-
logger_36/type/loggers.py,sha256=znqxWBnfQxvkg3VUfbTUvt3S6Kq0DAzWWepxQDt9suI,2871
|
49
|
-
logger_36-2024.27.dist-info/METADATA,sha256=4o_ByIvupgiMzQ6UUQBa-HN6bWoYPZgJ2D-DZgLgdoM,6276
|
50
|
-
logger_36-2024.27.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
51
|
-
logger_36-2024.27.dist-info/top_level.txt,sha256=sM95BTMWmslEEgR_1pzwZsOeSp8C_QBiu8ImbFr0XLc,10
|
52
|
-
logger_36-2024.27.dist-info/RECORD,,
|
File without changes
|