omlish 0.0.0.dev429__py3-none-any.whl → 0.0.0.dev430__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.
- omlish/__about__.py +2 -2
- omlish/lang/asyncs.py +2 -6
- omlish/lite/attrops.py +14 -9
- omlish/logs/all.py +37 -0
- omlish/logs/base.py +1 -2
- omlish/logs/callers.py +4 -4
- omlish/logs/infos.py +8 -8
- omlish/logs/levels.py +46 -13
- omlish/logs/modules.py +1 -1
- omlish/logs/protocols.py +1 -0
- omlish/logs/std/{adapters.py → loggers.py} +3 -0
- omlish/logs/times.py +3 -3
- omlish/logs/typed/types.py +1 -0
- {omlish-0.0.0.dev429.dist-info → omlish-0.0.0.dev430.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev429.dist-info → omlish-0.0.0.dev430.dist-info}/RECORD +19 -19
- {omlish-0.0.0.dev429.dist-info → omlish-0.0.0.dev430.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev429.dist-info → omlish-0.0.0.dev430.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev429.dist-info → omlish-0.0.0.dev430.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev429.dist-info → omlish-0.0.0.dev430.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/lang/asyncs.py
CHANGED
@@ -19,9 +19,7 @@ def as_async(fn: ta.Callable[P, T], *, wrap: bool = False) -> ta.Callable[P, ta.
|
|
19
19
|
##
|
20
20
|
|
21
21
|
|
22
|
-
async def async_list(
|
23
|
-
ai: ta.AsyncIterable[T],
|
24
|
-
) -> list[T]:
|
22
|
+
async def async_list(ai: ta.AsyncIterable[T]) -> list[T]:
|
25
23
|
"""Simply eagerly reads the full contents of a function call returning an async iterator."""
|
26
24
|
|
27
25
|
return [v async for v in ai]
|
@@ -30,9 +28,7 @@ async def async_list(
|
|
30
28
|
##
|
31
29
|
|
32
30
|
|
33
|
-
def sync_await(
|
34
|
-
aw: ta.Awaitable[T],
|
35
|
-
) -> T:
|
31
|
+
def sync_await(aw: ta.Awaitable[T]) -> T:
|
36
32
|
"""
|
37
33
|
Allows for the synchronous execution of async functions which will never actually *externally* await anything. These
|
38
34
|
functions are allowed to await any number of other functions - including contextmanagers and generators - so long as
|
omlish/lite/attrops.py
CHANGED
@@ -285,8 +285,6 @@ class AttrOps(ta.Generic[T]):
|
|
285
285
|
self._eq = _eq
|
286
286
|
return _eq
|
287
287
|
|
288
|
-
#
|
289
|
-
|
290
288
|
@property
|
291
289
|
def hash_eq(self) -> ta.Tuple[
|
292
290
|
ta.Callable[[T], int],
|
@@ -294,6 +292,8 @@ class AttrOps(ta.Generic[T]):
|
|
294
292
|
]:
|
295
293
|
return (self.hash, self.eq)
|
296
294
|
|
295
|
+
#
|
296
|
+
|
297
297
|
@property
|
298
298
|
def repr_hash_eq(self) -> ta.Tuple[
|
299
299
|
ta.Callable[[T], str],
|
@@ -304,20 +304,25 @@ class AttrOps(ta.Generic[T]):
|
|
304
304
|
|
305
305
|
#
|
306
306
|
|
307
|
+
class NOT_SET: # noqa
|
308
|
+
def __new__(cls, *args, **kwargs): # noqa
|
309
|
+
raise TypeError
|
310
|
+
|
307
311
|
def install(
|
308
312
|
self,
|
309
313
|
locals_dct: ta.MutableMapping[str, ta.Any],
|
310
314
|
*,
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
eq: bool = False,
|
315
|
+
repr: ta.Union[bool, ta.Type[NOT_SET]] = NOT_SET, # noqa
|
316
|
+
hash: ta.Union[bool, ta.Type[NOT_SET]] = NOT_SET, # noqa
|
317
|
+
eq: ta.Union[bool, ta.Type[NOT_SET]] = NOT_SET,
|
315
318
|
) -> 'AttrOps[T]':
|
316
|
-
if repr
|
319
|
+
if all(a is self.NOT_SET for a in (repr, hash, eq)):
|
320
|
+
repr = hash = eq = True # noqa
|
321
|
+
if repr:
|
317
322
|
locals_dct.update(__repr__=self.repr)
|
318
|
-
if hash
|
323
|
+
if hash:
|
319
324
|
locals_dct.update(__hash__=self.hash)
|
320
|
-
if eq
|
325
|
+
if eq:
|
321
326
|
locals_dct.update(__eq__=self.eq)
|
322
327
|
return self
|
323
328
|
|
omlish/logs/all.py
CHANGED
@@ -17,6 +17,10 @@ with _lang.auto_proxy_init(globals()):
|
|
17
17
|
JsonLoggingFormatter,
|
18
18
|
)
|
19
19
|
|
20
|
+
from .std.loggers import ( # noqa
|
21
|
+
StdLogger,
|
22
|
+
)
|
23
|
+
|
20
24
|
from .std.noisy import ( # noqa
|
21
25
|
silence_noisy_loggers,
|
22
26
|
)
|
@@ -26,10 +30,39 @@ with _lang.auto_proxy_init(globals()):
|
|
26
30
|
ProxyLoggingHandler,
|
27
31
|
)
|
28
32
|
|
33
|
+
from .std.records import ( # noqa
|
34
|
+
LoggingContextLogRecord,
|
35
|
+
)
|
36
|
+
|
37
|
+
from .base import ( # noqa
|
38
|
+
AnyLogger,
|
39
|
+
Logger,
|
40
|
+
AsyncLogger,
|
41
|
+
|
42
|
+
AnyNopLogger,
|
43
|
+
NopLogger,
|
44
|
+
AsyncNopLogger,
|
45
|
+
)
|
46
|
+
|
29
47
|
from .callers import ( # noqa
|
30
48
|
LoggingCaller,
|
31
49
|
)
|
32
50
|
|
51
|
+
from .contexts import ( # noqa
|
52
|
+
LoggingExcInfoTuple,
|
53
|
+
LoggingExcInfo,
|
54
|
+
|
55
|
+
LoggingContext,
|
56
|
+
)
|
57
|
+
|
58
|
+
from .infos import ( # noqa
|
59
|
+
LoggingSourceFileInfo,
|
60
|
+
LoggingThreadInfo,
|
61
|
+
LoggingProcessInfo,
|
62
|
+
LoggingMultiprocessingInfo,
|
63
|
+
LoggingAsyncioTaskInfo,
|
64
|
+
)
|
65
|
+
|
33
66
|
from .levels import ( # noqa
|
34
67
|
LogLevel,
|
35
68
|
|
@@ -59,3 +92,7 @@ with _lang.auto_proxy_init(globals()):
|
|
59
92
|
|
60
93
|
error_logging,
|
61
94
|
)
|
95
|
+
|
96
|
+
from .warnings import ( # noqa
|
97
|
+
LoggingSetupWarning,
|
98
|
+
)
|
omlish/logs/base.py
CHANGED
@@ -21,7 +21,6 @@ LoggingMsgFn = ta.Callable[[], ta.Union[str, tuple]] # ta.TypeAlias
|
|
21
21
|
|
22
22
|
|
23
23
|
class AnyLogger(Abstract, ta.Generic[T]):
|
24
|
-
@ta.final
|
25
24
|
def is_enabled_for(self, level: LogLevel) -> bool:
|
26
25
|
return level >= self.get_effective_level()
|
27
26
|
|
@@ -220,7 +219,7 @@ class AsyncLogger(AnyLogger[ta.Awaitable[None]], Abstract):
|
|
220
219
|
class AnyNopLogger(AnyLogger[T], Abstract):
|
221
220
|
@ta.final
|
222
221
|
def get_effective_level(self) -> LogLevel:
|
223
|
-
return 999
|
222
|
+
return -999
|
224
223
|
|
225
224
|
|
226
225
|
@ta.final
|
omlish/logs/callers.py
CHANGED
@@ -68,8 +68,8 @@ class LoggingCaller(ta.NamedTuple):
|
|
68
68
|
sinfo = sinfo[:-1]
|
69
69
|
|
70
70
|
return cls(
|
71
|
-
f.f_code.co_filename,
|
72
|
-
f.f_lineno or 0,
|
73
|
-
f.f_code.co_name,
|
74
|
-
sinfo,
|
71
|
+
file_path=f.f_code.co_filename,
|
72
|
+
line_no=f.f_lineno or 0,
|
73
|
+
name=f.f_code.co_name,
|
74
|
+
stack_info=sinfo,
|
75
75
|
)
|
omlish/logs/infos.py
CHANGED
@@ -35,8 +35,8 @@ class LoggingSourceFileInfo(ta.NamedTuple):
|
|
35
35
|
return None
|
36
36
|
|
37
37
|
return cls(
|
38
|
-
file_name,
|
39
|
-
module,
|
38
|
+
file_name=file_name,
|
39
|
+
module=module,
|
40
40
|
)
|
41
41
|
|
42
42
|
|
@@ -53,9 +53,9 @@ class LoggingThreadInfo(ta.NamedTuple):
|
|
53
53
|
@classmethod
|
54
54
|
def build(cls) -> 'LoggingThreadInfo':
|
55
55
|
return cls(
|
56
|
-
threading.get_ident(),
|
57
|
-
threading.get_native_id() if hasattr(threading, 'get_native_id') else None,
|
58
|
-
threading.current_thread().name,
|
56
|
+
ident=threading.get_ident(),
|
57
|
+
native_id=threading.get_native_id() if hasattr(threading, 'get_native_id') else None,
|
58
|
+
name=threading.current_thread().name,
|
59
59
|
)
|
60
60
|
|
61
61
|
|
@@ -70,7 +70,7 @@ class LoggingProcessInfo(ta.NamedTuple):
|
|
70
70
|
@classmethod
|
71
71
|
def build(cls) -> 'LoggingProcessInfo':
|
72
72
|
return cls(
|
73
|
-
os.getpid(),
|
73
|
+
pid=os.getpid(),
|
74
74
|
)
|
75
75
|
|
76
76
|
|
@@ -89,7 +89,7 @@ class LoggingMultiprocessingInfo(ta.NamedTuple):
|
|
89
89
|
return None
|
90
90
|
|
91
91
|
return cls(
|
92
|
-
mp.current_process().name,
|
92
|
+
process_name=mp.current_process().name,
|
93
93
|
)
|
94
94
|
|
95
95
|
|
@@ -116,5 +116,5 @@ class LoggingAsyncioTaskInfo(ta.NamedTuple):
|
|
116
116
|
return None
|
117
117
|
|
118
118
|
return cls(
|
119
|
-
task.get_name(), # Always non-None
|
119
|
+
name=task.get_name(), # Always non-None
|
120
120
|
)
|
omlish/logs/levels.py
CHANGED
@@ -22,36 +22,66 @@ class NamedLogLevel(int):
|
|
22
22
|
|
23
23
|
#
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
_CACHE: ta.ClassVar[ta.MutableMapping[int, 'NamedLogLevel']] = {}
|
26
|
+
|
27
|
+
@ta.overload
|
28
|
+
def __new__(cls, name: str, offset: int = 0, /) -> 'NamedLogLevel':
|
29
|
+
...
|
28
30
|
|
29
|
-
|
31
|
+
@ta.overload
|
32
|
+
def __new__(cls, i: int, /) -> 'NamedLogLevel':
|
33
|
+
...
|
34
|
+
|
35
|
+
def __new__(cls, x, offset=0, /):
|
36
|
+
if isinstance(x, str):
|
37
|
+
return cls(cls._INTS_BY_NAME[x.upper()] + offset)
|
38
|
+
elif not offset and (c := cls._CACHE.get(x)) is not None:
|
39
|
+
return c
|
40
|
+
else:
|
41
|
+
return super().__new__(cls, x + offset)
|
42
|
+
|
43
|
+
#
|
44
|
+
|
45
|
+
_name_and_offset: ta.Tuple[str, int]
|
30
46
|
|
31
47
|
@property
|
32
|
-
def
|
48
|
+
def name_and_offset(self) -> ta.Tuple[str, int]:
|
33
49
|
try:
|
34
|
-
return self.
|
50
|
+
return self._name_and_offset
|
35
51
|
except AttributeError:
|
36
52
|
pass
|
37
53
|
|
38
|
-
if (n := self.
|
54
|
+
if (n := self._NAMES_BY_INT.get(self)) is not None:
|
55
|
+
t = (n, 0)
|
56
|
+
else:
|
39
57
|
for n, i in self._NAME_INT_PAIRS: # noqa
|
40
58
|
if self >= i:
|
59
|
+
t = (n, (self - i))
|
41
60
|
break
|
42
61
|
else:
|
43
|
-
|
62
|
+
t = ('NOTSET', int(self))
|
63
|
+
|
64
|
+
self._name_and_offset = t
|
65
|
+
return t
|
66
|
+
|
67
|
+
@property
|
68
|
+
def exact_name(self) -> ta.Optional[str]:
|
69
|
+
n, o = self.name_and_offset
|
70
|
+
return n if not o else None
|
44
71
|
|
45
|
-
|
72
|
+
@property
|
73
|
+
def effective_name(self) -> str:
|
74
|
+
n, _ = self.name_and_offset
|
46
75
|
return n
|
47
76
|
|
48
77
|
#
|
49
78
|
|
50
|
-
def __repr__(self) -> str:
|
51
|
-
return f'{self.__class__.__name__}({int(self)})'
|
52
|
-
|
53
79
|
def __str__(self) -> str:
|
54
|
-
return self.exact_name or f'{self.effective_name
|
80
|
+
return self.exact_name or f'{self.effective_name}{int(self):+}'
|
81
|
+
|
82
|
+
def __repr__(self) -> str:
|
83
|
+
n, o = self.name_and_offset
|
84
|
+
return f'{self.__class__.__name__}({n!r}{f", {int(o)}" if o else ""})'
|
55
85
|
|
56
86
|
#
|
57
87
|
|
@@ -69,3 +99,6 @@ NamedLogLevel.WARNING = NamedLogLevel(logging.WARNING)
|
|
69
99
|
NamedLogLevel.INFO = NamedLogLevel(logging.INFO)
|
70
100
|
NamedLogLevel.DEBUG = NamedLogLevel(logging.DEBUG)
|
71
101
|
NamedLogLevel.NOTSET = NamedLogLevel(logging.NOTSET)
|
102
|
+
|
103
|
+
|
104
|
+
NamedLogLevel._CACHE.update({i: NamedLogLevel(i) for i in NamedLogLevel._NAMES_BY_INT}) # noqa
|
omlish/logs/modules.py
CHANGED
omlish/logs/protocols.py
CHANGED
@@ -23,6 +23,9 @@ class StdLogger(Logger):
|
|
23
23
|
def std(self) -> logging.Logger:
|
24
24
|
return self._std
|
25
25
|
|
26
|
+
def is_enabled_for(self, level: LogLevel) -> bool:
|
27
|
+
return self._std.isEnabledFor(level)
|
28
|
+
|
26
29
|
def get_effective_level(self) -> LogLevel:
|
27
30
|
return self._std.getEffectiveLevel()
|
28
31
|
|
omlish/logs/times.py
CHANGED
omlish/logs/typed/types.py
CHANGED
@@ -86,6 +86,7 @@ class TypedLoggerValue(Abstract, ta.Generic[T]):
|
|
86
86
|
def of(cls: ta.Type[TypedLoggerValueT], v: ta.Any) -> ta.Union[TypedLoggerValueT, AbsentTypedLoggerValue]:
|
87
87
|
return cls(v) if v is not ABSENT_TYPED_LOGGER_VALUE else ABSENT_TYPED_LOGGER_VALUE
|
88
88
|
|
89
|
+
@ta.final
|
89
90
|
@property
|
90
91
|
def v(self) -> T:
|
91
92
|
return self._v
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=hWUhAjMnMNft0GDUanNG2JIkoAwrhNLC_ZTd5BzHw0A,3575
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
@@ -416,7 +416,7 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
|
|
416
416
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
417
417
|
omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
|
418
418
|
omlish/lang/__init__.py,sha256=Ty5DkVFyGztlpYVEcEP1yTvLbflRFTo6IThN8dPMnbI,10096
|
419
|
-
omlish/lang/asyncs.py,sha256=
|
419
|
+
omlish/lang/asyncs.py,sha256=rfpLE2ZacVKGYB9DSFuMBurQzkPRjB1qljcS3sIuSsw,1767
|
420
420
|
omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
|
421
421
|
omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
|
422
422
|
omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
|
@@ -472,7 +472,7 @@ omlish/lite/__init__.py,sha256=cyZEpGob7XjU8DohyNxVe5CQRk4CQ5vrHL42OdhQb8w,148
|
|
472
472
|
omlish/lite/abstract.py,sha256=Z3kLviPNGLkmA8m8BZILzWxez_sP18OyzgMP3-c2-RI,4068
|
473
473
|
omlish/lite/args.py,sha256=ILJXAiN3KjIoJwY42aKpYPngUdxHIy9ssVIExFVz3fE,978
|
474
474
|
omlish/lite/asyncs.py,sha256=MMRbC38mbsgBPovGLjq4iBdn74DjMVzGc4nVZxN_DUY,441
|
475
|
-
omlish/lite/attrops.py,sha256=
|
475
|
+
omlish/lite/attrops.py,sha256=bUa2ILC4Z89-B1IWSac9XV_VvjKDnQXKDR0mZ6e9SMk,8764
|
476
476
|
omlish/lite/cached.py,sha256=ocQcppTwGdSnKPYMz75VoH526UUT8YtDJeRczBX0-wI,1306
|
477
477
|
omlish/lite/check.py,sha256=ytCkwZoKfOlJqylL-AGm8C2WfsWJd2q3kFbnZCzX3_M,13844
|
478
478
|
omlish/lite/configs.py,sha256=4-1uVxo-aNV7vMKa7PVNhM610eejG1WepB42-Dw2xQI,914
|
@@ -497,31 +497,31 @@ omlish/lite/types.py,sha256=QM9whf55r7TmmQBRApIWSlyVKsl1p_jcut_YheyZMFY,146
|
|
497
497
|
omlish/lite/typing.py,sha256=m2CyJTz2OVOCPRvp-0UuEx7oleZgXqs3rYXijE0bTsA,1280
|
498
498
|
omlish/lite/wrappers.py,sha256=d00Ls2kFHuogKd5wEBaU65VNCN10YXIZtiwu1mbMpmA,530
|
499
499
|
omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
500
|
-
omlish/logs/all.py,sha256=
|
501
|
-
omlish/logs/base.py,sha256=
|
502
|
-
omlish/logs/callers.py,sha256=
|
500
|
+
omlish/logs/all.py,sha256=_sU_2waB8FR9GuVrdxGLI145nGepd8c2LAHf2J4dbz4,1777
|
501
|
+
omlish/logs/base.py,sha256=VHPjSJjQzIRCe5nqgkmNORYclDJZayGucMy_WhITO1c,6650
|
502
|
+
omlish/logs/callers.py,sha256=F3VbeQJniw6RyfbeGBcxMGL3aeO5mgPizmJ8pa2RW88,2091
|
503
503
|
omlish/logs/contexts.py,sha256=dC84Wa__j0leSJw5SzP-ygsflfzIiqvmRnv9meD-Q_U,7523
|
504
|
-
omlish/logs/infos.py,sha256=
|
505
|
-
omlish/logs/levels.py,sha256=
|
506
|
-
omlish/logs/modules.py,sha256=
|
507
|
-
omlish/logs/protocols.py,sha256=
|
504
|
+
omlish/logs/infos.py,sha256=38bPi7v7vHawNlLp7Q7X6JS-q5s-JrwlDi08FY4xoy4,2621
|
505
|
+
omlish/logs/levels.py,sha256=Eze-k_LPgFzbNMnG10F2bRKfL3veQpIxiegvN5rGeWM,2909
|
506
|
+
omlish/logs/modules.py,sha256=wZ_PNCYhAaEdnGE5k0JvChcqn9nhtEpmwuH74Bwn5gg,266
|
507
|
+
omlish/logs/protocols.py,sha256=e_zizD3pQdYlU6bg3xGB3_ARUTcoHUfar_uLjCo-SPw,961
|
508
508
|
omlish/logs/standard.py,sha256=ppho-wDecGxUiRXOdCIlblmrQhqXZ0oQOGayy8N53XY,3237
|
509
|
-
omlish/logs/times.py,sha256=
|
509
|
+
omlish/logs/times.py,sha256=WUy92cUxMtttnj0PZryIxbLqEdWiiAVDUboRxqe2pYw,2594
|
510
510
|
omlish/logs/utils.py,sha256=fKvP342qBmE8wwTgUQ8Tf0-ATVhCm90UYBQt2pk0044,1883
|
511
511
|
omlish/logs/warnings.py,sha256=xyhDgiPy1p8Kp5D9sb_NZiBnQ26SUppaHqC27dtQzok,67
|
512
512
|
omlish/logs/std/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
513
|
-
omlish/logs/std/adapters.py,sha256=qRXusW8iGYF29C3cy1srb4pgJ0Fv5li8bUvnegxo9o8,1005
|
514
513
|
omlish/logs/std/configs.py,sha256=aDQahqBJXJpmQBaxXVK5S2xi_I_nrLLcCLTq6Q2K6EQ,1037
|
515
514
|
omlish/logs/std/filters.py,sha256=Z8tHOvBRiP-OYm2z5cwY-lYXRimNgferEARMwvwx5Pw,380
|
516
515
|
omlish/logs/std/handlers.py,sha256=uTWOT6oayBUEftKmJ8yo89ZP4plv5eQ8Lbcmt-IGl8c,469
|
517
516
|
omlish/logs/std/json.py,sha256=QJ5lywLsRsPyVno2nk2kOw-Z1z3bfrDiZzqcRUdWUMY,1382
|
517
|
+
omlish/logs/std/loggers.py,sha256=nJieUZ2iPO8iVYc72QDUBKLPhGw7yPd_RzR18zKUSck,1106
|
518
518
|
omlish/logs/std/noisy.py,sha256=hWpbseerZqlHdEPEajDTSmcRhx8LmmNAxz_7GBZAO9s,353
|
519
519
|
omlish/logs/std/proxy.py,sha256=9MVV5kbj9nwl3KZGtrYCIb5XTpv33f33zZ7P_B58fX0,2394
|
520
520
|
omlish/logs/std/records.py,sha256=muJA3KKjGm5mgsHXtOyrpaEZu553M-UviNgNvXdISXY,10718
|
521
521
|
omlish/logs/typed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
522
522
|
omlish/logs/typed/bindings.py,sha256=H_B-3LTGFlBIWYDJ8rei1VMfInE8KrBwRo3bJ_BgFj8,18184
|
523
523
|
omlish/logs/typed/contexts.py,sha256=MU1RqHtmYbnxoLfLhMZbTbRd-WfYEyeVo7_3VnG3rY0,4027
|
524
|
-
omlish/logs/typed/types.py,sha256=
|
524
|
+
omlish/logs/typed/types.py,sha256=DQKDT2v4bG1Cgv_LrhvTIHWBAIODs9b8E5jNI4jTRpU,14442
|
525
525
|
omlish/logs/typed/values.py,sha256=w8ukpJZ3lx_st7Mj7riP2squzGmMaz7OuUxw_NZCZsY,3261
|
526
526
|
omlish/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
527
527
|
omlish/manifests/base.py,sha256=wW-De-pU3cef-0vGsgo-ypftDwc3tCBxhRAzPtrdark,918
|
@@ -892,9 +892,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
892
892
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
893
893
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
894
894
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
895
|
-
omlish-0.0.0.
|
896
|
-
omlish-0.0.0.
|
897
|
-
omlish-0.0.0.
|
898
|
-
omlish-0.0.0.
|
899
|
-
omlish-0.0.0.
|
900
|
-
omlish-0.0.0.
|
895
|
+
omlish-0.0.0.dev430.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
896
|
+
omlish-0.0.0.dev430.dist-info/METADATA,sha256=iD6ksXPqkEoUuKrQg-U2gFrrtB3eCj9jzyhlaHtfGgs,19243
|
897
|
+
omlish-0.0.0.dev430.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
898
|
+
omlish-0.0.0.dev430.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
899
|
+
omlish-0.0.0.dev430.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
900
|
+
omlish-0.0.0.dev430.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|