omlish 0.0.0.dev192__py3-none-any.whl → 0.0.0.dev193__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.
@@ -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
@@ -8,13 +8,6 @@ T = ta.TypeVar('T')
8
8
  R = ta.TypeVar('R')
9
9
 
10
10
 
11
- BUILTIN_SCALAR_ITERABLE_TYPES: tuple[type, ...] = (
12
- bytearray,
13
- bytes,
14
- str,
15
- )
16
-
17
-
18
11
  ##
19
12
 
20
13
 
omlish/lite/types.py ADDED
@@ -0,0 +1,9 @@
1
+ # ruff: noqa: UP006 UP007
2
+ import typing as ta
3
+
4
+
5
+ BUILTIN_SCALAR_ITERABLE_TYPES: ta.Tuple[type, ...] = (
6
+ bytearray,
7
+ bytes,
8
+ str,
9
+ )
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 GlyphMatch:
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: tuple[str, str],
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) -> list[GlyphMatch | 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(GlyphMatch(self._l_glyph, p[m.start() + 1:m.end() - 1], self._r_glyph))
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
- split_parens = _PAREN_GLYPH_SPLITTER.split
95
- split_braces = _BRACE_GLYPH_SPLITTER.split
96
- split_brackets = _BRACKET_GLYPH_SPLITTER.split
97
- split_angle_brackets = _ANGLE_BRACKET_GLYPH_SPLITTER.split
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev192
3
+ Version: 0.0.0.dev193
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
- omlish/.manifests.json,sha256=lRkBDFxlAbf6lN5upo3WSf-owW8YG1T21dfpbQL-XHM,7598
2
- omlish/__about__.py,sha256=oo7sJmjafPT0cBR9y7sAaWC5KC5PrDsDJ8LZwWkLu34,3409
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=O6MDkBg0LDq3W-bVXpNEZiIkTYQo2cwaHFoUwxgtcOk,2208
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=3uh09ezodTwkMI0nRmAMP0eEuJ_0VdF-LYyNmPjHiCE,77
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=rVxoTqgM9te86hUwQsHJ5u94jo2PARNfhk_HkrrDT9Y,4745
155
- omlish/configs/strings.py,sha256=0brx1duL85r1GpfbNvbHcSvH4jWzutwuvMFXda9NeI0,2651
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=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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=wMfsQjBFNsZ_Y4352iEr0DlEnNebf26JmR4ETtDsQow,3948
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=mE-XyhqMe9LztBf5Y36SDSO0Gtu8rIKmE-hcNvhhOX8,2085
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=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,3296
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.dev192.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
583
- omlish-0.0.0.dev192.dist-info/METADATA,sha256=clxVnn-6rG8Lb_XUMK9nXmgj4TFyY5m9_tc_xjyoVoA,4264
584
- omlish-0.0.0.dev192.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
585
- omlish-0.0.0.dev192.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
586
- omlish-0.0.0.dev192.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
587
- omlish-0.0.0.dev192.dist-info/RECORD,,
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,,