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.
- omlish/__about__.py +2 -2
- omlish/asyncs/all.py +0 -13
- omlish/concurrent/__init__.py +0 -17
- omlish/concurrent/all.py +17 -0
- omlish/configs/types.py +1 -1
- omlish/daemons/__init__.py +70 -0
- omlish/dataclasses/errors.py +1 -1
- omlish/formats/json/stream/lexing.py +12 -6
- omlish/formats/json/stream/utils.py +28 -2
- omlish/formats/json5/stream.py +82 -0
- omlish/funcs/genmachine.py +1 -1
- omlish/http/coro/server/server.py +1 -1
- omlish/inject/__init__.py +152 -126
- omlish/inject/binder.py +7 -4
- omlish/inject/impl/elements.py +6 -8
- omlish/inject/impl/injector.py +58 -32
- omlish/inject/impl/inspect.py +1 -0
- omlish/inject/impl/maysync.py +44 -0
- omlish/inject/impl/multis.py +5 -5
- omlish/inject/impl/privates.py +8 -8
- omlish/inject/impl/providers.py +24 -31
- omlish/inject/impl/providers2.py +43 -0
- omlish/inject/impl/scopes.py +19 -25
- omlish/inject/impl/sync.py +42 -0
- omlish/inject/injector.py +9 -11
- omlish/inject/inspect.py +1 -3
- omlish/inject/listeners.py +4 -4
- omlish/inject/managed.py +52 -20
- omlish/inject/maysync.py +27 -0
- omlish/inject/providers.py +6 -0
- omlish/inject/scopes.py +38 -10
- omlish/inject/sync.py +46 -0
- omlish/lang/__init__.py +12 -3
- omlish/lang/asyncs.py +18 -0
- omlish/lang/contextmanagers.py +23 -0
- omlish/lite/asyncs.py +21 -0
- omlish/lite/attrops.py +1 -1
- omlish/lite/inject.py +4 -4
- omlish/lite/maysync.py +21 -0
- omlish/marshal/__init__.py +20 -8
- omlish/os/atomics.py +1 -1
- omlish/reflect/ops.py +9 -0
- omlish/reflect/types.py +19 -6
- omlish/sockets/addresses.py +1 -1
- omlish/sql/queries/params.py +1 -1
- {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/METADATA +1 -4
- {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/RECORD +51 -47
- omlish/asyncs/bridge.py +0 -359
- omlish/asyncs/utils.py +0 -18
- omlish/formats/json5/streams.py +0 -22
- {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev433.dist-info → omlish-0.0.0.dev435.dist-info}/licenses/LICENSE +0 -0
- {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
|
-
-
|
13
|
-
|
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,
|
omlish/sockets/addresses.py
CHANGED
omlish/sql/queries/params.py
CHANGED
@@ -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__}(@{
|
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.
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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/
|
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=
|
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=
|
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=
|
354
|
-
omlish/inject/binder.py,sha256=
|
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=
|
360
|
-
omlish/inject/inspect.py,sha256=
|
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=
|
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
|
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=
|
370
|
-
omlish/inject/scopes.py,sha256=
|
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=
|
377
|
-
omlish/inject/impl/injector.py,sha256=
|
378
|
-
omlish/inject/impl/inspect.py,sha256=
|
379
|
-
omlish/inject/impl/
|
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=
|
382
|
-
omlish/inject/impl/providers.py,sha256=
|
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=
|
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=
|
419
|
-
omlish/lang/asyncs.py,sha256=
|
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=
|
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=
|
477
|
-
omlish/lite/attrops.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
633
|
+
omlish/reflect/ops.py,sha256=4mGvFMw5D6XGbhDhdCqZ1dZsiqezUTenDv63FIDohpY,3029
|
630
634
|
omlish/reflect/subst.py,sha256=_lfNS2m2UiJgqARQtmGLTGo7CrSm9OMvVzt6GWOEX6M,4590
|
631
|
-
omlish/reflect/types.py,sha256=
|
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=
|
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=
|
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.
|
898
|
-
omlish-0.0.0.
|
899
|
-
omlish-0.0.0.
|
900
|
-
omlish-0.0.0.
|
901
|
-
omlish-0.0.0.
|
902
|
-
omlish-0.0.0.
|
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,,
|