omlish 0.0.0.dev414__py3-none-any.whl → 0.0.0.dev416__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.
Files changed (70) hide show
  1. omlish/__about__.py +2 -3
  2. omlish/codecs/registry.py +1 -1
  3. omlish/dataclasses/__init__.py +139 -113
  4. omlish/dataclasses/impl/api/classes/make.py +5 -3
  5. omlish/dataclasses/impl/configs.py +29 -29
  6. omlish/lang/__init__.py +486 -473
  7. omlish/lang/imports/proxyinit.py +161 -48
  8. omlish/lang/maybes.py +8 -0
  9. omlish/lite/maysyncs.py +1 -0
  10. omlish/manifests/base.py +1 -1
  11. omlish/marshal/__init__.py +98 -57
  12. omlish/marshal/base/__init__.py +0 -0
  13. omlish/marshal/base/contexts.py +78 -0
  14. omlish/marshal/{errors.py → base/errors.py} +1 -1
  15. omlish/marshal/base/options.py +2 -0
  16. omlish/marshal/base/overrides.py +34 -0
  17. omlish/marshal/{registries.py → base/registries.py} +11 -9
  18. omlish/marshal/base/types.py +122 -0
  19. omlish/marshal/{values.py → base/values.py} +1 -13
  20. omlish/marshal/composite/iterables.py +7 -7
  21. omlish/marshal/composite/literals.py +7 -7
  22. omlish/marshal/composite/mappings.py +7 -7
  23. omlish/marshal/composite/maybes.py +7 -7
  24. omlish/marshal/composite/newtypes.py +6 -6
  25. omlish/marshal/composite/optionals.py +7 -7
  26. omlish/marshal/composite/special.py +6 -6
  27. omlish/marshal/composite/wrapped.py +5 -5
  28. omlish/marshal/factories/__init__.py +0 -0
  29. omlish/marshal/factories/func.py +28 -0
  30. omlish/marshal/factories/match.py +34 -0
  31. omlish/marshal/factories/multi.py +55 -0
  32. omlish/marshal/factories/recursive.py +120 -0
  33. omlish/marshal/factories/simple.py +28 -0
  34. omlish/marshal/factories/typecache.py +91 -0
  35. omlish/marshal/factories/typemap.py +65 -0
  36. omlish/marshal/globals.py +35 -25
  37. omlish/marshal/naming.py +1 -1
  38. omlish/marshal/objects/dataclasses.py +7 -7
  39. omlish/marshal/objects/marshal.py +4 -4
  40. omlish/marshal/objects/metadata.py +4 -4
  41. omlish/marshal/objects/namedtuples.py +7 -7
  42. omlish/marshal/objects/unmarshal.py +4 -4
  43. omlish/marshal/polymorphism/marshal.py +4 -4
  44. omlish/marshal/polymorphism/metadata.py +1 -1
  45. omlish/marshal/polymorphism/standard.py +2 -2
  46. omlish/marshal/polymorphism/unions.py +7 -7
  47. omlish/marshal/polymorphism/unmarshal.py +4 -4
  48. omlish/marshal/singular/base64.py +7 -7
  49. omlish/marshal/singular/datetimes.py +7 -7
  50. omlish/marshal/singular/enums.py +7 -7
  51. omlish/marshal/singular/numbers.py +7 -7
  52. omlish/marshal/singular/primitives.py +7 -7
  53. omlish/marshal/singular/uuids.py +7 -7
  54. omlish/marshal/standard.py +8 -8
  55. omlish/marshal/trivial/any.py +7 -7
  56. omlish/marshal/trivial/forbidden.py +7 -7
  57. omlish/marshal/trivial/nop.py +5 -5
  58. omlish/reflect/__init__.py +57 -47
  59. omlish/reflect/types.py +144 -15
  60. {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev416.dist-info}/METADATA +14 -9
  61. {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev416.dist-info}/RECORD +65 -56
  62. omlish/inject/.dataclasses.json +0 -3
  63. omlish/marshal/.dataclasses.json +0 -3
  64. omlish/marshal/base.py +0 -472
  65. omlish/marshal/factories.py +0 -116
  66. omlish/marshal/proxy.py +0 -26
  67. {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev416.dist-info}/WHEEL +0 -0
  68. {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev416.dist-info}/entry_points.txt +0 -0
  69. {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev416.dist-info}/licenses/LICENSE +0 -0
  70. {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev416.dist-info}/top_level.txt +0 -0
@@ -1,50 +1,60 @@
1
- from .inspect import ( # noqa
2
- get_annotations,
3
- get_filtered_type_hints,
4
- has_annotations,
5
- )
1
+ from .. import lang as _lang
6
2
 
7
- from .ops import ( # noqa
8
- get_concrete_type,
9
- get_underlying,
10
- strip_annotations,
11
- strip_objs,
12
- to_annotation,
13
- types_equivalent,
14
- )
15
3
 
16
- from .subst import ( # noqa
17
- ALIAS_UPDATING_GENERIC_SUBSTITUTION,
18
- DEFAULT_GENERIC_SUBSTITUTION,
19
- GenericSubstitution,
20
- generic_mro,
21
- get_generic_bases,
22
- get_type_var_replacements,
23
- replace_type_vars,
24
- )
4
+ with _lang.auto_proxy_init(
5
+ globals(),
6
+ update_exports=True,
7
+ # eager=True,
8
+ ):
9
+ ##
25
10
 
26
- from .types import ( # noqa
27
- ANY,
28
- Annotated,
29
- Any,
30
- DEFAULT_REFLECTOR,
31
- Generic,
32
- GenericLike,
33
- Literal,
34
- NewType,
35
- Protocol,
36
- ReflectTypeError,
37
- Reflector,
38
- TYPES,
39
- Type,
40
- TypeInfo,
41
- Union,
42
- get_newtype_supertype,
43
- get_orig_bases,
44
- get_orig_class,
45
- get_params,
46
- get_type_var_bound,
47
- is_type,
48
- is_union_type,
49
- type_,
50
- )
11
+ from .inspect import ( # noqa
12
+ get_annotations,
13
+ get_filtered_type_hints,
14
+ has_annotations,
15
+ )
16
+
17
+ from .ops import ( # noqa
18
+ get_concrete_type,
19
+ get_underlying,
20
+ strip_annotations,
21
+ strip_objs,
22
+ to_annotation,
23
+ types_equivalent,
24
+ )
25
+
26
+ from .subst import ( # noqa
27
+ ALIAS_UPDATING_GENERIC_SUBSTITUTION,
28
+ DEFAULT_GENERIC_SUBSTITUTION,
29
+ GenericSubstitution,
30
+ generic_mro,
31
+ get_generic_bases,
32
+ get_type_var_replacements,
33
+ replace_type_vars,
34
+ )
35
+
36
+ from .types import ( # noqa
37
+ ANY,
38
+ Annotated,
39
+ Any,
40
+ DEFAULT_REFLECTOR,
41
+ Generic,
42
+ GenericLike,
43
+ Literal,
44
+ NewType,
45
+ Protocol,
46
+ ReflectTypeError,
47
+ Reflector,
48
+ TYPES,
49
+ Type,
50
+ TypeInfo,
51
+ Union,
52
+ get_newtype_supertype,
53
+ get_orig_bases,
54
+ get_orig_class,
55
+ get_params,
56
+ get_type_var_bound,
57
+ is_type,
58
+ is_union_type,
59
+ type_,
60
+ )
omlish/reflect/types.py CHANGED
@@ -18,6 +18,7 @@ TODO:
18
18
  """
19
19
  import abc
20
20
  import dataclasses as dc
21
+ import threading
21
22
  import types
22
23
  import typing as ta
23
24
 
@@ -56,21 +57,149 @@ class _Special:
56
57
  origin: type
57
58
  nparams: int
58
59
 
60
+ @classmethod
61
+ def from_alias(cls, sa: _SpecialGenericAlias) -> '_Special': # type: ignore
62
+ return cls(
63
+ sa._name, # type: ignore # noqa
64
+ sa,
65
+ sa.__origin__, # type: ignore
66
+ sa._nparams, # type: ignore # noqa
67
+ )
59
68
 
60
- _KNOWN_SPECIALS = [
61
- _Special(
62
- v._name, # noqa
63
- v,
64
- v.__origin__,
65
- v._nparams, # noqa
66
- )
67
- for v in ta.__dict__.values() # noqa
68
- if isinstance(v, _SpecialGenericAlias)
69
- ]
70
69
 
71
- _KNOWN_SPECIALS_BY_NAME = {s.name: s for s in _KNOWN_SPECIALS}
72
- _KNOWN_SPECIALS_BY_ALIAS = {s.alias: s for s in _KNOWN_SPECIALS}
73
- _KNOWN_SPECIALS_BY_ORIGIN = {s.origin: s for s in _KNOWN_SPECIALS}
70
+ @dc.dataclass(frozen=True)
71
+ class _LazySpecial:
72
+ name: str
73
+
74
+
75
+ class _KnownSpecials:
76
+ def __init__(
77
+ self,
78
+ specials: ta.Iterable[_Special] = (),
79
+ lazy_specials: ta.Iterable[_LazySpecial] = (),
80
+ ) -> None:
81
+ super().__init__()
82
+
83
+ self._lock = threading.RLock()
84
+
85
+ self._lst: list[_Special] = []
86
+ self._by_name: dict[str, _Special] = {}
87
+ self._by_alias: dict[_SpecialGenericAlias, _Special] = {} # type: ignore
88
+ self._by_origin: dict[type, _Special] = {}
89
+
90
+ self._lazies_by_name: dict[str, _LazySpecial] = {}
91
+
92
+ for sp in specials:
93
+ self._add(sp)
94
+ for lz in lazy_specials:
95
+ self._add_lazy(lz)
96
+
97
+ #
98
+
99
+ def _add(self, sp: _Special) -> None:
100
+ uds: list[tuple[ta.Any, ta.MutableMapping]] = [
101
+ (sp.name, self._by_name),
102
+ (sp.alias, self._by_alias),
103
+ (sp.origin, self._by_origin),
104
+ ]
105
+ for k, dct in uds:
106
+ if k in dct:
107
+ raise KeyError(k)
108
+
109
+ if sp.name in self._lazies_by_name:
110
+ raise KeyError(sp.name)
111
+
112
+ self._lst.append(sp)
113
+ for k, dct in uds:
114
+ dct[k] = sp
115
+
116
+ def add(self, *specials: _Special) -> ta.Self:
117
+ with self._lock:
118
+ for sp in specials:
119
+ self._add(sp)
120
+ return self
121
+
122
+ #
123
+
124
+ def _add_lazy(self, lz: _LazySpecial) -> None:
125
+ if lz.name in self._lazies_by_name:
126
+ raise KeyError(lz.name)
127
+ if lz.name in self._by_name:
128
+ raise KeyError(lz.name)
129
+
130
+ self._lazies_by_name[lz.name] = lz
131
+
132
+ def add_lazy(self, *lazy_specials: _LazySpecial) -> ta.Self:
133
+ with self._lock:
134
+ for lz in lazy_specials:
135
+ self._add_lazy(lz)
136
+ return self
137
+
138
+ #
139
+
140
+ def _get_lazy_by_name(self, name: str) -> _Special | None:
141
+ if name not in self._lazies_by_name:
142
+ return None
143
+
144
+ with self._lock:
145
+ if (x := self._by_name.get(name)) is not None:
146
+ return x
147
+
148
+ if (lz := self._lazies_by_name.get(name)) is None:
149
+ return None
150
+
151
+ sa = getattr(ta, lz.name)
152
+ if not isinstance(sa, _SpecialGenericAlias):
153
+ raise TypeError(sa)
154
+
155
+ sp = _Special.from_alias(sa)
156
+ del self._lazies_by_name[lz.name]
157
+ self._add(sp)
158
+
159
+ return sp
160
+
161
+ def get_by_name(self, name: str) -> _Special | None:
162
+ try:
163
+ return self._by_name.get(name)
164
+ except KeyError:
165
+ pass
166
+ return self._get_lazy_by_name(name)
167
+
168
+ def get_by_alias(self, alias: _SpecialGenericAlias) -> _Special | None: # type: ignore
169
+ try:
170
+ return self._by_alias[alias]
171
+ except KeyError:
172
+ pass
173
+ return self._get_lazy_by_name(alias._name) # type: ignore # noqa
174
+
175
+ def get_by_origin(self, origin: type) -> _Special | None:
176
+ return self._by_origin.get(origin)
177
+
178
+
179
+ _KNOWN_SPECIALS = _KnownSpecials(
180
+ [
181
+ _Special.from_alias(v)
182
+ for v in ta.__dict__.values() # noqa
183
+ if isinstance(v, _SpecialGenericAlias)
184
+ ],
185
+ [
186
+ _LazySpecial(n)
187
+ for n in [
188
+ # https://github.com/python/cpython/commit/e8be0c9c5a7c2327b3dd64009f45ee0682322dcb
189
+ 'Pattern',
190
+ 'Match',
191
+ 'ContextManager',
192
+ 'AsyncContextManager',
193
+ # https://github.com/python/cpython/commit/305be5fb1a1ece7f9651ae98053dbe79bf439aa4
194
+ 'ForwardRef',
195
+ ]
196
+ if n not in ta.__dict__
197
+ ],
198
+ )
199
+
200
+
201
+ ##
202
+
74
203
 
75
204
  _MAX_KNOWN_SPECIAL_TYPE_VARS = 16
76
205
 
@@ -99,7 +228,7 @@ def get_params(obj: ta.Any) -> tuple[ta.TypeVar, ...]:
99
228
  if issubclass(obj, ta.Generic): # type: ignore
100
229
  return obj.__dict__.get('__parameters__', ()) # noqa
101
230
 
102
- if (ks := _KNOWN_SPECIALS_BY_ORIGIN.get(obj)) is not None:
231
+ if (ks := _KNOWN_SPECIALS.get_by_origin(obj)) is not None:
103
232
  if (np := ks.nparams) < 0:
104
233
  raise TypeError(obj)
105
234
  return _KNOWN_SPECIAL_TYPE_VARS[:np]
@@ -442,7 +571,7 @@ class Reflector:
442
571
  # Special Generic
443
572
 
444
573
  if isinstance(obj, _SpecialGenericAlias):
445
- if (ks := _KNOWN_SPECIALS_BY_ALIAS.get(obj)) is not None:
574
+ if (ks := _KNOWN_SPECIALS.get_by_alias(obj)) is not None:
446
575
  if check_only:
447
576
  return None
448
577
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev414
3
+ Version: 0.0.0.dev416
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -109,7 +109,8 @@ Dynamic: license-file
109
109
 
110
110
  # Overview
111
111
 
112
- Core utilities and foundational code. It's relatively large but completely self-contained.
112
+ Core utilities and foundational code. It's relatively large but completely self-contained, and has **no required
113
+ dependencies of any kind**.
113
114
 
114
115
  # Notable packages
115
116
 
@@ -121,14 +122,18 @@ Core utilities and foundational code. It's relatively large but completely self-
121
122
  - **[cached](https://github.com/wrmsr/omlish/blob/master/omlish/lang/cached)** - The standard `cached_function` /
122
123
  `cached_property` tools, which are more capable than
123
124
  [`functools.lru_cache`](https://docs.python.org/3/library/functools.html#functools.lru_cache).
124
- - **[imports](https://github.com/wrmsr/omlish/blob/master/omlish/lang/imports.py)** - Import tools like `proxy_import`
125
- for late-loaded imports and `proxy_init` for late-loaded module globals.
125
+ - **[imports](https://github.com/wrmsr/omlish/blob/master/omlish/lang/imports.py)** - Import tools like:
126
+ - `proxy_import` - For late-loaded imports.
127
+ - `proxy_init` - For late-loaded module globals.
128
+ - `auto_proxy_init` - For automatic late-loaded package exports.
126
129
  - **[classes](https://github.com/wrmsr/omlish/blob/master/omlish/lang/classes)** - Class tools and bases, such as
127
130
  `Abstract` (which checks at subclass definition not instantiation), `Sealed` / `PackageSealed`, and `Final`.
128
131
  - **[maybes](https://github.com/wrmsr/omlish/blob/master/omlish/lite/maybes.py)** - A simple, nestable formalization
129
132
  of the presence or absence of an object, as in [many](https://en.cppreference.com/w/cpp/utility/optional)
130
133
  [other](https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html)
131
134
  [languages](https://doc.rust-lang.org/std/option/).
135
+ - **[maysyncs](https://github.com/wrmsr/omlish/blob/master/omlish/lite/maysyncs.py)** - A lightweight means of sharing
136
+ code between sync and async contexts, eliminating the need for maintaining sync and async versions of functions.
132
137
 
133
138
  - **[bootstrap](https://github.com/wrmsr/omlish/blob/master/omlish/bootstrap)** - A centralized, configurable,
134
139
  all-in-one collection of various process-initialization minutiae like resource limiting, profiling, remote debugging,
@@ -224,12 +229,12 @@ Core utilities and foundational code. It's relatively large but completely self-
224
229
 
225
230
  - **[sql](https://github.com/wrmsr/omlish/blob/master/omlish/sql)** - A collection of SQL utilities, including:
226
231
 
227
- - **[alchemy](https://github.com/wrmsr/omlish/blob/master/omlish/sql/alchemy)** - SQLAlchemy utilities. The codebase
228
- is moving away from SQLAlchemy however in favor of its own internal SQL api.
229
232
  - **[api](https://github.com/wrmsr/omlish/blob/master/omlish/sql/api)** - An abstracted api for SQL interaction, with
230
233
  support for dbapi compatible drivers (and a SQLAlchemy adapter).
231
234
  - **[queries](https://github.com/wrmsr/omlish/blob/master/omlish/sql/queries)** - A SQL query builder with a fluent
232
235
  interface.
236
+ - **[alchemy](https://github.com/wrmsr/omlish/blob/master/omlish/sql/alchemy)** - SQLAlchemy utilities. The codebase
237
+ is moving away from SQLAlchemy however in favor of its own internal SQL api.
233
238
 
234
239
  - **[testing](https://github.com/wrmsr/omlish/blob/master/omlish/testing)** - Test - primarily pytest - helpers,
235
240
  including:
@@ -279,15 +284,15 @@ Code written in this style has notable differences from standard code, including
279
284
 
280
285
  # Dependencies
281
286
 
282
- This library has no required dependencies of any kind, but there are numerous optional integrations - see
287
+ This library has no required dependencies of any kind, but there are some optional integrations - see
283
288
  [`__about__.py`](https://github.com/wrmsr/omlish/blob/master/omlish/__about__.py) for a full list, but some specific
284
289
  examples are:
285
290
 
291
+ - **asttokens / executing** - For getting runtime source representations of function call arguments, an optional
292
+ capability of [check](https://github.com/wrmsr/omlish/blob/master/omlish/check.py).
286
293
  - **anyio** - While lite code must use only asyncio, non-trivial async standard code prefers to be written to anyio.
287
294
  - **pytest** - What is used for all standard testing - as lite code has no dependencies of any kind its testing uses
288
295
  stdlib's [unittest](https://docs.python.org/3/library/unittest.html).
289
- - **asttokens / executing** - For getting runtime source representations of function call arguments, an optional
290
- capability of [check](https://github.com/wrmsr/omlish/blob/master/omlish/check.py).
291
296
  - **wrapt** - For (optionally-enabled) injector circular proxies.
292
297
  - **greenlet** - For some gnarly stuff like the
293
298
  [sync<->async bridge](https://github.com/wrmsr/omlish/blob/master/omlish/asyncs/bridge.py) and the
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=5lJafuAwdynN20SptUoGmCSL1duPAhIzl1epOqICNdM,3601
2
+ omlish/__about__.py,sha256=EjCF-wXGdYqFgAoxlZU8VG56ljmhUrK9lIx_c_loDxc,3568
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
@@ -72,7 +72,7 @@ omlish/codecs/base.py,sha256=nKAQKF0985xosHIP0mAkUZnr8lfHFj66ShnxL0OfdQE,2193
72
72
  omlish/codecs/bytes.py,sha256=3DxyQQCvFcP3mQ5G93f_mygXEb-7I8buM8EyzUcx2Is,2155
73
73
  omlish/codecs/chain.py,sha256=nbkL2nz0ZqT2lxYwSXktHh1YFTQ4Iii1Hp-fWjis6rc,532
74
74
  omlish/codecs/funcs.py,sha256=or0Jogczuzk7csDTRl-HURMEjl8LXXqxxXYK45xcM5w,855
75
- omlish/codecs/registry.py,sha256=PDfo0UtVZ96SILe5w4piPpWR-cjh1NiixKeSS7LgQKk,4003
75
+ omlish/codecs/registry.py,sha256=y7gjhBY1tTTHZmaK4X02zL5HD_25AAiZ8k27Op69Ag0,4006
76
76
  omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
77
77
  omlish/codecs/text.py,sha256=P9-xpdiQE3nbI5CzEentf07FBHPzD7_SwOtUQUJ01So,5710
78
78
  omlish/collections/__init__.py,sha256=BIc806ri5Eq-kR03Ya2YfYTRI0g1rn_0haQPUqxXqys,2816
@@ -135,7 +135,7 @@ omlish/daemons/services.py,sha256=laoUeJU7eVHuWl1062FBjPSD7jchOjhpYDc5FT2B3dM,34
135
135
  omlish/daemons/spawning.py,sha256=psR73zOYjMKTqNpx1bMib8uU9wAZz62tw5TaWHrTdyY,5337
136
136
  omlish/daemons/targets.py,sha256=00KmtlknMhQ5PyyVAhWl3rpeTMPym0GxvHHq6mYPZ7c,3051
137
137
  omlish/daemons/waiting.py,sha256=RfgD1L33QQVbD2431dkKZGE4w6DUcGvYeRXXi8puAP4,1676
138
- omlish/dataclasses/__init__.py,sha256=Xkf8vRYt4C0_4H9DP2rjfzkByXNVUxL4EgoSB1p0eho,2162
138
+ omlish/dataclasses/__init__.py,sha256=Bi8vKuOAXGypBB13-N8zUCAHL5nrE-Hwbz-erE48kuc,3326
139
139
  omlish/dataclasses/_internals.py,sha256=_THiziiIslUyYC98Y_tZd5aZgvEF3FAGkDSwzRfcDuo,3247
140
140
  omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
141
141
  omlish/dataclasses/errors.py,sha256=tyv3WR6az66uGGiq9FIuCHvy1Ef-G7zeMY7mMG6hy2Y,2527
@@ -143,13 +143,13 @@ omlish/dataclasses/inspect.py,sha256=EpVb50CsEUWpn70gkjBa-hI1mr5_VubHTERsofgE-Lw
143
143
  omlish/dataclasses/reflection.py,sha256=6BD2FUiOEtpi_2JREWyVzemjbBJdBMUm8XxQ9SVIKGs,2799
144
144
  omlish/dataclasses/specs.py,sha256=VOY2uCjxLhemBuLd1VXz5KJXmZ48NL3sMJxzOhXmau8,6191
145
145
  omlish/dataclasses/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- omlish/dataclasses/impl/configs.py,sha256=n1MOPGTulIVLMR2e4hbtU1FbHJTAVrOFXOCPU-fujVw,1442
146
+ omlish/dataclasses/impl/configs.py,sha256=-cioTvHsJ2F-lVNF_Hh-p7vh4y2H0gCjSRVHVzk8yKo,1354
147
147
  omlish/dataclasses/impl/utils.py,sha256=jAD6IIILo70aD_s60CaqRU2YvpZxBKy4K5EG-MTiqVo,1871
148
148
  omlish/dataclasses/impl/api/__init__.py,sha256=k5iS9QOwf_f4iOfGffYhnqDOcmEIwEUUTp00u11kIPM,455
149
149
  omlish/dataclasses/impl/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
150
  omlish/dataclasses/impl/api/classes/conversion.py,sha256=T1I-aZKui2tv8rknuw9yCvGQLTrFnzTuHDFoezhE0ko,908
151
151
  omlish/dataclasses/impl/api/classes/decorator.py,sha256=LqkAjNFpUeLThnnkzt1tIYKtIf8maDCkjrZzSbABZbg,4067
152
- omlish/dataclasses/impl/api/classes/make.py,sha256=gfYOSWBno3W_5w6YMN2El3EiXuKwN0bu0t5a5GV8Qlo,5165
152
+ omlish/dataclasses/impl/api/classes/make.py,sha256=cRGPRfUQpW2YOHSDFE59-9qOzvWWrZ-4liq1T1U_1fg,5230
153
153
  omlish/dataclasses/impl/api/classes/metadata.py,sha256=sMZgtoZaybfCoBKOVj7hKc-xqfU2Lca9WFrqg8UAAsE,2773
154
154
  omlish/dataclasses/impl/api/classes/params.py,sha256=cJAMxLHgW6xyKURlCnDQpA-TYfOgWpVBCavie-IZTOM,2000
155
155
  omlish/dataclasses/impl/api/fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -358,7 +358,6 @@ omlish/http/coro/server/fdio.py,sha256=qZE4g5y4XESsTObSKyVggI-yzig57gSGJb4Z0rcHv
358
358
  omlish/http/coro/server/server.py,sha256=5gvueSCUzqBqQRf0GJ6wGroD9DiWxQNi6N17MlEtBLU,18660
359
359
  omlish/http/coro/server/simple.py,sha256=j1RZ3niKrgGM2qFnjdYWn_eniZzay5j49Ca4L3u8vO4,3296
360
360
  omlish/http/coro/server/sockets.py,sha256=24gU6wpIZuzYWKQD8UsHyYfTZlbcUFvkqXq5KVgWpQo,2261
361
- omlish/inject/.dataclasses.json,sha256=wXWUy_IR8AolAa2RQnqn_mo2QnmVcvUJmayIykdVl0I,22
362
361
  omlish/inject/__init__.py,sha256=Ou6_wAovmxOpbdhGKsV8GbYRH0_S_h0XQSBDPeYpP0g,1978
363
362
  omlish/inject/binder.py,sha256=woOK7I5fk4K4kDF684Ia003jE_lviGQXacNKAmXqx5M,5114
364
363
  omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
@@ -425,7 +424,7 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
425
424
  omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
426
425
  omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
427
426
  omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
428
- omlish/lang/__init__.py,sha256=Tsvtn9FC0eNYueMlASmwRK8MQsPTJUxMqWvVh52o5AU,7588
427
+ omlish/lang/__init__.py,sha256=dyVY_3Scl1EWXXN4Pb26y4C7FVnBATP1KKfng2qbhag,9415
429
428
  omlish/lang/asyncs.py,sha256=SmzkYghQID77vcgm1Evnd3r9_jd5DlfzJ8uQK7nkh0E,1517
430
429
  omlish/lang/attrs.py,sha256=zFiVuGVOq88x45464T_LxDa-ZEq_RD9zJLq2zeVEBDc,5105
431
430
  omlish/lang/casing.py,sha256=cFUlbDdXLhwnWwcYx4qnM5c4zGX7hIRUfcjiZbxUD28,4636
@@ -441,6 +440,7 @@ omlish/lang/functions.py,sha256=aLdxhmqG0Pj9tBgsKdoCu_q15r82WIkNqDDSPQU19L8,5689
441
440
  omlish/lang/generators.py,sha256=a4D5HU_mySs2T2z3xCmE_s3t4QJkj0YRrK4-hhpGd0A,5197
442
441
  omlish/lang/iterables.py,sha256=y1SX2Co3VsOeX2wlfFF7K3rwLvF7Dtre7VY6EpfwAwA,3338
443
442
  omlish/lang/lazyglobals.py,sha256=G1hwpyIgM4PUkVJ_St3K-EdQkHQdWpFOcXao6I5LwyY,1435
443
+ omlish/lang/maybes.py,sha256=ES1LK-9ebh2GNKZ7YfrS4OEoYHFhfiWkme4wU6Blzo4,77
444
444
  omlish/lang/maysyncs.py,sha256=S90OrGQ8OShmcg7dt0Tf1GLTGCKwOPO80PRzaZHKsxY,1630
445
445
  omlish/lang/objects.py,sha256=eOhFyFiwvxqpbLs5QTEkXU3rdSt_tQXDgHoWF5SA28E,6119
446
446
  omlish/lang/outcomes.py,sha256=0PqxoKaGbBXU9UYZ6AE2QSq94Z-gFDt6wYdp0KomNQw,8712
@@ -466,7 +466,7 @@ omlish/lang/classes/virtual.py,sha256=z0MYQD9Q5MkX8DzF325wDB4J9XoYbsB09jZ1omC62T
466
466
  omlish/lang/imports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
467
467
  omlish/lang/imports/conditional.py,sha256=R-E47QD95mMonPImWlrde3rnJrFKCCkYz71c94W05sc,1006
468
468
  omlish/lang/imports/lazy.py,sha256=Fhtb5tSAttff6G2pZdF8bh__GZlqJWHaMKtA8KubuX4,1479
469
- omlish/lang/imports/proxyinit.py,sha256=ALpV9LahE8SQl6jNO92Mk4PcaQPce9Cv53K8AwnH5fQ,16749
469
+ omlish/lang/imports/proxyinit.py,sha256=j3RMoA1Mop8XOspLQLkAoGQg0OZFpU6-BpXHoP7qa-0,19613
470
470
  omlish/lang/imports/resolving.py,sha256=DeRarn35Fryg5JhVhy8wbiC9lvr58AnllI9B_reswUE,2085
471
471
  omlish/lang/imports/traversal.py,sha256=pbFQIa880NGjSfcLsno2vE_G41_CLwDHb-7gWg2J3BI,2855
472
472
  omlish/lifecycles/__init__.py,sha256=1FjYceXs-4fc-S-C9zFYmc2axHs4znnQHcJVHdY7a6E,578
@@ -490,7 +490,7 @@ omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
490
490
  omlish/lite/logs.py,sha256=CWFG0NKGhqNeEgryF5atN2gkPYbUdTINEw_s1phbINM,51
491
491
  omlish/lite/marshal.py,sha256=K_wnZwfC8cftGILyE3RlmzQEYuZOfzkMLKey41zuwtM,20296
492
492
  omlish/lite/maybes.py,sha256=0p_fzb6yiOjEpvMKaQ53Q6CH1VPW1or7v7Lt1JIKcgM,4359
493
- omlish/lite/maysyncs.py,sha256=-GT3IHaNwiaYNbP7wBB9sLmYPq__udW61SfYlXvG1LQ,14381
493
+ omlish/lite/maysyncs.py,sha256=9_u3sS2VacmfffBjbUYiu5eYG2XJ2lCIpYewwbmvPDc,14391
494
494
  omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
495
495
  omlish/lite/reflect.py,sha256=gI-Qlws9V-jND7kvCQFaIhBFrndVpDsikTQ7C6U2z3w,2434
496
496
  omlish/lite/reprs.py,sha256=2Bc7ukhKvYNTKmxPIuv9glZIph13C37y_W4fg9pBnu8,2006
@@ -518,55 +518,64 @@ omlish/logs/standard.py,sha256=w0jS824YDvlzrGgAxKiPk9RoZ5V1b0ADiFsBEpKLuLY,3152
518
518
  omlish/logs/timing.py,sha256=qsQ3DB6swts1pxrFlmLWQzhH-3nzDrq1MUu7PxjjUyU,1519
519
519
  omlish/logs/utils.py,sha256=OkFWf1exmWImmT7BaSiIC7c0Fk9tAis-PRqo8H4ny3c,398
520
520
  omlish/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
521
- omlish/manifests/base.py,sha256=Dt44a3qppWaxkoi3naFFMetxbxw14qnz2naTKK93GNU,915
521
+ omlish/manifests/base.py,sha256=wW-De-pU3cef-0vGsgo-ypftDwc3tCBxhRAzPtrdark,918
522
522
  omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2628
523
523
  omlish/manifests/loading.py,sha256=Br1OyI23pis_FfYju9xoacms608lzB1Zh_IqdVw_7vg,17201
524
524
  omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
525
525
  omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
526
- omlish/marshal/.dataclasses.json,sha256=wXWUy_IR8AolAa2RQnqn_mo2QnmVcvUJmayIykdVl0I,22
527
- omlish/marshal/__init__.py,sha256=yquxGmP5r4ITDbR1_OCTy1y9Y5vU7SKL1gj467RVJkg,3554
528
- omlish/marshal/base.py,sha256=3GMrhJBcnVrVtlQRQLOMgvV66MciAYpHKEQi5Ns3dIk,11853
529
- omlish/marshal/errors.py,sha256=g5XJyTHd__8lfwQ4KwgK-E5WR6MoNTMrqKP2U_QRQQQ,307
530
- omlish/marshal/factories.py,sha256=Th4Hplv03lvdvW1re53M0lKBZYM22okXfYFL9EwI1sk,2972
531
- omlish/marshal/globals.py,sha256=vNLpwQVt7Nn9sA5bBh7c_JYcUu9-1CLyENq1zBH-rcM,1510
532
- omlish/marshal/naming.py,sha256=ELs-NtWhw6RCSEF_y98cMyzr37pj0DV_bG9yQmto_NA,857
533
- omlish/marshal/proxy.py,sha256=i7xZQN6BSGz4nBM4CTj0S6RcSlDEgrZmX9fbtFpAPco,548
534
- omlish/marshal/registries.py,sha256=BYHimL3kAiTqWR2-FQNO0HbQdvwq0wI1VQL_RSFkek4,2359
535
- omlish/marshal/standard.py,sha256=-Xfovb_T89BCNhgxRbRHVgOzqlQjYRrIDT6lUw67GGA,4812
536
- omlish/marshal/values.py,sha256=ssHiWdg_L6M17kAn8GiGdPW7UeQOm3RDikWkvwblf5I,263
526
+ omlish/marshal/__init__.py,sha256=GE6LMH-PmdXTkyGo7Z1FwWKnT2thK4U-YisbH20zJ2o,4700
527
+ omlish/marshal/globals.py,sha256=GtuI94yMqGHV9Hz3Hc9Tdzuv280uVjrBlIc57ZEC3MM,1914
528
+ omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
529
+ omlish/marshal/standard.py,sha256=k6QAGFNjiypxjI90snJcoGqNoTQ8ZkTzrW7m-Yrn2wk,4906
530
+ omlish/marshal/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
531
+ omlish/marshal/base/contexts.py,sha256=T8AzEq1Fh78NRAj8YHbc_ugKtuSBFRlIyY00uCpY3sM,2139
532
+ omlish/marshal/base/errors.py,sha256=jmN3vl_U_hB6L0wAvuO7ORG27vXF7KEUk-1TxxK2mYA,308
533
+ omlish/marshal/base/options.py,sha256=OoDErPmI0kswnqAtr7QYndlPYhIqIDarx833tKFT2R4,23
534
+ omlish/marshal/base/overrides.py,sha256=tdYdgKIqVEBV7L_MZCNzcRwvpnmxa-1Fm8pIAWDeEpw,997
535
+ omlish/marshal/base/registries.py,sha256=N0I6xa_n32KAXgVdO9IuRASZC5Sh2J2T7w6K7wsWx1Q,2481
536
+ omlish/marshal/base/types.py,sha256=AtrpoVUPwsp_CQ13TlJ5ri_LqIPUHlAr64--D9XIlW8,2837
537
+ omlish/marshal/base/values.py,sha256=QF6OateG5kjRPHYza08wscThhg20oryf-aVQrxjfkC0,212
537
538
  omlish/marshal/composite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
538
- omlish/marshal/composite/iterables.py,sha256=YdkdWNUe_AzdUqiAsr7z3kaDcPeg7Znj3AuQepY_qaA,2647
539
- omlish/marshal/composite/literals.py,sha256=4V8wrZxWe4UxQhcyMC-746a4U03qsyJ_yV1KKu2D_ks,1637
540
- omlish/marshal/composite/mappings.py,sha256=HoqUKe4kyCYRdMpQMWW0DLPi0-DEsxt-nk4pCQAcLw4,2804
541
- omlish/marshal/composite/maybes.py,sha256=NfQ2cIHHIvohTl4iYPYbEvhNVq3L3JCu2GEbt4DM5DA,2216
542
- omlish/marshal/composite/newtypes.py,sha256=5-te247TiPYf84oFhf59tqIOOByXj8i9KaHT8gn72fU,878
543
- omlish/marshal/composite/optionals.py,sha256=MnecrmrJYjQvYJipIHNCDq78oH09dOjnw5pvaMKqoeU,1537
544
- omlish/marshal/composite/special.py,sha256=s0PcOmDiQyCjoxcdaGSORTqNoXNp6uuBz_NJs2kHzRM,1350
545
- omlish/marshal/composite/wrapped.py,sha256=jOsn3h1vLIqcoSTB-0KObnsdbV8jSVWJYbf7Kg9AUwg,750
539
+ omlish/marshal/composite/iterables.py,sha256=2VU3sh5TBKMVF1cWPXhDeuELPQzrAYovmTNHzoFLeS4,2704
540
+ omlish/marshal/composite/literals.py,sha256=pXngZKSaZ4f-ANr43AsU1ob_Rj7KTjZRQQvNjdMCKRc,1696
541
+ omlish/marshal/composite/mappings.py,sha256=hOQ-_UZCFTqW_y70a4hNJsNsr2J9y3MYIePEymZMj94,2861
542
+ omlish/marshal/composite/maybes.py,sha256=Qy0-bxW3fC3jVvDzszNQogGwGSAwmPt61nTXP06l6cY,2273
543
+ omlish/marshal/composite/newtypes.py,sha256=KiDsuBtF7jbWk7A3wy2LAZvuaG7KJzYNF1Y0jKSOZWU,932
544
+ omlish/marshal/composite/optionals.py,sha256=A-0GUaTL5585mxdNO_FcpnP2KFmJ64MkAwMukqng2ls,1596
545
+ omlish/marshal/composite/special.py,sha256=325cEkzGw2XoMq6W0CvvO7n2Dx9I3mDsjdlZ2tN4Bfs,1402
546
+ omlish/marshal/composite/wrapped.py,sha256=xC8k21wJOpSkpAn7794hBTPBRw-HPC9sOF3WRlUh_BA,785
547
+ omlish/marshal/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
548
+ omlish/marshal/factories/func.py,sha256=6F5Ud9GdplQNR1CEwkT2n5SRx4glmgcNZBBPTc9QmdM,727
549
+ omlish/marshal/factories/match.py,sha256=MALwOa2FyD4PpHfG-iLBdn8-3FMx_wI123RD4xfd79w,893
550
+ omlish/marshal/factories/multi.py,sha256=0chkODC3AGz4wxDq82V69clGRtk1Wjc6O_yOGZxn6bQ,1479
551
+ omlish/marshal/factories/recursive.py,sha256=_U3yLiPI0R1qT5J19It2pFFTFVr-O2rXTBjcK-zPpOY,3143
552
+ omlish/marshal/factories/simple.py,sha256=6ghaGPsj2rBeh85sV84_v3kEq3pZ8hyVEwd4UMoNfBI,576
553
+ omlish/marshal/factories/typecache.py,sha256=BxlC32msLhBuiyJ3OdOe_kIl6ncKe_0SZwXWwCulLCk,2517
554
+ omlish/marshal/factories/typemap.py,sha256=CxScQbRw3VwILGhf38v2yOiof45YJ9p2LQhZ37SHNj8,1606
546
555
  omlish/marshal/objects/__init__.py,sha256=F4wej8L_tedC8ETYxAnmKfdPR9TjsqIus9Z3nZofYuc,182
547
- omlish/marshal/objects/dataclasses.py,sha256=klXXY1zOKh_FYlw6L5ZNPjpXSk0ntUGxSOrm309WoiY,8953
556
+ omlish/marshal/objects/dataclasses.py,sha256=6G1vmhFhJ3LsHxDFDxvSH7q-pZm9_gY4QgNVtebiUzY,9015
548
557
  omlish/marshal/objects/helpers.py,sha256=hj5I1pILt3QFSVkYJNrSO3wiCaalAopEYWPL17Ip4zs,1102
549
- omlish/marshal/objects/marshal.py,sha256=JarKGecMgaFYSUHUj-ZUYVP9HK6u2rjpBb3DWX9Uhh0,2648
550
- omlish/marshal/objects/metadata.py,sha256=b9hxmM0qV_GhgFnA6JXVxjI7odvWaZMGHjrQLgdK9L0,3368
551
- omlish/marshal/objects/namedtuples.py,sha256=8de8L7rwmvr_LLBHHfOl2wHObxc_1yZ8fC_J25yZi7Q,2866
552
- omlish/marshal/objects/unmarshal.py,sha256=IXIl_iokvVCSWYhkRORrWP_sE1DVklnrUErGWg_3MDc,3632
558
+ omlish/marshal/objects/marshal.py,sha256=9Z19aasMNsDn8KBHmUT-XnoP23c5r50CYo0z4IBfUf0,2680
559
+ omlish/marshal/objects/metadata.py,sha256=maGqyQl0GE9xWK17DQjXxhZWRh3nRwH4fgklrA8XVQI,3392
560
+ omlish/marshal/objects/namedtuples.py,sha256=uzOZuEt2IrWtk7uyo13xaWEmFhxRQ3aKAzom05qUfBA,2928
561
+ omlish/marshal/objects/unmarshal.py,sha256=izhtSwqSrlWSOL5uZS3naPxnfq3rhv25uUPN7_rpO08,3664
553
562
  omlish/marshal/polymorphism/__init__.py,sha256=e2UTrSL0qp7w_1vkdxDWd7sXlWhep2KPV49-BB64ma8,130
554
- omlish/marshal/polymorphism/marshal.py,sha256=wVaUxiHMJwyEWfQIE3cuEcJFSMVNJhpdJoa1yRgBPUE,2260
555
- omlish/marshal/polymorphism/metadata.py,sha256=Z-UIH5o6mnl0Tfyq79e2bgKvQueSt9tf-kKgMtSJwt0,3337
556
- omlish/marshal/polymorphism/standard.py,sha256=Gj_fhmkWlY99oYjceP1N9SVOnaPCHRwtO812kJYIuhA,603
557
- omlish/marshal/polymorphism/unions.py,sha256=NDXh2aVCLUFfi10qvIZR39prtHwjndQiVl13XcIKV3k,4386
558
- omlish/marshal/polymorphism/unmarshal.py,sha256=5jJnDarY85PuGTeL_9bwoeHjNIZnfVN3zr5rVhmNoQc,2451
563
+ omlish/marshal/polymorphism/marshal.py,sha256=ZnayCbRj3451U4py1-9dU99PHvjQuQk-ZQDGgzQjF4U,2292
564
+ omlish/marshal/polymorphism/metadata.py,sha256=5RmOlmndn1T66FaxKwzt_UOM6vAQ2hfPT04o--BJH8c,3342
565
+ omlish/marshal/polymorphism/standard.py,sha256=8Gkdss9632RQ4ff1GZaEdI-T_UzAiW-9nLKQawKoa9s,615
566
+ omlish/marshal/polymorphism/unions.py,sha256=AWNyzETvgADOjPmXsHloXgbvjZ4GX9b_iNmD6ZdXsT0,4445
567
+ omlish/marshal/polymorphism/unmarshal.py,sha256=8bLeI9UxUluoIqkRJSJIbdCsKkXjx3myYe9uWs16QjY,2483
559
568
  omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
560
- omlish/marshal/singular/base64.py,sha256=NutiLaqJn73CcCY94Nf4aL1WvN2dIkblaTqJEzWkHVc,1103
561
- omlish/marshal/singular/datetimes.py,sha256=1PDVFF6TGkGxGUno8TaFGRof0DQUookYf_X2Nl8T4V0,3723
562
- omlish/marshal/singular/enums.py,sha256=TpdOUXUNEHZjI1fWwq1CFxhmRWQ_YodfFG7Vcszccv8,1510
563
- omlish/marshal/singular/numbers.py,sha256=wA2m-IPKOwlBI-NIS0dEDizmLXK2pgaEL5FQbr5_HIM,1685
564
- omlish/marshal/singular/primitives.py,sha256=EZi2AIi_Onw1pekAiL4ujz4w-ASuOGWCu4MUIE_dCnk,1299
565
- omlish/marshal/singular/uuids.py,sha256=rBMn2zwbw8tJoObeyg7E-D3l3OymLg-pguNUqLKGRN0,923
569
+ omlish/marshal/singular/base64.py,sha256=OZ3Ydwy64S0M-xlktYy5MagzyzTOVYayUXblq8ZK-AE,1164
570
+ omlish/marshal/singular/datetimes.py,sha256=nzOf8LRwAB08X80N_NmWuE3rOrYG80ZgIaZO3549WnE,3784
571
+ omlish/marshal/singular/enums.py,sha256=jffB2uIfQWs9cwpDxYUatBU0OkujkjA64oqh7ecSG7E,1569
572
+ omlish/marshal/singular/numbers.py,sha256=32_lSiaQc796u0WsPyiYORiJoaI5qh2IZxiIfF8n360,1746
573
+ omlish/marshal/singular/primitives.py,sha256=T1mRNMin7OOBjsBkAh1xVbHa-VBmtMfL55mhCfiruIg,1360
574
+ omlish/marshal/singular/uuids.py,sha256=J6Swxzm0rFvAMCmErJb4WpSPmnQyts7qOqy43Y1BugI,984
566
575
  omlish/marshal/trivial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
567
- omlish/marshal/trivial/any.py,sha256=YjbHgUtwktXuFfkPCSQIxdwC6tA70CPA3-msAE4slKs,791
568
- omlish/marshal/trivial/forbidden.py,sha256=w-U_tZB7X0IuFpV4j1DxCQmOL02InmZSICROtq-w3-s,1033
569
- omlish/marshal/trivial/nop.py,sha256=EoxaCbfkLbDfSGdE_xJbH1ghIeYwaptmqq3OGHKgmAg,471
576
+ omlish/marshal/trivial/any.py,sha256=XaqSW0fyq2FVE4PQ4IG0UaXr59kRVGccgZDlsNHrd_Q,852
577
+ omlish/marshal/trivial/forbidden.py,sha256=fkvyBViUjrpfB6JJu47k-yxAvLkJw7JSZqSP-Abr_04,1092
578
+ omlish/marshal/trivial/nop.py,sha256=PDXT0B9RR-ghG6ExuK9BH2J-nHEnoTYGNdVaNAyRzSk,506
570
579
  omlish/math/__init__.py,sha256=0N2LtQYsAit7wXDKa-Dj6XPkVzEviP-tB2BNQoMhzLI,1185
571
580
  omlish/math/bits.py,sha256=pcTuWxNXXfG-CtTITNNbW3YConAkCeU8PLNcglCc43E,533
572
581
  omlish/math/c.py,sha256=JUHHZfVUUE4sb-6_LxJksbcLOLi9za0LdPs4dky5Ba8,308
@@ -602,11 +611,11 @@ omlish/os/pidfiles/cli.py,sha256=dAKukx4mrarH8t7KZM4n_XSfTk3ycShGAFqRrirK5dw,207
602
611
  omlish/os/pidfiles/manager.py,sha256=oOnL90ttOG5ba_k9XPJ18reP7M5S-_30ln4OAfYV5W8,2357
603
612
  omlish/os/pidfiles/pidfile.py,sha256=KlqrW7I-lYVDNJspFHE89i_A0HTTteT5B99b7vpTfNs,4400
604
613
  omlish/os/pidfiles/pinning.py,sha256=u81LRe3-6Xd6K_dsVbbEPVdsUvY7zy3Xv7413-5NBLQ,6627
605
- omlish/reflect/__init__.py,sha256=ZUqqboWj5jLMVP1ljE5D9CnmXuSnsaWkKT3N9BKO0Mo,874
614
+ omlish/reflect/__init__.py,sha256=omD3VLFQtYTwPxrTH6gLATQIax9sTGGKc-7ps96-q0g,1202
606
615
  omlish/reflect/inspect.py,sha256=dUrVz8VfAdLVFtFpW416DxzVC17D80cvFb_g2Odzgq8,1823
607
616
  omlish/reflect/ops.py,sha256=F77OTaw0Uw020cJCWX_Q4kL3wvxlJ8jV8wz7BctGL_k,2619
608
617
  omlish/reflect/subst.py,sha256=_lfNS2m2UiJgqARQtmGLTGo7CrSm9OMvVzt6GWOEX6M,4590
609
- omlish/reflect/types.py,sha256=uMcxUHVJWYYcmF9ODeJ9WfcQ0DejsqsEVIX5K0HjJSM,12018
618
+ omlish/reflect/types.py,sha256=5N6sBAknFx6zqhxgcJy5D-0XzjQh6Y2t3KN7HhSTnZ8,15490
610
619
  omlish/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
611
620
  omlish/secrets/all.py,sha256=xx1UyiokSFzdeR8c6Ro-Fi2XBUsQ2i0nR1foX12nH0c,464
612
621
  omlish/secrets/crypto.py,sha256=9D21lnvPhStwu8arD4ssT0ih0bDG-nlqIRdVgYL40xA,3708
@@ -909,9 +918,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
909
918
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
910
919
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
911
920
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
912
- omlish-0.0.0.dev414.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
913
- omlish-0.0.0.dev414.dist-info/METADATA,sha256=WyKbSwUeFHk3nrepnSOnkTTwc0AunQSWov7rYWlEjHc,18881
914
- omlish-0.0.0.dev414.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
915
- omlish-0.0.0.dev414.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
916
- omlish-0.0.0.dev414.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
917
- omlish-0.0.0.dev414.dist-info/RECORD,,
921
+ omlish-0.0.0.dev416.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
922
+ omlish-0.0.0.dev416.dist-info/METADATA,sha256=Ly8rie3KozyugPbfE3l0z93fy3_iW_xgYJbipAWO3HI,19244
923
+ omlish-0.0.0.dev416.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
924
+ omlish-0.0.0.dev416.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
925
+ omlish-0.0.0.dev416.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
926
+ omlish-0.0.0.dev416.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- {
2
- "codegen": true
3
- }
@@ -1,3 +0,0 @@
1
- {
2
- "codegen": true
3
- }