omlish 0.0.0.dev162__py3-none-any.whl → 0.0.0.dev163__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omlish/.manifests.json +228 -0
- omlish/__about__.py +2 -2
- omlish/codecs/__init__.py +69 -0
- omlish/codecs/base.py +102 -0
- omlish/codecs/bytes.py +119 -0
- omlish/codecs/chain.py +23 -0
- omlish/codecs/funcs.py +28 -0
- omlish/codecs/registry.py +139 -0
- omlish/codecs/standard.py +4 -0
- omlish/codecs/text.py +217 -0
- omlish/formats/cbor.py +31 -0
- omlish/formats/codecs.py +93 -0
- omlish/formats/json/codecs.py +33 -0
- omlish/formats/json5.py +31 -0
- omlish/formats/pickle.py +31 -0
- omlish/formats/toml.py +17 -0
- omlish/formats/yaml.py +18 -0
- omlish/io/compress/brotli.py +15 -1
- omlish/io/compress/bz2.py +14 -0
- omlish/io/compress/codecs.py +58 -0
- omlish/io/compress/gzip.py +11 -0
- omlish/io/compress/lz4.py +14 -0
- omlish/io/compress/lzma.py +14 -0
- omlish/io/compress/snappy.py +14 -0
- omlish/io/compress/zlib.py +14 -0
- omlish/io/compress/zstd.py +14 -0
- omlish/lang/__init__.py +1 -0
- omlish/lang/functions.py +11 -0
- omlish/manifests/load.py +44 -6
- {omlish-0.0.0.dev162.dist-info → omlish-0.0.0.dev163.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev162.dist-info → omlish-0.0.0.dev163.dist-info}/RECORD +35 -20
- {omlish-0.0.0.dev162.dist-info → omlish-0.0.0.dev163.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev162.dist-info → omlish-0.0.0.dev163.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev162.dist-info → omlish-0.0.0.dev163.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev162.dist-info → omlish-0.0.0.dev163.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
import dataclasses as dc
|
2
|
+
import typing as ta
|
3
|
+
|
4
|
+
from ... import codecs
|
5
|
+
from .base import Compression
|
6
|
+
|
7
|
+
|
8
|
+
##
|
9
|
+
|
10
|
+
|
11
|
+
@dc.dataclass(frozen=True)
|
12
|
+
class CompressionEagerCodec(codecs.EagerCodec[bytes, bytes]):
|
13
|
+
compression: Compression
|
14
|
+
|
15
|
+
def encode(self, i: bytes) -> bytes:
|
16
|
+
return self.compression.compress(i)
|
17
|
+
|
18
|
+
def decode(self, o: bytes) -> bytes:
|
19
|
+
return self.compression.decompress(o)
|
20
|
+
|
21
|
+
|
22
|
+
##
|
23
|
+
|
24
|
+
|
25
|
+
class CompressionCodec(codecs.Codec):
|
26
|
+
pass
|
27
|
+
|
28
|
+
|
29
|
+
def make_compression_codec(
|
30
|
+
name: str,
|
31
|
+
cls: type[Compression],
|
32
|
+
*,
|
33
|
+
aliases: ta.Collection[str] | None = None,
|
34
|
+
) -> CompressionCodec:
|
35
|
+
return CompressionCodec(
|
36
|
+
name=name,
|
37
|
+
aliases=aliases,
|
38
|
+
|
39
|
+
input=bytes,
|
40
|
+
output=bytes,
|
41
|
+
|
42
|
+
new=lambda *args, **kwargs: CompressionEagerCodec(cls(*args, **kwargs)),
|
43
|
+
)
|
44
|
+
|
45
|
+
|
46
|
+
##
|
47
|
+
|
48
|
+
|
49
|
+
def make_compression_lazy_loaded_codec(
|
50
|
+
mod_name: str,
|
51
|
+
attr_name: str,
|
52
|
+
codec: CompressionCodec,
|
53
|
+
) -> codecs.LazyLoadedCodec:
|
54
|
+
return codecs.LazyLoadedCodec.new(
|
55
|
+
mod_name,
|
56
|
+
attr_name,
|
57
|
+
codec,
|
58
|
+
)
|
omlish/io/compress/gzip.py
CHANGED
@@ -48,6 +48,8 @@ from ..generators import BytesSteppedReaderGenerator
|
|
48
48
|
from ..generators.readers import PrependableBytesGeneratorReader
|
49
49
|
from .base import Compression
|
50
50
|
from .base import IncrementalCompression
|
51
|
+
from .codecs import make_compression_codec
|
52
|
+
from .codecs import make_compression_lazy_loaded_codec
|
51
53
|
|
52
54
|
|
53
55
|
if ta.TYPE_CHECKING:
|
@@ -337,3 +339,12 @@ class IncrementalGzipDecompressor:
|
|
337
339
|
stream_size += len(uncompress)
|
338
340
|
pos += len(uncompress)
|
339
341
|
check.none((yield uncompress))
|
342
|
+
|
343
|
+
|
344
|
+
##
|
345
|
+
|
346
|
+
|
347
|
+
GZIP_CODEC = make_compression_codec('gzip', GzipCompression, aliases=['gz'])
|
348
|
+
|
349
|
+
# @omlish-manifest
|
350
|
+
_GZIP_LAZY_CODEC = make_compression_lazy_loaded_codec(__name__, 'GZIP_CODEC', GZIP_CODEC)
|
omlish/io/compress/lz4.py
CHANGED
@@ -6,6 +6,8 @@ from ... import lang
|
|
6
6
|
from ..generators import BytesSteppedGenerator
|
7
7
|
from .base import Compression
|
8
8
|
from .base import IncrementalCompression
|
9
|
+
from .codecs import make_compression_codec
|
10
|
+
from .codecs import make_compression_lazy_loaded_codec
|
9
11
|
|
10
12
|
|
11
13
|
if ta.TYPE_CHECKING:
|
@@ -14,6 +16,9 @@ else:
|
|
14
16
|
lz4_frame = lang.proxy_import('lz4.frame')
|
15
17
|
|
16
18
|
|
19
|
+
##
|
20
|
+
|
21
|
+
|
17
22
|
@dc.dataclass(frozen=True, kw_only=True)
|
18
23
|
class Lz4Compression(Compression, IncrementalCompression):
|
19
24
|
level: int = 0
|
@@ -75,3 +80,12 @@ class Lz4Compression(Compression, IncrementalCompression):
|
|
75
80
|
return
|
76
81
|
if (o := decompressor.decompress(i)):
|
77
82
|
yield o
|
83
|
+
|
84
|
+
|
85
|
+
##
|
86
|
+
|
87
|
+
|
88
|
+
LZ4_CODEC = make_compression_codec('lz4', Lz4Compression)
|
89
|
+
|
90
|
+
# @omlish-manifest
|
91
|
+
_LZ4_LAZY_CODEC = make_compression_lazy_loaded_codec(__name__, 'LZ4_CODEC', LZ4_CODEC)
|
omlish/io/compress/lzma.py
CHANGED
@@ -9,6 +9,8 @@ from .adapters import CompressorObjectIncrementalAdapter
|
|
9
9
|
from .adapters import DecompressorObjectIncrementalAdapter
|
10
10
|
from .base import Compression
|
11
11
|
from .base import IncrementalCompression
|
12
|
+
from .codecs import make_compression_codec
|
13
|
+
from .codecs import make_compression_lazy_loaded_codec
|
12
14
|
|
13
15
|
|
14
16
|
if ta.TYPE_CHECKING:
|
@@ -17,6 +19,9 @@ else:
|
|
17
19
|
lzma = lang.proxy_import('lzma')
|
18
20
|
|
19
21
|
|
22
|
+
##
|
23
|
+
|
24
|
+
|
20
25
|
@dc.dataclass(frozen=True, kw_only=True)
|
21
26
|
class LzmaCompression(Compression, IncrementalCompression):
|
22
27
|
format: int | None = None
|
@@ -65,3 +70,12 @@ class LzmaCompression(Compression, IncrementalCompression):
|
|
65
70
|
),
|
66
71
|
trailing_error=lzma.LZMAError,
|
67
72
|
)()
|
73
|
+
|
74
|
+
|
75
|
+
##
|
76
|
+
|
77
|
+
|
78
|
+
LZMA_CODEC = make_compression_codec('lzma', LzmaCompression)
|
79
|
+
|
80
|
+
# @omlish-manifest
|
81
|
+
_LZMA_LAZY_CODEC = make_compression_lazy_loaded_codec(__name__, 'LZMA_CODEC', LZMA_CODEC)
|
omlish/io/compress/snappy.py
CHANGED
@@ -3,6 +3,8 @@ import typing as ta
|
|
3
3
|
|
4
4
|
from ... import lang
|
5
5
|
from .base import Compression
|
6
|
+
from .codecs import make_compression_codec
|
7
|
+
from .codecs import make_compression_lazy_loaded_codec
|
6
8
|
|
7
9
|
|
8
10
|
if ta.TYPE_CHECKING:
|
@@ -11,6 +13,9 @@ else:
|
|
11
13
|
snappy = lang.proxy_import('snappy')
|
12
14
|
|
13
15
|
|
16
|
+
##
|
17
|
+
|
18
|
+
|
14
19
|
@dc.dataclass(frozen=True)
|
15
20
|
class SnappyCompression(Compression):
|
16
21
|
def compress(self, d: bytes) -> bytes:
|
@@ -18,3 +23,12 @@ class SnappyCompression(Compression):
|
|
18
23
|
|
19
24
|
def decompress(self, d: bytes) -> bytes:
|
20
25
|
return snappy.decompress(d)
|
26
|
+
|
27
|
+
|
28
|
+
##
|
29
|
+
|
30
|
+
|
31
|
+
SNAPPY_CODEC = make_compression_codec('snappy', SnappyCompression)
|
32
|
+
|
33
|
+
# @omlish-manifest
|
34
|
+
_SNAPPY_LAZY_CODEC = make_compression_lazy_loaded_codec(__name__, 'SNAPPY_CODEC', SNAPPY_CODEC)
|
omlish/io/compress/zlib.py
CHANGED
@@ -9,6 +9,8 @@ from .adapters import CompressorObjectIncrementalAdapter
|
|
9
9
|
from .adapters import DecompressorObjectIncrementalAdapter
|
10
10
|
from .base import Compression
|
11
11
|
from .base import IncrementalCompression
|
12
|
+
from .codecs import make_compression_codec
|
13
|
+
from .codecs import make_compression_lazy_loaded_codec
|
12
14
|
|
13
15
|
|
14
16
|
if ta.TYPE_CHECKING:
|
@@ -17,6 +19,9 @@ else:
|
|
17
19
|
zlib = lang.proxy_import('zlib')
|
18
20
|
|
19
21
|
|
22
|
+
##
|
23
|
+
|
24
|
+
|
20
25
|
@dc.dataclass(frozen=True, kw_only=True)
|
21
26
|
class ZlibCompression(Compression, IncrementalCompression):
|
22
27
|
level: int = 9
|
@@ -58,3 +63,12 @@ class ZlibCompression(Compression, IncrementalCompression):
|
|
58
63
|
),
|
59
64
|
trailing_error=OSError,
|
60
65
|
)()
|
66
|
+
|
67
|
+
|
68
|
+
##
|
69
|
+
|
70
|
+
|
71
|
+
ZLIB_CODEC = make_compression_codec('zlib', ZlibCompression)
|
72
|
+
|
73
|
+
# @omlish-manifest
|
74
|
+
_ZLIB_LAZY_CODEC = make_compression_lazy_loaded_codec(__name__, 'ZLIB_CODEC', ZLIB_CODEC)
|
omlish/io/compress/zstd.py
CHANGED
@@ -3,6 +3,8 @@ import typing as ta
|
|
3
3
|
|
4
4
|
from ... import lang
|
5
5
|
from .base import Compression
|
6
|
+
from .codecs import make_compression_codec
|
7
|
+
from .codecs import make_compression_lazy_loaded_codec
|
6
8
|
|
7
9
|
|
8
10
|
if ta.TYPE_CHECKING:
|
@@ -11,6 +13,9 @@ else:
|
|
11
13
|
zstandard = lang.proxy_import('zstandard')
|
12
14
|
|
13
15
|
|
16
|
+
##
|
17
|
+
|
18
|
+
|
14
19
|
@dc.dataclass(frozen=True, kw_only=True)
|
15
20
|
class ZstdCompression(Compression):
|
16
21
|
level: int | None = None
|
@@ -28,3 +33,12 @@ class ZstdCompression(Compression):
|
|
28
33
|
d,
|
29
34
|
max_output_size=self.max_output_size,
|
30
35
|
)
|
36
|
+
|
37
|
+
|
38
|
+
##
|
39
|
+
|
40
|
+
|
41
|
+
ZSTD_CODEC = make_compression_codec('zstd', ZstdCompression)
|
42
|
+
|
43
|
+
# @omlish-manifest
|
44
|
+
_ZSTD_LAZY_CODEC = make_compression_lazy_loaded_codec(__name__, 'ZSTD_CODEC', ZSTD_CODEC)
|
omlish/lang/__init__.py
CHANGED
omlish/lang/functions.py
CHANGED
@@ -4,6 +4,7 @@ import time
|
|
4
4
|
import typing as ta
|
5
5
|
|
6
6
|
|
7
|
+
F = ta.TypeVar('F')
|
7
8
|
T = ta.TypeVar('T')
|
8
9
|
P = ta.ParamSpec('P')
|
9
10
|
CallableT = ta.TypeVar('CallableT', bound=ta.Callable)
|
@@ -81,6 +82,16 @@ def identity(obj: T) -> T:
|
|
81
82
|
return obj
|
82
83
|
|
83
84
|
|
85
|
+
def opt_fn(fn: ta.Callable[[F], T]) -> ta.Callable[[F | None], T | None]:
|
86
|
+
@functools.wraps(fn)
|
87
|
+
def inner(v: F | None) -> T | None:
|
88
|
+
if v is not None:
|
89
|
+
return fn(v)
|
90
|
+
else:
|
91
|
+
return None
|
92
|
+
return inner
|
93
|
+
|
94
|
+
|
84
95
|
class constant(ta.Generic[T]): # noqa
|
85
96
|
def __init__(self, obj: T) -> None:
|
86
97
|
super().__init__()
|
omlish/manifests/load.py
CHANGED
@@ -9,6 +9,7 @@ import dataclasses as dc
|
|
9
9
|
import importlib.machinery
|
10
10
|
import importlib.resources
|
11
11
|
import json
|
12
|
+
import threading
|
12
13
|
import typing as ta
|
13
14
|
|
14
15
|
from .types import Manifest
|
@@ -25,6 +26,8 @@ class ManifestLoader:
|
|
25
26
|
) -> None:
|
26
27
|
super().__init__()
|
27
28
|
|
29
|
+
self._lock = threading.RLock()
|
30
|
+
|
28
31
|
self._module_remap = module_remap or {}
|
29
32
|
self._module_reverse_remap = {v: k for k, v in self._module_remap.items()}
|
30
33
|
|
@@ -56,7 +59,7 @@ class ManifestLoader:
|
|
56
59
|
|
57
60
|
#
|
58
61
|
|
59
|
-
def
|
62
|
+
def _load_cls(self, key: str) -> type:
|
60
63
|
try:
|
61
64
|
return self._cls_cache[key]
|
62
65
|
except KeyError:
|
@@ -83,7 +86,13 @@ class ManifestLoader:
|
|
83
86
|
self._cls_cache[key] = cls
|
84
87
|
return cls
|
85
88
|
|
86
|
-
def
|
89
|
+
def load_cls(self, key: str) -> type:
|
90
|
+
with self._lock:
|
91
|
+
return self._load_cls(key)
|
92
|
+
|
93
|
+
#
|
94
|
+
|
95
|
+
def _load_contents(self, obj: ta.Any, pkg_name: str) -> ta.Sequence[Manifest]:
|
87
96
|
if not isinstance(obj, (list, tuple)):
|
88
97
|
raise TypeError(obj)
|
89
98
|
|
@@ -104,7 +113,13 @@ class ManifestLoader:
|
|
104
113
|
|
105
114
|
return lst
|
106
115
|
|
107
|
-
def
|
116
|
+
def load_contents(self, obj: ta.Any, pkg_name: str) -> ta.Sequence[Manifest]:
|
117
|
+
with self._lock:
|
118
|
+
return self.load_contents(obj, pkg_name)
|
119
|
+
|
120
|
+
#
|
121
|
+
|
122
|
+
def _load_raw(self, pkg_name: str) -> ta.Optional[ta.Sequence[Manifest]]:
|
108
123
|
try:
|
109
124
|
return self._raw_cache[pkg_name]
|
110
125
|
except KeyError:
|
@@ -120,12 +135,18 @@ class ManifestLoader:
|
|
120
135
|
if not isinstance(obj, (list, tuple)):
|
121
136
|
raise TypeError(obj)
|
122
137
|
|
123
|
-
lst = self.
|
138
|
+
lst = self._load_contents(obj, pkg_name)
|
124
139
|
|
125
140
|
self._raw_cache[pkg_name] = lst
|
126
141
|
return lst
|
127
142
|
|
128
|
-
def
|
143
|
+
def load_raw(self, pkg_name: str) -> ta.Optional[ta.Sequence[Manifest]]:
|
144
|
+
with self._lock:
|
145
|
+
return self._load_raw(pkg_name)
|
146
|
+
|
147
|
+
#
|
148
|
+
|
149
|
+
def _load(
|
129
150
|
self,
|
130
151
|
*pkg_names: str,
|
131
152
|
only: ta.Optional[ta.Iterable[type]] = None,
|
@@ -149,7 +170,7 @@ class ManifestLoader:
|
|
149
170
|
if only_keys is not None and key not in only_keys:
|
150
171
|
continue
|
151
172
|
|
152
|
-
cls = self.
|
173
|
+
cls = self._load_cls(key)
|
153
174
|
value = cls(**value_dct)
|
154
175
|
|
155
176
|
manifest = dc.replace(manifest, value=value)
|
@@ -157,6 +178,17 @@ class ManifestLoader:
|
|
157
178
|
|
158
179
|
return lst
|
159
180
|
|
181
|
+
def load(
|
182
|
+
self,
|
183
|
+
*pkg_names: str,
|
184
|
+
only: ta.Optional[ta.Iterable[type]] = None,
|
185
|
+
) -> ta.Sequence[Manifest]:
|
186
|
+
with self._lock:
|
187
|
+
return self._load(
|
188
|
+
*pkg_names,
|
189
|
+
only=only,
|
190
|
+
)
|
191
|
+
|
160
192
|
#
|
161
193
|
|
162
194
|
ENTRY_POINT_GROUP = 'omlish.manifests'
|
@@ -169,3 +201,9 @@ class ManifestLoader:
|
|
169
201
|
ep.value
|
170
202
|
for ep in importlib.metadata.entry_points(group=self.ENTRY_POINT_GROUP)
|
171
203
|
]
|
204
|
+
|
205
|
+
|
206
|
+
##
|
207
|
+
|
208
|
+
|
209
|
+
MANIFEST_LOADER = ManifestLoader()
|
@@ -1,5 +1,5 @@
|
|
1
|
-
omlish/.manifests.json,sha256=
|
2
|
-
omlish/__about__.py,sha256=
|
1
|
+
omlish/.manifests.json,sha256=Z-OzsisX-uiidgvNIQIrN92nEPRucZUOhM5lIc52LMY,6568
|
2
|
+
omlish/__about__.py,sha256=Y07EsFN7CjY1AAm1qpNSzRY2us9VYdNOAdlHXLTfjcs,3409
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=ubu7lHwss5V4UznbejAI0qXhXahrU01MysuHOZI9C4U,8116
|
5
5
|
omlish/cached.py,sha256=UI-XTFBwA6YXWJJJeBn-WkwBkfzDjLBBaZf4nIJA9y0,510
|
@@ -109,6 +109,14 @@ omlish/bootstrap/harness.py,sha256=VW8YP-yENGyXIuJ8GL_xintArF13nafwpz-iAghPt34,1
|
|
109
109
|
omlish/bootstrap/main.py,sha256=yZhOHDDlj4xB5a89dRdT8z58FsqqnpoBg1-tvY2CJe4,5903
|
110
110
|
omlish/bootstrap/marshal.py,sha256=ZxdAeMNd2qXRZ1HUK89HmEhz8tqlS9OduW34QBscKw0,516
|
111
111
|
omlish/bootstrap/sys.py,sha256=aqMzxZa_lPj78cgz4guYZAkjT6En32e2LptfEo20NIM,8769
|
112
|
+
omlish/codecs/__init__.py,sha256=dtDRfvZRLM6KSfT0y9GRRPu8kjkMaBM1ItrfQTa84Vk,854
|
113
|
+
omlish/codecs/base.py,sha256=90e4PJKtBj9AFw0IXlhVLM1jlrDgJmDD-Zy0GFkth1c,2078
|
114
|
+
omlish/codecs/bytes.py,sha256=jlZ87OmZ52HhQDNyL87R3OIviK2qV5iU2jZYOTOLWjk,2157
|
115
|
+
omlish/codecs/chain.py,sha256=DrBi5vbaFfObfoppo6alwOmyW2XbrH2051cjExwr2Gs,527
|
116
|
+
omlish/codecs/funcs.py,sha256=bMcARQUziSiGocaERbfCR71sVw-BcmKfQEns30y_bEc,590
|
117
|
+
omlish/codecs/registry.py,sha256=8ySUG-kwGJoUN1HCRnz8VjcykB0wlIzoWF5WTAE1ny0,3860
|
118
|
+
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
119
|
+
omlish/codecs/text.py,sha256=D8uy-3_XFwUSlygPQsHP8c2t5ZCgebQS0hv5CWoDXCI,5728
|
112
120
|
omlish/collections/__init__.py,sha256=zeUvcAz073ekko37QKya6sElTMfKTuF1bKrdbMtaRpI,2142
|
113
121
|
omlish/collections/abc.py,sha256=sP7BpTVhx6s6C59mTFeosBi4rHOWC6tbFBYbxdZmvh0,2365
|
114
122
|
omlish/collections/coerce.py,sha256=g68ROb_-5HgH-vI8612mU2S0FZ8-wp2ZHK5_Zy_kVC0,7037
|
@@ -195,11 +203,17 @@ omlish/docker/hub.py,sha256=7LIuJGdA-N1Y1dmo50ynKM1KUTcnQM_5XbtPbdT_QLU,3940
|
|
195
203
|
omlish/docker/manifests.py,sha256=LR4FpOGNUT3bZQ-gTjB6r_-1C3YiG30QvevZjrsVUQM,7068
|
196
204
|
omlish/docker/timebomb.py,sha256=A_pgIDaXKsQwPiikrCTgIJl91gwYqkPGFY6j-Naq07Q,342
|
197
205
|
omlish/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
206
|
+
omlish/formats/cbor.py,sha256=o_Hbe4kthO9CeXK-FySrw0dHVlrdyTo2Y8PpGRDfZ3c,514
|
207
|
+
omlish/formats/codecs.py,sha256=6AbKIz_gl_om36-7qsutybYzK8cJP3LzwC9YJlwCPOA,1590
|
198
208
|
omlish/formats/dotenv.py,sha256=qoDG4Ayu7B-8LjBBhcmNiLZW0_9LgCi3Ri2aPo9DEQ8,19314
|
209
|
+
omlish/formats/json5.py,sha256=odpZIShlUpv19aACWe58SoMPcv0AHKIa6zSMjlKgaMI,515
|
210
|
+
omlish/formats/pickle.py,sha256=jdp4E9WH9qVPBE3sSqbqDtUo18RbTSIiSpSzJ-IEVZw,529
|
199
211
|
omlish/formats/props.py,sha256=cek3JLFLIrpE76gvs8rs_B8yF4SpY8ooDH8apWsquwE,18953
|
212
|
+
omlish/formats/toml.py,sha256=AhpVNAy87eBohBCsvIvwH2ucASWxnWXMEsMH8zB7rpI,340
|
200
213
|
omlish/formats/xml.py,sha256=ggiOwSERt4d9XmZwLZiDIh5qnFJS4jdmow9m9_9USps,1491
|
201
|
-
omlish/formats/yaml.py,sha256=
|
214
|
+
omlish/formats/yaml.py,sha256=2-ULW2fm82cA2L14UNbSHZwYr7b6W3CxjAbIiNnfHz8,7185
|
202
215
|
omlish/formats/json/__init__.py,sha256=y7T-Jm-7FuQFzb-6uedky0ZhBaKtCKzcu291juXfiWI,669
|
216
|
+
omlish/formats/json/codecs.py,sha256=0eRmbHPDq1XELuPcgl_vTqJoaHMuCoUitd0GYCntpTY,800
|
203
217
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
204
218
|
omlish/formats/json/encoding.py,sha256=O4iIWle7W_-RwpOvJNlqOfkbnDyiQHexV5Za4hlrFzw,497
|
205
219
|
omlish/formats/json/json.py,sha256=Mdqv2vdMi7gp96eV0BIYH5UdWpjWfsh-tSMZeywG-08,331
|
@@ -293,14 +307,15 @@ omlish/io/compress/__init__.py,sha256=qV-aDfPWykTMYcoQmE8THZ4KFDRzqwN3QPPNEJVarX
|
|
293
307
|
omlish/io/compress/abc.py,sha256=P9YoQX8XYoq2UfBsinKLUuwwqV1ODUIJzjTraRWGF1M,3090
|
294
308
|
omlish/io/compress/adapters.py,sha256=DQvbiqTiaVE-GsawpOpUTX07Gjg125Iuwd6IhjuSaxE,6180
|
295
309
|
omlish/io/compress/base.py,sha256=yx8ifzs_j8y66gMCQcssjZ936NNBFhYn_kBRwNh3SWQ,647
|
296
|
-
omlish/io/compress/brotli.py,sha256=
|
297
|
-
omlish/io/compress/bz2.py,sha256=
|
298
|
-
omlish/io/compress/
|
299
|
-
omlish/io/compress/
|
300
|
-
omlish/io/compress/
|
301
|
-
omlish/io/compress/
|
302
|
-
omlish/io/compress/
|
303
|
-
omlish/io/compress/
|
310
|
+
omlish/io/compress/brotli.py,sha256=Q2t9uRqBEgRyJCSPsTaJv5w7d-rhsjDMluA4VRBHa_A,1182
|
311
|
+
omlish/io/compress/bz2.py,sha256=2ULaZwcpAkHKV-JargrLoXgL9G-gxrVnPqE_pGqNUrg,1566
|
312
|
+
omlish/io/compress/codecs.py,sha256=e6jCYVfUbanUzvkWW9IHDK6SbG6dwRLAztTADCWnWEQ,1076
|
313
|
+
omlish/io/compress/gzip.py,sha256=ZKZdg0wg_nIgFdkfemOv8xZpHneBXZAiCH0n6gIibWY,12281
|
314
|
+
omlish/io/compress/lz4.py,sha256=4kppXZCXpSAQw6wJvCs9LLHFzukekENja7RiwmN8uMc,2790
|
315
|
+
omlish/io/compress/lzma.py,sha256=4bWNKk7uTFiRT_HogW2ZldgaNy1IukmqfVDVkf5M2Ok,2501
|
316
|
+
omlish/io/compress/snappy.py,sha256=JFoH_9l0Tr9AGaQ0jHRiP4TsFnG071l27mprCBcqt4c,704
|
317
|
+
omlish/io/compress/zlib.py,sha256=BQ0BvX-wEN-0NwktcqFECYHTGwVe-VHCVCNarspGQ8o,2396
|
318
|
+
omlish/io/compress/zstd.py,sha256=wik_HWLq_8fGAJgGyMGq9fhFQovot1aCH4lwMpihQmg,949
|
304
319
|
omlish/io/fdio/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
305
320
|
omlish/io/fdio/handlers.py,sha256=OOQhiazbhNMwxLwyzf8KUQrBQSuHIm-UqAMpXmmHGFQ,1344
|
306
321
|
omlish/io/fdio/kqueue.py,sha256=YgGBQibkAUYODYDiGl7Enjtx1oQsJXuDsBLBXgqlLQw,3832
|
@@ -311,7 +326,7 @@ omlish/io/generators/consts.py,sha256=4r6IMLBMic6MJHVn9UiORIkkPAuxsqtzFT3KV0fatC
|
|
311
326
|
omlish/io/generators/direct.py,sha256=A9VJB1rNKU3l-NatpYIwyCLI3R_ybGglmdx6sAtoTo4,324
|
312
327
|
omlish/io/generators/readers.py,sha256=MolTFCzcnD5XoP0su0YUNHJ0xlHC3KTihvWAi75y8Bo,4336
|
313
328
|
omlish/io/generators/stepped.py,sha256=wk4vDqOKi_Tr4qMY_FxIGO5dF3Ob-3Uh8UcV_9UYrAg,4677
|
314
|
-
omlish/lang/__init__.py,sha256=
|
329
|
+
omlish/lang/__init__.py,sha256=wMfsQjBFNsZ_Y4352iEr0DlEnNebf26JmR4ETtDsQow,3948
|
315
330
|
omlish/lang/cached.py,sha256=92TvRZQ6sWlm7dNn4hgl7aWKbX0J1XUEo3DRjBpgVQk,7834
|
316
331
|
omlish/lang/clsdct.py,sha256=AjtIWLlx2E6D5rC97zQ3Lwq2SOMkbg08pdO_AxpzEHI,1744
|
317
332
|
omlish/lang/cmp.py,sha256=5vbzWWbqdzDmNKAGL19z6ZfUKe5Ci49e-Oegf9f4BsE,1346
|
@@ -319,7 +334,7 @@ omlish/lang/contextmanagers.py,sha256=NEwaTLQMfhKawD5x_0HgI2RpeLXbMa5r9NqWqfDnUX
|
|
319
334
|
omlish/lang/datetimes.py,sha256=ehI_DhQRM-bDxAavnp470XcekbbXc4Gdw9y1KpHDJT0,223
|
320
335
|
omlish/lang/descriptors.py,sha256=RRBbkMgTzg82fFFE4D0muqobpM-ZZaOta6yB1lpX3s8,6617
|
321
336
|
omlish/lang/exceptions.py,sha256=qJBo3NU1mOWWm-NhQUHCY5feYXR3arZVyEHinLsmRH4,47
|
322
|
-
omlish/lang/functions.py,sha256=
|
337
|
+
omlish/lang/functions.py,sha256=t9nsnWwhsibG0w908VMx-_pRM5tZfruE3faPxrCWTbI,4160
|
323
338
|
omlish/lang/generators.py,sha256=5LX17j-Ej3QXhwBgZvRTm_dq3n9veC4IOUcVmvSu2vU,5243
|
324
339
|
omlish/lang/imports.py,sha256=TXLbj2F53LsmozlM05bQhvow9kEgWJOi9qYKsnm2D18,9258
|
325
340
|
omlish/lang/iterables.py,sha256=mE-XyhqMe9LztBf5Y36SDSO0Gtu8rIKmE-hcNvhhOX8,2085
|
@@ -375,7 +390,7 @@ omlish/logs/proxy.py,sha256=A-ROPUUAlF397qTbEqhel6YhQMstNuXL3Xmts7w9dAo,2347
|
|
375
390
|
omlish/logs/standard.py,sha256=BVFn8pFyafxuco1sjA5COYxX5Q0Wv80_OE9zo6uDp2Q,3164
|
376
391
|
omlish/logs/utils.py,sha256=mzHrZ9ji75p5A8qR29eUr05CBAHMb8J753MSkID_VaQ,393
|
377
392
|
omlish/manifests/__init__.py,sha256=P2B0dpT8D7l5lJwRGPA92IcQj6oeXfd90X5-q9BJrKg,51
|
378
|
-
omlish/manifests/load.py,sha256=
|
393
|
+
omlish/manifests/load.py,sha256=LrWAvBfdzDkFdLuVwfw2RwFvLjxx-rvfkpU9eBsWeIc,5626
|
379
394
|
omlish/manifests/types.py,sha256=d8bv5tknCJqclRfxCpao_8XxHo2yofhLpVHQTB-MfNw,260
|
380
395
|
omlish/marshal/__init__.py,sha256=iVA7n31L08Bdub6HKPvYOXVvDhk2CMA6rPeKDL_u1to,2298
|
381
396
|
omlish/marshal/any.py,sha256=e82OyYK3Emm1P1ClnsnxP7fIWC2iNVyW0H5nK4mLmWM,779
|
@@ -535,9 +550,9 @@ omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,329
|
|
535
550
|
omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
|
536
551
|
omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
|
537
552
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
538
|
-
omlish-0.0.0.
|
539
|
-
omlish-0.0.0.
|
540
|
-
omlish-0.0.0.
|
541
|
-
omlish-0.0.0.
|
542
|
-
omlish-0.0.0.
|
543
|
-
omlish-0.0.0.
|
553
|
+
omlish-0.0.0.dev163.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
554
|
+
omlish-0.0.0.dev163.dist-info/METADATA,sha256=CbI3Uq6iTFyvnBAKSWdpADOUvmHFsUkfMV5rnHiOOio,4264
|
555
|
+
omlish-0.0.0.dev163.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
556
|
+
omlish-0.0.0.dev163.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
557
|
+
omlish-0.0.0.dev163.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
558
|
+
omlish-0.0.0.dev163.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|