omlish 0.0.0.dev493__py3-none-any.whl → 0.0.0.dev506__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.
Potentially problematic release.
This version of omlish might be problematic. Click here for more details.
- omlish/CODESTYLE.md +345 -0
- omlish/README.md +2 -2
- omlish/__about__.py +6 -4
- omlish/_check.cc +209 -0
- omlish/check.py +11 -0
- omlish/dataclasses/__init__.py +4 -0
- omlish/dataclasses/impl/concerns/frozen.py +4 -1
- omlish/dataclasses/tools/replace.py +27 -0
- omlish/dispatch/functions.py +1 -1
- omlish/formats/json/stream/lexing.py +13 -5
- omlish/formats/json/stream/parsing.py +1 -1
- omlish/inject/README.md +430 -0
- omlish/inject/__init__.py +1 -0
- omlish/inject/_dataclasses.py +64 -64
- omlish/inject/eagers.py +0 -4
- omlish/inject/elements.py +4 -0
- omlish/inject/helpers/late.py +1 -1
- omlish/inject/helpers/managed.py +27 -24
- omlish/inject/impl/injector.py +7 -22
- omlish/inject/impl/inspect.py +0 -8
- omlish/inject/impl/origins.py +1 -0
- omlish/inject/impl/privates.py +2 -6
- omlish/inject/impl/providers.py +0 -4
- omlish/inject/impl/scopes.py +14 -18
- omlish/inject/inspect.py +9 -0
- omlish/inject/multis.py +0 -3
- omlish/inject/scopes.py +7 -5
- omlish/io/buffers.py +35 -8
- omlish/lang/__init__.py +8 -0
- omlish/lang/classes/simple.py +2 -1
- omlish/lang/iterables.py +6 -0
- omlish/lang/objects.py +13 -0
- omlish/lang/outcomes.py +1 -1
- omlish/lang/recursion.py +1 -1
- omlish/lang/sequences.py +33 -0
- omlish/lifecycles/_dataclasses.py +18 -18
- omlish/lifecycles/injection.py +4 -4
- omlish/lite/maybes.py +7 -0
- omlish/lite/typing.py +15 -0
- omlish/logs/all.py +11 -0
- omlish/logs/base.py +3 -3
- omlish/logs/bisync.py +99 -0
- omlish/marshal/_dataclasses.py +32 -32
- omlish/specs/jmespath/_dataclasses.py +38 -38
- omlish/specs/jsonschema/keywords/_dataclasses.py +24 -24
- omlish/typedvalues/_collection.cc +500 -0
- omlish/typedvalues/collection.py +159 -62
- omlish/typedvalues/generic.py +5 -4
- omlish/typedvalues/values.py +6 -0
- {omlish-0.0.0.dev493.dist-info → omlish-0.0.0.dev506.dist-info}/METADATA +9 -7
- {omlish-0.0.0.dev493.dist-info → omlish-0.0.0.dev506.dist-info}/RECORD +55 -50
- {omlish-0.0.0.dev493.dist-info → omlish-0.0.0.dev506.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev493.dist-info → omlish-0.0.0.dev506.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev493.dist-info → omlish-0.0.0.dev506.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev493.dist-info → omlish-0.0.0.dev506.dist-info}/top_level.txt +0 -0
omlish/typedvalues/collection.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# ruff: noqa: UP007
|
|
2
|
+
"""
|
|
3
|
+
TODO:
|
|
4
|
+
- cext _init_typed_values_collection
|
|
5
|
+
"""
|
|
1
6
|
import typing as ta
|
|
2
7
|
|
|
3
8
|
from .. import check
|
|
@@ -19,12 +24,128 @@ UniqueTypedValueT = ta.TypeVar('UniqueTypedValueT', bound='UniqueTypedValue')
|
|
|
19
24
|
|
|
20
25
|
|
|
21
26
|
@dc.dataclass()
|
|
22
|
-
class DuplicateUniqueTypedValueError(Exception
|
|
23
|
-
cls: type
|
|
24
|
-
new:
|
|
25
|
-
old:
|
|
27
|
+
class DuplicateUniqueTypedValueError(Exception):
|
|
28
|
+
cls: type
|
|
29
|
+
new: TypedValue
|
|
30
|
+
old: TypedValue
|
|
26
31
|
|
|
27
32
|
|
|
33
|
+
##
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _init_typed_values_collection(
|
|
37
|
+
*tvs: TypedValueT,
|
|
38
|
+
override: bool = False,
|
|
39
|
+
check_type: type | tuple[type, ...] | None = None,
|
|
40
|
+
) -> tuple[
|
|
41
|
+
tuple[TypedValueT, ...],
|
|
42
|
+
dict[type[TypedValueT], TypedValueT | tuple[TypedValueT, ...]],
|
|
43
|
+
dict[type[TypedValueT], TypedValueT | tuple[TypedValueT, ...]],
|
|
44
|
+
]:
|
|
45
|
+
if not tvs:
|
|
46
|
+
return ((), {}, {})
|
|
47
|
+
|
|
48
|
+
# Either a non-unique TypedValue or a tuple of the form (unique_tv_cls, tv, unique_lst, idx_in_unique_lst). Notably,
|
|
49
|
+
# this intermediate list has the 'opposite' form of the returned collections: where the output dicts have a scalar
|
|
50
|
+
# tv for unique types and a sequence of tv's for non-unique types, this has scalar values for non-unique types and a
|
|
51
|
+
# tuple (heterogeneous, however) for unique types.
|
|
52
|
+
tmp_lst: list[ta.Union[
|
|
53
|
+
TypedValueT,
|
|
54
|
+
tuple[
|
|
55
|
+
type,
|
|
56
|
+
TypedValueT,
|
|
57
|
+
list[TypedValueT],
|
|
58
|
+
int,
|
|
59
|
+
],
|
|
60
|
+
]] = []
|
|
61
|
+
|
|
62
|
+
# When override is False duplicate unique values raises early. When override is True, however, last-in-wins. This
|
|
63
|
+
# could probably rely on dict insertion order preservation and just overwrite in-place, but it's intentionally done
|
|
64
|
+
# explicitly: preservation of tv ordering in all aspects is crucial, and retention of some intermediates eases
|
|
65
|
+
# debugging and error reporting.
|
|
66
|
+
unique_dct: dict[type, list[TypedValueT]] = {}
|
|
67
|
+
|
|
68
|
+
for tv in tvs:
|
|
69
|
+
if check_type is not None:
|
|
70
|
+
if not isinstance(tv, check_type):
|
|
71
|
+
raise TypeError(tv)
|
|
72
|
+
|
|
73
|
+
if isinstance(tv, UniqueTypedValue):
|
|
74
|
+
unique_tv_cls = tv._unique_typed_value_cls # noqa
|
|
75
|
+
|
|
76
|
+
if not override:
|
|
77
|
+
try:
|
|
78
|
+
exu = unique_dct[unique_tv_cls]
|
|
79
|
+
except KeyError:
|
|
80
|
+
pass
|
|
81
|
+
else:
|
|
82
|
+
raise DuplicateUniqueTypedValueError(unique_tv_cls, tv, exu[0])
|
|
83
|
+
|
|
84
|
+
unique_lst = unique_dct.setdefault(unique_tv_cls, [])
|
|
85
|
+
unique_lst.append(tv)
|
|
86
|
+
|
|
87
|
+
tmp_lst.append((unique_tv_cls, tv, unique_lst, len(unique_lst)))
|
|
88
|
+
|
|
89
|
+
elif isinstance(tv, TypedValue):
|
|
90
|
+
tmp_lst.append(tv)
|
|
91
|
+
|
|
92
|
+
else:
|
|
93
|
+
raise TypeError(tv)
|
|
94
|
+
|
|
95
|
+
# The output list with input order preserved and absent of overridden uniques.
|
|
96
|
+
lst: list[TypedValueT] = []
|
|
97
|
+
|
|
98
|
+
# This dict has the expected form: scalar tv's for unique types, and an accumulating list for non-unique types.
|
|
99
|
+
tmp_dct: dict[type, TypedValueT | list[TypedValueT]] = {}
|
|
100
|
+
|
|
101
|
+
for obj in tmp_lst:
|
|
102
|
+
# Unique type
|
|
103
|
+
if isinstance(obj, tuple):
|
|
104
|
+
unique_tv_cls, tv, unique_lst, idx = obj
|
|
105
|
+
|
|
106
|
+
# Last-in-wins
|
|
107
|
+
if idx == len(unique_lst):
|
|
108
|
+
lst.append(tv)
|
|
109
|
+
tmp_dct[unique_tv_cls] = tv
|
|
110
|
+
|
|
111
|
+
else:
|
|
112
|
+
tv = obj
|
|
113
|
+
lst.append(tv)
|
|
114
|
+
tmp_dct.setdefault(type(tv), []).append(tv) # type: ignore[union-attr]
|
|
115
|
+
|
|
116
|
+
# This is the 'canonical' output dict: scalar tv's for unique types keyed by their unique type, and homogenous
|
|
117
|
+
# tuples of tv's keyed by their instance type for non-unique types.
|
|
118
|
+
dct: dict[type, TypedValueT | tuple[TypedValueT, ...]] = {
|
|
119
|
+
k: tuple(v) if isinstance(v, list) else v
|
|
120
|
+
for k, v in tmp_dct.items()
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
# This is the secondary output dict: the contents of previous dict in addition to entries of unique tv's keyed by
|
|
124
|
+
# their instance type. Notably, for unique tv's in which their unique type *is* their instance type (which is
|
|
125
|
+
# perfectly fine) this will squash together duplicate (k, v) pairs, which is also perfectly fine.
|
|
126
|
+
dct2: dict[type, TypedValueT | tuple[TypedValueT, ...]] = {
|
|
127
|
+
**dct,
|
|
128
|
+
**{type(v): v for v in dct.values() if isinstance(v, UniqueTypedValue)},
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return (tuple(lst), dct, dct2)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
##
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
try:
|
|
138
|
+
from . import _collection # type: ignore
|
|
139
|
+
except ImportError:
|
|
140
|
+
pass
|
|
141
|
+
else:
|
|
142
|
+
_init_typed_values_collection = _collection.init_typed_values_collection # noqa
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
##
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
@ta.final
|
|
28
149
|
class TypedValues(
|
|
29
150
|
TypedValuesAccessor[TypedValueT],
|
|
30
151
|
lang.Final,
|
|
@@ -36,79 +157,55 @@ class TypedValues(
|
|
|
36
157
|
override: bool = False,
|
|
37
158
|
check_type: type | tuple[type, ...] | None = None,
|
|
38
159
|
) -> None:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if tvs:
|
|
42
|
-
tmp: list = []
|
|
43
|
-
udct: dict = {}
|
|
44
|
-
for tv in tvs:
|
|
45
|
-
if check_type is not None:
|
|
46
|
-
check.isinstance(tv, check_type)
|
|
47
|
-
if isinstance(tv, UniqueTypedValue):
|
|
48
|
-
utvc = tv._unique_typed_value_cls # noqa
|
|
49
|
-
if not override:
|
|
50
|
-
try:
|
|
51
|
-
exu = udct[utvc]
|
|
52
|
-
except KeyError:
|
|
53
|
-
pass
|
|
54
|
-
else:
|
|
55
|
-
raise DuplicateUniqueTypedValueError(utvc, tv, check.single(exu))
|
|
56
|
-
ulst = udct.setdefault(utvc, [])
|
|
57
|
-
ulst.append(tv)
|
|
58
|
-
tmp.append((utvc, tv, ulst, len(ulst)))
|
|
59
|
-
elif isinstance(tv, TypedValue):
|
|
60
|
-
tmp.append(tv)
|
|
61
|
-
else:
|
|
62
|
-
raise TypeError(tv)
|
|
63
|
-
|
|
64
|
-
lst: list = []
|
|
65
|
-
dct: dict = {}
|
|
66
|
-
for obj in tmp:
|
|
67
|
-
if isinstance(obj, tuple):
|
|
68
|
-
utvc, tv, ulst, idx = obj
|
|
69
|
-
if idx == len(ulst):
|
|
70
|
-
lst.append(tv)
|
|
71
|
-
dct[utvc] = tv
|
|
72
|
-
else:
|
|
73
|
-
tv = obj
|
|
74
|
-
lst.append(tv)
|
|
75
|
-
dct.setdefault(type(tv), []).append(tv)
|
|
76
|
-
|
|
77
|
-
tup = tuple(lst)
|
|
78
|
-
dct = {
|
|
79
|
-
k: tuple(v) if isinstance(v, list) else v
|
|
80
|
-
for k, v in dct.items()
|
|
81
|
-
}
|
|
82
|
-
dct2 = {
|
|
83
|
-
**dct,
|
|
84
|
-
**{type(v): v for v in dct.values() if isinstance(v, UniqueTypedValue)},
|
|
85
|
-
}
|
|
160
|
+
self._tup, self._dct, self._dct2 = _init_typed_values_collection(*tvs, override=override, check_type=check_type) # noqa
|
|
86
161
|
|
|
87
|
-
|
|
88
|
-
tup = ()
|
|
89
|
-
dct = {}
|
|
90
|
-
dct2 = {}
|
|
162
|
+
_tup: tuple[TypedValueT, ...]
|
|
91
163
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
164
|
+
# For non unique types, a map from tv instance type to a tuple of instances of that type. For unique tv types, a map
|
|
165
|
+
# from tv unique type to the tv for that unique tv type.
|
|
166
|
+
_dct: dict[type[TypedValueT], TypedValueT | tuple[TypedValueT, ...]]
|
|
167
|
+
|
|
168
|
+
# The contents of the previous dict in addition to entries from unique tv's keyed by their instance type.
|
|
169
|
+
_dct2: dict[type[TypedValueT], TypedValueT | tuple[TypedValueT, ...]]
|
|
95
170
|
|
|
96
171
|
#
|
|
97
172
|
|
|
98
173
|
def without(self, *tys: type) -> ta.Iterator[TypedValueT]:
|
|
99
174
|
for o in self._tup:
|
|
100
|
-
if isinstance(o, tys):
|
|
175
|
+
if tys and isinstance(o, tys):
|
|
101
176
|
continue
|
|
102
177
|
yield o
|
|
103
178
|
|
|
104
179
|
#
|
|
105
180
|
|
|
106
|
-
def update(self, *tvs, override: bool = False) -> 'TypedValues':
|
|
107
|
-
return TypedValues(*self._tup, *tvs, override=override)
|
|
108
|
-
|
|
109
181
|
def discard(self, *tys: type) -> 'TypedValues':
|
|
182
|
+
nl = list(self.without(*tys))
|
|
183
|
+
|
|
184
|
+
if len(nl) == len(self._tup):
|
|
185
|
+
return self
|
|
186
|
+
|
|
110
187
|
return TypedValues(*self.without(*tys))
|
|
111
188
|
|
|
189
|
+
def update(
|
|
190
|
+
self,
|
|
191
|
+
*tvs,
|
|
192
|
+
discard: ta.Iterable[type] | None = None,
|
|
193
|
+
override: bool = False,
|
|
194
|
+
) -> 'TypedValues':
|
|
195
|
+
if not tvs:
|
|
196
|
+
return self
|
|
197
|
+
|
|
198
|
+
n = TypedValues(
|
|
199
|
+
*(self.discard(*discard) if discard else self._tup),
|
|
200
|
+
*tvs,
|
|
201
|
+
override=override,
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
if lang.seqs_identical(self._tup, n._tup):
|
|
205
|
+
return self
|
|
206
|
+
|
|
207
|
+
return n
|
|
208
|
+
|
|
112
209
|
#
|
|
113
210
|
|
|
114
211
|
def __repr__(self) -> str:
|
omlish/typedvalues/generic.py
CHANGED
|
@@ -18,10 +18,11 @@ class TypedValueGeneric(lang.Abstract, ta.Generic[TypedValueT]):
|
|
|
18
18
|
def __init_subclass__(cls, **kwargs: ta.Any) -> None:
|
|
19
19
|
super().__init_subclass__(**kwargs)
|
|
20
20
|
|
|
21
|
-
if '_typed_value_type' in cls.__dict__:
|
|
22
|
-
return
|
|
23
|
-
|
|
24
21
|
g_mro = rfl.ALIAS_UPDATING_GENERIC_SUBSTITUTION.generic_mro(cls)
|
|
25
22
|
g_tvg = check.single(gb for gb in g_mro if isinstance(gb, rfl.Generic) and gb.cls is TypedValueGeneric)
|
|
26
23
|
tvt = check.single(g_tvg.args)
|
|
27
|
-
|
|
24
|
+
|
|
25
|
+
if '_typed_value_type' not in cls.__dict__:
|
|
26
|
+
cls._typed_value_type = tvt
|
|
27
|
+
else:
|
|
28
|
+
check.equal(tvt, cls._typed_value_type)
|
omlish/typedvalues/values.py
CHANGED
|
@@ -22,6 +22,12 @@ _UNIQUE_BASES: set[type[TypedValue]] = set()
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class UniqueTypedValue(TypedValue, lang.Abstract):
|
|
25
|
+
"""
|
|
26
|
+
Inheritance of this abstract class forms the root / key of a family of mutually exclusive TypedValues.
|
|
27
|
+
|
|
28
|
+
The immediately inheriting class may or not be Abstract or Final.
|
|
29
|
+
"""
|
|
30
|
+
|
|
25
31
|
_unique_typed_value_cls: ta.ClassVar[type[TypedValue]]
|
|
26
32
|
|
|
27
33
|
def __init_subclass__(cls, **kwargs: ta.Any) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omlish
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev506
|
|
4
4
|
Summary: omlish
|
|
5
5
|
Author: wrmsr
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -26,11 +26,11 @@ Requires-Dist: zstandard~=0.25; python_version < "3.14" and extra == "all"
|
|
|
26
26
|
Requires-Dist: brotli~=1.2; extra == "all"
|
|
27
27
|
Requires-Dist: asttokens~=3.0; extra == "all"
|
|
28
28
|
Requires-Dist: executing~=2.2; extra == "all"
|
|
29
|
-
Requires-Dist: psutil~=7.
|
|
29
|
+
Requires-Dist: psutil~=7.2; extra == "all"
|
|
30
30
|
Requires-Dist: orjson~=3.11; extra == "all"
|
|
31
31
|
Requires-Dist: ujson~=5.11; extra == "all"
|
|
32
32
|
Requires-Dist: pyyaml~=6.0; extra == "all"
|
|
33
|
-
Requires-Dist: cbor2~=5.
|
|
33
|
+
Requires-Dist: cbor2~=5.8; extra == "all"
|
|
34
34
|
Requires-Dist: cloudpickle~=3.1; extra == "all"
|
|
35
35
|
Requires-Dist: httpx[http2]~=0.28; extra == "all"
|
|
36
36
|
Requires-Dist: wrapt~=2.0; extra == "all"
|
|
@@ -38,6 +38,7 @@ Requires-Dist: cryptography~=46.0; extra == "all"
|
|
|
38
38
|
Requires-Dist: sqlalchemy[asyncio]~=2.0; extra == "all"
|
|
39
39
|
Requires-Dist: pg8000~=1.31; extra == "all"
|
|
40
40
|
Requires-Dist: pymysql~=1.1; extra == "all"
|
|
41
|
+
Requires-Dist: snowflake-connector-python~=4.2; extra == "all"
|
|
41
42
|
Requires-Dist: aiomysql~=0.3; extra == "all"
|
|
42
43
|
Requires-Dist: aiosqlite~=0.22; extra == "all"
|
|
43
44
|
Requires-Dist: asyncpg~=0.31; extra == "all"
|
|
@@ -68,12 +69,12 @@ Requires-Dist: brotli~=1.2; extra == "compress"
|
|
|
68
69
|
Provides-Extra: diag
|
|
69
70
|
Requires-Dist: asttokens~=3.0; extra == "diag"
|
|
70
71
|
Requires-Dist: executing~=2.2; extra == "diag"
|
|
71
|
-
Requires-Dist: psutil~=7.
|
|
72
|
+
Requires-Dist: psutil~=7.2; extra == "diag"
|
|
72
73
|
Provides-Extra: formats
|
|
73
74
|
Requires-Dist: orjson~=3.11; extra == "formats"
|
|
74
75
|
Requires-Dist: ujson~=5.11; extra == "formats"
|
|
75
76
|
Requires-Dist: pyyaml~=6.0; extra == "formats"
|
|
76
|
-
Requires-Dist: cbor2~=5.
|
|
77
|
+
Requires-Dist: cbor2~=5.8; extra == "formats"
|
|
77
78
|
Requires-Dist: cloudpickle~=3.1; extra == "formats"
|
|
78
79
|
Provides-Extra: http
|
|
79
80
|
Requires-Dist: httpx[http2]~=0.28; extra == "http"
|
|
@@ -86,6 +87,7 @@ Requires-Dist: sqlalchemy[asyncio]~=2.0; extra == "sqlalchemy"
|
|
|
86
87
|
Provides-Extra: sqldrivers
|
|
87
88
|
Requires-Dist: pg8000~=1.31; extra == "sqldrivers"
|
|
88
89
|
Requires-Dist: pymysql~=1.1; extra == "sqldrivers"
|
|
90
|
+
Requires-Dist: snowflake-connector-python~=4.2; extra == "sqldrivers"
|
|
89
91
|
Requires-Dist: aiomysql~=0.3; extra == "sqldrivers"
|
|
90
92
|
Requires-Dist: aiosqlite~=0.22; extra == "sqldrivers"
|
|
91
93
|
Requires-Dist: asyncpg~=0.31; extra == "sqldrivers"
|
|
@@ -248,8 +250,8 @@ dependencies of any kind**.
|
|
|
248
250
|
- **[plugins](https://github.com/wrmsr/omlish/blob/master/omlish/testing/pytest/plugins)** - Various other plugins.
|
|
249
251
|
|
|
250
252
|
- **[typedvalues](https://github.com/wrmsr/omlish/blob/master/omlish/typedvalues)** - A little toolkit around 'boxed'
|
|
251
|
-
values, whose 'box' types convey more information than the bare values themselves. A rebellion against kwargs
|
|
252
|
-
vars: instead of `foo(bar=1, baz=2)`, you do `foo(Bar(1), Baz(2))`.
|
|
253
|
+
values, whose 'box' types convey more information than the bare values themselves. A rebellion against kwargs / env
|
|
254
|
+
vars / giant config objects: instead of `foo(bar=1, baz=2)`, you do `foo(Bar(1), Baz(2))`.
|
|
253
255
|
|
|
254
256
|
- **[lite](https://github.com/wrmsr/omlish/blob/master/omlish/lite)** - The standard library of 'lite' code. This is the
|
|
255
257
|
only package beneath `lang`, and parts of it are re-exported by it for deduplication. On top of miscellaneous
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
omlish/.omlish-manifests.json,sha256=DSpBKF_HnebIrj-XaLeXQFnSLqqEG-6HlBpLsdXuNAM,8691
|
|
2
|
-
omlish/
|
|
3
|
-
omlish/
|
|
2
|
+
omlish/CODESTYLE.md,sha256=zAOQW65HOmm7_hgJuPx8heKYlpGQVK-gJjOSt30Twkc,26048
|
|
3
|
+
omlish/README.md,sha256=rwaYfDtJibH4ogzDLrt3PXFSazH4gXMF1n3crl4Ynq0,14712
|
|
4
|
+
omlish/__about__.py,sha256=LFrowYzggBOpy-d0kw_-jJ1Wk5avlDMGzchMQUY_K2o,3733
|
|
4
5
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
|
6
|
+
omlish/_check.cc,sha256=EbX9yB15PcWTmqMAtkCtuTxFw7w1sm9xyO56ZcpYxfM,5183
|
|
5
7
|
omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
|
|
6
8
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
|
7
|
-
omlish/check.py,sha256=
|
|
9
|
+
omlish/check.py,sha256=rDFd96FB1jbymiSK2YCwWtP1X09lCfb8piOMz7ipz2I,6741
|
|
8
10
|
omlish/datetimes.py,sha256=7dh4aiVRWXWECH3JLF8kkRbgJ1qyGlAlQVp1vCXdTBE,2168
|
|
9
11
|
omlish/libc.py,sha256=mNY2FWZ2BjSucOx5TEW8IP_B5n84tVZWuVPL3Z3sUH8,15644
|
|
10
12
|
omlish/metadata.py,sha256=lTh3NYVyjHtLTyAGiZxXJMjZrSPQ1E8zXvnJCgKSESA,4179
|
|
@@ -131,7 +133,7 @@ omlish/daemons/services.py,sha256=laoUeJU7eVHuWl1062FBjPSD7jchOjhpYDc5FT2B3dM,34
|
|
|
131
133
|
omlish/daemons/spawning.py,sha256=6gdpMPU-HtsZhc1oViOBfmsr-8HKn0ZQHGyQJdO1Fzs,5364
|
|
132
134
|
omlish/daemons/targets.py,sha256=9nacraBQYPTnTvPwR4B_tdalF4nwFAXZeo4FSVcHoMg,3057
|
|
133
135
|
omlish/daemons/waiting.py,sha256=fuR51IHdBDRVtfdewcw_0qw8itoXqmtdR_qtkoBChuE,1702
|
|
134
|
-
omlish/dataclasses/__init__.py,sha256=
|
|
136
|
+
omlish/dataclasses/__init__.py,sha256=tsiYEQGvRwi4Kiri-xdY02lI4ElYVc6UoxniOpXUOwY,3742
|
|
135
137
|
omlish/dataclasses/_internals.py,sha256=_THiziiIslUyYC98Y_tZd5aZgvEF3FAGkDSwzRfcDuo,3247
|
|
136
138
|
omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
|
|
137
139
|
omlish/dataclasses/errors.py,sha256=QeJVRmrZQer3m66jSDiuAyfAngCBtocMxfnsoSxzOVw,2520
|
|
@@ -159,7 +161,7 @@ omlish/dataclasses/impl/concerns/copy.py,sha256=0QoQkNNptD0mJdc4TJlD7lpDUm3kJNOH
|
|
|
159
161
|
omlish/dataclasses/impl/concerns/doc.py,sha256=bnc45xWOxJbhgeGGDAVZfV7nxsu3yP2NpFlay2ux7xQ,1732
|
|
160
162
|
omlish/dataclasses/impl/concerns/eq.py,sha256=PI0KKzJyIziRLgcjl8efjapf8baaRCdcuyGW83bCpEo,1720
|
|
161
163
|
omlish/dataclasses/impl/concerns/fields.py,sha256=JTO13HKs-swKnM7Qtb6El7FAfdLwxVLqULXAwotjus0,3318
|
|
162
|
-
omlish/dataclasses/impl/concerns/frozen.py,sha256=
|
|
164
|
+
omlish/dataclasses/impl/concerns/frozen.py,sha256=mR7eCZrY44PMvdpHH4GPPwJZjjwLzK4VGjHKIgBDrpE,4643
|
|
163
165
|
omlish/dataclasses/impl/concerns/hash.py,sha256=V5hNuvWG2GMxbhPD1E0nHW6NUR55-AjIy7LvH4gbfXA,4816
|
|
164
166
|
omlish/dataclasses/impl/concerns/init.py,sha256=8H7LHZfp_6PUUrFyFXy0Gq89x2fcAQO5uo4LOnZ-iIc,14552
|
|
165
167
|
omlish/dataclasses/impl/concerns/matchargs.py,sha256=AuVpQbUH2GPKEaogEU7HFDoJ7e8sDpwzmiPzBsblwfY,749
|
|
@@ -197,7 +199,7 @@ omlish/dataclasses/tools/as_.py,sha256=FLUOtvFf1H3isDQsJcskSVIJeJ3iTtrjug7kp3zbH
|
|
|
197
199
|
omlish/dataclasses/tools/iter.py,sha256=JQUFG4Gn-xthhJ3OEqXLOWkq2KhRMuIqvEow0HcFPZg,540
|
|
198
200
|
omlish/dataclasses/tools/modifiers.py,sha256=Ocai2InDqq7dgY_sMI9m2ugPLE4h4Kp5VLeSmalh8s8,1828
|
|
199
201
|
omlish/dataclasses/tools/only_.py,sha256=hPpqzr9YW09YmlX_QJNU2aePHYJEIrbGCPwmnvVS_to,849
|
|
200
|
-
omlish/dataclasses/tools/replace.py,sha256=
|
|
202
|
+
omlish/dataclasses/tools/replace.py,sha256=eGPdBq2C8H-5W_fOELxQi74WYZVooKipTqbDOdqrhqA,964
|
|
201
203
|
omlish/dataclasses/tools/repr.py,sha256=KFvF6uv2YYIKq8O3ZNbEAS1tqRQALsJ-SUlBNPd5_GI,190
|
|
202
204
|
omlish/dataclasses/tools/static.py,sha256=byDnPc0W15s3YPQNC9oyCASKVNxCytrHGLvDky4RGNc,8753
|
|
203
205
|
omlish/diag/__init__.py,sha256=c1q8vuapGH1YiYdU300FIJXMI1MOcnLNBZXr-zc8BXk,1181
|
|
@@ -221,7 +223,7 @@ omlish/diag/replserver/console.py,sha256=pHPcLZfypTM6xTBjsdtlOKpq2Kov3sEnELBu2-9
|
|
|
221
223
|
omlish/diag/replserver/server.py,sha256=zTeyaARK22KwaqCOzG8H8Rk009en7gBxOBaJcRB1jbM,5402
|
|
222
224
|
omlish/dispatch/__init__.py,sha256=OlebxKvMJs2nT36p3xCB4arA3Ln0pnQvfwBaUJ5SdiE,284
|
|
223
225
|
omlish/dispatch/dispatch.py,sha256=TzWihCt9Zr8wfIwVpKHVOOrYFVKpDXRevxYomtEfqYc,3176
|
|
224
|
-
omlish/dispatch/functions.py,sha256=
|
|
226
|
+
omlish/dispatch/functions.py,sha256=2TVF0fmalmDnfx2wPl9afa1jzy2U9UBZcJAu9M_OpOA,1532
|
|
225
227
|
omlish/dispatch/impls.py,sha256=3kyLw5yiYXWCN1DiqQbD1czMVrM8v1mpQ8NyD0tUrnk,1870
|
|
226
228
|
omlish/dispatch/methods.py,sha256=aberuaB1ujTwhTdTyZQ2j4azNVkO54nEc28k5ZQ--J4,7337
|
|
227
229
|
omlish/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -275,8 +277,8 @@ omlish/formats/json/backends/ujson.py,sha256=U3iOlAURfiCdXbiNlXfIjDdtJDbDaLZsSuZ
|
|
|
275
277
|
omlish/formats/json/stream/__init__.py,sha256=YIRCs5ckY_y1v08OwGGtU4nXlo-ByO4IsibTlZZIsAM,1366
|
|
276
278
|
omlish/formats/json/stream/building.py,sha256=QAQaTyXuw9vkfhvzWIh_DSlypD1-HgzO855Dgz3_wFM,2517
|
|
277
279
|
omlish/formats/json/stream/errors.py,sha256=c8M8UAYmIZ-vWZLeKD2jMj4EDCJbr9QR8Jq_DyHjujQ,43
|
|
278
|
-
omlish/formats/json/stream/lexing.py,sha256=
|
|
279
|
-
omlish/formats/json/stream/parsing.py,sha256=
|
|
280
|
+
omlish/formats/json/stream/lexing.py,sha256=v9_mlzUzLBnAZxt9gP7f6h35U3VN1AwTvqtWyYLx2SU,17824
|
|
281
|
+
omlish/formats/json/stream/parsing.py,sha256=nAz6jeBEjGxYWgZTw3hjk7CwJXWdzC1FUuwv8gVY4ds,7154
|
|
280
282
|
omlish/formats/json/stream/rendering.py,sha256=E5SXMGcbBtgtUYYznTPZFHD4tmV_X7K3MK50V11ESRk,3611
|
|
281
283
|
omlish/formats/json/stream/utils.py,sha256=vX69i90DVCjAAAohpiLgsT3ZinFS_cYUfneTvx-3dxU,4959
|
|
282
284
|
omlish/formats/json5/__init__.py,sha256=3rwU5w5N_-dYME5kwMvXgexl-Vvo4BAmOg1N-I9Wf0M,194
|
|
@@ -359,51 +361,52 @@ omlish/http/flasky/requests.py,sha256=w3eTcfbGv3TUuolncGyDJnWNxZhrztz_OTpiFxoNIk
|
|
|
359
361
|
omlish/http/flasky/responses.py,sha256=fXRe6z9al1o4br7YIFUIfXUFUWY3mhVqXj7tLY4NXUM,591
|
|
360
362
|
omlish/http/flasky/routes.py,sha256=w4YNt9n4sWqs78ktQ5vWAaYZL9vAWxtX4gXL26uFZTs,398
|
|
361
363
|
omlish/http/flasky/types.py,sha256=Mag-Amc9CT9Lyri3tY0uVRc4U1g-gry6DgUetuhIUqg,159
|
|
362
|
-
omlish/inject/
|
|
363
|
-
omlish/inject/
|
|
364
|
+
omlish/inject/README.md,sha256=kP0ODVGtskDeB0Y2NrJL0Yvote6AstkIIRVzWBhSwGg,10860
|
|
365
|
+
omlish/inject/__init__.py,sha256=4vaQElSU8q7y7aNXldnE9NgsRA6lwNUnu3YGB6Kg6NI,3408
|
|
366
|
+
omlish/inject/_dataclasses.py,sha256=7D0pMPiOxn7a87y2Ll-D1eUiie1xafI1pcHUdSEBOOc,228950
|
|
364
367
|
omlish/inject/binder.py,sha256=gEA6mxPu4SillKIGnvK0XIFPBUMCWsZRDUugjiFqbwA,4522
|
|
365
368
|
omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
|
|
366
|
-
omlish/inject/eagers.py,sha256=
|
|
367
|
-
omlish/inject/elements.py,sha256=
|
|
369
|
+
omlish/inject/eagers.py,sha256=DCEzYMfjm5TqXsv4hz7-fos3xpJqeeVtR5TQnfI3uhM,340
|
|
370
|
+
omlish/inject/elements.py,sha256=jDZZEF3eSZuMUFLPvodgZGlDi8DpAsdIEOSw-dQtmGc,2091
|
|
368
371
|
omlish/inject/errors.py,sha256=_wkN2tF55gQzmMOMKJC_9jYHBZzaBiCDcyqI9Sf2UZs,626
|
|
369
372
|
omlish/inject/injector.py,sha256=EN9MP-jGPPFADo-jkgXFKskSHUXkxaDhw7VsXt-u_wY,1832
|
|
370
|
-
omlish/inject/inspect.py,sha256=
|
|
373
|
+
omlish/inject/inspect.py,sha256=xhH_sNlCfIl7b_ap7I1ho81bHjCPONyGw1TwkIxCqdI,1603
|
|
371
374
|
omlish/inject/keys.py,sha256=7jnI2cw7cvLlzZAfe5SC50O3oPOpOB6iGZGTigyfQvs,682
|
|
372
375
|
omlish/inject/listeners.py,sha256=bav7-uzfpajFAmH_snM0PW2oCfMavmhbE6R4-gjOmJ8,620
|
|
373
376
|
omlish/inject/lite.py,sha256=AFOCj_SznDCPjkiVSKdFXL2hH1q2o4kaDnzkxRWDpsI,2615
|
|
374
377
|
omlish/inject/maysync.py,sha256=VeKD2Ke-MMAP63qGNrbrEqtr5NDIWaRxkREaGZ-61L8,443
|
|
375
|
-
omlish/inject/multis.py,sha256=
|
|
378
|
+
omlish/inject/multis.py,sha256=j3V-dNvoeV8K4dboj2LLxXzatMSuT3BFFab3j5SoJKc,3376
|
|
376
379
|
omlish/inject/origins.py,sha256=-qXa18rIIkNwBdTrvASRDjgPYnoY6n6OPC222jJDrXg,551
|
|
377
380
|
omlish/inject/overrides.py,sha256=3fMHSfX4Xym2NBHP5_vTZTq2Q47SfGhoC5WnTdYOLx0,550
|
|
378
381
|
omlish/inject/privates.py,sha256=46ODWz3PQh6GyH2Rqd-Y7Ye1WBGr9RjSbZ4U12zAolY,680
|
|
379
382
|
omlish/inject/providers.py,sha256=OroBtCBvd0YqfdkLsQLGKmL3cbPngUWFfHqQYo4rYGo,1053
|
|
380
|
-
omlish/inject/scopes.py,sha256
|
|
383
|
+
omlish/inject/scopes.py,sha256=-4H0n-VOHEAApzP_EwCFfMZC6K2tuap2hZquIZucMjk,2775
|
|
381
384
|
omlish/inject/sync.py,sha256=IunlObxI_iiMOex4JvPX-YQsbdxUkU2bdnBai1TkPKY,1008
|
|
382
385
|
omlish/inject/types.py,sha256=Z-ZEdgtCpHBNrbxxKaMVvfeD7hYXdL4rC7A9_VGxZ6g,256
|
|
383
386
|
omlish/inject/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
384
387
|
omlish/inject/helpers/constfn.py,sha256=Q7yfaGtxEb3L9izvwWSHh8udvR111qOtUYItw6OiyXo,416
|
|
385
388
|
omlish/inject/helpers/id.py,sha256=F1RYU03q4evteO6O3NDjwHZtPgd7MUK-qwsQAH1X-P0,435
|
|
386
|
-
omlish/inject/helpers/late.py,sha256=
|
|
387
|
-
omlish/inject/helpers/managed.py,sha256=
|
|
389
|
+
omlish/inject/helpers/late.py,sha256=fOKzLm8qegejiaidLO-WhVDPWzQm2l8S0herOEuNBo0,1983
|
|
390
|
+
omlish/inject/helpers/managed.py,sha256=_dhtrHjoi2zgpGF-MAD_lb2LHs6n8uFtM_ofxeB9COw,3259
|
|
388
391
|
omlish/inject/helpers/multis.py,sha256=4V85CdxxuYANAEn44IQbXHDYjPbBQ9jLrEP5XpzV2bI,3807
|
|
389
392
|
omlish/inject/helpers/proxy.py,sha256=S1qNn-5pbsAj9hhasQZ9nnFSCX8SuAYCcBOZ6BtKxlk,1641
|
|
390
393
|
omlish/inject/helpers/wrappers.py,sha256=f3mulTNuItvmXnn7E4JHk9UESjsf-ponvlDfIpAHbk4,1319
|
|
391
394
|
omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
392
395
|
omlish/inject/impl/bindings.py,sha256=xSvUcoDz8NH-aNHPwBPEZsFg73K2WcF_A63npVbGt_k,420
|
|
393
396
|
omlish/inject/impl/elements.py,sha256=-db996vTX_rtTYuCwLoAsO1GcJt38ydfDKgHbs9U1fw,6844
|
|
394
|
-
omlish/inject/impl/injector.py,sha256=
|
|
395
|
-
omlish/inject/impl/inspect.py,sha256=
|
|
397
|
+
omlish/inject/impl/injector.py,sha256=LSBz_4E3X7h91xC1tzWcOcX1vba52s0tkcTAk9xTUDE,7654
|
|
398
|
+
omlish/inject/impl/inspect.py,sha256=_vHEmZCOmhp0HxDJ97xg121DdpZISf1ykUimFjDNMYM,3193
|
|
396
399
|
omlish/inject/impl/maysync.py,sha256=k0fiUF9GG5kQ2nP6nNNwCoqSHzgmiqR6EXiezANO374,1166
|
|
397
400
|
omlish/inject/impl/multis.py,sha256=5aKXnmSocwqu7y6WicvYX1-QGTz9iHubxRq9j0enlgk,2174
|
|
398
|
-
omlish/inject/impl/origins.py,sha256
|
|
399
|
-
omlish/inject/impl/privates.py,sha256=
|
|
400
|
-
omlish/inject/impl/providers.py,sha256=
|
|
401
|
+
omlish/inject/impl/origins.py,sha256=-aRnCJCg4cnMkGZw0Nm5ZCsM5SUZIU6TFTtINz-i3hI,1725
|
|
402
|
+
omlish/inject/impl/privates.py,sha256=RBO9bxxJTFKmotoF-mzlIembX7OIS_d7znYff5j_TsY,2634
|
|
403
|
+
omlish/inject/impl/providers.py,sha256=b5pTAWKVOkDMPqMrqXVK7UgMCDtFU1KzMdLYChbmoXI,2096
|
|
401
404
|
omlish/inject/impl/providersmap.py,sha256=NOIbX_sTAL8uXf-lMoOiFTFZQMe6ywLU7nIghgF_ISw,1326
|
|
402
|
-
omlish/inject/impl/scopes.py,sha256=
|
|
405
|
+
omlish/inject/impl/scopes.py,sha256=PE96T1Hs-9eh604lrjwzMONOWu4VPgv0adC8S02RH9c,5852
|
|
403
406
|
omlish/inject/impl/sync.py,sha256=_aLaC-uVNHOePcfE1as61Ni7fuyHZpjEafIWBc7FvC0,1049
|
|
404
407
|
omlish/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
405
408
|
omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
|
|
406
|
-
omlish/io/buffers.py,sha256=
|
|
409
|
+
omlish/io/buffers.py,sha256=_5otZwC3Uby-JtMeG-wv_jIUzglXJZhamcmvSuT7dWU,11645
|
|
407
410
|
omlish/io/fileno.py,sha256=_W3qxkIKpnabn1_7kgmKdx0IsPF3R334xWnF_TtkEj4,185
|
|
408
411
|
omlish/io/pyio.py,sha256=xmHTV-sn7QZThWCVBo6lTM7dhgsQn7m2L0DqRwdF2-8,94509
|
|
409
412
|
omlish/io/readers.py,sha256=w67uZQbWzed4Ton2kyA_WRrRz-IRXmFip8EJtpAxLYU,583
|
|
@@ -436,7 +439,7 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
|
|
|
436
439
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
|
437
440
|
omlish/iterators/transforms.py,sha256=gy7f6PoPwyy1aLEA0u1bpe8E3S08c7O5KF8SkWG7pbc,3572
|
|
438
441
|
omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
|
|
439
|
-
omlish/lang/__init__.py,sha256=
|
|
442
|
+
omlish/lang/__init__.py,sha256=oq1LZiePLa4vh1fCFLZnqlFhkCNX_jcK4rybfn_WafA,11110
|
|
440
443
|
omlish/lang/_asyncs.cc,sha256=ko_d9pv6C0MfEL-HfvJz2R6uaz_OEFLpInwtY-NGTf4,4062
|
|
441
444
|
omlish/lang/asyncs.py,sha256=EGVZ3pJ-4onvVfslcRBCa40J-M_lUPT55s5YSCE8GDs,2176
|
|
442
445
|
omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
|
|
@@ -451,18 +454,18 @@ omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
|
|
|
451
454
|
omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
|
|
452
455
|
omlish/lang/functions.py,sha256=B2Gc6TkgZcR6LhQJOCB2Wc025crQ9FmJoRlealx-Pl4,5927
|
|
453
456
|
omlish/lang/generators.py,sha256=nJiSmDpsfPiypGzJ8qlOO7-BUnCsrAeDow9mhtGgBio,5196
|
|
454
|
-
omlish/lang/iterables.py,sha256=
|
|
457
|
+
omlish/lang/iterables.py,sha256=P_ahcMKKRGvrvSP62WDeSJ1bfT8KCquvv9sNUEwkuAQ,3491
|
|
455
458
|
omlish/lang/lazyglobals.py,sha256=5v4S0YSUrxdZFC6znrWolfeheArMa_DEJEcz46XCQN4,2676
|
|
456
459
|
omlish/lang/maybes.py,sha256=8GUpqJvyx9y5PQBQBBx6yTSE5WKsMbXMHPt4_vojKUw,209
|
|
457
460
|
omlish/lang/maysync.py,sha256=S2Q_rGC4AxRa1UsGJdSzZsYpgOcX9Y8ZmYGA9v8OWn8,1635
|
|
458
|
-
omlish/lang/objects.py,sha256=
|
|
459
|
-
omlish/lang/outcomes.py,sha256=
|
|
461
|
+
omlish/lang/objects.py,sha256=Kd8cF6Y54rdbToHuasP3Isr3cc-aq7JLFdI-4wixvQo,4906
|
|
462
|
+
omlish/lang/outcomes.py,sha256=vtndJbY_CgOwrVh4VyCBMWqDUAppPfSUXdy1HbW6Ibc,8752
|
|
460
463
|
omlish/lang/overrides.py,sha256=IBzK6ljfLX6TLgIyKTSjhqTLcuKRkQNVtEOnBLS4nuA,2095
|
|
461
464
|
omlish/lang/params.py,sha256=LKr-9ykn-SyF1Af2KSH-qKKnTU_U6dybTg4pmBzAvz0,7077
|
|
462
|
-
omlish/lang/recursion.py,sha256=
|
|
465
|
+
omlish/lang/recursion.py,sha256=Z8tXhVB584zJQlDa979iQAjIbTrLctFVIexSVWATYks,1875
|
|
463
466
|
omlish/lang/resolving.py,sha256=nMosn-rcYjI8t6b35oICDyPw6t6-HvWj5jMdkfn1jfA,1612
|
|
464
467
|
omlish/lang/resources.py,sha256=awfh33Uxkd9Ho-5Z3d9CPWQE3gjktV0XWM6XbdG0ejA,2845
|
|
465
|
-
omlish/lang/sequences.py,sha256=
|
|
468
|
+
omlish/lang/sequences.py,sha256=fM1BARYjahRMVmSITXogZkwv1LfkvX8IQCHURvb9_uA,3827
|
|
466
469
|
omlish/lang/strings.py,sha256=TY-v0iGu6BxEKb99YS-VmIJqc-sTAqMv7mCDJQALMnI,4550
|
|
467
470
|
omlish/lang/sys.py,sha256=KPe1UOXk1VxlOYt_aLmhN0KqsA4wnP-4nm4WEwO49pw,411
|
|
468
471
|
omlish/lang/typing.py,sha256=ZN4t8oGSSknf_T1HbfqVQ7Y9OOZ1RkikYihNxdBlTFQ,3733
|
|
@@ -475,7 +478,7 @@ omlish/lang/classes/bindable.py,sha256=rlahXmbn5YJFG_xorfZF7627KGO4gaPX5ZsR38lCD
|
|
|
475
478
|
omlish/lang/classes/namespaces.py,sha256=RVecCT38W5h6rjf5fYBLvomyDwwFqPRWjhs40gaLHPE,3933
|
|
476
479
|
omlish/lang/classes/protocols.py,sha256=T98ZsHLgzw8hPvvNluxoreevoF8fD4zs8SwcnTXkLuY,701
|
|
477
480
|
omlish/lang/classes/restrict.py,sha256=xHLIK20MQ_jJPQ7JVzMNhyN4Xc4eLBgrcxqDnTbeKBI,4480
|
|
478
|
-
omlish/lang/classes/simple.py,sha256=
|
|
481
|
+
omlish/lang/classes/simple.py,sha256=0YilyXrtnWFb9teAqJrVqkW3i03GdDKa26YkuxeO5R4,3037
|
|
479
482
|
omlish/lang/classes/virtual.py,sha256=J4y-uiv1RaP2rfFeptXqQ1a4MRek0TMlAFFraO_lzhs,3397
|
|
480
483
|
omlish/lang/imports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
481
484
|
omlish/lang/imports/_capture.cc,sha256=78JQ1HvGo7P4AXk9k12ZxiDRTocEf3I2cJAv5b2si90,2295
|
|
@@ -487,11 +490,11 @@ omlish/lang/imports/resolving.py,sha256=DeRarn35Fryg5JhVhy8wbiC9lvr58AnllI9B_res
|
|
|
487
490
|
omlish/lang/imports/traversal.py,sha256=pbFQIa880NGjSfcLsno2vE_G41_CLwDHb-7gWg2J3BI,2855
|
|
488
491
|
omlish/lifecycles/README.md,sha256=I-b1RM3GcVDHldDsd_7TJa6GBXbFzE4yXdayCnWVHiY,2418
|
|
489
492
|
omlish/lifecycles/__init__.py,sha256=UGyPmBCGciuKamlBRrnGQ7OT6w0ftSF3oavZeqDHKY8,2299
|
|
490
|
-
omlish/lifecycles/_dataclasses.py,sha256=
|
|
493
|
+
omlish/lifecycles/_dataclasses.py,sha256=Gm-2PHlC-YFPnu-pWlhELigMb-qe0lBjqdje1PpnXF8,64898
|
|
491
494
|
omlish/lifecycles/base.py,sha256=su26DkMDaQDazNffpFH3aM1KCPIF2nE6Fa9jWqC-mmU,6013
|
|
492
495
|
omlish/lifecycles/contextmanagers.py,sha256=8exOCkFIrq6x71hzRoLB7RDtiLz8Gimu3uDSEyEtkdQ,4999
|
|
493
496
|
omlish/lifecycles/controller.py,sha256=v3xhrxLSjl9PbE7JcgvotNg5gt07wuLsv5j0tuiwOiI,6719
|
|
494
|
-
omlish/lifecycles/injection.py,sha256=
|
|
497
|
+
omlish/lifecycles/injection.py,sha256=hBKJIxO771LWN0RbJoAftb9JPYB_sT-rJNpswZaSZb4,4224
|
|
495
498
|
omlish/lifecycles/listeners.py,sha256=5LCwR2-NV75RuIf0IZc398vqH0rsaDaAWiFtyynGOYo,1418
|
|
496
499
|
omlish/lifecycles/managed.py,sha256=cHro1PMzWzFGYcd4lxE76YxsYabfaryPUcdHktCBpvg,3690
|
|
497
500
|
omlish/lifecycles/manager.py,sha256=yv3GHXbKYjlGQIxiKw4NoiyMjZVuELXKWphIuGMaylw,8787
|
|
@@ -512,7 +515,7 @@ omlish/lite/imports.py,sha256=GyEDKL-WuHtdOKIL-cc8aFd0-bHwZFDEjAB52ItabX0,1341
|
|
|
512
515
|
omlish/lite/inject.py,sha256=BQgjBj2mzJgMimLam-loSpQzcb31-8NYPVRQgHVv3cQ,29159
|
|
513
516
|
omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
|
|
514
517
|
omlish/lite/marshal.py,sha256=oVqVwqTArFUj9lYhmKg_MVgnqlCAUvOnYgtU3bBu_bk,23020
|
|
515
|
-
omlish/lite/maybes.py,sha256=
|
|
518
|
+
omlish/lite/maybes.py,sha256=b8G1QRUpBoDiLCbJro1uXxoeOT5NWQc1Ox_09I_OTOk,4681
|
|
516
519
|
omlish/lite/maysync.py,sha256=Otd-xqWaMzY9xBF5SiLKxu4kG_GaWGk8qTGFDAHXDm4,14803
|
|
517
520
|
omlish/lite/objects.py,sha256=HzN_4J6w6WDLKDrW8jSNUKgfAR5vUsB42rtSCu04oqQ,1921
|
|
518
521
|
omlish/lite/pycharm.py,sha256=fdSTwtdqGRL0P9IkCrDAPqQkJsegq1NfYyVG2N6cy4w,1174
|
|
@@ -524,13 +527,14 @@ omlish/lite/strings.py,sha256=rapGrc2BrIDstAEJov3pG_30PimOIR7IFVYioyTi-MM,1831
|
|
|
524
527
|
omlish/lite/timeouts.py,sha256=OLU9iju2pkk3niM20aPnmA6AqabFmW8zeLDu6WsuaxA,5008
|
|
525
528
|
omlish/lite/timing.py,sha256=KTlEa5PyT6BXf8AwGVWUNtoVgRx9zwSUrBQnkpygK78,262
|
|
526
529
|
omlish/lite/types.py,sha256=QM9whf55r7TmmQBRApIWSlyVKsl1p_jcut_YheyZMFY,146
|
|
527
|
-
omlish/lite/typing.py,sha256=
|
|
530
|
+
omlish/lite/typing.py,sha256=Z24L5x4RiS60RcHTMPCLl2U8Bzvv1mJ2AvpIrIiGfE0,2292
|
|
528
531
|
omlish/lite/wrappers.py,sha256=d00Ls2kFHuogKd5wEBaU65VNCN10YXIZtiwu1mbMpmA,530
|
|
529
532
|
omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
530
533
|
omlish/logs/_amalg.py,sha256=9aaOU324p9ZhjfP-wdmbjbKYbjVgxucrJPYfM1oHxuo,208
|
|
531
|
-
omlish/logs/all.py,sha256=
|
|
534
|
+
omlish/logs/all.py,sha256=2GnWnLUcwsOhMaGzgFyDU__--blvXaWheDfTf8hxloY,2225
|
|
532
535
|
omlish/logs/asyncs.py,sha256=uwgt68z-hZQvSqMhjBsNRoFefMOG_-PatfNTJEvXJ8s,2189
|
|
533
|
-
omlish/logs/base.py,sha256=
|
|
536
|
+
omlish/logs/base.py,sha256=WnSHe5zdjrcBZIUmuYhnkORRKawlCLz2VLXYZGfzvRY,7301
|
|
537
|
+
omlish/logs/bisync.py,sha256=JEkI6m6b6y3ZKfUjBktgAv5YrXI74NgFsmMyvXWUt9o,2291
|
|
534
538
|
omlish/logs/contexts.py,sha256=dhwBjSrxcVpXng2pGI1IEs-kJTnS4bndmlviZTkGXTk,4956
|
|
535
539
|
omlish/logs/formatters.py,sha256=g8oGfP_ok0nrW9opIIh5LqcQTmdufWFGO-9pRKX4m3Q,242
|
|
536
540
|
omlish/logs/infos.py,sha256=Nr2SbyI978vP5BTiVZsXUBdy2k0CUiwggcW-wewJHmo,11560
|
|
@@ -563,7 +567,7 @@ omlish/manifests/loading.py,sha256=WtlWb0rwtHLPEukY28Lva3b6_BQup8cUpyplUsKSWQY,1
|
|
|
563
567
|
omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
|
|
564
568
|
omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
|
|
565
569
|
omlish/marshal/__init__.py,sha256=zmNQNAla57SbwjW7iz74nmEIvrnx8Dp6k5qvqwCeAHM,6548
|
|
566
|
-
omlish/marshal/_dataclasses.py,sha256=
|
|
570
|
+
omlish/marshal/_dataclasses.py,sha256=tLkOMblamOWHHK_ecFziFRxoNaz9n12pcSwb9x3aXpE,134060
|
|
567
571
|
omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
|
|
568
572
|
omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
|
|
569
573
|
omlish/marshal/standard.py,sha256=8Qy5L3qMHO-V_fu78tM62wMcGpF0kgrFrxn06IRbFXQ,6906
|
|
@@ -690,7 +694,7 @@ omlish/specs/__init__.py,sha256=fxpcfXEWESH2kiPStKhl2dAdfLkZVTt_cssZKyqBLiQ,87
|
|
|
690
694
|
omlish/specs/jmespath/LICENSE,sha256=IH-ZZlZkS8XMkf_ubNVD1aYHQ2l_wd0tmHtXrCcYpRU,1113
|
|
691
695
|
omlish/specs/jmespath/__init__.py,sha256=aKDqajwWrB-FJFsGkPxDkXzJPeebk4rz_g4JYQnCn4g,2268
|
|
692
696
|
omlish/specs/jmespath/__main__.py,sha256=AkowPx7ASpK0E4EMq0MiwVarLDB7alConH-2mBOGYIA,194
|
|
693
|
-
omlish/specs/jmespath/_dataclasses.py,sha256=
|
|
697
|
+
omlish/specs/jmespath/_dataclasses.py,sha256=Lwjf6wbtU02WomuWzkJd4OH2JIPRlrESoTLrCpIRwrc,130047
|
|
694
698
|
omlish/specs/jmespath/ast.py,sha256=PmUJYWlxTzOooSvzgjbFxus5SXATHPxNqvCgRzOlqv8,5657
|
|
695
699
|
omlish/specs/jmespath/cli.py,sha256=oQ8u8sKM9kysB2rGChXrCl7RgsUgo6MNrWtzdLz4eIA,2147
|
|
696
700
|
omlish/specs/jmespath/errors.py,sha256=mJ8z6Q5XmQgZ_rZBAF42ahqqVXvsGqw8rwG0wJorLmk,4444
|
|
@@ -708,7 +712,7 @@ omlish/specs/jsonschema/__init__.py,sha256=12JNHdvV-LN0d0Ir80Ch8msVb4JqGSjB0wLSw
|
|
|
708
712
|
omlish/specs/jsonschema/_marshal.py,sha256=LTIMWdBkBQ_1gdVwTszfPu9wIrPYbdG2MGts1bbLFqM,872
|
|
709
713
|
omlish/specs/jsonschema/types.py,sha256=_H7ma99hD3_Xu42BFGHOXRI5p79tY8WBX8QE36k7lbw,472
|
|
710
714
|
omlish/specs/jsonschema/keywords/__init__.py,sha256=RRhYsfitdBmiGGCWOPIJ3K-XE7zOufVMNZrowCRAPXw,99
|
|
711
|
-
omlish/specs/jsonschema/keywords/_dataclasses.py,sha256=
|
|
715
|
+
omlish/specs/jsonschema/keywords/_dataclasses.py,sha256=RG_XWtXO-GEbe1PYaUZdWFH_sry69lnY-t8EGSPewME,71089
|
|
712
716
|
omlish/specs/jsonschema/keywords/base.py,sha256=_O_VZySO5j5vnEiQWojk3zwaj7OQowT0e6bk3UYDTeM,3011
|
|
713
717
|
omlish/specs/jsonschema/keywords/core.py,sha256=3Pbi8d-eocEAxEdemNa0ldp5lrLWNmH0Tye-5rglUoU,535
|
|
714
718
|
omlish/specs/jsonschema/keywords/format.py,sha256=9trrxHe38FDx47I8UfvO4PD_IygRlkEyTUJ3XlxDM6Y,244
|
|
@@ -872,18 +876,19 @@ omlish/text/docwrap/wrapping.py,sha256=VyECcYTpjPz7SidT8PJi7mLTg4bGLzaME1H3G5Ub0
|
|
|
872
876
|
omlish/text/go/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
873
877
|
omlish/text/go/quoting.py,sha256=zbcPEDWsdj7GAemtu0x8nwMqpIu2C_5iInSwn6mMWlE,9142
|
|
874
878
|
omlish/typedvalues/__init__.py,sha256=dQpM8VaON8S7dUv1LBwhyBDjUVo7EW475a9DpnDQz1E,936
|
|
879
|
+
omlish/typedvalues/_collection.cc,sha256=-SIMnZ6vxe20m0A8mw913t_v5dXS2YgY_bGBN0umHTg,15680
|
|
875
880
|
omlish/typedvalues/accessor.py,sha256=2PQVoFrrCTOcZACAQ28GOvF9xhKyKz27GMSfS0xq5Pc,3184
|
|
876
|
-
omlish/typedvalues/collection.py,sha256=
|
|
881
|
+
omlish/typedvalues/collection.py,sha256=ZWnkkizqjwtYpitcmgS_YoYnasWQBAsrF_lpm70A6ME,8869
|
|
877
882
|
omlish/typedvalues/consumer.py,sha256=lDOE-O_sgGbOvbcBg2g5ZRaV2WixnuEYxFsJBaj18oU,4690
|
|
878
|
-
omlish/typedvalues/generic.py,sha256=
|
|
883
|
+
omlish/typedvalues/generic.py,sha256=yptcqJ01WMNeOskrFrxQPBLynA3vJUQP0c7e0FIfZY4,797
|
|
879
884
|
omlish/typedvalues/holder.py,sha256=vu-umn-h1nvUqmtV5T9ZfQ_OoOYsERu8PhI2N48Ryns,1133
|
|
880
885
|
omlish/typedvalues/marshal.py,sha256=2xqX6JllhtGpmeYkU7C-qzgU__0x-vd6CzYbAsocQlc,6058
|
|
881
886
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
|
882
887
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
|
883
|
-
omlish/typedvalues/values.py,sha256=
|
|
884
|
-
omlish-0.0.0.
|
|
885
|
-
omlish-0.0.0.
|
|
886
|
-
omlish-0.0.0.
|
|
887
|
-
omlish-0.0.0.
|
|
888
|
-
omlish-0.0.0.
|
|
889
|
-
omlish-0.0.0.
|
|
888
|
+
omlish/typedvalues/values.py,sha256=t_CmF-B48CsKT_qFmraR8GHxtiIKG1VFKvSbBRkH3LE,1621
|
|
889
|
+
omlish-0.0.0.dev506.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
890
|
+
omlish-0.0.0.dev506.dist-info/METADATA,sha256=VKyf4rk9j31zgGazqPQosJ8kFDI_flJClxz6v10RU3M,19417
|
|
891
|
+
omlish-0.0.0.dev506.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
892
|
+
omlish-0.0.0.dev506.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
|
893
|
+
omlish-0.0.0.dev506.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
|
894
|
+
omlish-0.0.0.dev506.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|