omlish 0.0.0.dev433__py3-none-any.whl → 0.0.0.dev435__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 (54) hide show
  1. omlish/__about__.py +2 -2
  2. omlish/asyncs/all.py +0 -13
  3. omlish/concurrent/__init__.py +0 -17
  4. omlish/concurrent/all.py +17 -0
  5. omlish/configs/types.py +1 -1
  6. omlish/daemons/__init__.py +70 -0
  7. omlish/dataclasses/errors.py +1 -1
  8. omlish/formats/json/stream/lexing.py +12 -6
  9. omlish/formats/json/stream/utils.py +28 -2
  10. omlish/formats/json5/stream.py +82 -0
  11. omlish/funcs/genmachine.py +1 -1
  12. omlish/http/coro/server/server.py +1 -1
  13. omlish/inject/__init__.py +152 -126
  14. omlish/inject/binder.py +7 -4
  15. omlish/inject/impl/elements.py +6 -8
  16. omlish/inject/impl/injector.py +58 -32
  17. omlish/inject/impl/inspect.py +1 -0
  18. omlish/inject/impl/maysync.py +44 -0
  19. omlish/inject/impl/multis.py +5 -5
  20. omlish/inject/impl/privates.py +8 -8
  21. omlish/inject/impl/providers.py +24 -31
  22. omlish/inject/impl/providers2.py +43 -0
  23. omlish/inject/impl/scopes.py +19 -25
  24. omlish/inject/impl/sync.py +42 -0
  25. omlish/inject/injector.py +9 -11
  26. omlish/inject/inspect.py +1 -3
  27. omlish/inject/listeners.py +4 -4
  28. omlish/inject/managed.py +52 -20
  29. omlish/inject/maysync.py +27 -0
  30. omlish/inject/providers.py +6 -0
  31. omlish/inject/scopes.py +38 -10
  32. omlish/inject/sync.py +46 -0
  33. omlish/lang/__init__.py +12 -3
  34. omlish/lang/asyncs.py +18 -0
  35. omlish/lang/contextmanagers.py +23 -0
  36. omlish/lite/asyncs.py +21 -0
  37. omlish/lite/attrops.py +1 -1
  38. omlish/lite/inject.py +4 -4
  39. omlish/lite/maysync.py +21 -0
  40. omlish/marshal/__init__.py +20 -8
  41. omlish/os/atomics.py +1 -1
  42. omlish/reflect/ops.py +9 -0
  43. omlish/reflect/types.py +19 -6
  44. omlish/sockets/addresses.py +1 -1
  45. omlish/sql/queries/params.py +1 -1
  46. {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/METADATA +1 -4
  47. {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/RECORD +51 -47
  48. omlish/asyncs/bridge.py +0 -359
  49. omlish/asyncs/utils.py +0 -18
  50. omlish/formats/json5/streams.py +0 -22
  51. {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/WHEEL +0 -0
  52. {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/entry_points.txt +0 -0
  53. {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/licenses/LICENSE +0 -0
  54. {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/top_level.txt +0 -0
omlish/reflect/types.py CHANGED
@@ -9,12 +9,8 @@ give it some guiding North Star to make all of its decisions for it, and to add
9
9
  meet, join, solve, ...), but it's quite a bit of work and not a priority at the moment.
10
10
 
11
11
  TODO:
12
- - visitor / transformer
13
- - uniform collection isinstance - items() for mappings, iter() for other
14
- - also check instance type in isinstance not just items lol
15
- - ta.Generic in mro causing trouble - omit? no longer 1:1
16
- - cache this shit, esp generic_mro shit
17
- - cache __hash__ in Generic/Union
12
+ - !! cache this shit !!
13
+ - especially generic_mro shit
18
14
  """
19
15
  import dataclasses as dc
20
16
  import threading
@@ -22,6 +18,7 @@ import types
22
18
  import typing as ta
23
19
 
24
20
  from ..lite.abstract import Abstract
21
+ from ..lite.dataclasses import dataclass_cache_hash
25
22
 
26
23
 
27
24
  _NoneType = types.NoneType # type: ignore
@@ -51,6 +48,7 @@ if not isinstance(_Protocol, type) or not issubclass(_Protocol, _Generic):
51
48
  ##
52
49
 
53
50
 
51
+ @dataclass_cache_hash()
54
52
  @dc.dataclass(frozen=True)
55
53
  class _Special:
56
54
  name: str
@@ -68,6 +66,7 @@ class _Special:
68
66
  )
69
67
 
70
68
 
69
+ @dataclass_cache_hash()
71
70
  @dc.dataclass(frozen=True)
72
71
  class _LazySpecial:
73
72
  name: str
@@ -297,6 +296,7 @@ TYPES: tuple[type, ...] = (
297
296
  ##
298
297
 
299
298
 
299
+ @dataclass_cache_hash()
300
300
  @dc.dataclass(frozen=True)
301
301
  class Union(TypeInfo):
302
302
  args: frozenset[Type]
@@ -320,6 +320,7 @@ class Union(TypeInfo):
320
320
  GenericLikeCls = ta.TypeVar('GenericLikeCls')
321
321
 
322
322
 
323
+ @dataclass_cache_hash()
323
324
  @dc.dataclass(frozen=True)
324
325
  class GenericLike(TypeInfo, Abstract, ta.Generic[GenericLikeCls]):
325
326
  cls: GenericLikeCls
@@ -363,6 +364,7 @@ class Protocol(GenericLike[ta.Any]):
363
364
  #
364
365
 
365
366
 
367
+ @dataclass_cache_hash()
366
368
  @dc.dataclass(frozen=True)
367
369
  class NewType(TypeInfo):
368
370
  obj: ta.Any
@@ -372,6 +374,7 @@ class NewType(TypeInfo):
372
374
  #
373
375
 
374
376
 
377
+ @dataclass_cache_hash()
375
378
  @dc.dataclass(frozen=True)
376
379
  class Annotated(TypeInfo):
377
380
  ty: Type
@@ -383,6 +386,7 @@ class Annotated(TypeInfo):
383
386
  #
384
387
 
385
388
 
389
+ @dataclass_cache_hash()
386
390
  @dc.dataclass(frozen=True)
387
391
  class Literal(TypeInfo):
388
392
  args: tuple[ta.Any, ...]
@@ -417,6 +421,15 @@ _TRIVIAL_TYPES: set[ta.Any] = {
417
421
  }
418
422
 
419
423
 
424
+ # TODO: speed up is_type: `if obj.__class__ in _NOT_SUBCLASSED_SPECIAL_TYPES: return True`
425
+ # _NOT_SUBCLASSED_SPECIAL_TYPES: set[type] = {
426
+ # type(ta.Any),
427
+ # _UnionGenericAlias,
428
+ # ta.NewType,
429
+ # }
430
+ # TODO: static_init(for t in _NOT_SUBCLASSED_SPECIAL_TYPES: if (sts := t.__subclasses__()): raise TypeError)
431
+
432
+
420
433
  class Reflector:
421
434
  def __init__(
422
435
  self,
@@ -9,7 +9,7 @@ import socket as socket_
9
9
  import typing as ta
10
10
 
11
11
 
12
- SocketAddress = ta.Any
12
+ SocketAddress = ta.Any # ta.TypeAlias
13
13
 
14
14
 
15
15
  ##
@@ -16,7 +16,7 @@ class Param(lang.Final):
16
16
  if self.n is not None:
17
17
  return f'{self.__class__.__name__}({self.n!r})'
18
18
  else:
19
- return f'{self.__class__.__name__}(@{hex(id(self))[2:]})'
19
+ return f'{self.__class__.__name__}(@{id(self):x})'
20
20
 
21
21
  def __eq__(self, other):
22
22
  if not isinstance(other, Param):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev433
3
+ Version: 0.0.0.dev435
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -294,9 +294,6 @@ examples are:
294
294
  - **pytest** - What is used for all standard testing - as lite code has no dependencies of any kind its testing uses
295
295
  stdlib's [unittest](https://docs.python.org/3/library/unittest.html).
296
296
  - **wrapt** - For (optionally-enabled) injector circular proxies.
297
- - **greenlet** - For some gnarly stuff like the
298
- [sync<->async bridge](https://github.com/wrmsr/omlish/blob/master/omlish/asyncs/bridge.py) and the
299
- [io trampoline](https://github.com/wrmsr/omlish/blob/master/omextra/io/trampoline.py).
300
297
  - **sqlalchemy** - Parts of the codebase use SQLAlchemy for db stuff, but it is being migrated away from in favor of the
301
298
  internal api. It will however likely still remain as an optional dep for the api adapter.
302
299
 
@@ -1,5 +1,5 @@
1
1
  omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=Zv_1p0fhbJrF6QKOgRP0K5IQT7b_xpYlyQIa4fTot7w,3575
2
+ omlish/__about__.py,sha256=bsbnbJ01mORwCaxsJTuma7CmtQSocvxRTopPlqs2yhw,3575
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -19,13 +19,11 @@ omlish/argparse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  omlish/argparse/all.py,sha256=NeeMM5MIebY7XDAHaCxUzeesEoUYwsf5i9PrBUcO1cI,1057
20
20
  omlish/argparse/cli.py,sha256=60cfq_WFLwL3YsIQxGAQ7XDi-LzNjH33RavcKdRnhUU,8737
21
21
  omlish/asyncs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- omlish/asyncs/all.py,sha256=cS7dTWR8l3vF0oWYYiV9JXp0YGxOecVyCuJ2fydAPU0,526
23
- omlish/asyncs/bridge.py,sha256=BPwEeiv3iG0uMk23PIWFkdGLyiBq_x3qnzheV7ysOqY,10129
22
+ omlish/asyncs/all.py,sha256=zE9zBNepDSczQ-QhnzwFz59IZIex3HuUqfKIgwbJLgY,329
24
23
  omlish/asyncs/buffers.py,sha256=_Ds4Aa1bUWQwQTGmcYsKLjcJ_d5HgbSkPTFrG9y-eMQ,1424
25
24
  omlish/asyncs/flavors.py,sha256=1mNxGNRVmjUHzA13K5ht8vdJv4CLEmzYTQ6BZXr1520,4866
26
25
  omlish/asyncs/trio.py,sha256=fmZ5b_lKdVV8NQ3euCUutWgnkqTFzSnOjvJSA_jvmrE,367
27
26
  omlish/asyncs/trio_asyncio.py,sha256=b6H5H32pB79Uz5xvWEmuhXTJgTAeKFHBHzocv_Rpt5A,1332
28
- omlish/asyncs/utils.py,sha256=-oaa6nheDxMOxVDTfRylWZGlyOja3UVJEV2IibJXQv4,369
29
27
  omlish/asyncs/anyio/__init__.py,sha256=AkwRD3XFWmEzBeHV-eAzwpA4F04bl7xyyapigrxMR8g,1747
30
28
  omlish/asyncs/anyio/backends.py,sha256=jJIymWoiedaEJJm82gvKiJ41EWLQZ-bcyNHpbDpKKi4,1584
31
29
  omlish/asyncs/anyio/futures.py,sha256=Nm1gLerZEnHk-rlsmr0UfK168IWIK6zA8EebZFtoY_E,2052
@@ -105,7 +103,8 @@ omlish/collections/persistent/treapmap.py,sha256=O4rh3x6p6tQ0EC2wiz80ZzGNb37-mQR
105
103
  omlish/collections/sorted/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
104
  omlish/collections/sorted/skiplist.py,sha256=bcTO1hZvV5EnYxBZ3YBhdewXP_2aCTZra7tJ0pA7jjo,6194
107
105
  omlish/collections/sorted/sorted.py,sha256=sWMRdwdiKmByeWY0nwOq_nxLL5_sjHYfJVu95xmaxc8,3969
108
- omlish/concurrent/__init__.py,sha256=OCr6LUTXq95sG97dsFvSrFm-V0vy1vDjUf5pO5PzGrY,315
106
+ omlish/concurrent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
+ omlish/concurrent/all.py,sha256=OCr6LUTXq95sG97dsFvSrFm-V0vy1vDjUf5pO5PzGrY,315
109
108
  omlish/concurrent/executors.py,sha256=j2V8f4UW3sJJG_qn7ldi1R2yY2QmUQA3UCuNQvLj1Wk,1285
110
109
  omlish/concurrent/futures.py,sha256=870tx8ELI8THvMnTrQoYIlEFKO9hM4KUrlehckJqKBU,4238
111
110
  omlish/concurrent/threadlets.py,sha256=Z1pCSWt7U8VBMhPFNzd850BfbDMiGQxhYCC7X7KjYyU,2435
@@ -115,7 +114,7 @@ omlish/configs/classes.py,sha256=sWBL1K90Ix5E-N_A6Uz7s-djpkS2rKEzOLFYB8pHk9k,117
115
114
  omlish/configs/formats.py,sha256=iqaenbKsHV2DTHwabwqA4X6WOp5hBZLfkzOXprVHx6w,5370
116
115
  omlish/configs/nginx.py,sha256=b4fMI8dIZBUgOjmveRINrmmwSt8DO3y7nfvd-__YxDo,2062
117
116
  omlish/configs/shadow.py,sha256=mIPXMpEWg0rTKYh0yKskN8NhhCBw6d83peiVS_p8PKQ,2273
118
- omlish/configs/types.py,sha256=vANNURlIos3fR3fgcL2EMW5t6RevzSHU-BnVZgwIDOM,110
117
+ omlish/configs/types.py,sha256=DXMfusdmj7jrE1R1kQxbtI36Keo6re4xn_oLy3SqzMk,126
119
118
  omlish/configs/processing/__init__.py,sha256=eUBm0L6oZuwwM4vEuYx0pcCNdSTXaF7luur7jQz1qoc,210
120
119
  omlish/configs/processing/all.py,sha256=BCoWKxywH5mViWQrKmLHry8faS45ZW9jItaypPK197c,967
121
120
  omlish/configs/processing/flattening.py,sha256=q2b9L4R_GbeAi94NInycxpZ96KRnY1KFnOV7NVrwxUc,5066
@@ -125,7 +124,7 @@ omlish/configs/processing/merging.py,sha256=ZGc-8QA9tjqgXnQ80ItfOMdmAKAEAOxtWEGF
125
124
  omlish/configs/processing/names.py,sha256=9nRVBhZ0uY-J4591QcgUHla4MZAEux0-TWxGO1qaTrA,1099
126
125
  omlish/configs/processing/rewriting.py,sha256=ofPYub5ftZ6A_bkAW71w2wDmSbZ5ULI3Ip190fzBl4Q,4252
127
126
  omlish/configs/processing/strings.py,sha256=Iw85H_AE2TG8vdpbgwhye-aqz5Hkn4J9mM32FdXEiGo,832
128
- omlish/daemons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
+ omlish/daemons/__init__.py,sha256=C9zRzJQa8DOw5mlnp1W-JMetbuxCPQFGlIdBY_CPUco,1147
129
128
  omlish/daemons/daemon.py,sha256=rgSozDUOEE56KyT2rCRxZJEt9zJ-wkKk6R_fwjm2D-4,3501
130
129
  omlish/daemons/launching.py,sha256=uLRfuWpW19H_lP_QcqfHOZBaJDa1WvDNfJgVx4i4c9g,3771
131
130
  omlish/daemons/reparent.py,sha256=uEs7pjzQkL8zhM8xADJhedmXXA7eDsu28639F5HkmpU,590
@@ -136,7 +135,7 @@ omlish/daemons/waiting.py,sha256=fuR51IHdBDRVtfdewcw_0qw8itoXqmtdR_qtkoBChuE,170
136
135
  omlish/dataclasses/__init__.py,sha256=Jsb8i9cm_ZSkHL5qIPftYeRt9wNK7Cp2HRtZa9vxhus,3604
137
136
  omlish/dataclasses/_internals.py,sha256=_THiziiIslUyYC98Y_tZd5aZgvEF3FAGkDSwzRfcDuo,3247
138
137
  omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
139
- omlish/dataclasses/errors.py,sha256=tyv3WR6az66uGGiq9FIuCHvy1Ef-G7zeMY7mMG6hy2Y,2527
138
+ omlish/dataclasses/errors.py,sha256=QeJVRmrZQer3m66jSDiuAyfAngCBtocMxfnsoSxzOVw,2520
140
139
  omlish/dataclasses/inspect.py,sha256=EpVb50CsEUWpn70gkjBa-hI1mr5_VubHTERsofgE-Lw,4600
141
140
  omlish/dataclasses/reflection.py,sha256=6BD2FUiOEtpi_2JREWyVzemjbBJdBMUm8XxQ9SVIKGs,2799
142
141
  omlish/dataclasses/specs.py,sha256=VOY2uCjxLhemBuLd1VXz5KJXmZ48NL3sMJxzOhXmau8,6191
@@ -277,10 +276,10 @@ omlish/formats/json/backends/ujson.py,sha256=U3iOlAURfiCdXbiNlXfIjDdtJDbDaLZsSuZ
277
276
  omlish/formats/json/stream/__init__.py,sha256=LOQvJGUEqvm1exve1hnWoO3mlMadShaO2Cy7XjCiWbA,829
278
277
  omlish/formats/json/stream/building.py,sha256=dyrOms7Yskayi0-MG4e5-5ilN08HIekNEogJh5C4hhs,2549
279
278
  omlish/formats/json/stream/errors.py,sha256=c8M8UAYmIZ-vWZLeKD2jMj4EDCJbr9QR8Jq_DyHjujQ,43
280
- omlish/formats/json/stream/lexing.py,sha256=YVpB_MF_lzYovMmKvfu3HNpuvGk_ZTVPQICHmfQa7BA,9004
279
+ omlish/formats/json/stream/lexing.py,sha256=E4j99qfCp2xIGk9CrwhPNVk0_ltLKvpw9G0K2xp1AAg,9396
281
280
  omlish/formats/json/stream/parsing.py,sha256=c7958eYT5-KO8VFIVGBM-MowuaJ6UNTt7l2tTlRKHek,6468
282
281
  omlish/formats/json/stream/rendering.py,sha256=U0MyVoYRDv7JLI8e7ItwmxyKnqYhKvfJY4-ZBQ5lHzA,3694
283
- omlish/formats/json/stream/utils.py,sha256=qub586Z-dsIg3kvMMtBQfvAa_B6IL-xuDj2dA3Mcql0,1458
282
+ omlish/formats/json/stream/utils.py,sha256=_lqksQtoIgWjQWY4r-V2liJ7Dkz5rRAUnzwWyzKe8jc,2950
284
283
  omlish/formats/json5/Json5.g4,sha256=2V3IB8W1R45mFax5Qy4laAwcHJ9oFPWHc-r8qy9-YE4,2381
285
284
  omlish/formats/json5/__init__.py,sha256=3rwU5w5N_-dYME5kwMvXgexl-Vvo4BAmOg1N-I9Wf0M,194
286
285
  omlish/formats/json5/codec.py,sha256=mywk74R7F77z7xprQd19qoJZ8sNPUEkiBD9jNCKTh0c,1603
@@ -288,7 +287,7 @@ omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC
288
287
  omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
289
288
  omlish/formats/json5/parsing.py,sha256=_M-DrXHz4izZcMp4QPCafMIgK6pzySHmksKDIhKW4lQ,2789
290
289
  omlish/formats/json5/rendering.py,sha256=V1XdLzawd-0qu7dVNorxUMiT4LRd5GCS8876-lDLF-c,4583
291
- omlish/formats/json5/streams.py,sha256=k0rvpwbNqpnSUSMCLYv8tmkfVxPxAVkS7GSIO_Ta-xE,669
290
+ omlish/formats/json5/stream.py,sha256=QNVWgejaimNkFmOtYtjV9E71L6zBxW7QdvVL_IdMquI,2253
292
291
  omlish/formats/json5/_antlr/Json5Lexer.py,sha256=8sT04wjBTDpyHpLo6a5byREBwfNnFtLPZp7Wx3KfbkY,23259
293
292
  omlish/formats/json5/_antlr/Json5Listener.py,sha256=wIqOwp4r-cOHxy6sxQbNmlYczqh2C3-H-74o_hr7WrA,2117
294
293
  omlish/formats/json5/_antlr/Json5Parser.py,sha256=psacqZWRzPNEZq70XKpOnelZXHuXjkULq1r-owaPs6g,19699
@@ -300,7 +299,7 @@ omlish/formats/toml/parser.py,sha256=aaZlEEPk0IQhfux_kjCY2K5mYYYDPNQ-4wWgZXskoAM
300
299
  omlish/formats/toml/writer.py,sha256=9NT8sRy3I9KubxFx56Qbislvrdtbd23rEuBT-GSdUYA,3232
301
300
  omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
302
301
  omlish/funcs/builders.py,sha256=ZSBQS2xqriXp5x0t074EEZvuTmMp4Yue2YGBoTLAioo,4044
303
- omlish/funcs/genmachine.py,sha256=YRRW5FwhUgtGhi482tdlZbgz0aLGXtLB4Y0gOZGcP2w,2578
302
+ omlish/funcs/genmachine.py,sha256=BOxO1OTjxZ7ewv_WpqYkY8bwlGQIJIjwjvYMflEFa_M,2571
304
303
  omlish/funcs/match.py,sha256=AD0sQs_GIRq--fIQzL5gFYzlvXHplIljvlx7hbhNSEk,6213
305
304
  omlish/funcs/pairs.py,sha256=XhYTJdqooAJKeoGZmEaiKYeFRq5-Dj2_y92IdBl_C20,4371
306
305
  omlish/funcs/pipes.py,sha256=E1dQZMBmgT2qautG1vEqy5v3QBsO2Nzryv33j4YAngA,2520
@@ -347,41 +346,46 @@ omlish/http/coro/client/status.py,sha256=EdiScV6lcbVHWNUTyXp7qOBJKh5QYO2TNUCNADi
347
346
  omlish/http/coro/client/validation.py,sha256=Hhy_CLN3Z7ZTVGEtPaHzqzDR50ReHKopHKukl8spLYU,5185
348
347
  omlish/http/coro/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
349
348
  omlish/http/coro/server/fdio.py,sha256=qZE4g5y4XESsTObSKyVggI-yzig57gSGJb4Z0rcHvgo,4157
350
- omlish/http/coro/server/server.py,sha256=lkpcx4cb0mwDFYpP3MvW6mX0_1fKXUI8snm_bycyUwo,18681
349
+ omlish/http/coro/server/server.py,sha256=1B98Jj8TeZpnLVA8W-VJDHIRfxeFx2EvVbEFyEq1n7o,18697
351
350
  omlish/http/coro/server/simple.py,sha256=j1RZ3niKrgGM2qFnjdYWn_eniZzay5j49Ca4L3u8vO4,3296
352
351
  omlish/http/coro/server/sockets.py,sha256=24gU6wpIZuzYWKQD8UsHyYfTZlbcUFvkqXq5KVgWpQo,2261
353
- omlish/inject/__init__.py,sha256=dRTx6sIuWzUD7enaWRCOoehTz4g26nRblb8N-gpiwUQ,2074
354
- omlish/inject/binder.py,sha256=woOK7I5fk4K4kDF684Ia003jE_lviGQXacNKAmXqx5M,5114
352
+ omlish/inject/__init__.py,sha256=1s_2338tLi2VWKy8HijBSkAlkanVY1uZ8iZec8SOEws,2929
353
+ omlish/inject/binder.py,sha256=_TNPGcqtaVqCLoxMx2LBVSvZWmAUs4JcxAqnCpy7PG0,5253
355
354
  omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
356
355
  omlish/inject/eagers.py,sha256=JBY7PcjXt-Rg9scQ1ol9xpcoTLXkXC_Ie9uwTWdzUkA,340
357
356
  omlish/inject/elements.py,sha256=y4luEO_-eOlVnLcUDiNGSyMXee4pusl46ZGr0JFhbcY,1405
358
357
  omlish/inject/errors.py,sha256=_wkN2tF55gQzmMOMKJC_9jYHBZzaBiCDcyqI9Sf2UZs,626
359
- omlish/inject/injector.py,sha256=fyvaRoJXo_oibx1_IiGkncP9oXnZSKtDm7-ULNKRXHE,1071
360
- omlish/inject/inspect.py,sha256=Uq4KMloGWF_YS2mgZbrx-JXhZQnYHHKJSr68i9yoBVc,597
358
+ omlish/inject/injector.py,sha256=j78j4ArahsY_C3vgOIhzv29pDjp0o97yvmxHIr7jk2E,1125
359
+ omlish/inject/inspect.py,sha256=FWGEtxiFV_Sqqza9xnbYm4JgV2LE4D0s5iszV9Nd5_M,547
361
360
  omlish/inject/keys.py,sha256=7jnI2cw7cvLlzZAfe5SC50O3oPOpOB6iGZGTigyfQvs,682
362
- omlish/inject/listeners.py,sha256=Ffaun2fVWAgAwKgLdgziJynG_jhAWaaPEsy-2I2Cmpw,599
361
+ omlish/inject/listeners.py,sha256=bav7-uzfpajFAmH_snM0PW2oCfMavmhbE6R4-gjOmJ8,620
363
362
  omlish/inject/lite.py,sha256=AFOCj_SznDCPjkiVSKdFXL2hH1q2o4kaDnzkxRWDpsI,2615
364
- omlish/inject/managed.py,sha256=-9aBm1vRPOjNz4kgOmpt8S2T55s727t9RiggFBH8maU,2096
363
+ omlish/inject/managed.py,sha256=DKU4f_-20TXM51zrGU2XP-IX6Pzg8H9JfVJTIZH_-T8,2930
364
+ omlish/inject/maysync.py,sha256=xsVl2p-urkflKTFVQW86c3BJ6bnNeJrWC-u-UcSF1gU,441
365
365
  omlish/inject/multis.py,sha256=Dn63jE8P5ahSKc1IDBdzzx6ByBCgVOth5t4frG9m4UA,3336
366
366
  omlish/inject/origins.py,sha256=-qXa18rIIkNwBdTrvASRDjgPYnoY6n6OPC222jJDrXg,551
367
367
  omlish/inject/overrides.py,sha256=ybEcq9cDf6kvqu5mqnwi6Evj0MFjKNeE3r0oUlGw5E4,546
368
368
  omlish/inject/privates.py,sha256=CyE-hvQ-F_uyCzcwfdiYVtfm9IF1WZvMDOYilFyZmWk,658
369
- omlish/inject/providers.py,sha256=GDjSEN6iLsc-Tdu_OCPvFHWu4yP0Vn0pAyH_xjw1DPg,783
370
- omlish/inject/scopes.py,sha256=3N7rnX7LyFabDfiN-qC9M-l9EPbPQuf8dBvdVNkaSr8,1891
369
+ omlish/inject/providers.py,sha256=Usvi0YgjS5jrAqQFhzeU2artxRSTM4zIoz72lac1PEA,931
370
+ omlish/inject/scopes.py,sha256=p1uOUMtlzhIWH0HC08HCIxeWYIHb2i9O-Rhgzp32Csw,2576
371
+ omlish/inject/sync.py,sha256=c60h6CSzk4XDOy4peZ9BuJypsp-OTFh_ZnF50LmxMTg,1007
371
372
  omlish/inject/tags.py,sha256=gRDLa-WdZc9DC7KwwmoIPAi8g_qdGpRWuMT7HCd7CL0,433
372
373
  omlish/inject/types.py,sha256=Z-ZEdgtCpHBNrbxxKaMVvfeD7hYXdL4rC7A9_VGxZ6g,256
373
374
  omlish/inject/utils.py,sha256=Gc2qq45KgkyqDt03WSvOEZBCiuqQ6ESwplx5ZRBcY5M,413
374
375
  omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
375
376
  omlish/inject/impl/bindings.py,sha256=xSvUcoDz8NH-aNHPwBPEZsFg73K2WcF_A63npVbGt_k,420
376
- omlish/inject/impl/elements.py,sha256=PM_055moROskSTQqmohEa6I0tt1OQ-VRNArXCMG6vyk,5947
377
- omlish/inject/impl/injector.py,sha256=agM5NKugC9du_vBgawL9H_02A76GPQFjG-3cQVjz25s,7600
378
- omlish/inject/impl/inspect.py,sha256=reXkNsjyvJXva5379tHTWklVK0vzqGLP0BgI_4VVPgQ,3116
379
- omlish/inject/impl/multis.py,sha256=Y287xntr1wBNYpwQBc0f_Ca7UkXjkscKhgGHZK_zdbg,2053
377
+ omlish/inject/impl/elements.py,sha256=5wb_JCyfEKrJ1Y6TIZVS-gwgmLTZIUXZ_TV735RKcEM,5901
378
+ omlish/inject/impl/injector.py,sha256=0e8Il9ObzWMDBJDLQk9RRBkK83mk-nIRlKU_LtmQfLI,8266
379
+ omlish/inject/impl/inspect.py,sha256=HLhz5DfP9dwvbIYnwqsfR9ADjCoWs9q4Gh7J4BpImf4,3135
380
+ omlish/inject/impl/maysync.py,sha256=7GWjrvJStOx85BCvk8IJAmmkoGkChFAAi2h7j2pe6Qs,1207
381
+ omlish/inject/impl/multis.py,sha256=fa31UdkBYdAulfYdrkU1klDZicuQRyaBDbG28kaw8SI,2092
380
382
  omlish/inject/impl/origins.py,sha256=dgGdkoMN6I4DZrWjlpZYijeFsrF6Up1WPq_QSAgTtuQ,1676
381
- omlish/inject/impl/privates.py,sha256=alpCYyk5VJ9lJknbRH2nLVNFYVvFhkj-VC1Vco3zCFQ,2613
382
- omlish/inject/impl/providers.py,sha256=G3qUYlk05-xzvF6BiEGrtFNfzLYMC9lebOg_Wl1oFL4,2273
383
+ omlish/inject/impl/privates.py,sha256=uxMAl0MOPu-MeLd-q1DySu7J5FcdRVL1B0XgC4dnB6I,2667
384
+ omlish/inject/impl/providers.py,sha256=qqPUF9qZZ-CGTTc7ZPskjexM2aK8xdY0gLPMshB5VKw,2127
385
+ omlish/inject/impl/providers2.py,sha256=NOIbX_sTAL8uXf-lMoOiFTFZQMe6ywLU7nIghgF_ISw,1326
383
386
  omlish/inject/impl/proxy.py,sha256=S1qNn-5pbsAj9hhasQZ9nnFSCX8SuAYCcBOZ6BtKxlk,1641
384
- omlish/inject/impl/scopes.py,sha256=sL250qM4-hCwwO28GdynM02OMb09FMmIvo_ifYhNhj0,5909
387
+ omlish/inject/impl/scopes.py,sha256=5AMVzO9HgJT7yNwBCG2us9pUxQZpySsalb0qI2ZMeJ4,5876
388
+ omlish/inject/impl/sync.py,sha256=v0FrcMfEFIT358AmAuERvzJ3o19r6DLZj6_0hjuW5Dk,1090
385
389
  omlish/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
386
390
  omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
387
391
  omlish/io/buffers.py,sha256=WRuojN-EICJ9eIhy6U2Tw2-oTBIwHTBhN86wQiD2s88,7293
@@ -415,14 +419,14 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
415
419
  omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
416
420
  omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
417
421
  omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
418
- omlish/lang/__init__.py,sha256=lgRNRbIwj0FAU6PH4MMU9fqP5A1NI9wcHHWK8LjFyBg,10222
419
- omlish/lang/asyncs.py,sha256=rfpLE2ZacVKGYB9DSFuMBurQzkPRjB1qljcS3sIuSsw,1767
422
+ omlish/lang/__init__.py,sha256=HqVWUkrUArOsjGoWrL-Ck6Zz2U6kKpj2DzbpHed-k1o,10431
423
+ omlish/lang/asyncs.py,sha256=LV_4I3-WbLY8-SUXYJvKlzfL-Hd5ASFOlyPi3uMJYJk,2266
420
424
  omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
421
425
  omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
422
426
  omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
423
427
  omlish/lang/collections.py,sha256=kVMp1JJ6ycvKzuiOmf2ZF5Eg2mm3vJGPjkUcV_IACMk,2528
424
428
  omlish/lang/comparison.py,sha256=MOwEG0Yny-jBPHO9kQto9FSRyeNpQW24UABsghkrHxY,1356
425
- omlish/lang/contextmanagers.py,sha256=daUaNgoFHSMaz2E9FVqgPLQOLrGf9BjMHtanVnyWvDI,9036
429
+ omlish/lang/contextmanagers.py,sha256=jkQ9YHhQySYHPH0BrWxBrNzMuG7IpSWcPvcdfMIBE4A,9578
426
430
  omlish/lang/datetimes.py,sha256=01tg21QOx-PWDlm-CSFTalym3vpqF0EKzeinmtcVNoU,379
427
431
  omlish/lang/descriptors.py,sha256=sVJ1Pr4ihp26Tu9UCvDSyfSf-DhBnFGnbpYIFF32c7g,6877
428
432
  omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
@@ -473,19 +477,19 @@ omlish/lifecycles/transitions.py,sha256=3IFdWGtAeoy3XRlIyW7yCKV4e4Iof9ytkqklGMRF
473
477
  omlish/lite/__init__.py,sha256=cyZEpGob7XjU8DohyNxVe5CQRk4CQ5vrHL42OdhQb8w,148
474
478
  omlish/lite/abstract.py,sha256=Z3kLviPNGLkmA8m8BZILzWxez_sP18OyzgMP3-c2-RI,4068
475
479
  omlish/lite/args.py,sha256=ILJXAiN3KjIoJwY42aKpYPngUdxHIy9ssVIExFVz3fE,978
476
- omlish/lite/asyncs.py,sha256=MMRbC38mbsgBPovGLjq4iBdn74DjMVzGc4nVZxN_DUY,441
477
- omlish/lite/attrops.py,sha256=bUa2ILC4Z89-B1IWSac9XV_VvjKDnQXKDR0mZ6e9SMk,8764
480
+ omlish/lite/asyncs.py,sha256=sTXTUTTVI8m1a1P6NxObQKk-NFKlmpcnNbucr4Fg-NU,937
481
+ omlish/lite/attrops.py,sha256=ytH2uv_oocyhhlU3T7kHh3UEkdgUnDiGqeyXe3uxPY4,8772
478
482
  omlish/lite/cached.py,sha256=ocQcppTwGdSnKPYMz75VoH526UUT8YtDJeRczBX0-wI,1306
479
483
  omlish/lite/check.py,sha256=ytCkwZoKfOlJqylL-AGm8C2WfsWJd2q3kFbnZCzX3_M,13844
480
484
  omlish/lite/configs.py,sha256=4-1uVxo-aNV7vMKa7PVNhM610eejG1WepB42-Dw2xQI,914
481
485
  omlish/lite/contextmanagers.py,sha256=usDzBoNqJi98AccVlwgZoMvoBXOe9wyx2MreZtWhJy4,5863
482
486
  omlish/lite/dataclasses.py,sha256=aRSCZz1jN_UI-CWJhN0SJeKxa-79vXNUZ6YOMgG31SE,3610
483
487
  omlish/lite/imports.py,sha256=GyEDKL-WuHtdOKIL-cc8aFd0-bHwZFDEjAB52ItabX0,1341
484
- omlish/lite/inject.py,sha256=Z0d3dnjxt9czMFwWk_y-Yl7yItCUa5Nf1YRu4GkMA5k,29045
488
+ omlish/lite/inject.py,sha256=3DB2IcAo1G8dau2tw_XkffQmKqQucY0XXWHebhD2TZs,29109
485
489
  omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
486
490
  omlish/lite/marshal.py,sha256=J0VNr9_LjGLjxKW0wlZtIFnh_US7zwstCmtpe9Pk_D0,22969
487
491
  omlish/lite/maybes.py,sha256=NusCpK0FVqkIutw6_Wldn69G5VyKYhat7SegBIQmGpk,4412
488
- omlish/lite/maysync.py,sha256=bxq6NSooAc70oACqRAWHDSgs6alrxSv1tiaRKTs32qA,14417
492
+ omlish/lite/maysync.py,sha256=NiltEfX_mc7jWgWZ9XAqkDzMlLVprTAZvXRObXJT_IE,14926
489
493
  omlish/lite/objects.py,sha256=HzN_4J6w6WDLKDrW8jSNUKgfAR5vUsB42rtSCu04oqQ,1921
490
494
  omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
491
495
  omlish/lite/reflect.py,sha256=aTRQJ-hgnyRxr0dFxivUTScmUgP7zcw_iDQZIsarG24,2119
@@ -531,7 +535,7 @@ omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2
531
535
  omlish/manifests/loading.py,sha256=s6KnhdFQCsI2i0Rus1sMU0so2v8dUBnk59BJkSnxGt8,17514
532
536
  omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
533
537
  omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
534
- omlish/marshal/__init__.py,sha256=_QPYoxtmqfd2szwSuPtbIU8RwTIh_5gTJm--yvVWMcY,5969
538
+ omlish/marshal/__init__.py,sha256=Ov1AECji4Z-lkSObFVeccMM3SvH2APBarybTQov03lA,6057
535
539
  omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
536
540
  omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
537
541
  omlish/marshal/standard.py,sha256=6L4FK7QVgVFAf2jkTQlCvN-15DWK49VCNlNwCBea3-8,6674
@@ -600,7 +604,7 @@ omlish/multiprocessing/__init__.py,sha256=jwlWGOaSGcX8DkzyZwJ49nfkHocWWeKgKb7kMp
600
604
  omlish/multiprocessing/proxies.py,sha256=Jdl__dmerJwMhFw6FzcaEfFXTpZuB2cdAXwVjAv7rqc,489
601
605
  omlish/multiprocessing/spawn.py,sha256=3KkaZ5wBiJzw0qsC-pKsECqIGTFG2fSgzAjV12dT8Es,1883
602
606
  omlish/os/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
603
- omlish/os/atomics.py,sha256=sw-DCHh_l-Rw3KAJN8uU7Ktct_k2HdKDmmabfhulAJw,5291
607
+ omlish/os/atomics.py,sha256=1mFgOD_NpKo4HfVNYo74D-KsxnLKkT8Mx-3M40OYGBc,5307
604
608
  omlish/os/deathsig.py,sha256=k4Sa9nXQvn43k5DTPDzpX9q_Nfc2045dMEGh__rn__s,646
605
609
  omlish/os/environ.py,sha256=fDjnSO2Qz6lpvICx54JZpdPF-BxL4zKAWU3x_6UTxCI,3681
606
610
  omlish/os/fcntl.py,sha256=EUa4TkeqdKix-uIweRitIZsgT9ohY7OQ5QiIhUW9S0c,1512
@@ -626,9 +630,9 @@ omlish/os/pidfiles/pidfile.py,sha256=KlqrW7I-lYVDNJspFHE89i_A0HTTteT5B99b7vpTfNs
626
630
  omlish/os/pidfiles/pinning.py,sha256=WGK0kmMBhH1isGSdpm9fKJQqjaL7kxCuT-aAaaYCyn4,6666
627
631
  omlish/reflect/__init__.py,sha256=omD3VLFQtYTwPxrTH6gLATQIax9sTGGKc-7ps96-q0g,1202
628
632
  omlish/reflect/inspect.py,sha256=dUrVz8VfAdLVFtFpW416DxzVC17D80cvFb_g2Odzgq8,1823
629
- omlish/reflect/ops.py,sha256=F77OTaw0Uw020cJCWX_Q4kL3wvxlJ8jV8wz7BctGL_k,2619
633
+ omlish/reflect/ops.py,sha256=4mGvFMw5D6XGbhDhdCqZ1dZsiqezUTenDv63FIDohpY,3029
630
634
  omlish/reflect/subst.py,sha256=_lfNS2m2UiJgqARQtmGLTGo7CrSm9OMvVzt6GWOEX6M,4590
631
- omlish/reflect/types.py,sha256=IqqcM9vsIsEzEMZKwuoSKDfTuAXIxIo96sJ-PHLQ2r4,15800
635
+ omlish/reflect/types.py,sha256=CalJ1gvu4eTsgL6Z4xM06pVamjRmJL8IgjPpZlI8l8U,16098
632
636
  omlish/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
633
637
  omlish/secrets/all.py,sha256=qBxUFIqxCExADL71taNH_W6FYT9QvOrdcaMeUUPO3aw,298
634
638
  omlish/secrets/crypto.py,sha256=q0Hca5oMwvh39r0hrupN_ewxhlllbdDgAgVoloYFmDg,3714
@@ -641,7 +645,7 @@ omlish/secrets/ssl.py,sha256=HnH5MS31X9Uid7Iw1CWqviaVwMLF1Ha8RxZiiE-_iF8,158
641
645
  omlish/secrets/subprocesses.py,sha256=ZdShw4jrGDdyQW8mRMgl106-9qpCEq2J6w_x7ruz1wk,1217
642
646
  omlish/secrets/tempssl.py,sha256=KbNKGwiKw95Ly2b1OtNL2jhPa25aO0t_tvyNB5trUcU,1885
643
647
  omlish/sockets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
644
- omlish/sockets/addresses.py,sha256=yrS9NXPFiT_qBZ4C747PswzbdE2bwt83lZVOZYjYwA0,1875
648
+ omlish/sockets/addresses.py,sha256=FX-ym7MsolxJyX0UPgL_73ANiGgUMYBuUTpXWIPLoAU,1891
645
649
  omlish/sockets/bind.py,sha256=yJWZOC8ZRkD5_DTPO0JVixf5_wuzuh8w3-I7wBxUzEU,8047
646
650
  omlish/sockets/handlers.py,sha256=RRhv4zJ0vBFO70DWZUQffYNB8ZvS0cNUC9y7YFUZhTE,498
647
651
  omlish/sockets/io.py,sha256=YdrtrpqXAUJgQRqeAdTxH3m06DE5xRt08tqdRaRn5bY,1414
@@ -731,7 +735,7 @@ omlish/sql/queries/inserts.py,sha256=pSQXDSR1oDUmxjeIYuSbxpAZXvYQ-EJF6a62ON5Un-k
731
735
  omlish/sql/queries/multi.py,sha256=7x6x-4jnPzxA6ZasBjnjFuhHFpWt5rGCua3UvuTMIJ0,837
732
736
  omlish/sql/queries/names.py,sha256=25kPRYse_ivI17lMD9st04k7QQMOGf5plb4b8yZFpUI,2208
733
737
  omlish/sql/queries/ops.py,sha256=pDZ_2Jo_Fa8DDbtYkc6-9eehkWsZPI-jh-KFlubcY6Y,134
734
- omlish/sql/queries/params.py,sha256=_4Cg2MWfcU0EGcVkyOfbyJ5MA4PDUexNlaGEiqmt8Ls,1268
738
+ omlish/sql/queries/params.py,sha256=ocjaJbhv_5LWgxdjoZg8vyAWDZxsij4cKH8Lx4hXMT0,1261
735
739
  omlish/sql/queries/relations.py,sha256=P0qBqNICyeig9sEZAYLZcTXcI1YFiBe6REm6jNhpHUI,2630
736
740
  omlish/sql/queries/rendering.py,sha256=3Ocw52DDDsUavEmb8xH-2Mhp-3pZCXsJVXFuVTOUBqk,7779
737
741
  omlish/sql/queries/selects.py,sha256=XNisb2draHURYhbZsTFw7DJQaN1Zfo2Znm-Ty0lHNTo,1773
@@ -894,9 +898,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
894
898
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
895
899
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
896
900
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
897
- omlish-0.0.0.dev433.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
898
- omlish-0.0.0.dev433.dist-info/METADATA,sha256=a9lNv9FCJuo46oSrJsrL-E9-E4739mvReWcPY-T9BtM,19243
899
- omlish-0.0.0.dev433.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
900
- omlish-0.0.0.dev433.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
901
- omlish-0.0.0.dev433.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
902
- omlish-0.0.0.dev433.dist-info/RECORD,,
901
+ omlish-0.0.0.dev435.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
902
+ omlish-0.0.0.dev435.dist-info/METADATA,sha256=MvlZuQmg8ZerAEHakqjyuqeNhwGBvxMrojbeWG5Ryr4,19005
903
+ omlish-0.0.0.dev435.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
904
+ omlish-0.0.0.dev435.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
905
+ omlish-0.0.0.dev435.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
906
+ omlish-0.0.0.dev435.dist-info/RECORD,,