omlish 0.0.0.dev164__py3-none-any.whl → 0.0.0.dev165__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omlish/.manifests.json +30 -2
- omlish/__about__.py +2 -2
- omlish/codecs/__init__.py +3 -0
- omlish/codecs/base.py +4 -0
- omlish/codecs/funcs.py +11 -0
- omlish/formats/cloudpickle.py +31 -0
- omlish/formats/json/codecs.py +0 -4
- omlish/formats/json/delimted.py +4 -0
- omlish/formats/yaml.py +7 -0
- omlish/funcs/pairs.py +0 -281
- {omlish-0.0.0.dev164.dist-info → omlish-0.0.0.dev165.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev164.dist-info → omlish-0.0.0.dev165.dist-info}/RECORD +16 -14
- {omlish-0.0.0.dev164.dist-info → omlish-0.0.0.dev165.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev164.dist-info → omlish-0.0.0.dev165.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev164.dist-info → omlish-0.0.0.dev165.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev164.dist-info → omlish-0.0.0.dev165.dist-info}/top_level.txt +0 -0
omlish/.manifests.json
CHANGED
@@ -37,6 +37,20 @@
|
|
37
37
|
}
|
38
38
|
}
|
39
39
|
},
|
40
|
+
{
|
41
|
+
"module": ".formats.cloudpickle",
|
42
|
+
"attr": "_CLOUDPICKLE_LAZY_CODEC",
|
43
|
+
"file": "omlish/formats/cloudpickle.py",
|
44
|
+
"line": 30,
|
45
|
+
"value": {
|
46
|
+
"$.codecs.base.LazyLoadedCodec": {
|
47
|
+
"mod_name": "omlish.formats.cloudpickle",
|
48
|
+
"attr_name": "CLOUDPICKLE_CODEC",
|
49
|
+
"name": "cloudpickle",
|
50
|
+
"aliases": null
|
51
|
+
}
|
52
|
+
}
|
53
|
+
},
|
40
54
|
{
|
41
55
|
"module": ".formats.json.codecs",
|
42
56
|
"attr": "_JSON_LAZY_CODEC",
|
@@ -55,7 +69,7 @@
|
|
55
69
|
"module": ".formats.json.codecs",
|
56
70
|
"attr": "_JSON_COMPACT_LAZY_CODEC",
|
57
71
|
"file": "omlish/formats/json/codecs.py",
|
58
|
-
"line":
|
72
|
+
"line": 21,
|
59
73
|
"value": {
|
60
74
|
"$.codecs.base.LazyLoadedCodec": {
|
61
75
|
"mod_name": "omlish.formats.json.codecs",
|
@@ -69,7 +83,7 @@
|
|
69
83
|
"module": ".formats.json.codecs",
|
70
84
|
"attr": "_JSON_PRETTY_LAZY_CODEC",
|
71
85
|
"file": "omlish/formats/json/codecs.py",
|
72
|
-
"line":
|
86
|
+
"line": 28,
|
73
87
|
"value": {
|
74
88
|
"$.codecs.base.LazyLoadedCodec": {
|
75
89
|
"mod_name": "omlish.formats.json.codecs",
|
@@ -137,6 +151,20 @@
|
|
137
151
|
}
|
138
152
|
}
|
139
153
|
},
|
154
|
+
{
|
155
|
+
"module": ".formats.yaml",
|
156
|
+
"attr": "_YAML_UNSAFE_LAZY_CODEC",
|
157
|
+
"file": "omlish/formats/yaml.py",
|
158
|
+
"line": 265,
|
159
|
+
"value": {
|
160
|
+
"$.codecs.base.LazyLoadedCodec": {
|
161
|
+
"mod_name": "omlish.formats.yaml",
|
162
|
+
"attr_name": "YAML_UNSAFE_CODEC",
|
163
|
+
"name": "yaml-unsafe",
|
164
|
+
"aliases": null
|
165
|
+
}
|
166
|
+
}
|
167
|
+
},
|
140
168
|
{
|
141
169
|
"module": ".io.compress.brotli",
|
142
170
|
"attr": "_BROTLI_LAZY_CODEC",
|
omlish/__about__.py
CHANGED
omlish/codecs/__init__.py
CHANGED
omlish/codecs/base.py
CHANGED
@@ -9,6 +9,7 @@ from omlish import check
|
|
9
9
|
from omlish import dataclasses as dc
|
10
10
|
from omlish import lang
|
11
11
|
from omlish import reflect as rfl
|
12
|
+
from omlish.funcs import pairs as fps
|
12
13
|
|
13
14
|
|
14
15
|
I = ta.TypeVar('I')
|
@@ -27,6 +28,9 @@ class EagerCodec(lang.Abstract, ta.Generic[I, O]):
|
|
27
28
|
def decode(self, o: O) -> I:
|
28
29
|
raise NotImplementedError
|
29
30
|
|
31
|
+
def as_pair(self) -> fps.FnPair[I, O]:
|
32
|
+
return fps.of(self.encode, self.decode)
|
33
|
+
|
30
34
|
|
31
35
|
class IncrementalCodec(lang.Abstract, ta.Generic[I, O]):
|
32
36
|
@abc.abstractmethod
|
omlish/codecs/funcs.py
CHANGED
@@ -26,3 +26,14 @@ class FnPairEagerCodec(EagerCodec[I, O]):
|
|
26
26
|
decode: ta.Callable[[O], I],
|
27
27
|
) -> 'FnPairEagerCodec[I, O]':
|
28
28
|
return cls(fps.of(encode, decode))
|
29
|
+
|
30
|
+
|
31
|
+
def of_pair(fp: fps.FnPair[I, O]) -> FnPairEagerCodec[I, O]:
|
32
|
+
return FnPairEagerCodec(fp)
|
33
|
+
|
34
|
+
|
35
|
+
def of(
|
36
|
+
encode: ta.Callable[[I], O],
|
37
|
+
decode: ta.Callable[[O], I],
|
38
|
+
) -> FnPairEagerCodec[I, O]:
|
39
|
+
return FnPairEagerCodec(fps.of(encode, decode))
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import typing as ta
|
2
|
+
|
3
|
+
from .. import lang
|
4
|
+
from .codecs import make_bytes_object_codec
|
5
|
+
from .codecs import make_object_lazy_loaded_codec
|
6
|
+
|
7
|
+
|
8
|
+
if ta.TYPE_CHECKING:
|
9
|
+
import cloudpickle
|
10
|
+
else:
|
11
|
+
cloudpickle = lang.proxy_import('cloudpickle')
|
12
|
+
|
13
|
+
|
14
|
+
##
|
15
|
+
|
16
|
+
|
17
|
+
def dump(obj: ta.Any) -> bytes:
|
18
|
+
return cloudpickle.dumps(obj)
|
19
|
+
|
20
|
+
|
21
|
+
def load(s: bytes) -> ta.Any:
|
22
|
+
return cloudpickle.loads(s)
|
23
|
+
|
24
|
+
|
25
|
+
##
|
26
|
+
|
27
|
+
|
28
|
+
CLOUDPICKLE_CODEC = make_bytes_object_codec('cloudpickle', dump, load)
|
29
|
+
|
30
|
+
# @omlish-manifest
|
31
|
+
_CLOUDPICKLE_LAZY_CODEC = make_object_lazy_loaded_codec(__name__, 'CLOUDPICKLE_CODEC', CLOUDPICKLE_CODEC)
|
omlish/formats/json/codecs.py
CHANGED
@@ -14,19 +14,15 @@ JSON_CODEC = make_str_object_codec('json', dumps, loads)
|
|
14
14
|
# @omlish-manifest
|
15
15
|
_JSON_LAZY_CODEC = make_object_lazy_loaded_codec(__name__, 'JSON_CODEC', JSON_CODEC)
|
16
16
|
|
17
|
-
|
18
17
|
#
|
19
18
|
|
20
|
-
|
21
19
|
JSON_COMPACT_CODEC = make_str_object_codec('json-compact', dumps_compact, loads)
|
22
20
|
|
23
21
|
# @omlish-manifest
|
24
22
|
_JSON_COMPACT_LAZY_CODEC = make_object_lazy_loaded_codec(__name__, 'JSON_COMPACT_CODEC', JSON_COMPACT_CODEC)
|
25
23
|
|
26
|
-
|
27
24
|
#
|
28
25
|
|
29
|
-
|
30
26
|
JSON_PRETTY_CODEC = make_str_object_codec('json-pretty', dumps_pretty, loads)
|
31
27
|
|
32
28
|
# @omlish-manifest
|
omlish/formats/yaml.py
CHANGED
@@ -257,3 +257,10 @@ YAML_CODEC = make_str_object_codec('yaml', dump, safe_load, aliases=['yml'])
|
|
257
257
|
|
258
258
|
# @omlish-manifest
|
259
259
|
_YAML_LAZY_CODEC = make_object_lazy_loaded_codec(__name__, 'YAML_CODEC', YAML_CODEC)
|
260
|
+
|
261
|
+
#
|
262
|
+
|
263
|
+
YAML_UNSAFE_CODEC = make_str_object_codec('yaml-unsafe', dump, full_load)
|
264
|
+
|
265
|
+
# @omlish-manifest
|
266
|
+
_YAML_UNSAFE_LAZY_CODEC = make_object_lazy_loaded_codec(__name__, 'YAML_UNSAFE_CODEC', YAML_UNSAFE_CODEC)
|
omlish/funcs/pairs.py
CHANGED
@@ -1,22 +1,4 @@
|
|
1
|
-
"""
|
2
|
-
TODO:
|
3
|
-
- objects
|
4
|
-
- csv
|
5
|
-
- csvloader
|
6
|
-
- wrapped (wait for usecase)
|
7
|
-
- streams / incremental
|
8
|
-
- fileobj -> fileobj?
|
9
|
-
- swap zstandard for zstd
|
10
|
-
|
11
|
-
Compression choice:
|
12
|
-
- lzma if-available minimal-space
|
13
|
-
- lz4 if-available read-heavy
|
14
|
-
- zstd if-available
|
15
|
-
- bz2 read-heavy (but no parallel decompress)
|
16
|
-
- gz
|
17
|
-
"""
|
18
1
|
import abc
|
19
|
-
import codecs
|
20
2
|
import dataclasses as dc
|
21
3
|
import typing as ta
|
22
4
|
|
@@ -24,40 +6,9 @@ from .. import lang
|
|
24
6
|
|
25
7
|
|
26
8
|
if ta.TYPE_CHECKING:
|
27
|
-
import bz2 as _bz2
|
28
|
-
import gzip as _gzip
|
29
|
-
import lzma as _lzma
|
30
|
-
import pickle as _pickle
|
31
9
|
import struct as _struct
|
32
|
-
import tomllib as _tomllib
|
33
|
-
|
34
|
-
import cbor2 as _cbor2
|
35
|
-
import cloudpickle as _cloudpickle
|
36
|
-
import json5 as _json5
|
37
|
-
import lz4.frame as _lz4_frame
|
38
|
-
import snappy as _snappy
|
39
|
-
import yaml as _yaml
|
40
|
-
import zstandard as _zstandard
|
41
|
-
|
42
|
-
from ..formats import json as _json
|
43
|
-
|
44
10
|
else:
|
45
|
-
_bz2 = lang.proxy_import('bz2')
|
46
|
-
_gzip = lang.proxy_import('gzip')
|
47
|
-
_lzma = lang.proxy_import('lzma')
|
48
|
-
_pickle = lang.proxy_import('pickle')
|
49
11
|
_struct = lang.proxy_import('struct')
|
50
|
-
_tomllib = lang.proxy_import('tomllib')
|
51
|
-
|
52
|
-
_cbor2 = lang.proxy_import('cbor2')
|
53
|
-
_cloudpickle = lang.proxy_import('cloudpickle')
|
54
|
-
_json5 = lang.proxy_import('json5')
|
55
|
-
_lz4_frame = lang.proxy_import('lz4.frame')
|
56
|
-
_snappy = lang.proxy_import('snappy')
|
57
|
-
_yaml = lang.proxy_import('yaml')
|
58
|
-
_zstandard = lang.proxy_import('zstandard')
|
59
|
-
|
60
|
-
_json = lang.proxy_import('..formats.json', __package__)
|
61
12
|
|
62
13
|
|
63
14
|
##
|
@@ -211,36 +162,6 @@ def compose(*ps):
|
|
211
162
|
##
|
212
163
|
|
213
164
|
|
214
|
-
@dc.dataclass(frozen=True)
|
215
|
-
class Text(FnPair[str, bytes]):
|
216
|
-
ci: codecs.CodecInfo
|
217
|
-
encode_errors: str = dc.field(default='strict', kw_only=True)
|
218
|
-
decode_errors: str = dc.field(default='strict', kw_only=True)
|
219
|
-
|
220
|
-
def forward(self, f: str) -> bytes:
|
221
|
-
# Python ignores the returned length:
|
222
|
-
# https://github.com/python/cpython/blob/7431c3799efbd06ed03ee70b64420f45e83b3667/Python/codecs.c#L424
|
223
|
-
t, _ = self.ci.encode(f, self.encode_errors)
|
224
|
-
return t
|
225
|
-
|
226
|
-
def backward(self, t: bytes) -> str:
|
227
|
-
f, _ = self.ci.decode(t, self.decode_errors)
|
228
|
-
return f
|
229
|
-
|
230
|
-
|
231
|
-
def text(name: str, *, encode_errors: str = 'strict', decode_errors: str = 'strict') -> Text:
|
232
|
-
ci = codecs.lookup(name)
|
233
|
-
if not ci._is_text_encoding: # noqa
|
234
|
-
raise TypeError(f'must be text codec: {name}')
|
235
|
-
return Text(ci, encode_errors=encode_errors, decode_errors=decode_errors)
|
236
|
-
|
237
|
-
|
238
|
-
UTF8 = text('utf-8')
|
239
|
-
|
240
|
-
|
241
|
-
#
|
242
|
-
|
243
|
-
|
244
165
|
@dc.dataclass(frozen=True)
|
245
166
|
class Optional(FnPair[F | None, T | None]):
|
246
167
|
fp: FnPair[F, T]
|
@@ -263,99 +184,6 @@ class Lines(FnPair[ta.Sequence[str], str]):
|
|
263
184
|
##
|
264
185
|
|
265
186
|
|
266
|
-
_EXTENSION_REGISTRY: dict[str, type[FnPair]] = {}
|
267
|
-
|
268
|
-
|
269
|
-
def _register_extension(*ss):
|
270
|
-
def inner(cls):
|
271
|
-
for s in ss:
|
272
|
-
if s in _EXTENSION_REGISTRY:
|
273
|
-
raise KeyError(s)
|
274
|
-
_EXTENSION_REGISTRY[s] = cls
|
275
|
-
return cls
|
276
|
-
return inner
|
277
|
-
|
278
|
-
|
279
|
-
def get_for_extension(ext: str) -> FnPair:
|
280
|
-
return compose(*[_EXTENSION_REGISTRY[p]() for p in ext.split('.')])
|
281
|
-
|
282
|
-
|
283
|
-
##
|
284
|
-
|
285
|
-
|
286
|
-
class Compression(FnPair[bytes, bytes], abc.ABC):
|
287
|
-
pass
|
288
|
-
|
289
|
-
|
290
|
-
@_register_extension('bz2')
|
291
|
-
@dc.dataclass(frozen=True)
|
292
|
-
class Bz2(Compression):
|
293
|
-
compresslevel: int = 9
|
294
|
-
|
295
|
-
def forward(self, f: bytes) -> bytes:
|
296
|
-
return _bz2.compress(f, compresslevel=self.compresslevel)
|
297
|
-
|
298
|
-
def backward(self, t: bytes) -> bytes:
|
299
|
-
return _bz2.decompress(t)
|
300
|
-
|
301
|
-
|
302
|
-
@_register_extension('gz')
|
303
|
-
@dc.dataclass(frozen=True)
|
304
|
-
class Gzip(Compression):
|
305
|
-
compresslevel: int = 9
|
306
|
-
|
307
|
-
def forward(self, f: bytes) -> bytes:
|
308
|
-
return _gzip.compress(f, compresslevel=self.compresslevel)
|
309
|
-
|
310
|
-
def backward(self, t: bytes) -> bytes:
|
311
|
-
return _gzip.decompress(t)
|
312
|
-
|
313
|
-
|
314
|
-
@_register_extension('lzma')
|
315
|
-
class Lzma(Compression):
|
316
|
-
def forward(self, f: bytes) -> bytes:
|
317
|
-
return _lzma.compress(f)
|
318
|
-
|
319
|
-
def backward(self, t: bytes) -> bytes:
|
320
|
-
return _lzma.decompress(t)
|
321
|
-
|
322
|
-
|
323
|
-
#
|
324
|
-
|
325
|
-
|
326
|
-
@_register_extension('lz4')
|
327
|
-
@dc.dataclass(frozen=True)
|
328
|
-
class Lz4(Compression):
|
329
|
-
compression_level: int = 0
|
330
|
-
|
331
|
-
def forward(self, f: bytes) -> bytes:
|
332
|
-
return _lz4_frame.compress(f, compression_level=self.compression_level)
|
333
|
-
|
334
|
-
def backward(self, t: bytes) -> bytes:
|
335
|
-
return _lz4_frame.decompress(t)
|
336
|
-
|
337
|
-
|
338
|
-
@_register_extension('snappy')
|
339
|
-
class Snappy(Compression):
|
340
|
-
def forward(self, f: bytes) -> bytes:
|
341
|
-
return _snappy.compress(f)
|
342
|
-
|
343
|
-
def backward(self, t: bytes) -> bytes:
|
344
|
-
return _snappy.decompress(t)
|
345
|
-
|
346
|
-
|
347
|
-
@_register_extension('zstd')
|
348
|
-
class Zstd(Compression):
|
349
|
-
def forward(self, f: bytes) -> bytes:
|
350
|
-
return _zstandard.compress(f)
|
351
|
-
|
352
|
-
def backward(self, t: bytes) -> bytes:
|
353
|
-
return _zstandard.decompress(t)
|
354
|
-
|
355
|
-
|
356
|
-
##
|
357
|
-
|
358
|
-
|
359
187
|
@dc.dataclass(frozen=True)
|
360
188
|
class Struct(FnPair[tuple, bytes]):
|
361
189
|
fmt: str
|
@@ -385,112 +213,3 @@ class ObjectStr_(Object_[str], lang.Abstract): # noqa
|
|
385
213
|
|
386
214
|
class ObjectBytes_(Object_[bytes], lang.Abstract): # noqa
|
387
215
|
pass
|
388
|
-
|
389
|
-
|
390
|
-
#
|
391
|
-
|
392
|
-
|
393
|
-
@_register_extension('pkl')
|
394
|
-
@dc.dataclass(frozen=True)
|
395
|
-
class Pickle(ObjectBytes_):
|
396
|
-
protocol: int | None = None
|
397
|
-
|
398
|
-
def forward(self, f: ta.Any) -> bytes:
|
399
|
-
return _pickle.dumps(f, protocol=self.protocol)
|
400
|
-
|
401
|
-
def backward(self, t: bytes) -> ta.Any:
|
402
|
-
return _pickle.loads(t)
|
403
|
-
|
404
|
-
|
405
|
-
class _Json(ObjectStr_, lang.Abstract): # noqa
|
406
|
-
def backward(self, t: str) -> ta.Any:
|
407
|
-
return _json.loads(t)
|
408
|
-
|
409
|
-
|
410
|
-
@_register_extension('json')
|
411
|
-
class Json(_Json):
|
412
|
-
def forward(self, f: ta.Any) -> str:
|
413
|
-
return _json.dumps(f)
|
414
|
-
|
415
|
-
|
416
|
-
class JsonPretty(_Json):
|
417
|
-
def forward(self, f: ta.Any) -> str:
|
418
|
-
return _json.dumps_pretty(f)
|
419
|
-
|
420
|
-
|
421
|
-
class JsonCompact(_Json):
|
422
|
-
def forward(self, f: ta.Any) -> str:
|
423
|
-
return _json.dumps_compact(f)
|
424
|
-
|
425
|
-
|
426
|
-
JSON = Json()
|
427
|
-
PRETTY_JSON = JsonPretty()
|
428
|
-
COMPACT_JSON = JsonCompact()
|
429
|
-
|
430
|
-
|
431
|
-
@_register_extension('jsonl')
|
432
|
-
class JsonLines(FnPair[ta.Sequence[ta.Any], str]):
|
433
|
-
def forward(self, f: ta.Sequence[ta.Any]) -> str:
|
434
|
-
return '\n'.join(_json.dumps(e) for e in f)
|
435
|
-
|
436
|
-
def backward(self, t: str) -> ta.Sequence[ta.Any]:
|
437
|
-
return [_json.loads(l) for l in t.splitlines()]
|
438
|
-
|
439
|
-
|
440
|
-
@_register_extension('toml')
|
441
|
-
class Toml(ObjectStr_):
|
442
|
-
def forward(self, f: ta.Any) -> str:
|
443
|
-
raise NotImplementedError
|
444
|
-
|
445
|
-
def backward(self, t: str) -> ta.Any:
|
446
|
-
return _tomllib.loads(t)
|
447
|
-
|
448
|
-
|
449
|
-
#
|
450
|
-
|
451
|
-
|
452
|
-
@_register_extension('cbor')
|
453
|
-
class Cbor(ObjectBytes_):
|
454
|
-
def forward(self, f: ta.Any) -> bytes:
|
455
|
-
return _cbor2.dumps(f)
|
456
|
-
|
457
|
-
def backward(self, t: bytes) -> ta.Any:
|
458
|
-
return _cbor2.loads(t)
|
459
|
-
|
460
|
-
|
461
|
-
@_register_extension('clpkl')
|
462
|
-
@dc.dataclass(frozen=True)
|
463
|
-
class Cloudpickle(ObjectBytes_):
|
464
|
-
protocol: int | None = None
|
465
|
-
|
466
|
-
def forward(self, f: ta.Any) -> bytes:
|
467
|
-
return _cloudpickle.dumps(f, protocol=self.protocol)
|
468
|
-
|
469
|
-
def backward(self, t: bytes) -> ta.Any:
|
470
|
-
return _cloudpickle.loads(t)
|
471
|
-
|
472
|
-
|
473
|
-
@_register_extension('json5')
|
474
|
-
class Json5(ObjectStr_):
|
475
|
-
def forward(self, f: ta.Any) -> str:
|
476
|
-
return _json5.dumps(f)
|
477
|
-
|
478
|
-
def backward(self, t: str) -> ta.Any:
|
479
|
-
return _json5.loads(t)
|
480
|
-
|
481
|
-
|
482
|
-
@_register_extension('yml', 'yaml')
|
483
|
-
class Yaml(ObjectStr_):
|
484
|
-
def forward(self, f: ta.Any) -> str:
|
485
|
-
return _yaml.dump(f)
|
486
|
-
|
487
|
-
def backward(self, t: str) -> ta.Any:
|
488
|
-
return _yaml.safe_load(t)
|
489
|
-
|
490
|
-
|
491
|
-
class YamlUnsafe(ObjectStr_):
|
492
|
-
def forward(self, f: ta.Any) -> str:
|
493
|
-
return _yaml.dump(f)
|
494
|
-
|
495
|
-
def backward(self, t: str) -> ta.Any:
|
496
|
-
return _yaml.load(t, _yaml.FullLoader)
|
@@ -1,5 +1,5 @@
|
|
1
|
-
omlish/.manifests.json,sha256=
|
2
|
-
omlish/__about__.py,sha256=
|
1
|
+
omlish/.manifests.json,sha256=0BnQGD2dcXEma0Jop2ZesvDNzSj3CAJBNq8aTGuBz9A,7276
|
2
|
+
omlish/__about__.py,sha256=Zdlb1wmkdCXyJBRRyIwfdhrNEFzKL3DnTkBFMYzau-4,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,11 +109,11 @@ 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
|
113
|
-
omlish/codecs/base.py,sha256=
|
112
|
+
omlish/codecs/__init__.py,sha256=-FDwRJFGagg-fZyQ8wup4GPuR6gHpmaChzthlykn-kY,876
|
113
|
+
omlish/codecs/base.py,sha256=O6MDkBg0LDq3W-bVXpNEZiIkTYQo2cwaHFoUwxgtcOk,2208
|
114
114
|
omlish/codecs/bytes.py,sha256=jlZ87OmZ52HhQDNyL87R3OIviK2qV5iU2jZYOTOLWjk,2157
|
115
115
|
omlish/codecs/chain.py,sha256=DrBi5vbaFfObfoppo6alwOmyW2XbrH2051cjExwr2Gs,527
|
116
|
-
omlish/codecs/funcs.py,sha256=
|
116
|
+
omlish/codecs/funcs.py,sha256=p4imNt7TobyZVXWC-WhntHVu9KfJrO4QwdtPRh-cVOk,850
|
117
117
|
omlish/codecs/registry.py,sha256=8ySUG-kwGJoUN1HCRnz8VjcykB0wlIzoWF5WTAE1ny0,3860
|
118
118
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
119
119
|
omlish/codecs/text.py,sha256=D8uy-3_XFwUSlygPQsHP8c2t5ZCgebQS0hv5CWoDXCI,5728
|
@@ -204,6 +204,7 @@ omlish/docker/manifests.py,sha256=LR4FpOGNUT3bZQ-gTjB6r_-1C3YiG30QvevZjrsVUQM,70
|
|
204
204
|
omlish/docker/timebomb.py,sha256=A_pgIDaXKsQwPiikrCTgIJl91gwYqkPGFY6j-Naq07Q,342
|
205
205
|
omlish/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
206
206
|
omlish/formats/cbor.py,sha256=o_Hbe4kthO9CeXK-FySrw0dHVlrdyTo2Y8PpGRDfZ3c,514
|
207
|
+
omlish/formats/cloudpickle.py,sha256=16si4yUp_pAdDWGECAWf6HLA2PwSANGGgDoMLGZUem8,579
|
207
208
|
omlish/formats/codecs.py,sha256=6AbKIz_gl_om36-7qsutybYzK8cJP3LzwC9YJlwCPOA,1590
|
208
209
|
omlish/formats/dotenv.py,sha256=qoDG4Ayu7B-8LjBBhcmNiLZW0_9LgCi3Ri2aPo9DEQ8,19314
|
209
210
|
omlish/formats/json5.py,sha256=odpZIShlUpv19aACWe58SoMPcv0AHKIa6zSMjlKgaMI,515
|
@@ -211,10 +212,11 @@ omlish/formats/pickle.py,sha256=jdp4E9WH9qVPBE3sSqbqDtUo18RbTSIiSpSzJ-IEVZw,529
|
|
211
212
|
omlish/formats/props.py,sha256=cek3JLFLIrpE76gvs8rs_B8yF4SpY8ooDH8apWsquwE,18953
|
212
213
|
omlish/formats/toml.py,sha256=AhpVNAy87eBohBCsvIvwH2ucASWxnWXMEsMH8zB7rpI,340
|
213
214
|
omlish/formats/xml.py,sha256=ggiOwSERt4d9XmZwLZiDIh5qnFJS4jdmow9m9_9USps,1491
|
214
|
-
omlish/formats/yaml.py,sha256=
|
215
|
+
omlish/formats/yaml.py,sha256=ffOwGnLA6chdiFyaS7X0TBMGmHG9AoGudzKVWfQ1UOs,7389
|
215
216
|
omlish/formats/json/__init__.py,sha256=y7T-Jm-7FuQFzb-6uedky0ZhBaKtCKzcu291juXfiWI,669
|
216
|
-
omlish/formats/json/codecs.py,sha256=
|
217
|
+
omlish/formats/json/codecs.py,sha256=E5KErfqsgGZq763ixXLT3qysbk5MIsypT92xG5aSaIs,796
|
217
218
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
219
|
+
omlish/formats/json/delimted.py,sha256=UpcTP-KAc6HgMtb9n-Ldgux18OlZjb_9BDFTWol2vo8,29
|
218
220
|
omlish/formats/json/encoding.py,sha256=O4iIWle7W_-RwpOvJNlqOfkbnDyiQHexV5Za4hlrFzw,497
|
219
221
|
omlish/formats/json/json.py,sha256=Mdqv2vdMi7gp96eV0BIYH5UdWpjWfsh-tSMZeywG-08,331
|
220
222
|
omlish/formats/json/literals.py,sha256=6ptwZyfTXodEtAjDnUhsx6XU3KRZWWYWKYtZ8T7rzsQ,5625
|
@@ -236,7 +238,7 @@ omlish/formats/json/stream/render.py,sha256=NtmDsN92xZi5dkgSSuMeMXMAiJblmjz1arB4
|
|
236
238
|
omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
237
239
|
omlish/funcs/genmachine.py,sha256=EY2k-IFNKMEmHo9CmGRptFvhEMZVOWzZhn0wdQGeaFM,2476
|
238
240
|
omlish/funcs/match.py,sha256=gMLZn1enNiFvQaWrQubY300M1BrmdKWzeePihBS7Ywc,6153
|
239
|
-
omlish/funcs/pairs.py,sha256=
|
241
|
+
omlish/funcs/pairs.py,sha256=VCkZjDmJGtR76BsejsHNfb4TcpHCtkkmak-zWDFchAo,3904
|
240
242
|
omlish/funcs/pipes.py,sha256=E7Sz8Aj8ke_vCs5AMNwg1I36kRdHVGTnzxVQaDyn43U,2490
|
241
243
|
omlish/graphs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
242
244
|
omlish/graphs/dags.py,sha256=zp55lYgUdRCxmADwiGDHeehMJczZFA_tzdWqy77icOk,3047
|
@@ -550,9 +552,9 @@ omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,329
|
|
550
552
|
omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
|
551
553
|
omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
|
552
554
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
553
|
-
omlish-0.0.0.
|
554
|
-
omlish-0.0.0.
|
555
|
-
omlish-0.0.0.
|
556
|
-
omlish-0.0.0.
|
557
|
-
omlish-0.0.0.
|
558
|
-
omlish-0.0.0.
|
555
|
+
omlish-0.0.0.dev165.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
556
|
+
omlish-0.0.0.dev165.dist-info/METADATA,sha256=1yDvcRGCepEy655WVgRWrcVtvZKHIgCZVoOr5zdq_rs,4264
|
557
|
+
omlish-0.0.0.dev165.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
558
|
+
omlish-0.0.0.dev165.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
559
|
+
omlish-0.0.0.dev165.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
560
|
+
omlish-0.0.0.dev165.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|