omlish 0.0.0.dev432__py3-none-any.whl → 0.0.0.dev433__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 +3 -3
- omlish/lang/__init__.py +11 -3
- omlish/lang/imports/capture.py +491 -0
- omlish/lang/imports/lazy.py +0 -25
- omlish/lang/imports/proxy.py +62 -0
- omlish/lang/imports/proxyinit.py +28 -518
- omlish/lang/resources.py +1 -1
- omlish/logs/contexts.py +4 -3
- omlish/logs/std/records.py +29 -19
- omlish/logs/typed/bindings.py +84 -37
- omlish/logs/typed/types.py +16 -1
- omlish/marshal/__init__.py +1 -1
- omlish/typedvalues/__init__.py +1 -1
- {omlish-0.0.0.dev432.dist-info → omlish-0.0.0.dev433.dist-info}/METADATA +3 -3
- {omlish-0.0.0.dev432.dist-info → omlish-0.0.0.dev433.dist-info}/RECORD +19 -17
- {omlish-0.0.0.dev432.dist-info → omlish-0.0.0.dev433.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev432.dist-info → omlish-0.0.0.dev433.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev432.dist-info → omlish-0.0.0.dev433.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev432.dist-info → omlish-0.0.0.dev433.dist-info}/top_level.txt +0 -0
omlish/logs/std/records.py
CHANGED
@@ -236,22 +236,6 @@ class LoggingContextInfoRecordAdapters:
|
|
236
236
|
args=rec.args,
|
237
237
|
)
|
238
238
|
|
239
|
-
# FIXME: handled specially - all unknown attrs on LogRecord
|
240
|
-
# class Extra(Adapter[LoggingContextInfos.Extra]):
|
241
|
-
# _record_attrs: ta.ClassVar[ta.Mapping[str, ta.Union[ta.Any, ta.Tuple[ta.Any, ta.Any]]]] = dict()
|
242
|
-
#
|
243
|
-
# def info_to_record(self, info: ta.Optional[LoggingContextInfos.Extra]) -> ta.Mapping[str, ta.Any]:
|
244
|
-
# # FIXME:
|
245
|
-
# # if extra is not None:
|
246
|
-
# # for key in extra:
|
247
|
-
# # if (key in ["message", "asctime"]) or (key in rv.__dict__):
|
248
|
-
# # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
|
249
|
-
# # rv.__dict__[key] = extra[key]
|
250
|
-
# return dict()
|
251
|
-
#
|
252
|
-
# def record_to_info(self, rec: logging.LogRecord) -> ta.Optional[LoggingContextInfos.Extra]:
|
253
|
-
# return None
|
254
|
-
|
255
239
|
class Time(RequiredAdapter[LoggingContextInfos.Time]):
|
256
240
|
info_cls: ta.ClassVar[ta.Type[LoggingContextInfos.Time]] = LoggingContextInfos.Time
|
257
241
|
|
@@ -632,13 +616,20 @@ class LoggingContextLogRecord(logging.LogRecord):
|
|
632
616
|
# - exc_info: LoggingExcInfoTuple | None
|
633
617
|
# - func: str | None = None -> funcName
|
634
618
|
# - sinfo: str | None = None -> stack_info
|
619
|
+
#
|
635
620
|
|
636
621
|
def __init__(self, *, _logging_context: LoggingContext) -> None: # noqa
|
637
|
-
self._logging_context
|
622
|
+
self.__dict__.update(_logging_context=_logging_context)
|
638
623
|
|
639
624
|
for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_:
|
640
625
|
self.__dict__.update(ad.context_to_record(_logging_context))
|
641
626
|
|
627
|
+
_logging_context: LoggingContext
|
628
|
+
|
629
|
+
# FIXME: track extra
|
630
|
+
# def __setattr__(self, key, value):
|
631
|
+
# super().__setattr__(key, value)
|
632
|
+
|
642
633
|
|
643
634
|
##
|
644
635
|
|
@@ -651,10 +642,29 @@ class LogRecordLoggingContext(LoggingContext):
|
|
651
642
|
|
652
643
|
self._rec = rec
|
653
644
|
|
654
|
-
|
655
|
-
|
645
|
+
infos: ta.List[LoggingContextInfo] = [
|
646
|
+
info
|
656
647
|
for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_
|
657
648
|
if (info := ad.record_to_info(rec)) is not None
|
649
|
+
]
|
650
|
+
|
651
|
+
# FIXME:
|
652
|
+
# if extra is not None:
|
653
|
+
# for key in extra:
|
654
|
+
# if (key in ["message", "asctime"]) or (key in rv.__dict__):
|
655
|
+
# raise KeyError("Attempt to overwrite %r in LogRecord" % key)
|
656
|
+
# rv.__dict__[key] = extra[key]
|
657
|
+
|
658
|
+
if (extra := {
|
659
|
+
a: v
|
660
|
+
for a, v in rec.__dict__.items()
|
661
|
+
if a not in _KNOWN_STD_LOGGING_RECORD_ATTR_SET
|
662
|
+
}):
|
663
|
+
infos.append(LoggingContextInfos.Extra(extra))
|
664
|
+
|
665
|
+
self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
|
666
|
+
type(info): info
|
667
|
+
for info in infos
|
658
668
|
}
|
659
669
|
|
660
670
|
def get_info(self, ty: ta.Type[LoggingContextInfoT]) -> ta.Optional[LoggingContextInfoT]:
|
omlish/logs/typed/bindings.py
CHANGED
@@ -16,6 +16,7 @@ from ...lite.abstract import Abstract
|
|
16
16
|
from .types import TYPED_LOGGER_VALUE_OR_PROVIDER_OR_ABSENT_TYPES
|
17
17
|
from .types import TYPED_LOGGER_VALUE_OR_PROVIDER_TYPES
|
18
18
|
from .types import DefaultTypedLoggerValue
|
19
|
+
from .types import MultiTypedLoggerValue
|
19
20
|
from .types import TypedLoggerConstFieldValue
|
20
21
|
from .types import TypedLoggerField
|
21
22
|
from .types import TypedLoggerFieldValue
|
@@ -92,6 +93,9 @@ class TypedLoggerBindings(Abstract):
|
|
92
93
|
accept_value: ta.Callable[[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent], None]
|
93
94
|
accept_values: ta.Callable[[ta.Iterable[ta.Tuple[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent]]], None] # noqa
|
94
95
|
|
96
|
+
accept_multi_value: ta.Callable[[ta.Type[MultiTypedLoggerValue], MultiTypedLoggerValue], None] # noqa
|
97
|
+
accept_multi_values: ta.Callable[[ta.Iterable[ta.Tuple[ta.Type[MultiTypedLoggerValue], MultiTypedLoggerValue]]], None] # noqa
|
98
|
+
|
95
99
|
accept_const_values: ta.Callable[[ta.Iterable[ta.Tuple[ta.Type[TypedLoggerValue], TypedLoggerValueOrAbsent]]], None] # noqa
|
96
100
|
|
97
101
|
accept_value_wrapping: ta.Callable[[ta.Union['TypedLoggerValueWrapper', 'FullTypedLoggerBindings._ValueWrappingState']], None] # noqa
|
@@ -110,19 +114,11 @@ class FullTypedLoggerBindings(TypedLoggerBindings):
|
|
110
114
|
self,
|
111
115
|
*items: TypedLoggerBindingItem,
|
112
116
|
override: bool = False,
|
117
|
+
override_multis: bool = False,
|
113
118
|
) -> None:
|
114
119
|
kd: ta.Dict[str, TypedLoggerFieldValue] = {}
|
115
120
|
dup_kd: ta.Dict[str, ta.List[TypedLoggerFieldValue]] = {}
|
116
121
|
|
117
|
-
vd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent] = {}
|
118
|
-
dup_vd: ta.Dict[ta.Type[TypedLoggerValue], ta.List[TypedLoggerValueOrProviderOrAbsent]] = {}
|
119
|
-
|
120
|
-
cvd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrAbsent] = {}
|
121
|
-
|
122
|
-
vwl: ta.List[ta.Union[TypedLoggerValueWrapper, FullTypedLoggerBindings._ValueWrappingState]] = []
|
123
|
-
|
124
|
-
vst: TypedLoggerBindings._Visitor
|
125
|
-
|
126
122
|
if not override:
|
127
123
|
def add_kd(kd_k: str, kd_v: TypedLoggerFieldValue) -> None: # noqa
|
128
124
|
if kd_k in kd:
|
@@ -130,42 +126,71 @@ class FullTypedLoggerBindings(TypedLoggerBindings):
|
|
130
126
|
else:
|
131
127
|
kd[kd_k] = kd_v
|
132
128
|
|
129
|
+
def add_kds(it: 'ta.Iterable[ta.Tuple[str, TypedLoggerFieldValue]]') -> None: # noqa
|
130
|
+
collections.deque(itertools.starmap(add_kd, it), maxlen=0)
|
131
|
+
|
132
|
+
else:
|
133
|
+
add_kd = kd.__setitem__ # type: ignore[assignment]
|
134
|
+
add_kds = kd.update # type: ignore[assignment]
|
135
|
+
|
136
|
+
#
|
137
|
+
|
138
|
+
vd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent] = {}
|
139
|
+
dup_vd: ta.Dict[ta.Type[TypedLoggerValue], ta.List[TypedLoggerValueOrProviderOrAbsent]] = {}
|
140
|
+
|
141
|
+
if not override:
|
133
142
|
def add_vd(vd_k: 'ta.Type[TypedLoggerValue]', vd_v: TypedLoggerValueOrProviderOrAbsent) -> None: # noqa
|
134
143
|
if vd_k in vd:
|
135
144
|
dup_vd.setdefault(vd_k, []).append(vd_v)
|
136
145
|
else:
|
137
146
|
vd[vd_k] = vd_v
|
138
147
|
|
139
|
-
def add_kds(it: 'ta.Iterable[ta.Tuple[str, TypedLoggerFieldValue]]') -> None: # noqa
|
140
|
-
collections.deque(itertools.starmap(add_kd, it), maxlen=0)
|
141
|
-
|
142
148
|
def add_vds(it: 'ta.Iterable[ta.Tuple[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent]]') -> None: # noqa
|
143
149
|
collections.deque(itertools.starmap(add_vd, it), maxlen=0)
|
144
150
|
|
145
|
-
|
146
|
-
|
147
|
-
|
151
|
+
else:
|
152
|
+
add_vd = vd.__setitem__ # type: ignore[assignment]
|
153
|
+
add_vds = vd.update # type: ignore[assignment]
|
148
154
|
|
149
|
-
|
150
|
-
add_vds,
|
155
|
+
#
|
151
156
|
|
152
|
-
|
157
|
+
mvd: ta.Dict[ta.Type[MultiTypedLoggerValue], ta.List[MultiTypedLoggerValue]] = {}
|
153
158
|
|
154
|
-
|
155
|
-
)
|
159
|
+
if override_multis:
|
160
|
+
def add_mvd(mvd_k: 'ta.Type[MultiTypedLoggerValue]', mvd_v: MultiTypedLoggerValue) -> None: # noqa
|
161
|
+
try:
|
162
|
+
mvd_l = mvd[mvd_k]
|
163
|
+
except KeyError:
|
164
|
+
mvd_l = mvd[mvd_k] = []
|
165
|
+
mvd_l.append(mvd_v)
|
166
|
+
|
167
|
+
def add_mvds(it: 'ta.Iterable[ta.Tuple[ta.Type[MultiTypedLoggerValue], MultiTypedLoggerValue]]') -> None:
|
168
|
+
collections.deque(itertools.starmap(add_mvd, it), maxlen=0)
|
156
169
|
|
157
170
|
else:
|
158
|
-
|
159
|
-
|
160
|
-
|
171
|
+
add_mvd = mvd.__setitem__ # type: ignore[assignment]
|
172
|
+
add_mvds = mvd.update # type: ignore[assignment]
|
173
|
+
|
174
|
+
#
|
161
175
|
|
162
|
-
|
163
|
-
vd.update,
|
176
|
+
cvd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrAbsent] = {}
|
164
177
|
|
165
|
-
|
178
|
+
vwl: ta.List[ta.Union[TypedLoggerValueWrapper, FullTypedLoggerBindings._ValueWrappingState]] = []
|
166
179
|
|
167
|
-
|
168
|
-
|
180
|
+
vst = TypedLoggerBindings._Visitor( # noqa
|
181
|
+
add_kd,
|
182
|
+
add_kds,
|
183
|
+
|
184
|
+
add_vd,
|
185
|
+
add_vds,
|
186
|
+
|
187
|
+
add_mvd,
|
188
|
+
add_mvds,
|
189
|
+
|
190
|
+
cvd.update,
|
191
|
+
|
192
|
+
vwl.append,
|
193
|
+
)
|
169
194
|
|
170
195
|
for o in items:
|
171
196
|
o._typed_logger_visit_bindings(vst) # noqa
|
@@ -288,18 +313,22 @@ class ChainTypedLoggerBindings(TypedLoggerBindings):
|
|
288
313
|
kd: ta.Dict[str, TypedLoggerFieldValue] = {}
|
289
314
|
dup_kd: ta.Dict[str, ta.List[TypedLoggerFieldValue]] = {}
|
290
315
|
|
291
|
-
vd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent] = {}
|
292
|
-
dup_vd: ta.Dict[ta.Type[TypedLoggerValue], ta.List[TypedLoggerValueOrProviderOrAbsent]] = {}
|
293
|
-
|
294
|
-
pcv = dict(parent.const_value_map)
|
295
|
-
cvd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrAbsent] = {}
|
296
|
-
|
297
316
|
def add_kd(kd_k: str, kd_v: TypedLoggerFieldValue) -> None: # noqa
|
298
317
|
if kd_k in kd:
|
299
318
|
dup_kd.setdefault(kd_k, []).append(kd_v)
|
300
319
|
else:
|
301
320
|
kd[kd_k] = kd_v
|
302
321
|
|
322
|
+
def add_kds(it: 'ta.Iterable[ta.Tuple[str, TypedLoggerFieldValue]]') -> None: # noqa
|
323
|
+
collections.deque(itertools.starmap(add_kd, it), maxlen=0)
|
324
|
+
|
325
|
+
#
|
326
|
+
|
327
|
+
vd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent] = {}
|
328
|
+
dup_vd: ta.Dict[ta.Type[TypedLoggerValue], ta.List[TypedLoggerValueOrProviderOrAbsent]] = {}
|
329
|
+
|
330
|
+
pcv = dict(parent.const_value_map)
|
331
|
+
|
303
332
|
def add_vd(vd_k: 'ta.Type[TypedLoggerValue]', vd_v: TypedLoggerValueOrProviderOrAbsent) -> None: # noqa
|
304
333
|
if vd_k in vd:
|
305
334
|
dup_vd.setdefault(vd_k, []).append(vd_v)
|
@@ -307,12 +336,27 @@ class ChainTypedLoggerBindings(TypedLoggerBindings):
|
|
307
336
|
vd[vd_k] = vd_v
|
308
337
|
pcv.pop(vd_k, None)
|
309
338
|
|
310
|
-
def add_kds(it: 'ta.Iterable[ta.Tuple[str, TypedLoggerFieldValue]]') -> None: # noqa
|
311
|
-
collections.deque(itertools.starmap(add_kd, it), maxlen=0)
|
312
|
-
|
313
339
|
def add_vds(it: 'ta.Iterable[ta.Tuple[ta.Type[TypedLoggerValue], TypedLoggerValueOrProviderOrAbsent]]') -> None: # noqa
|
314
340
|
collections.deque(itertools.starmap(add_vd, it), maxlen=0)
|
315
341
|
|
342
|
+
#
|
343
|
+
|
344
|
+
mvd: ta.Dict[ta.Type[MultiTypedLoggerValue], ta.List[MultiTypedLoggerValue]] = {}
|
345
|
+
|
346
|
+
def add_mvd(mvd_k: 'ta.Type[MultiTypedLoggerValue]', mvd_v: MultiTypedLoggerValue) -> None: # noqa
|
347
|
+
try:
|
348
|
+
mvd_l = mvd[mvd_k]
|
349
|
+
except KeyError:
|
350
|
+
mvd_l = mvd[mvd_k] = []
|
351
|
+
mvd_l.append(mvd_v)
|
352
|
+
|
353
|
+
def add_mvds(it: 'ta.Iterable[ta.Tuple[ta.Type[MultiTypedLoggerValue], MultiTypedLoggerValue]]') -> None:
|
354
|
+
collections.deque(itertools.starmap(add_mvd, it), maxlen=0)
|
355
|
+
|
356
|
+
#
|
357
|
+
|
358
|
+
cvd: ta.Dict[ta.Type[TypedLoggerValue], TypedLoggerValueOrAbsent] = {}
|
359
|
+
|
316
360
|
def bad_type(*args, **kwargs): # noqa
|
317
361
|
raise ChainTypedLoggerBindingsUnhandledItemError
|
318
362
|
|
@@ -323,6 +367,9 @@ class ChainTypedLoggerBindings(TypedLoggerBindings):
|
|
323
367
|
add_vd,
|
324
368
|
add_vds,
|
325
369
|
|
370
|
+
add_mvd,
|
371
|
+
add_mvds,
|
372
|
+
|
326
373
|
cvd.update,
|
327
374
|
|
328
375
|
bad_type,
|
omlish/logs/typed/types.py
CHANGED
@@ -181,7 +181,6 @@ class TypedLoggerValue(Abstract, ta.Generic[T]):
|
|
181
181
|
def _typed_logger_unwrap_field_value(self, ctx: 'TypedLoggerContext') -> UnwrappedTypedLoggerFieldValue: # noqa
|
182
182
|
return self._v
|
183
183
|
|
184
|
-
@ta.final
|
185
184
|
def _typed_logger_visit_bindings(self, vst: 'TypedLoggerBindings._Visitor') -> None: # noqa
|
186
185
|
vst.accept_values(((type(self), self),))
|
187
186
|
vst.accept_const_values(((type(self), self),))
|
@@ -233,6 +232,22 @@ class DefaultTypedLoggerValue(TypedLoggerValue[T], Abstract):
|
|
233
232
|
return (cls.default_provider().provide_value(ctx),)
|
234
233
|
|
235
234
|
|
235
|
+
class MultiTypedLoggerValue(TypedLoggerValue[T], Abstract):
|
236
|
+
"""
|
237
|
+
Note: There is no DefaultMultiTypedLoggerValue.
|
238
|
+
"""
|
239
|
+
|
240
|
+
@classmethod
|
241
|
+
@abc.abstractmethod
|
242
|
+
def merge_values(cls, *values: T) -> T:
|
243
|
+
raise NotImplementedError
|
244
|
+
|
245
|
+
#
|
246
|
+
|
247
|
+
def _typed_logger_visit_bindings(self, vst: 'TypedLoggerBindings._Visitor') -> None: # noqa
|
248
|
+
vst.accept_multi_values(((type(self), self),))
|
249
|
+
|
250
|
+
|
236
251
|
##
|
237
252
|
|
238
253
|
|
omlish/marshal/__init__.py
CHANGED
omlish/typedvalues/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev433
|
4
4
|
Summary: omlish
|
5
5
|
Author: wrmsr
|
6
6
|
License-Expression: BSD-3-Clause
|
@@ -18,7 +18,7 @@ Provides-Extra: all
|
|
18
18
|
Requires-Dist: anyio~=4.10; extra == "all"
|
19
19
|
Requires-Dist: sniffio~=1.3; extra == "all"
|
20
20
|
Requires-Dist: greenlet~=3.2; extra == "all"
|
21
|
-
Requires-Dist: trio~=0.
|
21
|
+
Requires-Dist: trio~=0.31; extra == "all"
|
22
22
|
Requires-Dist: trio-asyncio~=0.15; extra == "all"
|
23
23
|
Requires-Dist: lz4~=4.4; extra == "all"
|
24
24
|
Requires-Dist: python-snappy~=0.7; extra == "all"
|
@@ -58,7 +58,7 @@ Provides-Extra: async
|
|
58
58
|
Requires-Dist: anyio~=4.10; extra == "async"
|
59
59
|
Requires-Dist: sniffio~=1.3; extra == "async"
|
60
60
|
Requires-Dist: greenlet~=3.2; extra == "async"
|
61
|
-
Requires-Dist: trio~=0.
|
61
|
+
Requires-Dist: trio~=0.31; extra == "async"
|
62
62
|
Requires-Dist: trio-asyncio~=0.15; extra == "async"
|
63
63
|
Provides-Extra: compress
|
64
64
|
Requires-Dist: lz4~=4.4; extra == "compress"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=Zv_1p0fhbJrF6QKOgRP0K5IQT7b_xpYlyQIa4fTot7w,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
|
@@ -415,7 +415,7 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
|
|
415
415
|
omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
|
416
416
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
417
417
|
omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
|
418
|
-
omlish/lang/__init__.py,sha256=
|
418
|
+
omlish/lang/__init__.py,sha256=lgRNRbIwj0FAU6PH4MMU9fqP5A1NI9wcHHWK8LjFyBg,10222
|
419
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
|
@@ -439,7 +439,7 @@ omlish/lang/overrides.py,sha256=IBzK6ljfLX6TLgIyKTSjhqTLcuKRkQNVtEOnBLS4nuA,2095
|
|
439
439
|
omlish/lang/params.py,sha256=sfbNoGrKCsAtubFufj_uh_WKshIgA8fqJ4PmLH1PH00,6639
|
440
440
|
omlish/lang/recursion.py,sha256=1VfSqzKO-8Is3t9LKw0W4jwPfE0aBS70EUlbUxAx4eE,1900
|
441
441
|
omlish/lang/resolving.py,sha256=nMosn-rcYjI8t6b35oICDyPw6t6-HvWj5jMdkfn1jfA,1612
|
442
|
-
omlish/lang/resources.py,sha256=
|
442
|
+
omlish/lang/resources.py,sha256=awfh33Uxkd9Ho-5Z3d9CPWQE3gjktV0XWM6XbdG0ejA,2845
|
443
443
|
omlish/lang/strings.py,sha256=TY-v0iGu6BxEKb99YS-VmIJqc-sTAqMv7mCDJQALMnI,4550
|
444
444
|
omlish/lang/sys.py,sha256=KPe1UOXk1VxlOYt_aLmhN0KqsA4wnP-4nm4WEwO49pw,411
|
445
445
|
omlish/lang/typing.py,sha256=ZN4t8oGSSknf_T1HbfqVQ7Y9OOZ1RkikYihNxdBlTFQ,3733
|
@@ -455,9 +455,11 @@ omlish/lang/classes/restrict.py,sha256=CUyvLpMYiQwTjpzo5sdG_lQxdeEIq2z2xSVNrsI9K
|
|
455
455
|
omlish/lang/classes/simple.py,sha256=3AJSs-plVg2flq4SC6I39LxP0nBaB241puv3D5YCP5I,2973
|
456
456
|
omlish/lang/classes/virtual.py,sha256=J4y-uiv1RaP2rfFeptXqQ1a4MRek0TMlAFFraO_lzhs,3397
|
457
457
|
omlish/lang/imports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
458
|
+
omlish/lang/imports/capture.py,sha256=hy9hgUmY1e9ElS6NfMuFdm-uY4hdnzQ7uBvuUVW4i-Y,15078
|
458
459
|
omlish/lang/imports/conditional.py,sha256=R-E47QD95mMonPImWlrde3rnJrFKCCkYz71c94W05sc,1006
|
459
|
-
omlish/lang/imports/lazy.py,sha256=
|
460
|
-
omlish/lang/imports/
|
460
|
+
omlish/lang/imports/lazy.py,sha256=Eefs9hkj5surMdwgxX_Q3BOqPcox10v0sKT5rKIQknc,808
|
461
|
+
omlish/lang/imports/proxy.py,sha256=6c4L-njdAOsGrhi-gdv_R3nHBEiPS7BWHaBU7-YOBfk,1553
|
462
|
+
omlish/lang/imports/proxyinit.py,sha256=W7_FxDxe4aAQLUxNF1U6-2JROwK75HgRGEGidDKB-t0,4400
|
461
463
|
omlish/lang/imports/resolving.py,sha256=DeRarn35Fryg5JhVhy8wbiC9lvr58AnllI9B_reswUE,2085
|
462
464
|
omlish/lang/imports/traversal.py,sha256=pbFQIa880NGjSfcLsno2vE_G41_CLwDHb-7gWg2J3BI,2855
|
463
465
|
omlish/lifecycles/__init__.py,sha256=zOuvV4pErPwxcKUSgshmME2Duw9GrjwckpNmW3FPKng,810
|
@@ -499,7 +501,7 @@ omlish/lite/wrappers.py,sha256=d00Ls2kFHuogKd5wEBaU65VNCN10YXIZtiwu1mbMpmA,530
|
|
499
501
|
omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
500
502
|
omlish/logs/all.py,sha256=GqST35bRnHgpGmQXvtHih7kLaw5DcFgB32uxPGAsgSI,1717
|
501
503
|
omlish/logs/base.py,sha256=Z1hfwYS2LgMJxFIyHiOvYa2meu2MH3kQDkhaWRNzt0M,5698
|
502
|
-
omlish/logs/contexts.py,sha256=
|
504
|
+
omlish/logs/contexts.py,sha256=qMX-BrOKmYIBOXIlSntKJT9mcsRryTqfcTFp9K1GJmE,4836
|
503
505
|
omlish/logs/formatters.py,sha256=g8oGfP_ok0nrW9opIIh5LqcQTmdufWFGO-9pRKX4m3Q,242
|
504
506
|
omlish/logs/infos.py,sha256=Nr2SbyI978vP5BTiVZsXUBdy2k0CUiwggcW-wewJHmo,11560
|
505
507
|
omlish/logs/levels.py,sha256=Eze-k_LPgFzbNMnG10F2bRKfL3veQpIxiegvN5rGeWM,2909
|
@@ -517,11 +519,11 @@ omlish/logs/std/json.py,sha256=QJ5lywLsRsPyVno2nk2kOw-Z1z3bfrDiZzqcRUdWUMY,1382
|
|
517
519
|
omlish/logs/std/loggers.py,sha256=hJIEC5BGaDOxgikTYKJ_qA_moS4CcHLMDAVKFDDKdHo,1144
|
518
520
|
omlish/logs/std/noisy.py,sha256=hWpbseerZqlHdEPEajDTSmcRhx8LmmNAxz_7GBZAO9s,353
|
519
521
|
omlish/logs/std/proxy.py,sha256=9MVV5kbj9nwl3KZGtrYCIb5XTpv33f33zZ7P_B58fX0,2394
|
520
|
-
omlish/logs/std/records.py,sha256=
|
522
|
+
omlish/logs/std/records.py,sha256=oI3eVPzoCNPRiEh2hA8BDKp1vM3uetYecek1AB0B3UA,25426
|
521
523
|
omlish/logs/typed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
522
|
-
omlish/logs/typed/bindings.py,sha256=
|
524
|
+
omlish/logs/typed/bindings.py,sha256=7F6zPZKJ0cclg58xIMMrOG-vLv1KJ5dsXGwg9glSZFg,19919
|
523
525
|
omlish/logs/typed/contexts.py,sha256=MU1RqHtmYbnxoLfLhMZbTbRd-WfYEyeVo7_3VnG3rY0,4027
|
524
|
-
omlish/logs/typed/types.py,sha256=
|
526
|
+
omlish/logs/typed/types.py,sha256=VTxsDN7qN9-WnwxOBI7OFH1taOuLscTpm3t8edJpNik,14838
|
525
527
|
omlish/logs/typed/values.py,sha256=s8x-P6tYq-BrhoA98Z5tfi70Tl1hHhcxOd1qao_h6ps,3278
|
526
528
|
omlish/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
527
529
|
omlish/manifests/base.py,sha256=wW-De-pU3cef-0vGsgo-ypftDwc3tCBxhRAzPtrdark,918
|
@@ -529,7 +531,7 @@ omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2
|
|
529
531
|
omlish/manifests/loading.py,sha256=s6KnhdFQCsI2i0Rus1sMU0so2v8dUBnk59BJkSnxGt8,17514
|
530
532
|
omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
|
531
533
|
omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
|
532
|
-
omlish/marshal/__init__.py,sha256=
|
534
|
+
omlish/marshal/__init__.py,sha256=_QPYoxtmqfd2szwSuPtbIU8RwTIh_5gTJm--yvVWMcY,5969
|
533
535
|
omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
|
534
536
|
omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
|
535
537
|
omlish/marshal/standard.py,sha256=6L4FK7QVgVFAf2jkTQlCvN-15DWK49VCNlNwCBea3-8,6674
|
@@ -882,7 +884,7 @@ omlish/text/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B
|
|
882
884
|
omlish/text/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
|
883
885
|
omlish/text/go/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
884
886
|
omlish/text/go/quoting.py,sha256=zbcPEDWsdj7GAemtu0x8nwMqpIu2C_5iInSwn6mMWlE,9142
|
885
|
-
omlish/typedvalues/__init__.py,sha256=
|
887
|
+
omlish/typedvalues/__init__.py,sha256=dQpM8VaON8S7dUv1LBwhyBDjUVo7EW475a9DpnDQz1E,936
|
886
888
|
omlish/typedvalues/accessor.py,sha256=2PQVoFrrCTOcZACAQ28GOvF9xhKyKz27GMSfS0xq5Pc,3184
|
887
889
|
omlish/typedvalues/collection.py,sha256=CK4Vk9kJqAt2V8o6I4zGyv2u9DKov12uSvsGdqEd2Ws,5793
|
888
890
|
omlish/typedvalues/consumer.py,sha256=lDOE-O_sgGbOvbcBg2g5ZRaV2WixnuEYxFsJBaj18oU,4690
|
@@ -892,9 +894,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
892
894
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
893
895
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
894
896
|
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.
|
897
|
+
omlish-0.0.0.dev433.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
898
|
+
omlish-0.0.0.dev433.dist-info/METADATA,sha256=a9lNv9FCJuo46oSrJsrL-E9-E4739mvReWcPY-T9BtM,19243
|
899
|
+
omlish-0.0.0.dev433.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
900
|
+
omlish-0.0.0.dev433.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
901
|
+
omlish-0.0.0.dev433.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
902
|
+
omlish-0.0.0.dev433.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|