omlish 0.0.0.dev192__py3-none-any.whl → 0.0.0.dev193__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omlish/.manifests.json +17 -3
- omlish/__about__.py +2 -2
- omlish/codecs/base.py +2 -0
- omlish/configs/__init__.py +0 -5
- omlish/configs/flattening.py +31 -33
- omlish/configs/strings.py +2 -2
- omlish/formats/__init__.py +5 -0
- omlish/formats/ini/__init__.py +0 -0
- omlish/formats/ini/codec.py +26 -0
- omlish/formats/ini/sections.py +45 -0
- omlish/formats/toml/__init__.py +0 -0
- omlish/formats/{toml.py → toml/codec.py} +2 -2
- omlish/formats/toml/parser.py +827 -0
- omlish/formats/toml/writer.py +115 -0
- omlish/lang/__init__.py +4 -1
- omlish/lang/iterables.py +0 -7
- omlish/lite/types.py +9 -0
- omlish/text/glyphsplit.py +12 -10
- {omlish-0.0.0.dev192.dist-info → omlish-0.0.0.dev193.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev192.dist-info → omlish-0.0.0.dev193.dist-info}/RECORD +24 -17
- {omlish-0.0.0.dev192.dist-info → omlish-0.0.0.dev193.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev192.dist-info → omlish-0.0.0.dev193.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev192.dist-info → omlish-0.0.0.dev193.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev192.dist-info → omlish-0.0.0.dev193.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,115 @@
|
|
1
|
+
# @omlish-lite
|
2
|
+
import dataclasses as dc
|
3
|
+
import string
|
4
|
+
import typing as ta
|
5
|
+
|
6
|
+
|
7
|
+
class TomlWriter:
|
8
|
+
@dc.dataclass(frozen=True)
|
9
|
+
class Literal:
|
10
|
+
s: str
|
11
|
+
|
12
|
+
def __init__(self, out: ta.TextIO) -> None:
|
13
|
+
super().__init__()
|
14
|
+
self._out = out
|
15
|
+
|
16
|
+
self._indent = 0
|
17
|
+
self._wrote_indent = False
|
18
|
+
|
19
|
+
#
|
20
|
+
|
21
|
+
def _w(self, s: str) -> None:
|
22
|
+
if not self._wrote_indent:
|
23
|
+
self._out.write(' ' * self._indent)
|
24
|
+
self._wrote_indent = True
|
25
|
+
self._out.write(s)
|
26
|
+
|
27
|
+
def _nl(self) -> None:
|
28
|
+
self._out.write('\n')
|
29
|
+
self._wrote_indent = False
|
30
|
+
|
31
|
+
def _needs_quote(self, s: str) -> bool:
|
32
|
+
return (
|
33
|
+
not s or
|
34
|
+
any(c in s for c in '\'"\n') or
|
35
|
+
s[0] not in string.ascii_letters
|
36
|
+
)
|
37
|
+
|
38
|
+
def _maybe_quote(self, s: str) -> str:
|
39
|
+
if self._needs_quote(s):
|
40
|
+
return repr(s)
|
41
|
+
else:
|
42
|
+
return s
|
43
|
+
|
44
|
+
#
|
45
|
+
|
46
|
+
def write_root(self, obj: ta.Mapping) -> None:
|
47
|
+
for i, (k, v) in enumerate(obj.items()):
|
48
|
+
if i:
|
49
|
+
self._nl()
|
50
|
+
self._w('[')
|
51
|
+
self._w(self._maybe_quote(k))
|
52
|
+
self._w(']')
|
53
|
+
self._nl()
|
54
|
+
self.write_table_contents(v)
|
55
|
+
|
56
|
+
def write_table_contents(self, obj: ta.Mapping) -> None:
|
57
|
+
for k, v in obj.items():
|
58
|
+
self.write_key(k)
|
59
|
+
self._w(' = ')
|
60
|
+
self.write_value(v)
|
61
|
+
self._nl()
|
62
|
+
|
63
|
+
def write_array(self, obj: ta.Sequence) -> None:
|
64
|
+
self._w('[')
|
65
|
+
self._nl()
|
66
|
+
self._indent += 1
|
67
|
+
for e in obj:
|
68
|
+
self.write_value(e)
|
69
|
+
self._w(',')
|
70
|
+
self._nl()
|
71
|
+
self._indent -= 1
|
72
|
+
self._w(']')
|
73
|
+
|
74
|
+
def write_inline_table(self, obj: ta.Mapping) -> None:
|
75
|
+
self._w('{')
|
76
|
+
for i, (k, v) in enumerate(obj.items()):
|
77
|
+
if i:
|
78
|
+
self._w(', ')
|
79
|
+
self.write_key(k)
|
80
|
+
self._w(' = ')
|
81
|
+
self.write_value(v)
|
82
|
+
self._w('}')
|
83
|
+
|
84
|
+
def write_inline_array(self, obj: ta.Sequence) -> None:
|
85
|
+
self._w('[')
|
86
|
+
for i, e in enumerate(obj):
|
87
|
+
if i:
|
88
|
+
self._w(', ')
|
89
|
+
self.write_value(e)
|
90
|
+
self._w(']')
|
91
|
+
|
92
|
+
def write_key(self, obj: ta.Any) -> None:
|
93
|
+
if isinstance(obj, TomlWriter.Literal):
|
94
|
+
self._w(obj.s)
|
95
|
+
elif isinstance(obj, str):
|
96
|
+
self._w(self._maybe_quote(obj.replace('_', '-')))
|
97
|
+
elif isinstance(obj, int):
|
98
|
+
self._w(repr(str(obj)))
|
99
|
+
else:
|
100
|
+
raise TypeError(obj)
|
101
|
+
|
102
|
+
def write_value(self, obj: ta.Any) -> None:
|
103
|
+
if isinstance(obj, bool):
|
104
|
+
self._w(str(obj).lower())
|
105
|
+
elif isinstance(obj, (str, int, float)):
|
106
|
+
self._w(repr(obj))
|
107
|
+
elif isinstance(obj, ta.Mapping):
|
108
|
+
self.write_inline_table(obj)
|
109
|
+
elif isinstance(obj, ta.Sequence):
|
110
|
+
if not obj:
|
111
|
+
self.write_inline_array(obj)
|
112
|
+
else:
|
113
|
+
self.write_array(obj)
|
114
|
+
else:
|
115
|
+
raise TypeError(obj)
|
omlish/lang/__init__.py
CHANGED
@@ -147,7 +147,6 @@ from .imports import ( # noqa
|
|
147
147
|
)
|
148
148
|
|
149
149
|
from .iterables import ( # noqa
|
150
|
-
BUILTIN_SCALAR_ITERABLE_TYPES,
|
151
150
|
asrange,
|
152
151
|
exhaust,
|
153
152
|
flatmap,
|
@@ -238,6 +237,10 @@ from .typing import ( # noqa
|
|
238
237
|
|
239
238
|
##
|
240
239
|
|
240
|
+
from ..lite.types import ( # noqa
|
241
|
+
BUILTIN_SCALAR_ITERABLE_TYPES,
|
242
|
+
)
|
243
|
+
|
241
244
|
from ..lite.typing import ( # noqa
|
242
245
|
AnyFunc,
|
243
246
|
Func0,
|
omlish/lang/iterables.py
CHANGED
omlish/lite/types.py
ADDED
omlish/text/glyphsplit.py
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007
|
2
|
+
# @omlish-lite
|
1
3
|
"""
|
2
4
|
Note: string.Formatter (and string.Template) shouldn't be ignored - if they can be used they probably should be.
|
3
5
|
- https://docs.python.org/3/library/string.html#custom-string-formatting
|
@@ -5,22 +7,22 @@ Note: string.Formatter (and string.Template) shouldn't be ignored - if they can
|
|
5
7
|
"""
|
6
8
|
import dataclasses as dc
|
7
9
|
import re
|
10
|
+
import typing as ta
|
8
11
|
|
9
|
-
from .. import check
|
12
|
+
from ..lite.check import check
|
10
13
|
|
11
14
|
|
12
15
|
@dc.dataclass(frozen=True)
|
13
|
-
class
|
16
|
+
class GlyphSplitMatch:
|
14
17
|
l: str
|
15
18
|
s: str
|
16
19
|
r: str
|
17
20
|
|
18
21
|
|
19
22
|
class GlyphSplitter:
|
20
|
-
|
21
23
|
def __init__(
|
22
24
|
self,
|
23
|
-
glyphs:
|
25
|
+
glyphs: ta.Tuple[str, str],
|
24
26
|
*,
|
25
27
|
escape_returned_doubles: bool = False,
|
26
28
|
compact: bool = False,
|
@@ -49,7 +51,7 @@ class GlyphSplitter:
|
|
49
51
|
|
50
52
|
self._single_glyph_pat = re.compile(r'(%s[^%s]*?%s)' % (self._l_escaped_glyph, self._r_escaped_glyph, self._r_escaped_glyph)) # noqa
|
51
53
|
|
52
|
-
def split(self, s: str) ->
|
54
|
+
def split(self, s: str) -> ta.List[ta.Union[GlyphSplitMatch, str]]:
|
53
55
|
ps = self._l_glyph_pat.split(s)
|
54
56
|
ps = [p[::-1] for p in ps for p in reversed(self._r_glyph_pat.split(p[::-1]))]
|
55
57
|
|
@@ -77,7 +79,7 @@ class GlyphSplitter:
|
|
77
79
|
for m in ms:
|
78
80
|
if m.start() != l:
|
79
81
|
append_ret(p[l:m.start()])
|
80
|
-
append_ret(
|
82
|
+
append_ret(GlyphSplitMatch(self._l_glyph, p[m.start() + 1:m.end() - 1], self._r_glyph))
|
81
83
|
l = m.end()
|
82
84
|
|
83
85
|
if l < len(p):
|
@@ -91,7 +93,7 @@ _BRACE_GLYPH_SPLITTER = GlyphSplitter(('{', '}'), escape_returned_doubles=True,
|
|
91
93
|
_BRACKET_GLYPH_SPLITTER = GlyphSplitter(('[', ']'), escape_returned_doubles=True, compact=True)
|
92
94
|
_ANGLE_BRACKET_GLYPH_SPLITTER = GlyphSplitter(('<', '>'), escape_returned_doubles=True, compact=True)
|
93
95
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
96
|
+
glyph_split_parens = _PAREN_GLYPH_SPLITTER.split
|
97
|
+
glyph_split_braces = _BRACE_GLYPH_SPLITTER.split
|
98
|
+
glyph_split_brackets = _BRACKET_GLYPH_SPLITTER.split
|
99
|
+
glyph_split_angle_brackets = _ANGLE_BRACKET_GLYPH_SPLITTER.split
|
@@ -1,5 +1,5 @@
|
|
1
|
-
omlish/.manifests.json,sha256=
|
2
|
-
omlish/__about__.py,sha256=
|
1
|
+
omlish/.manifests.json,sha256=dyIpveH7Z8OnQp2pTn6NVv7LCDXVrozJWAzbk8PBavg,7950
|
2
|
+
omlish/__about__.py,sha256=8ZHxg4DUtn_y7pls_IM3xNDk_hcPGBh1tnkB36CBP5U,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
|
@@ -117,7 +117,7 @@ omlish/bootstrap/main.py,sha256=yZhOHDDlj4xB5a89dRdT8z58FsqqnpoBg1-tvY2CJe4,5903
|
|
117
117
|
omlish/bootstrap/marshal.py,sha256=ZxdAeMNd2qXRZ1HUK89HmEhz8tqlS9OduW34QBscKw0,516
|
118
118
|
omlish/bootstrap/sys.py,sha256=aqMzxZa_lPj78cgz4guYZAkjT6En32e2LptfEo20NIM,8769
|
119
119
|
omlish/codecs/__init__.py,sha256=-FDwRJFGagg-fZyQ8wup4GPuR6gHpmaChzthlykn-kY,876
|
120
|
-
omlish/codecs/base.py,sha256=
|
120
|
+
omlish/codecs/base.py,sha256=JXTFSLnX5qPbi4NSbbI5uB3tYhs2SN0g_eWN2UskPYE,2242
|
121
121
|
omlish/codecs/bytes.py,sha256=jlZ87OmZ52HhQDNyL87R3OIviK2qV5iU2jZYOTOLWjk,2157
|
122
122
|
omlish/codecs/chain.py,sha256=DrBi5vbaFfObfoppo6alwOmyW2XbrH2051cjExwr2Gs,527
|
123
123
|
omlish/codecs/funcs.py,sha256=p4imNt7TobyZVXWC-WhntHVu9KfJrO4QwdtPRh-cVOk,850
|
@@ -149,10 +149,10 @@ omlish/concurrent/__init__.py,sha256=9p-s8MvBEYDqHIoYU3OYoe-Nni22QdkW7nhZGEukJTM
|
|
149
149
|
omlish/concurrent/executors.py,sha256=FYKCDYYuj-OgMa8quLsA47SfFNX3KDJvRENVk8NDsrA,1292
|
150
150
|
omlish/concurrent/futures.py,sha256=J2s9wYURUskqRJiBbAR0PNEAp1pXbIMYldOVBTQduQY,4239
|
151
151
|
omlish/concurrent/threadlets.py,sha256=JfirbTDJgy9Ouokz_VmHeAAPS7cih8qMUJrN-owwXD4,2423
|
152
|
-
omlish/configs/__init__.py,sha256=
|
152
|
+
omlish/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
153
153
|
omlish/configs/classes.py,sha256=GLbB8xKjHjjoUQRCUQm3nEjM8z1qNTx9gPV7ODSt5dg,1317
|
154
|
-
omlish/configs/flattening.py,sha256=
|
155
|
-
omlish/configs/strings.py,sha256=
|
154
|
+
omlish/configs/flattening.py,sha256=t29dgCTcwrgvOEuxIxLf7FgZhOpH2Z72xIRHglXbxUI,5020
|
155
|
+
omlish/configs/strings.py,sha256=Ho92yy3Ex_-FoUTBuUcRF_tJ-iE9kFFa5oOqnGtCRZg,2662
|
156
156
|
omlish/dataclasses/__init__.py,sha256=AHo-tN5V_b_VYFUF7VFRmuHrjZBXS1WytRAj061MUTA,1423
|
157
157
|
omlish/dataclasses/utils.py,sha256=lcikCPiiX5Giu0Kb1hP18loZjmm_Z9D-XtJ-ZlHq9iM,3793
|
158
158
|
omlish/dataclasses/impl/LICENSE,sha256=Oy-B_iHRgcSZxZolbI4ZaEVdZonSaaqFNzv7avQdo78,13936
|
@@ -209,7 +209,7 @@ omlish/docker/detect.py,sha256=Qrdbosm2wJkxKDuy8gaGmbQoxk4Wnp1HJjAEz58NA8Y,614
|
|
209
209
|
omlish/docker/hub.py,sha256=7LIuJGdA-N1Y1dmo50ynKM1KUTcnQM_5XbtPbdT_QLU,3940
|
210
210
|
omlish/docker/manifests.py,sha256=LR4FpOGNUT3bZQ-gTjB6r_-1C3YiG30QvevZjrsVUQM,7068
|
211
211
|
omlish/docker/timebomb.py,sha256=A_pgIDaXKsQwPiikrCTgIJl91gwYqkPGFY6j-Naq07Q,342
|
212
|
-
omlish/formats/__init__.py,sha256=
|
212
|
+
omlish/formats/__init__.py,sha256=KC-AiWm95O6kXVW4cRUnq8WnybKnE6lR9sf_i2DuV4o,28
|
213
213
|
omlish/formats/cbor.py,sha256=o_Hbe4kthO9CeXK-FySrw0dHVlrdyTo2Y8PpGRDfZ3c,514
|
214
214
|
omlish/formats/cloudpickle.py,sha256=16si4yUp_pAdDWGECAWf6HLA2PwSANGGgDoMLGZUem8,579
|
215
215
|
omlish/formats/codecs.py,sha256=6AbKIz_gl_om36-7qsutybYzK8cJP3LzwC9YJlwCPOA,1590
|
@@ -218,9 +218,11 @@ omlish/formats/json5.py,sha256=odpZIShlUpv19aACWe58SoMPcv0AHKIa6zSMjlKgaMI,515
|
|
218
218
|
omlish/formats/pickle.py,sha256=jdp4E9WH9qVPBE3sSqbqDtUo18RbTSIiSpSzJ-IEVZw,529
|
219
219
|
omlish/formats/props.py,sha256=cek3JLFLIrpE76gvs8rs_B8yF4SpY8ooDH8apWsquwE,18953
|
220
220
|
omlish/formats/repr.py,sha256=kYrNs4o-ji8nOdp6u_L3aMgBMWN1ZAZJSAWgQQfStSQ,414
|
221
|
-
omlish/formats/toml.py,sha256=AhpVNAy87eBohBCsvIvwH2ucASWxnWXMEsMH8zB7rpI,340
|
222
221
|
omlish/formats/xml.py,sha256=ggiOwSERt4d9XmZwLZiDIh5qnFJS4jdmow9m9_9USps,1491
|
223
222
|
omlish/formats/yaml.py,sha256=ffOwGnLA6chdiFyaS7X0TBMGmHG9AoGudzKVWfQ1UOs,7389
|
223
|
+
omlish/formats/ini/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
224
|
+
omlish/formats/ini/codec.py,sha256=omuFg0kiDksv8rRlWd_v32ebzEcKlgmiPgGID3bRi2M,631
|
225
|
+
omlish/formats/ini/sections.py,sha256=7wYyZdVTQbMPFpjQEACKJfAEPzUBrogINsrvFgxJoZ0,1015
|
224
226
|
omlish/formats/json/__init__.py,sha256=y7T-Jm-7FuQFzb-6uedky0ZhBaKtCKzcu291juXfiWI,669
|
225
227
|
omlish/formats/json/codecs.py,sha256=E5KErfqsgGZq763ixXLT3qysbk5MIsypT92xG5aSaIs,796
|
226
228
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
@@ -243,6 +245,10 @@ omlish/formats/json/stream/errors.py,sha256=c8M8UAYmIZ-vWZLeKD2jMj4EDCJbr9QR8Jq_
|
|
243
245
|
omlish/formats/json/stream/lex.py,sha256=bfy0fb3_Z6G18UGueX2DR6oPSVUsMoFhlbsvXC3ztzI,6793
|
244
246
|
omlish/formats/json/stream/parse.py,sha256=JuYmXwtTHmQJTFKoJNoEHUpCPxXdl_gvKPykVXgED34,6208
|
245
247
|
omlish/formats/json/stream/render.py,sha256=NtmDsN92xZi5dkgSSuMeMXMAiJblmjz1arB4Ft7vBhc,3715
|
248
|
+
omlish/formats/toml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
249
|
+
omlish/formats/toml/codec.py,sha256=5HFGWEPd9IFxPlRMRheX8FEDlRIzLe1moHEOj2_PFKU,342
|
250
|
+
omlish/formats/toml/parser.py,sha256=3QN3rqdJ_zlHfFtsDn-A9pl-BTwdVMUUpUV5-lGWCKc,29342
|
251
|
+
omlish/formats/toml/writer.py,sha256=KyT1PnAQqx-uVcb0vTPzt-A9N-WfDiiaokg4kUeEXHk,3055
|
246
252
|
omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
247
253
|
omlish/funcs/genmachine.py,sha256=EY2k-IFNKMEmHo9CmGRptFvhEMZVOWzZhn0wdQGeaFM,2476
|
248
254
|
omlish/funcs/match.py,sha256=gMLZn1enNiFvQaWrQubY300M1BrmdKWzeePihBS7Ywc,6153
|
@@ -341,7 +347,7 @@ omlish/iterators/iterators.py,sha256=ghI4dO6WPyyFOLTIIMaHQ_IOy2xXaFpGPqveZ5YGIBU
|
|
341
347
|
omlish/iterators/recipes.py,sha256=53mkexitMhkwXQZbL6DrhpT0WePQ_56uXd5Jaw3DfzI,467
|
342
348
|
omlish/iterators/tools.py,sha256=SvXyyQJh7aceLYhRl6pQB-rfSaXw5IMIWukeEeOZt-0,2492
|
343
349
|
omlish/iterators/unique.py,sha256=0jAX3kwzVfRNhe0Tmh7kVP_Q2WBIn8POo_O-rgFV0rQ,1390
|
344
|
-
omlish/lang/__init__.py,sha256=
|
350
|
+
omlish/lang/__init__.py,sha256=GqZ3exAAK7iphRf8e4d3CvAz7EptvmEOmCkmN06uYvQ,3986
|
345
351
|
omlish/lang/cached.py,sha256=92TvRZQ6sWlm7dNn4hgl7aWKbX0J1XUEo3DRjBpgVQk,7834
|
346
352
|
omlish/lang/clsdct.py,sha256=AjtIWLlx2E6D5rC97zQ3Lwq2SOMkbg08pdO_AxpzEHI,1744
|
347
353
|
omlish/lang/cmp.py,sha256=5vbzWWbqdzDmNKAGL19z6ZfUKe5Ci49e-Oegf9f4BsE,1346
|
@@ -352,7 +358,7 @@ omlish/lang/exceptions.py,sha256=qJBo3NU1mOWWm-NhQUHCY5feYXR3arZVyEHinLsmRH4,47
|
|
352
358
|
omlish/lang/functions.py,sha256=t9nsnWwhsibG0w908VMx-_pRM5tZfruE3faPxrCWTbI,4160
|
353
359
|
omlish/lang/generators.py,sha256=5LX17j-Ej3QXhwBgZvRTm_dq3n9veC4IOUcVmvSu2vU,5243
|
354
360
|
omlish/lang/imports.py,sha256=TXLbj2F53LsmozlM05bQhvow9kEgWJOi9qYKsnm2D18,9258
|
355
|
-
omlish/lang/iterables.py,sha256=
|
361
|
+
omlish/lang/iterables.py,sha256=HOjcxOwyI5bBApDLsxRAGGhTTmw7fdZl2kEckxRVl-0,1994
|
356
362
|
omlish/lang/maybes.py,sha256=1RN7chX_x2XvgUwryZRz0W7hAX-be3eEFcFub5vvf6M,3417
|
357
363
|
omlish/lang/objects.py,sha256=LOC3JvX1g5hPxJ7Sv2TK9kNkAo9c8J-Jw2NmClR_rkA,4576
|
358
364
|
omlish/lang/resolving.py,sha256=OuN2mDTPNyBUbcrswtvFKtj4xgH4H4WglgqSKv3MTy0,1606
|
@@ -390,6 +396,7 @@ omlish/lite/resources.py,sha256=YNSmX1Ohck1aoWRs55a-o5ChVbFJIQhtbqE-XwF55Oc,326
|
|
390
396
|
omlish/lite/runtime.py,sha256=XQo408zxTdJdppUZqOWHyeUR50VlCpNIExNGHz4U6O4,459
|
391
397
|
omlish/lite/secrets.py,sha256=3Mz3V2jf__XU9qNHcH56sBSw95L3U2UPL24bjvobG0c,816
|
392
398
|
omlish/lite/strings.py,sha256=nGWaOi9LzTjkc5kPN2IqsVN8PUw8m_2yllTGRUQU5PI,1983
|
399
|
+
omlish/lite/types.py,sha256=fP5EMyBdEp2LmDxcHjUDtwAMdR06ISr9lKOL7smWfHM,140
|
393
400
|
omlish/lite/typing.py,sha256=U3-JaEnkDSYxK4tsu_MzUn3RP6qALBe5FXQXpD-licE,1090
|
394
401
|
omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
395
402
|
omlish/logs/abc.py,sha256=ho4ABKYMKX-V7g4sp1BByuOLzslYzLlQ0MESmjEpT-o,8005
|
@@ -574,14 +581,14 @@ omlish/testing/pytest/plugins/utils.py,sha256=L5C622UXcA_AUKDcvyh5IMiRfqSGGz0Mcd
|
|
574
581
|
omlish/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
575
582
|
omlish/text/asdl.py,sha256=AS3irh-sag5pqyH3beJif78PjCbOaFso1NeKq-HXuTs,16867
|
576
583
|
omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
|
577
|
-
omlish/text/glyphsplit.py,sha256=
|
584
|
+
omlish/text/glyphsplit.py,sha256=vN6TgnMONCTsHL8_lDaOfFmd5j_JVxOV_nRre4SENF8,3420
|
578
585
|
omlish/text/indent.py,sha256=XixaVnk9bvtBlH0n_cwN6yS5IyfrTWpe_alfu3_saLY,1341
|
579
586
|
omlish/text/minja.py,sha256=KAmZ2POcLcxwF4DPKxdWa16uWxXmVz1UnJXLSwt4oZo,5761
|
580
587
|
omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
|
581
588
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
582
|
-
omlish-0.0.0.
|
583
|
-
omlish-0.0.0.
|
584
|
-
omlish-0.0.0.
|
585
|
-
omlish-0.0.0.
|
586
|
-
omlish-0.0.0.
|
587
|
-
omlish-0.0.0.
|
589
|
+
omlish-0.0.0.dev193.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
590
|
+
omlish-0.0.0.dev193.dist-info/METADATA,sha256=CurOKNHEhxcUbUQtXrRsaxGfunrIIFaJO-ZJiGOmAg4,4264
|
591
|
+
omlish-0.0.0.dev193.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
592
|
+
omlish-0.0.0.dev193.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
593
|
+
omlish-0.0.0.dev193.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
594
|
+
omlish-0.0.0.dev193.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|