omlish 0.0.0.dev284__py3-none-any.whl → 0.0.0.dev285__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/dataclasses/__init__.py +58 -60
- omlish/dataclasses/api/__init__.py +25 -0
- omlish/dataclasses/api/classes/__init__.py +0 -0
- omlish/dataclasses/api/classes/conversion.py +30 -0
- omlish/dataclasses/api/classes/decorator.py +145 -0
- omlish/dataclasses/api/classes/make.py +109 -0
- omlish/dataclasses/api/classes/metadata.py +133 -0
- omlish/dataclasses/api/classes/params.py +78 -0
- omlish/dataclasses/api/fields/__init__.py +0 -0
- omlish/dataclasses/api/fields/building.py +120 -0
- omlish/dataclasses/api/fields/constructor.py +56 -0
- omlish/dataclasses/api/fields/conversion.py +191 -0
- omlish/dataclasses/api/fields/metadata.py +94 -0
- omlish/dataclasses/concerns/__init__.py +17 -0
- omlish/dataclasses/concerns/abc.py +15 -0
- omlish/dataclasses/concerns/copy.py +63 -0
- omlish/dataclasses/concerns/doc.py +53 -0
- omlish/dataclasses/concerns/eq.py +60 -0
- omlish/dataclasses/concerns/fields.py +119 -0
- omlish/dataclasses/concerns/frozen.py +133 -0
- omlish/dataclasses/concerns/hash.py +165 -0
- omlish/dataclasses/concerns/init.py +453 -0
- omlish/dataclasses/concerns/matchargs.py +27 -0
- omlish/dataclasses/concerns/mro.py +16 -0
- omlish/dataclasses/concerns/order.py +87 -0
- omlish/dataclasses/concerns/override.py +98 -0
- omlish/dataclasses/concerns/params.py +14 -0
- omlish/dataclasses/concerns/replace.py +48 -0
- omlish/dataclasses/concerns/repr.py +95 -0
- omlish/dataclasses/{impl → concerns}/slots.py +25 -1
- omlish/dataclasses/debug.py +2 -0
- omlish/dataclasses/errors.py +115 -0
- omlish/dataclasses/generation/__init__.py +0 -0
- omlish/dataclasses/generation/base.py +38 -0
- omlish/dataclasses/generation/compilation.py +258 -0
- omlish/dataclasses/generation/execution.py +195 -0
- omlish/dataclasses/generation/globals.py +83 -0
- omlish/dataclasses/generation/idents.py +6 -0
- omlish/dataclasses/generation/mangling.py +18 -0
- omlish/dataclasses/generation/manifests.py +20 -0
- omlish/dataclasses/generation/ops.py +97 -0
- omlish/dataclasses/generation/plans.py +35 -0
- omlish/dataclasses/generation/processor.py +174 -0
- omlish/dataclasses/generation/registry.py +42 -0
- omlish/dataclasses/generation/utils.py +83 -0
- omlish/dataclasses/{impl/reflect.py → inspect.py} +53 -90
- omlish/dataclasses/{impl/internals.py → internals.py} +26 -32
- omlish/dataclasses/metaclass/__init__.py +0 -0
- omlish/dataclasses/metaclass/bases.py +69 -0
- omlish/dataclasses/metaclass/confer.py +65 -0
- omlish/dataclasses/metaclass/meta.py +115 -0
- omlish/dataclasses/metaclass/specs.py +38 -0
- omlish/dataclasses/processing/__init__.py +0 -0
- omlish/dataclasses/processing/base.py +83 -0
- omlish/dataclasses/processing/driving.py +45 -0
- omlish/dataclasses/processing/priority.py +13 -0
- omlish/dataclasses/processing/registry.py +81 -0
- omlish/dataclasses/reflection.py +81 -0
- omlish/dataclasses/specs.py +224 -0
- omlish/dataclasses/tools/__init__.py +0 -0
- omlish/dataclasses/{impl → tools}/as_.py +23 -8
- omlish/dataclasses/tools/iter.py +27 -0
- omlish/dataclasses/tools/modifiers.py +52 -0
- omlish/dataclasses/tools/replace.py +17 -0
- omlish/dataclasses/tools/repr.py +12 -0
- omlish/dataclasses/{static.py → tools/static.py} +25 -4
- omlish/dataclasses/utils.py +54 -109
- omlish/diag/__init__.py +4 -4
- omlish/inject/impl/origins.py +1 -1
- omlish/lang/cached/function.py +4 -2
- omlish/marshal/objects/dataclasses.py +3 -7
- omlish/marshal/objects/helpers.py +3 -3
- omlish/secrets/marshal.py +1 -1
- omlish/secrets/secrets.py +1 -1
- omlish/sql/queries/base.py +1 -1
- omlish/typedvalues/marshal.py +2 -2
- {omlish-0.0.0.dev284.dist-info → omlish-0.0.0.dev285.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev284.dist-info → omlish-0.0.0.dev285.dist-info}/RECORD +83 -43
- omlish/dataclasses/impl/LICENSE +0 -279
- omlish/dataclasses/impl/__init__.py +0 -33
- omlish/dataclasses/impl/api.py +0 -278
- omlish/dataclasses/impl/copy.py +0 -30
- omlish/dataclasses/impl/errors.py +0 -53
- omlish/dataclasses/impl/fields.py +0 -245
- omlish/dataclasses/impl/frozen.py +0 -93
- omlish/dataclasses/impl/hashing.py +0 -86
- omlish/dataclasses/impl/init.py +0 -199
- omlish/dataclasses/impl/main.py +0 -93
- omlish/dataclasses/impl/metaclass.py +0 -235
- omlish/dataclasses/impl/metadata.py +0 -75
- omlish/dataclasses/impl/order.py +0 -57
- omlish/dataclasses/impl/overrides.py +0 -53
- omlish/dataclasses/impl/params.py +0 -128
- omlish/dataclasses/impl/processing.py +0 -24
- omlish/dataclasses/impl/replace.py +0 -40
- omlish/dataclasses/impl/repr.py +0 -66
- omlish/dataclasses/impl/simple.py +0 -50
- omlish/dataclasses/impl/utils.py +0 -167
- {omlish-0.0.0.dev284.dist-info → omlish-0.0.0.dev285.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev284.dist-info → omlish-0.0.0.dev285.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev284.dist-info → omlish-0.0.0.dev285.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev284.dist-info → omlish-0.0.0.dev285.dist-info}/top_level.txt +0 -0
@@ -8,9 +8,9 @@ import copy
|
|
8
8
|
import dataclasses as dc
|
9
9
|
import typing as ta
|
10
10
|
|
11
|
-
from
|
12
|
-
from
|
13
|
-
from .
|
11
|
+
from ... import lang
|
12
|
+
from ...lite.dataclasses import is_immediate_dataclass
|
13
|
+
from ..api.classes.decorator import dataclass
|
14
14
|
|
15
15
|
|
16
16
|
##
|
@@ -122,6 +122,27 @@ class Static(lang.Abstract):
|
|
122
122
|
# Use a default_factory to allow unsafe (mutable) values.
|
123
123
|
new_fld.default_factory = (lambda v2: lambda: v2)(v) # noqa
|
124
124
|
|
125
|
+
# FIXME
|
126
|
+
from ..api.fields.metadata import _ExtraFieldParamsMetadata # noqa
|
127
|
+
from ..specs import FieldSpec
|
128
|
+
try:
|
129
|
+
x_fs = fld.metadata[FieldSpec]
|
130
|
+
except KeyError:
|
131
|
+
pass
|
132
|
+
else:
|
133
|
+
n_md = {
|
134
|
+
k: v
|
135
|
+
for k, v in fld.metadata.items()
|
136
|
+
if k not in (FieldSpec, _ExtraFieldParamsMetadata)
|
137
|
+
}
|
138
|
+
n_md[_ExtraFieldParamsMetadata] = {
|
139
|
+
fs_f.name: getattr(x_fs, fs_f.name)
|
140
|
+
for fs_f in dc.fields(FieldSpec) # noqa
|
141
|
+
if fs_f not in dc.Field.__slots__ # type: ignore[attr-defined]
|
142
|
+
and fs_f.name not in ('default', 'default_factory')
|
143
|
+
}
|
144
|
+
new_fld.metadata = n_md # type: ignore[assignment]
|
145
|
+
|
125
146
|
setattr(cls, fld.name, new_fld)
|
126
147
|
new_anns[fld.name] = fld.type
|
127
148
|
|
@@ -144,7 +165,7 @@ class Static(lang.Abstract):
|
|
144
165
|
)
|
145
166
|
|
146
167
|
# Explicitly forbid dc transforms that rebuild the class, such as slots.
|
147
|
-
if (dc_cls := dataclass(
|
168
|
+
if (dc_cls := dataclass(frozen=True)(cls)) is not cls:
|
148
169
|
raise TypeError(dc_cls)
|
149
170
|
|
150
171
|
dc_flds = dc.fields(cls) # type: ignore[arg-type] # noqa
|
omlish/dataclasses/utils.py
CHANGED
@@ -1,153 +1,98 @@
|
|
1
|
+
import ast
|
1
2
|
import collections
|
2
|
-
import
|
3
|
+
import functools
|
3
4
|
import types
|
4
5
|
import typing as ta
|
5
6
|
|
6
7
|
from .. import check
|
7
|
-
from .impl.metadata import METADATA_ATTR
|
8
|
-
from .impl.metadata import UserMetadata
|
9
|
-
from .impl.params import DEFAULT_FIELD_EXTRAS
|
10
|
-
from .impl.params import FieldExtras
|
11
|
-
from .impl.params import get_field_extras
|
12
8
|
|
13
9
|
|
14
10
|
T = ta.TypeVar('T')
|
15
11
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
def opt_repr(o: ta.Any) -> str | None:
|
21
|
-
return repr(o) if o is not None else None
|
22
|
-
|
23
|
-
|
24
|
-
def truthy_repr(o: ta.Any) -> str | None:
|
25
|
-
return repr(o) if o else None
|
12
|
+
K = ta.TypeVar('K')
|
13
|
+
V = ta.TypeVar('V')
|
26
14
|
|
27
15
|
|
28
16
|
##
|
29
17
|
|
30
18
|
|
31
|
-
def
|
32
|
-
|
19
|
+
def repr_round_trip_value(v: T) -> T:
|
20
|
+
r = repr(v)
|
21
|
+
v2 = ast.literal_eval(r)
|
22
|
+
if v != v2:
|
23
|
+
raise ValueError(v)
|
24
|
+
return v2
|
33
25
|
|
34
26
|
|
35
27
|
##
|
36
28
|
|
37
29
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
30
|
+
def set_qualname(cls: type, value: T) -> T:
|
31
|
+
if isinstance(value, types.FunctionType):
|
32
|
+
value.__qualname__ = f'{cls.__qualname__}.{value.__name__}'
|
33
|
+
return value
|
42
34
|
|
43
|
-
def __ror__(self, other: T) -> T:
|
44
|
-
return self(other)
|
45
35
|
|
46
|
-
|
47
|
-
|
36
|
+
def set_new_attribute(cls: type, name: str, value: ta.Any) -> bool:
|
37
|
+
if name in cls.__dict__:
|
38
|
+
return True
|
39
|
+
set_qualname(cls, value)
|
40
|
+
setattr(cls, name, value)
|
41
|
+
return False
|
48
42
|
|
49
43
|
|
50
|
-
|
51
|
-
return types.MappingProxyType(collections.ChainMap(*mds)) # type: ignore # noqa
|
44
|
+
##
|
52
45
|
|
53
46
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
md.setdefault(UserMetadata, []).extend(args)
|
58
|
-
return cls
|
47
|
+
class SealableRegistry(ta.Generic[K, V]):
|
48
|
+
def __init__(self) -> None:
|
49
|
+
super().__init__()
|
59
50
|
|
51
|
+
self._dct: dict[K, V] = {}
|
52
|
+
self._sealed = False
|
60
53
|
|
61
|
-
def
|
62
|
-
|
63
|
-
f.metadata = chain_metadata(nmd, f.metadata)
|
64
|
-
return f
|
54
|
+
def seal(self) -> None:
|
55
|
+
self._sealed = True
|
65
56
|
|
57
|
+
def __setitem__(self, k: K, v: V) -> None:
|
58
|
+
check.state(not self._sealed)
|
59
|
+
check.not_in(k, self._dct)
|
60
|
+
self._dct[k] = v
|
66
61
|
|
67
|
-
def
|
68
|
-
|
69
|
-
|
70
|
-
FieldExtras: dc.replace(fe, **{
|
71
|
-
k: v
|
72
|
-
for k, v in kwargs.items()
|
73
|
-
if not unless_non_default or v != getattr(DEFAULT_FIELD_EXTRAS, k)
|
74
|
-
}),
|
75
|
-
})
|
62
|
+
def __getitem__(self, k: K) -> V:
|
63
|
+
self.seal()
|
64
|
+
return self._dct[k]
|
76
65
|
|
66
|
+
def items(self) -> ta.Iterator[tuple[K, V]]:
|
67
|
+
self.seal()
|
68
|
+
return iter(self._dct.items())
|
77
69
|
|
78
|
-
def update_fields(
|
79
|
-
fn: ta.Callable[[str, dc.Field], dc.Field],
|
80
|
-
fields: ta.Iterable[str] | None = None,
|
81
|
-
) -> ta.Callable[[type[T]], type[T]]:
|
82
|
-
def inner(cls):
|
83
|
-
if fields is None:
|
84
|
-
for a, v in list(cls.__dict__.items()):
|
85
|
-
if isinstance(v, dc.Field):
|
86
|
-
setattr(cls, a, fn(a, v))
|
87
70
|
|
88
|
-
|
89
|
-
for a in fields:
|
90
|
-
try:
|
91
|
-
v = cls.__dict__[a]
|
92
|
-
except KeyError:
|
93
|
-
v = dc.field()
|
94
|
-
else:
|
95
|
-
if not isinstance(v, dc.Field):
|
96
|
-
v = dc.field(default=v)
|
97
|
-
setattr(cls, a, fn(a, v))
|
71
|
+
##
|
98
72
|
|
99
|
-
return cls
|
100
73
|
|
101
|
-
|
74
|
+
def class_decorator(fn):
|
75
|
+
@functools.wraps(fn)
|
76
|
+
def inner(cls=None, *args, **kwargs):
|
77
|
+
if cls is None:
|
78
|
+
return lambda cls: fn(cls, *args, **kwargs) # noqa
|
79
|
+
return fn(cls, *args, **kwargs)
|
102
80
|
return inner
|
103
81
|
|
104
82
|
|
105
|
-
def update_fields_metadata(
|
106
|
-
nmd: ta.Mapping,
|
107
|
-
fields: ta.Iterable[str] | None = None,
|
108
|
-
) -> ta.Callable[[type[T]], type[T]]:
|
109
|
-
def inner(a: str, f: dc.Field) -> dc.Field:
|
110
|
-
return update_field_metadata(f, nmd)
|
111
|
-
|
112
|
-
return update_fields(inner, fields)
|
113
|
-
|
114
|
-
|
115
83
|
##
|
116
84
|
|
117
85
|
|
118
|
-
|
119
|
-
return tuple(getattr(o, f.name) for f in dc.fields(o))
|
86
|
+
_EMPTY_MAPPING_PROXY: ta.Mapping = types.MappingProxyType({})
|
120
87
|
|
121
88
|
|
122
|
-
def
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
def deep_replace(o: T, *args: str | ta.Callable[[ta.Any], ta.Mapping[str, ta.Any]]) -> T:
|
130
|
-
if not args:
|
131
|
-
return o
|
132
|
-
elif len(args) == 1:
|
133
|
-
return dc.replace(o, **args[0](o)) # type: ignore
|
89
|
+
def chain_mapping_proxy(*ms: ta.Mapping) -> types.MappingProxyType:
|
90
|
+
m: ta.Any
|
91
|
+
if len(ms) > 1:
|
92
|
+
m = collections.ChainMap(*ms) # type: ignore[arg-type]
|
93
|
+
elif ms:
|
94
|
+
[m] = ms
|
134
95
|
else:
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
##
|
139
|
-
|
140
|
-
|
141
|
-
def iter_items(obj: ta.Any) -> ta.Iterator[tuple[str, ta.Any]]:
|
142
|
-
for f in dc.fields(obj):
|
143
|
-
yield (f.name, getattr(obj, f.name))
|
144
|
-
|
145
|
-
|
146
|
-
def iter_keys(obj: ta.Any) -> ta.Iterator[str]:
|
147
|
-
for f in dc.fields(obj):
|
148
|
-
yield f.name
|
149
|
-
|
96
|
+
m = _EMPTY_MAPPING_PROXY
|
150
97
|
|
151
|
-
|
152
|
-
for f in dc.fields(obj):
|
153
|
-
yield getattr(obj, f.name)
|
98
|
+
return types.MappingProxyType(m)
|
omlish/diag/__init__.py
CHANGED
@@ -17,10 +17,10 @@ Debuggers
|
|
17
17
|
|
18
18
|
CPU Profilers
|
19
19
|
- cProfile - https://docs.python.org/3/library/profile.html
|
20
|
-
-
|
21
|
-
-
|
22
|
-
-
|
23
|
-
-
|
20
|
+
- yappi - https://github.com/sumerc/yappi - tracing
|
21
|
+
- pyinstrument - https://github.com/joerick/pyinstrument - pretty
|
22
|
+
- py-spy - https://github.com/benfred/py-spy - busted on mac
|
23
|
+
- austin-dist - https://github.com/P403n1x87/austin - old
|
24
24
|
|
25
25
|
Memory Profilers
|
26
26
|
- tracemalloc - https://docs.python.org/3/library/tracemalloc.html
|
omlish/inject/impl/origins.py
CHANGED
omlish/lang/cached/function.py
CHANGED
@@ -151,11 +151,12 @@ def _make_cache_key_maker(
|
|
151
151
|
|
152
152
|
|
153
153
|
class _CachedFunction(ta.Generic[T], Abstract):
|
154
|
-
@dc.dataclass(frozen=True)
|
154
|
+
@dc.dataclass(frozen=True, kw_only=True)
|
155
155
|
class Opts:
|
156
156
|
map_maker: ta.Callable[[], ta.MutableMapping] = dict
|
157
157
|
lock: DefaultLockable = None
|
158
158
|
transient: bool = False
|
159
|
+
no_wrapper_update: bool = False
|
159
160
|
|
160
161
|
def __init__(
|
161
162
|
self,
|
@@ -175,7 +176,8 @@ class _CachedFunction(ta.Generic[T], Abstract):
|
|
175
176
|
self._lock = default_lock(opts.lock, False)() if opts.lock is not None else None
|
176
177
|
self._values = values if values is not None else opts.map_maker()
|
177
178
|
self._value_fn = value_fn if value_fn is not None else fn
|
178
|
-
|
179
|
+
if not self._opts.no_wrapper_update:
|
180
|
+
functools.update_wrapper(self, fn)
|
179
181
|
|
180
182
|
@property
|
181
183
|
def _fn(self):
|
@@ -34,11 +34,7 @@ from .unmarshal import ObjectUnmarshaler
|
|
34
34
|
|
35
35
|
|
36
36
|
def get_dataclass_metadata(ty: type) -> ObjectMetadata:
|
37
|
-
return check.
|
38
|
-
e
|
39
|
-
for e in dc.get_merged_metadata(ty).get(dc.UserMetadata, [])
|
40
|
-
if isinstance(e, ObjectMetadata)
|
41
|
-
) or ObjectMetadata()
|
37
|
+
return check.single(dc.reflect(ty).spec.metadata_by_type.get(ObjectMetadata) or [ObjectMetadata()])
|
42
38
|
|
43
39
|
|
44
40
|
def get_dataclass_field_infos(
|
@@ -76,10 +72,10 @@ def get_dataclass_field_infos(
|
|
76
72
|
|
77
73
|
f_ty: ta.Any
|
78
74
|
if (
|
79
|
-
|
75
|
+
dc_rfl.spec.generic_init or
|
80
76
|
(fmd is not None and fmd.options.generic_replace)
|
81
77
|
):
|
82
|
-
f_ty = rfl.to_annotation(dc_rfl.generic_replaced_field_type(field.name))
|
78
|
+
f_ty = rfl.to_annotation(dc_rfl.fields_inspection.generic_replaced_field_type(field.name))
|
83
79
|
else:
|
84
80
|
f_ty = type_hints[field.name]
|
85
81
|
|
@@ -14,7 +14,7 @@ T = ta.TypeVar('T')
|
|
14
14
|
def update_field_metadata(**kwargs: ta.Any) -> dc.field_modifier:
|
15
15
|
@dc.field_modifier
|
16
16
|
def inner(f: dc.Field) -> dc.Field:
|
17
|
-
return dc.
|
17
|
+
return dc.set_field_metadata(f, {
|
18
18
|
FieldMetadata: f.metadata.get(FieldMetadata, FieldMetadata()).update(**kwargs),
|
19
19
|
})
|
20
20
|
return inner
|
@@ -25,7 +25,7 @@ def update_fields_metadata(
|
|
25
25
|
**kwargs: ta.Any,
|
26
26
|
) -> ta.Callable[[type[T]], type[T]]:
|
27
27
|
def inner(a: str, f: dc.Field) -> dc.Field:
|
28
|
-
return dc.
|
28
|
+
return dc.set_field_metadata(f, {
|
29
29
|
FieldMetadata: f.metadata.get(FieldMetadata, FieldMetadata()).update(**kwargs),
|
30
30
|
})
|
31
31
|
|
@@ -37,7 +37,7 @@ def update_object_metadata(
|
|
37
37
|
**kwargs: ta.Any,
|
38
38
|
):
|
39
39
|
def inner(cls):
|
40
|
-
return dc.
|
40
|
+
return dc.append_class_metadata(cls, ObjectMetadata(**kwargs))
|
41
41
|
|
42
42
|
if cls is not None:
|
43
43
|
inner(cls)
|
omlish/secrets/marshal.py
CHANGED
@@ -44,7 +44,7 @@ class StrOrSecretRefMarshalerUnmarshaler(msh.Marshaler, msh.Unmarshaler):
|
|
44
44
|
def marshal_secret_field(f: dc.Field) -> dc.Field:
|
45
45
|
"""Mostly obsolete with auto-registration below."""
|
46
46
|
|
47
|
-
return dc.
|
47
|
+
return dc.set_field_metadata(f, {
|
48
48
|
msh.FieldMetadata: dc.replace(
|
49
49
|
f.metadata.get(msh.FieldMetadata, msh.FieldMetadata()),
|
50
50
|
marshaler=StrOrSecretRefMarshalerUnmarshaler(),
|
omlish/secrets/secrets.py
CHANGED
omlish/sql/queries/base.py
CHANGED
omlish/typedvalues/marshal.py
CHANGED
@@ -32,7 +32,7 @@ class TypedValueMarshalerFactory(msh.MarshalerFactoryMatchClass):
|
|
32
32
|
))
|
33
33
|
def _build_scalar(self, ctx: msh.MarshalContext, rty: rfl.Type) -> msh.Marshaler:
|
34
34
|
dc_rfl = dc.reflect(check.isinstance(rty, type))
|
35
|
-
v_rty = check.single(dc_rfl.generic_replaced_field_annotations.values())
|
35
|
+
v_rty = check.single(dc_rfl.fields_inspection.generic_replaced_field_annotations.values())
|
36
36
|
v_m = ctx.make(v_rty)
|
37
37
|
return msh.WrappedMarshaler(lambda _, o: o.v, v_m)
|
38
38
|
|
@@ -58,7 +58,7 @@ class TypedValueUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
|
|
58
58
|
def _build_scalar(self, ctx: msh.UnmarshalContext, rty: rfl.Type) -> msh.Unmarshaler:
|
59
59
|
rty = check.isinstance(rty, type)
|
60
60
|
dc_rfl = dc.reflect(rty)
|
61
|
-
v_rty = check.single(dc_rfl.generic_replaced_field_annotations.values())
|
61
|
+
v_rty = check.single(dc_rfl.fields_inspection.generic_replaced_field_annotations.values())
|
62
62
|
v_u = ctx.make(v_rty)
|
63
63
|
return msh.WrappedUnmarshaler(lambda _, v: rty(v), v_u)
|
64
64
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=pjGUyLHaoWpPqRP3jz2u1fC1qoRc2lvrEcpU_Ax2tdg,8253
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=HdBvgJvGybfoC0HT12EdWHXOYyK8r8Y4UmpMPI4FqC0,3380
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
@@ -202,34 +202,74 @@ omlish/daemons/services.py,sha256=YYp2SMkJ71WgzOcYSXjWHeAyKKxu3j1dfuJvWkl0Dgw,34
|
|
202
202
|
omlish/daemons/spawning.py,sha256=psR73zOYjMKTqNpx1bMib8uU9wAZz62tw5TaWHrTdyY,5337
|
203
203
|
omlish/daemons/targets.py,sha256=00KmtlknMhQ5PyyVAhWl3rpeTMPym0GxvHHq6mYPZ7c,3051
|
204
204
|
omlish/daemons/waiting.py,sha256=RfgD1L33QQVbD2431dkKZGE4w6DUcGvYeRXXi8puAP4,1676
|
205
|
-
omlish/dataclasses/__init__.py,sha256=
|
206
|
-
omlish/dataclasses/
|
207
|
-
omlish/dataclasses/
|
208
|
-
omlish/dataclasses/
|
209
|
-
omlish/dataclasses/
|
210
|
-
omlish/dataclasses/
|
211
|
-
omlish/dataclasses/
|
212
|
-
omlish/dataclasses/
|
213
|
-
omlish/dataclasses/
|
214
|
-
omlish/dataclasses/
|
215
|
-
omlish/dataclasses/
|
216
|
-
omlish/dataclasses/
|
217
|
-
omlish/dataclasses/
|
218
|
-
omlish/dataclasses/
|
219
|
-
omlish/dataclasses/
|
220
|
-
omlish/dataclasses/
|
221
|
-
omlish/dataclasses/
|
222
|
-
omlish/dataclasses/
|
223
|
-
omlish/dataclasses/
|
224
|
-
omlish/dataclasses/
|
225
|
-
omlish/dataclasses/
|
226
|
-
omlish/dataclasses/
|
227
|
-
omlish/dataclasses/
|
228
|
-
omlish/dataclasses/
|
229
|
-
omlish/dataclasses/
|
230
|
-
omlish/dataclasses/
|
231
|
-
omlish/dataclasses/
|
232
|
-
omlish/
|
205
|
+
omlish/dataclasses/__init__.py,sha256=xo5rJYrQ2JE5jcX4fHv5e9bC6RIXFd-K8yurUP20oO8,1834
|
206
|
+
omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
|
207
|
+
omlish/dataclasses/errors.py,sha256=tyv3WR6az66uGGiq9FIuCHvy1Ef-G7zeMY7mMG6hy2Y,2527
|
208
|
+
omlish/dataclasses/inspect.py,sha256=BlpPghVCU3w_YDnONEqqE99YHzJM2q3eoqe39YX25Ko,4596
|
209
|
+
omlish/dataclasses/internals.py,sha256=qFSDQzBtukvYO5QMoZx83nwyNA53S-8jJyB9l1e1oZ0,2975
|
210
|
+
omlish/dataclasses/reflection.py,sha256=5N4acL27xwSnQJvoks6ts2JseGfwL_P9D2gM9vqtAFM,2243
|
211
|
+
omlish/dataclasses/specs.py,sha256=h9qD2xAijKAS95Iw3GUPx3mj1peoUOlgh7aXtqVfmDU,6073
|
212
|
+
omlish/dataclasses/utils.py,sha256=_1B6tEkkcxHVoLBEo34ebR_0E-iZW7W0zFTo27EdSqY,1854
|
213
|
+
omlish/dataclasses/api/__init__.py,sha256=GFodt19CKrfuBpdv1EUqVUCPAFIlHPnabE2G8QJElBY,426
|
214
|
+
omlish/dataclasses/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
215
|
+
omlish/dataclasses/api/classes/conversion.py,sha256=x1Ayo5W3t8lVh10KGH_ZBJ_kK7HqcdI2LdJA6mR_WXQ,810
|
216
|
+
omlish/dataclasses/api/classes/decorator.py,sha256=4IiMWsCeXD7lubTZC_becVsi8zsIIH8fN2PbP-fFZE0,2990
|
217
|
+
omlish/dataclasses/api/classes/make.py,sha256=O3iWvCMHW4XJXmHHDvNsh5rhkPh9VQ-iCPMUGPWETAM,2629
|
218
|
+
omlish/dataclasses/api/classes/metadata.py,sha256=2YafXunxqbqnHIdp5gsiGLyH7cWg9FR5wCwcxlLFd20,2685
|
219
|
+
omlish/dataclasses/api/classes/params.py,sha256=qmHuGC4vB8o-7cnRXllVz_WNprx2fsyrNzPY2mYC5FM,1680
|
220
|
+
omlish/dataclasses/api/fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
221
|
+
omlish/dataclasses/api/fields/building.py,sha256=YVAJZ2c318vK0YWz9VU8_MdjA5qNjqsI3N85K-bD0TI,3314
|
222
|
+
omlish/dataclasses/api/fields/constructor.py,sha256=dRnVR5srD-8nNaMxdkWh0oFPINwOu-D7n4QItI6AWPs,1310
|
223
|
+
omlish/dataclasses/api/fields/conversion.py,sha256=Pye4KOON78CBgDzwTqNb5fx8wE7uvlKcwVfQ2nhDzrM,5134
|
224
|
+
omlish/dataclasses/api/fields/metadata.py,sha256=4hGRvG96qPNeipbnHlnbDNWqCANGCuE9BmjKUzTEzRQ,1689
|
225
|
+
omlish/dataclasses/concerns/__init__.py,sha256=4Goga5wAOAbK6KcoHWC8jDC8M9ywgH7PfmXXxgCYCC8,208
|
226
|
+
omlish/dataclasses/concerns/abc.py,sha256=ok2qE9ltgZXdf34YtLElTr7A-IYErJvVfP1-G2t2Sbc,391
|
227
|
+
omlish/dataclasses/concerns/copy.py,sha256=U8kSHEvVupvXArS3OPB7GK_M7aPO9R3_Uk1nqHqxmJ8,1761
|
228
|
+
omlish/dataclasses/concerns/doc.py,sha256=SL0hj4EzXrVOhaDzHVDGnzylkOU7mcXtr9Tm3wuZnQQ,1344
|
229
|
+
omlish/dataclasses/concerns/eq.py,sha256=PI0KKzJyIziRLgcjl8efjapf8baaRCdcuyGW83bCpEo,1720
|
230
|
+
omlish/dataclasses/concerns/fields.py,sha256=-VnI7al9sKRs0xTCy-IUhl3EgCKBX5vczDUZNu72_KY,3311
|
231
|
+
omlish/dataclasses/concerns/frozen.py,sha256=IWfar9VIkMezE8Bh9duB5vVXy1qyABa1YEOwHVJOCqE,3872
|
232
|
+
omlish/dataclasses/concerns/hash.py,sha256=ouX8zyae_IUAMEd-0dvUAPO9bbp5AM1evumyUSr5inY,4815
|
233
|
+
omlish/dataclasses/concerns/init.py,sha256=_Yv4g7paBtkxnm3CgglBSAOQnoRAULv9HwvZg_od3WM,14542
|
234
|
+
omlish/dataclasses/concerns/matchargs.py,sha256=maHlfPCcHvAOGuXoLGu66ZizHdizU-UIrFCYbNMPR5g,748
|
235
|
+
omlish/dataclasses/concerns/mro.py,sha256=8bonGwAkNUazM_Wea6saW02S3gvGy5eGWKouOb9hvUw,407
|
236
|
+
omlish/dataclasses/concerns/order.py,sha256=f1JVDkeTWllO9Tu79xKkjHul-_rpsYZXHMTnca8Di30,2469
|
237
|
+
omlish/dataclasses/concerns/override.py,sha256=eegJ4KRs-p3Oj5ipY1eySwXJ3vFyVXG5gWRQZcsmvUQ,2810
|
238
|
+
omlish/dataclasses/concerns/params.py,sha256=ZrNGBUp87YkrOMW7bYn0GdYk9PuDHzxdwKn477lqUyE,404
|
239
|
+
omlish/dataclasses/concerns/replace.py,sha256=Q11NjVMMHVh9MjJ6osaXNFG5HuGWQM6qDgWK7IN0IIc,1501
|
240
|
+
omlish/dataclasses/concerns/repr.py,sha256=Ft8V0aqxNHz29fOAQsRoFTlLybbgGeT2QbSxXJa7Gyc,2855
|
241
|
+
omlish/dataclasses/concerns/slots.py,sha256=xg6346UT_oUlb0kYaWFbeJUKzZcpQx4nJkT86CXfI5c,5922
|
242
|
+
omlish/dataclasses/generation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
243
|
+
omlish/dataclasses/generation/base.py,sha256=adi68lJogtjx1SoxGJ5hqC-f-CMX2gWi8iALmucIwKo,686
|
244
|
+
omlish/dataclasses/generation/compilation.py,sha256=IRvt8AJlLdyq3boTs0e1V0U8Dkf85V1wmKNPl82ZnCQ,6995
|
245
|
+
omlish/dataclasses/generation/execution.py,sha256=ygCGB_88cluih-Q3H1toxOgabyTzHyO4WNUZNkrDtBc,4818
|
246
|
+
omlish/dataclasses/generation/globals.py,sha256=vN41vhYJ6P8fmxajSjHs3ic3yuE-ZctwQHmixRV6RNg,2674
|
247
|
+
omlish/dataclasses/generation/idents.py,sha256=GHvfuZMmmibJNxAM-8pZPTSy1kCC4oLx8Lb-jgriZsc,182
|
248
|
+
omlish/dataclasses/generation/mangling.py,sha256=AUtTMjAAuQ_kUfE-CypnpRsiM10EAkMkUMyouud2qs0,302
|
249
|
+
omlish/dataclasses/generation/manifests.py,sha256=tRLO59eysC13z_lbPxaErPy-xM3BIBRpj8MhmbYoGnE,309
|
250
|
+
omlish/dataclasses/generation/ops.py,sha256=dWse_SsoXtpDqXzDPJOqBeb9G5F7RrEChfGl4iTL0QE,1718
|
251
|
+
omlish/dataclasses/generation/plans.py,sha256=c3TRwa20quN-DrM-eI2KoTG4XVyL3n12RcwZoJxEgB0,536
|
252
|
+
omlish/dataclasses/generation/processor.py,sha256=Va-8RV19jIzqreXCUeP4nFMPglAfIxeIaGOzgYTU_IY,4496
|
253
|
+
omlish/dataclasses/generation/registry.py,sha256=_Cfvs9QY6f8Pvf9cKUi-OTI-qaDem3z5jcWkSDNk3kQ,1006
|
254
|
+
omlish/dataclasses/generation/utils.py,sha256=u6DWRvzxgqrxqyfAGzNOyDvnOJYdMTYyZ7l1oOOiXrI,2089
|
255
|
+
omlish/dataclasses/metaclass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
256
|
+
omlish/dataclasses/metaclass/bases.py,sha256=OSvFRx1PZ1HoBzT0YpsXy-AwAdWnNrcQ5p-teTIr7nY,1196
|
257
|
+
omlish/dataclasses/metaclass/confer.py,sha256=yj31r3Vi1bdEvBRBjQML5IBzqEtDpzH3xC3LGkUAkKI,1327
|
258
|
+
omlish/dataclasses/metaclass/meta.py,sha256=0MQG7Sl1y8QccGRgLOC0VoLDTMBG6VoyT-wZdthO1zI,2639
|
259
|
+
omlish/dataclasses/metaclass/specs.py,sha256=djzkHK95h06Cgrx8rr3SGkv2gOvL-fPOhWOBWbbN8h4,789
|
260
|
+
omlish/dataclasses/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
261
|
+
omlish/dataclasses/processing/base.py,sha256=wkPDfeojZ2mg72yifMW7VNpJBEgEbaC3Qr_bd8_aV5E,1827
|
262
|
+
omlish/dataclasses/processing/driving.py,sha256=k3SrbY1fAvRegYs_OorOeh3f5j6O7NEmL7yL7RnwVic,1033
|
263
|
+
omlish/dataclasses/processing/priority.py,sha256=57jdwUZ29Z9ZtKWIzyar4raNLHNrWd0c29ZLv2hcfjo,260
|
264
|
+
omlish/dataclasses/processing/registry.py,sha256=iNDHwW1gsq8gTMi4XvNBBzab0OYdSKvDLQw9gCBt2FI,1884
|
265
|
+
omlish/dataclasses/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
266
|
+
omlish/dataclasses/tools/as_.py,sha256=3mTFXf563Z4ZZnbCzJHv83WizOYBs2mpigJCamxTlpQ,2893
|
267
|
+
omlish/dataclasses/tools/iter.py,sha256=JQUFG4Gn-xthhJ3OEqXLOWkq2KhRMuIqvEow0HcFPZg,540
|
268
|
+
omlish/dataclasses/tools/modifiers.py,sha256=xo6D4yl58HhJrFwV1JeoNrLrgC4MUA6SAXCGoyV-gnM,1212
|
269
|
+
omlish/dataclasses/tools/replace.py,sha256=izM9lPT6AhEtjqn22auqaofa0j69KO7iootF-2Uj4cY,396
|
270
|
+
omlish/dataclasses/tools/repr.py,sha256=KFvF6uv2YYIKq8O3ZNbEAS1tqRQALsJ-SUlBNPd5_GI,190
|
271
|
+
omlish/dataclasses/tools/static.py,sha256=4TOwUmSthWUin0UMtZYw0O8APJYRAD39O3TW7WZShic,8665
|
272
|
+
omlish/diag/__init__.py,sha256=c1q8vuapGH1YiYdU300FIJXMI1MOcnLNBZXr-zc8BXk,1181
|
233
273
|
omlish/diag/asts.py,sha256=MWh9XAG3m9L10FIJCyoNT2aU4Eft6tun_x9K0riq6Dk,3332
|
234
274
|
omlish/diag/debug.py,sha256=ClED7kKXeVMyKrjGIxcq14kXk9kvUJfytBQwK9y7c4Q,1637
|
235
275
|
omlish/diag/lslocks.py,sha256=fWI3SZwgEkhipVfSqvzVzREJRShcDYmlYByHBT0LToc,1744
|
@@ -380,7 +420,7 @@ omlish/inject/impl/elements.py,sha256=PM_055moROskSTQqmohEa6I0tt1OQ-VRNArXCMG6vy
|
|
380
420
|
omlish/inject/impl/injector.py,sha256=LJGmK1g6fiLSE1AFc6lTzgmvA-IQ11dlsKkGcMR7uKQ,7557
|
381
421
|
omlish/inject/impl/inspect.py,sha256=reXkNsjyvJXva5379tHTWklVK0vzqGLP0BgI_4VVPgQ,3116
|
382
422
|
omlish/inject/impl/multis.py,sha256=j2QHSpJp0jPv10yZEZJwi0w62kXFQ25gkHa026xv4-Q,2053
|
383
|
-
omlish/inject/impl/origins.py,sha256
|
423
|
+
omlish/inject/impl/origins.py,sha256=dgGdkoMN6I4DZrWjlpZYijeFsrF6Up1WPq_QSAgTtuQ,1676
|
384
424
|
omlish/inject/impl/privates.py,sha256=alpCYyk5VJ9lJknbRH2nLVNFYVvFhkj-VC1Vco3zCFQ,2613
|
385
425
|
omlish/inject/impl/providers.py,sha256=QnwhsujJFIHC0JTgd2Wlo1kP53i3CWTrj1nKU2DNxwg,2375
|
386
426
|
omlish/inject/impl/proxy.py,sha256=gyCME_W48Zrl7QJMKiIPwGpSctf5fhvh4ZldgtA9MEE,1641
|
@@ -442,7 +482,7 @@ omlish/lang/strings.py,sha256=egdv8PxLNG40-5V93agP5j2rBUDIsahCx048zV7uEbU,4690
|
|
442
482
|
omlish/lang/sys.py,sha256=b4qOPiJZQru_mbb04FNfOjYWUxlV2becZOoc-yya_rQ,411
|
443
483
|
omlish/lang/typing.py,sha256=Zdad9Zv0sa-hIaUXPrzPidT7sDVpRcussAI7D-j-I1c,3296
|
444
484
|
omlish/lang/cached/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
445
|
-
omlish/lang/cached/function.py,sha256=
|
485
|
+
omlish/lang/cached/function.py,sha256=Nqr7XDVQdD21TawF-O9YG4jU4RwlBri-E1SusrDrmzo,9560
|
446
486
|
omlish/lang/cached/property.py,sha256=WHYyg4-6EA86TcNMfbXTjVhjEZPc0kngt9hfY3WN5w8,2768
|
447
487
|
omlish/lang/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
448
488
|
omlish/lang/classes/abstract.py,sha256=n4rDlDraUKxPF0GtOWEFZ6mEzEDmP7Z8LSI6Jww_thw,3715
|
@@ -519,8 +559,8 @@ omlish/marshal/composite/newtypes.py,sha256=5-te247TiPYf84oFhf59tqIOOByXj8i9KaHT
|
|
519
559
|
omlish/marshal/composite/optionals.py,sha256=MnecrmrJYjQvYJipIHNCDq78oH09dOjnw5pvaMKqoeU,1537
|
520
560
|
omlish/marshal/composite/wrapped.py,sha256=jOsn3h1vLIqcoSTB-0KObnsdbV8jSVWJYbf7Kg9AUwg,750
|
521
561
|
omlish/marshal/objects/__init__.py,sha256=F4wej8L_tedC8ETYxAnmKfdPR9TjsqIus9Z3nZofYuc,182
|
522
|
-
omlish/marshal/objects/dataclasses.py,sha256=
|
523
|
-
omlish/marshal/objects/helpers.py,sha256=
|
562
|
+
omlish/marshal/objects/dataclasses.py,sha256=klXXY1zOKh_FYlw6L5ZNPjpXSk0ntUGxSOrm309WoiY,8953
|
563
|
+
omlish/marshal/objects/helpers.py,sha256=H3K0J4fsJTaBVi7m6Be066YmlsRmOet48sop3LBr1wU,1104
|
524
564
|
omlish/marshal/objects/marshal.py,sha256=JarKGecMgaFYSUHUj-ZUYVP9HK6u2rjpBb3DWX9Uhh0,2648
|
525
565
|
omlish/marshal/objects/metadata.py,sha256=2_rESnslP5fwtEW1xy9ECJg64uA4cQBuYcGkRfPElts,3342
|
526
566
|
omlish/marshal/objects/namedtuples.py,sha256=8de8L7rwmvr_LLBHHfOl2wHObxc_1yZ8fC_J25yZi7Q,2866
|
@@ -580,11 +620,11 @@ omlish/reflect/types.py,sha256=Cn9FYGoiCNt0FS0YLiTTAR12WKcesWMapCrVYcb8IDo,9225
|
|
580
620
|
omlish/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
581
621
|
omlish/secrets/all.py,sha256=SGB1KrlNrxlNpazEHYy95NTzteLi8ndoEgMhU7luBl8,420
|
582
622
|
omlish/secrets/crypto.py,sha256=9D21lnvPhStwu8arD4ssT0ih0bDG-nlqIRdVgYL40xA,3708
|
583
|
-
omlish/secrets/marshal.py,sha256=
|
623
|
+
omlish/secrets/marshal.py,sha256=u90n1OfRfdpH1T2F0xK_pAPH1ENYL6acFt6XdVd3KvI,1986
|
584
624
|
omlish/secrets/openssl.py,sha256=UT_dXJ4zA1s9e-UHoW_NLGHQO7iouUNPnJNkkpuw3JI,6213
|
585
625
|
omlish/secrets/pwgen.py,sha256=5k7QMSysUfv9F65TDMdDlrhTIKy6QbMG3KT2HNVmnVg,1712
|
586
626
|
omlish/secrets/pwhash.py,sha256=Jctv3QzcMvVPXJsWA3w3LDUlzmyUDGEWG9sLiJz1xaw,4107
|
587
|
-
omlish/secrets/secrets.py,sha256=
|
627
|
+
omlish/secrets/secrets.py,sha256=mRajnNFbrHPLSz21OEinE_k-FjirXARIxFLOq2JbPAo,7969
|
588
628
|
omlish/secrets/ssl.py,sha256=_72xTNP6a1Xw0Pweuow9WK5yveqJ7hmjhala9iMnrAk,152
|
589
629
|
omlish/secrets/subprocesses.py,sha256=ZdShw4jrGDdyQW8mRMgl106-9qpCEq2J6w_x7ruz1wk,1217
|
590
630
|
omlish/secrets/tempssl.py,sha256=X_cAQbeaz-YcH8SzQ0luYTktIGJv4KMpfTD3t9l9Gqk,1879
|
@@ -702,7 +742,7 @@ omlish/sql/parsing/_antlr/MinisqlParser.py,sha256=y9SFjXdQlWYJa2PbPm30d5SfcYM_8M
|
|
702
742
|
omlish/sql/parsing/_antlr/MinisqlVisitor.py,sha256=NCPorucLLOZ-Q99BtNbDOAfHytQl8wyroR8pI1uVovg,10030
|
703
743
|
omlish/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
704
744
|
omlish/sql/queries/__init__.py,sha256=2Wb05RFCKYZR3wO5YM60txNgjiDLJMYXC4gKAIUSsmc,1415
|
705
|
-
omlish/sql/queries/base.py,sha256=
|
745
|
+
omlish/sql/queries/base.py,sha256=pQ6p8dSsHwsWa-lmK2h8RY2UJ1mwJRhByOgrCIW3dBs,3229
|
706
746
|
omlish/sql/queries/binary.py,sha256=dcEzeEn104AMPuQ7QrJU2O-YCN3SUdxB5S4jaWKOUqY,2253
|
707
747
|
omlish/sql/queries/exprs.py,sha256=dG9L218QtJM1HtDYIMWqHimK03N6AL1WONk3FvVRcXY,1480
|
708
748
|
omlish/sql/queries/idents.py,sha256=w2RxO6SR3K-u30S259OtnAZaPv7YA70PzY9R7RtuCQ8,891
|
@@ -786,12 +826,12 @@ omlish/typedvalues/accessor.py,sha256=0k21N-CkjGaY6zCwugsRfOC_CDkqk7wNz4oxO1_6EE
|
|
786
826
|
omlish/typedvalues/collection.py,sha256=jsXSggmMMvGATcJgQkUXt5Guwq8aquw73_OIC-e6U0I,5300
|
787
827
|
omlish/typedvalues/generic.py,sha256=byWG_gMXhNelckUwdmOoJE9FKkL71Q4BSi4ZLyy0XZ0,788
|
788
828
|
omlish/typedvalues/holder.py,sha256=4SwRezsmuDDEO5gENGx8kTm30pblF5UktoEAu02i-Gk,1554
|
789
|
-
omlish/typedvalues/marshal.py,sha256=
|
829
|
+
omlish/typedvalues/marshal.py,sha256=Rr-4DZ90BoD5Z9gT18QhZH2yMA3-gPJBK8GUrGkp8VA,4245
|
790
830
|
omlish/typedvalues/reflect.py,sha256=y_7IY8_4cLVRvD3ug-_-cDaO5RtzC1rLVFzkeAPALf8,683
|
791
831
|
omlish/typedvalues/values.py,sha256=Q_5IiQM3Vka4wGVd-scaslb4-oCMjFcIOksIrKE-JIM,1229
|
792
|
-
omlish-0.0.0.
|
793
|
-
omlish-0.0.0.
|
794
|
-
omlish-0.0.0.
|
795
|
-
omlish-0.0.0.
|
796
|
-
omlish-0.0.0.
|
797
|
-
omlish-0.0.0.
|
832
|
+
omlish-0.0.0.dev285.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
833
|
+
omlish-0.0.0.dev285.dist-info/METADATA,sha256=i6luxJ7Bytyt00Qr_PwO9pmz0PIFJcjUNOnpdl-6g0U,4198
|
834
|
+
omlish-0.0.0.dev285.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
835
|
+
omlish-0.0.0.dev285.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
836
|
+
omlish-0.0.0.dev285.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
837
|
+
omlish-0.0.0.dev285.dist-info/RECORD,,
|