omlish 0.0.0.dev229__py3-none-any.whl → 0.0.0.dev231__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omlish/__about__.py +2 -2
- omlish/collections/__init__.py +15 -15
- omlish/collections/frozen.py +0 -2
- omlish/collections/identity.py +0 -3
- omlish/collections/indexed.py +0 -2
- omlish/collections/mappings.py +0 -3
- omlish/collections/ordered.py +0 -2
- omlish/collections/persistent/__init__.py +0 -0
- omlish/collections/sorted/__init__.py +0 -0
- omlish/collections/{skiplist.py → sorted/skiplist.py} +0 -1
- omlish/collections/{sorted.py → sorted/sorted.py} +2 -5
- omlish/collections/unmodifiable.py +0 -2
- omlish/daemons/__init__.py +0 -0
- omlish/daemons/daemon.py +200 -0
- omlish/daemons/reparent.py +16 -0
- omlish/daemons/spawning.py +166 -0
- omlish/daemons/targets.py +89 -0
- omlish/daemons/waiting.py +95 -0
- omlish/dispatch/dispatch.py +4 -1
- omlish/dispatch/methods.py +4 -0
- omlish/formats/json/__init__.py +5 -0
- omlish/io/compress/brotli.py +3 -3
- omlish/io/fdio/__init__.py +3 -0
- omlish/lang/__init__.py +0 -2
- omlish/lang/contextmanagers.py +15 -10
- omlish/libc.py +2 -4
- omlish/lite/timeouts.py +1 -1
- omlish/marshal/__init__.py +10 -10
- omlish/marshal/base.py +1 -1
- omlish/marshal/standard.py +2 -2
- omlish/marshal/trivial/__init__.py +0 -0
- omlish/marshal/{forbidden.py → trivial/forbidden.py} +7 -7
- omlish/marshal/{nop.py → trivial/nop.py} +5 -5
- omlish/os/deathpacts/__init__.py +15 -0
- omlish/os/deathpacts/base.py +76 -0
- omlish/os/deathpacts/heartbeatfile.py +85 -0
- omlish/os/{death.py → deathpacts/pipe.py} +20 -90
- omlish/os/forkhooks.py +55 -31
- omlish/os/pidfiles/manager.py +11 -44
- omlish/os/pidfiles/pidfile.py +18 -1
- omlish/reflect/__init__.py +1 -0
- omlish/reflect/inspect.py +43 -0
- omlish/sql/queries/__init__.py +4 -4
- omlish/sql/queries/rendering2.py +248 -0
- omlish/text/parts.py +26 -23
- {omlish-0.0.0.dev229.dist-info → omlish-0.0.0.dev231.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev229.dist-info → omlish-0.0.0.dev231.dist-info}/RECORD +57 -45
- omlish/formats/json/delimted.py +0 -4
- /omlish/collections/{persistent.py → persistent/persistent.py} +0 -0
- /omlish/collections/{treap.py → persistent/treap.py} +0 -0
- /omlish/collections/{treapmap.py → persistent/treapmap.py} +0 -0
- /omlish/marshal/{utils.py → proxy.py} +0 -0
- /omlish/marshal/{singular → trivial}/any.py +0 -0
- /omlish/sql/queries/{building.py → std.py} +0 -0
- {omlish-0.0.0.dev229.dist-info → omlish-0.0.0.dev231.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev229.dist-info → omlish-0.0.0.dev231.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev229.dist-info → omlish-0.0.0.dev231.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev229.dist-info → omlish-0.0.0.dev231.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,248 @@
|
|
1
|
+
"""
|
2
|
+
TODO:
|
3
|
+
- minimal parens
|
4
|
+
- text.parts
|
5
|
+
- QuoteStyle
|
6
|
+
- ParamStyle
|
7
|
+
|
8
|
+
==
|
9
|
+
|
10
|
+
def needs_parens(self, e: Expr) -> bool:
|
11
|
+
if isinstance(e, (Literal, Ident, Name)):
|
12
|
+
return True
|
13
|
+
elif isinstance(e, Expr):
|
14
|
+
return False
|
15
|
+
else:
|
16
|
+
raise TypeError(e)
|
17
|
+
"""
|
18
|
+
import dataclasses as dc
|
19
|
+
import typing as ta
|
20
|
+
|
21
|
+
from ... import dispatch
|
22
|
+
from ... import lang
|
23
|
+
from ...text import parts as tp
|
24
|
+
from ..params import ParamStyle
|
25
|
+
from ..params import make_params_preparer
|
26
|
+
from .base import Node
|
27
|
+
from .binary import Binary
|
28
|
+
from .binary import BinaryOp
|
29
|
+
from .binary import BinaryOps
|
30
|
+
from .exprs import Literal
|
31
|
+
from .exprs import NameExpr
|
32
|
+
from .idents import Ident
|
33
|
+
from .inserts import Insert
|
34
|
+
from .inserts import Values
|
35
|
+
from .multi import Multi
|
36
|
+
from .multi import MultiKind
|
37
|
+
from .names import Name
|
38
|
+
from .params import Param
|
39
|
+
from .relations import Join
|
40
|
+
from .relations import JoinKind
|
41
|
+
from .relations import Table
|
42
|
+
from .selects import Select
|
43
|
+
from .selects import SelectItem
|
44
|
+
from .unary import Unary
|
45
|
+
from .unary import UnaryOp
|
46
|
+
from .unary import UnaryOps
|
47
|
+
|
48
|
+
|
49
|
+
@dc.dataclass(frozen=True)
|
50
|
+
class RenderedQuery(lang.Final):
|
51
|
+
t: tp.Part
|
52
|
+
args: lang.Args
|
53
|
+
|
54
|
+
|
55
|
+
class Renderer(lang.Abstract):
|
56
|
+
def __init__(
|
57
|
+
self,
|
58
|
+
*,
|
59
|
+
param_style: ParamStyle | None = None,
|
60
|
+
) -> None:
|
61
|
+
super().__init__()
|
62
|
+
|
63
|
+
self._param_style = param_style if param_style is not None else self.default_param_style
|
64
|
+
|
65
|
+
self._params_preparer = make_params_preparer(self._param_style)
|
66
|
+
|
67
|
+
default_param_style: ta.ClassVar[ParamStyle] = ParamStyle.PYFORMAT
|
68
|
+
|
69
|
+
def args(self) -> lang.Args:
|
70
|
+
return self._params_preparer.prepare()
|
71
|
+
|
72
|
+
@dispatch.method
|
73
|
+
def render(self, o: ta.Any) -> tp.Part:
|
74
|
+
raise TypeError(o)
|
75
|
+
|
76
|
+
|
77
|
+
class StdRenderer(Renderer):
|
78
|
+
# parens
|
79
|
+
|
80
|
+
NEEDS_PAREN_TYPES: ta.AbstractSet[type[Node]] = {
|
81
|
+
Binary,
|
82
|
+
# IsNull,
|
83
|
+
# SelectExpr,
|
84
|
+
}
|
85
|
+
|
86
|
+
def needs_paren(self, node: Node) -> bool:
|
87
|
+
return type(node) in self.NEEDS_PAREN_TYPES
|
88
|
+
|
89
|
+
def paren(self, node: Node) -> tp.Part:
|
90
|
+
return tp.Wrap(self.render(node)) if self.needs_paren(node) else self.render(node)
|
91
|
+
|
92
|
+
# binary
|
93
|
+
|
94
|
+
BINARY_OP_TO_STR: ta.ClassVar[ta.Mapping[BinaryOp, str]] = {
|
95
|
+
BinaryOps.EQ: '=',
|
96
|
+
BinaryOps.NE: '!=',
|
97
|
+
BinaryOps.LT: '<',
|
98
|
+
BinaryOps.LE: '<=',
|
99
|
+
BinaryOps.GT: '>',
|
100
|
+
BinaryOps.GE: '>=',
|
101
|
+
|
102
|
+
BinaryOps.ADD: '+',
|
103
|
+
BinaryOps.SUB: '-',
|
104
|
+
BinaryOps.MUL: '*',
|
105
|
+
BinaryOps.DIV: '/',
|
106
|
+
BinaryOps.MOD: '%',
|
107
|
+
|
108
|
+
BinaryOps.CONCAT: '||',
|
109
|
+
}
|
110
|
+
|
111
|
+
@Renderer.render.register
|
112
|
+
def render_binary(self, o: Binary) -> tp.Part:
|
113
|
+
return [
|
114
|
+
self.paren(o.l),
|
115
|
+
self.BINARY_OP_TO_STR[o.op],
|
116
|
+
self.paren(o.r),
|
117
|
+
]
|
118
|
+
|
119
|
+
# exprs
|
120
|
+
|
121
|
+
@Renderer.render.register
|
122
|
+
def render_literal(self, o: Literal) -> tp.Part:
|
123
|
+
return repr(o.v)
|
124
|
+
|
125
|
+
@Renderer.render.register
|
126
|
+
def render_name_expr(self, o: NameExpr) -> tp.Part:
|
127
|
+
return self.render(o.n)
|
128
|
+
|
129
|
+
@Renderer.render.register
|
130
|
+
def render_param(self, o: Param) -> tp.Part:
|
131
|
+
return self._params_preparer.add(o.n if o.n is not None else id(o))
|
132
|
+
|
133
|
+
# idents
|
134
|
+
|
135
|
+
@Renderer.render.register
|
136
|
+
def render_ident(self, o: Ident) -> tp.Part:
|
137
|
+
return f'"{o.s}"'
|
138
|
+
|
139
|
+
# inserts
|
140
|
+
|
141
|
+
@Renderer.render.register
|
142
|
+
def render_values(self, o: Values) -> tp.Part:
|
143
|
+
return [
|
144
|
+
'values',
|
145
|
+
tp.Wrap(tp.List([self.render(v) for v in o.vs])),
|
146
|
+
]
|
147
|
+
|
148
|
+
@Renderer.render.register
|
149
|
+
def render_insert(self, o: Insert) -> tp.Part:
|
150
|
+
return [
|
151
|
+
'insert into',
|
152
|
+
self.render(o.into),
|
153
|
+
tp.Wrap(tp.List([self.render(c) for c in o.columns])),
|
154
|
+
]
|
155
|
+
|
156
|
+
# multis
|
157
|
+
|
158
|
+
MULTI_KIND_TO_STR: ta.ClassVar[ta.Mapping[MultiKind, str]] = {
|
159
|
+
MultiKind.AND: 'and',
|
160
|
+
MultiKind.OR: 'or',
|
161
|
+
}
|
162
|
+
|
163
|
+
@Renderer.render.register
|
164
|
+
def render_multi(self, o: Multi) -> tp.Part:
|
165
|
+
return tp.Wrap(tp.List(
|
166
|
+
[self.render(e) for e in o.es],
|
167
|
+
delimiter=' ' + self.MULTI_KIND_TO_STR[o.k], # FIXME: Part
|
168
|
+
))
|
169
|
+
|
170
|
+
# names
|
171
|
+
|
172
|
+
@Renderer.render.register
|
173
|
+
def render_name(self, o: Name) -> tp.Part:
|
174
|
+
out: list[tp.Part] = []
|
175
|
+
for n, i in enumerate(o.ps):
|
176
|
+
if n:
|
177
|
+
out.append('.')
|
178
|
+
out.append(self.render(i))
|
179
|
+
return tp.Concat(out)
|
180
|
+
|
181
|
+
# relations
|
182
|
+
|
183
|
+
@Renderer.render.register
|
184
|
+
def render_table(self, o: Table) -> tp.Part:
|
185
|
+
return [
|
186
|
+
self.render(o.n),
|
187
|
+
*(['as', self.render(o.a)] if o.a is not None else []),
|
188
|
+
]
|
189
|
+
|
190
|
+
JOIN_KIND_TO_STR: ta.ClassVar[ta.Mapping[JoinKind, str]] = {
|
191
|
+
JoinKind.DEFAULT: 'join',
|
192
|
+
JoinKind.INNER: 'inner join',
|
193
|
+
JoinKind.LEFT: 'left join',
|
194
|
+
JoinKind.LEFT_OUTER: 'left outer join',
|
195
|
+
JoinKind.RIGHT: 'right join',
|
196
|
+
JoinKind.RIGHT_OUTER: 'right outer join',
|
197
|
+
JoinKind.FULL: 'full join',
|
198
|
+
JoinKind.FULL_OUTER: 'full outer join',
|
199
|
+
JoinKind.CROSS: 'cross join',
|
200
|
+
JoinKind.NATURAL: 'natural join',
|
201
|
+
}
|
202
|
+
|
203
|
+
@Renderer.render.register
|
204
|
+
def render_join(self, o: Join) -> tp.Part:
|
205
|
+
return [
|
206
|
+
self.render(o.l),
|
207
|
+
self.JOIN_KIND_TO_STR[o.k],
|
208
|
+
self.render(o.r),
|
209
|
+
*(['on', self.render(o.c)] if o.c is not None else []),
|
210
|
+
]
|
211
|
+
|
212
|
+
# selects
|
213
|
+
|
214
|
+
@Renderer.render.register
|
215
|
+
def render_select_item(self, o: SelectItem) -> tp.Part:
|
216
|
+
return [
|
217
|
+
self.render(o.v),
|
218
|
+
*(['as', self.render(o.a)] if o.a is not None else []),
|
219
|
+
]
|
220
|
+
|
221
|
+
@Renderer.render.register
|
222
|
+
def render_select(self, o: Select) -> tp.Part:
|
223
|
+
return [
|
224
|
+
'select',
|
225
|
+
tp.List([self.render(i) for i in o.items]),
|
226
|
+
*(['from', self.render(o.from_)] if o.from_ is not None else []),
|
227
|
+
*(['where', self.render(o.where)] if o.where is not None else []),
|
228
|
+
]
|
229
|
+
|
230
|
+
# unary
|
231
|
+
|
232
|
+
UNARY_OP_TO_STR: ta.ClassVar[ta.Mapping[UnaryOp, tuple[str, str]]] = {
|
233
|
+
UnaryOps.NOT: ('not ', ''),
|
234
|
+
UnaryOps.IS_NULL: ('', ' is null'),
|
235
|
+
UnaryOps.IS_NOT_NULL: ('', ' is not null'),
|
236
|
+
|
237
|
+
UnaryOps.POS: ('+', ''),
|
238
|
+
UnaryOps.NEG: ('-', ''),
|
239
|
+
}
|
240
|
+
|
241
|
+
@Renderer.render.register
|
242
|
+
def render_unary(self, o: Unary) -> tp.Part:
|
243
|
+
pfx, sfx = self.UNARY_OP_TO_STR[o.op]
|
244
|
+
return tp.Concat([
|
245
|
+
pfx,
|
246
|
+
self.render(o.v),
|
247
|
+
sfx,
|
248
|
+
])
|
omlish/text/parts.py
CHANGED
@@ -3,10 +3,8 @@ import io
|
|
3
3
|
import typing as ta
|
4
4
|
|
5
5
|
from .. import check
|
6
|
-
from .. import collections as col
|
7
6
|
from .. import dataclasses as dc
|
8
7
|
from .. import dispatch
|
9
|
-
from .. import lang
|
10
8
|
|
11
9
|
|
12
10
|
T = ta.TypeVar('T')
|
@@ -19,54 +17,54 @@ PartT = ta.TypeVar('PartT', bound=Part)
|
|
19
17
|
##
|
20
18
|
|
21
19
|
|
22
|
-
def
|
20
|
+
def check_part(o: PartT) -> PartT:
|
23
21
|
if isinstance(o, (str, DataPart)):
|
24
22
|
pass
|
25
23
|
elif isinstance(o, ta.Sequence):
|
26
24
|
for c in o:
|
27
|
-
|
25
|
+
check_part(c)
|
28
26
|
else:
|
29
27
|
raise TypeError(o)
|
30
28
|
return o
|
31
29
|
|
32
30
|
|
33
|
-
def
|
31
|
+
def check_opt_part(o: PartT | None) -> PartT | None:
|
34
32
|
if o is None:
|
35
33
|
return None
|
36
|
-
return
|
34
|
+
return check_part(o)
|
37
35
|
|
38
36
|
|
39
37
|
##
|
40
38
|
|
41
39
|
|
42
|
-
class DataPart(dc.
|
40
|
+
class DataPart(dc.Case):
|
43
41
|
pass
|
44
42
|
|
45
43
|
|
46
|
-
class Wrap(DataPart
|
47
|
-
part: Part
|
44
|
+
class Wrap(DataPart):
|
45
|
+
part: Part
|
48
46
|
wrapper: tuple[str, str] = ('(', ')')
|
49
47
|
|
50
48
|
|
51
|
-
class List(DataPart
|
52
|
-
parts: ta.Sequence[Part | None]
|
53
|
-
delimiter: str =
|
54
|
-
trailer: bool =
|
49
|
+
class List(DataPart):
|
50
|
+
parts: ta.Sequence[Part | None]
|
51
|
+
delimiter: str = ',' # FIXME: Part
|
52
|
+
trailer: bool = False
|
55
53
|
|
56
54
|
|
57
|
-
class Concat(DataPart
|
58
|
-
parts: ta.Sequence[Part]
|
55
|
+
class Concat(DataPart):
|
56
|
+
parts: ta.Sequence[Part]
|
59
57
|
|
60
58
|
|
61
|
-
class Block(DataPart
|
62
|
-
parts: ta.Sequence[Part]
|
59
|
+
class Block(DataPart):
|
60
|
+
parts: ta.Sequence[Part]
|
63
61
|
|
64
62
|
|
65
|
-
class Section(DataPart
|
66
|
-
parts: ta.Sequence[Part]
|
63
|
+
class Section(DataPart):
|
64
|
+
parts: ta.Sequence[Part]
|
67
65
|
|
68
66
|
|
69
|
-
class Meta(DataPart
|
67
|
+
class Meta(DataPart):
|
70
68
|
node: ta.Any
|
71
69
|
|
72
70
|
|
@@ -115,7 +113,6 @@ class PartTransform:
|
|
115
113
|
|
116
114
|
|
117
115
|
class RemoveMetas(PartTransform):
|
118
|
-
|
119
116
|
@PartTransform.__call__.register
|
120
117
|
def __call__meta(self, part: Meta) -> Part:
|
121
118
|
return []
|
@@ -140,7 +137,6 @@ def _drop_empties(it: ta.Iterable[T]) -> list[T]:
|
|
140
137
|
|
141
138
|
|
142
139
|
class CompactPart(PartTransform):
|
143
|
-
|
144
140
|
@PartTransform.__call__.register
|
145
141
|
def __call__sequence(self, part: collections.abc.Sequence) -> Part:
|
146
142
|
return _drop_empties(self(c) for c in part)
|
@@ -173,12 +169,19 @@ compact_part = CompactPart()
|
|
173
169
|
|
174
170
|
|
175
171
|
class PartRenderer:
|
176
|
-
def __init__(
|
172
|
+
def __init__(
|
173
|
+
self,
|
174
|
+
buf: io.StringIO,
|
175
|
+
*,
|
176
|
+
indent: int | str = 4,
|
177
|
+
) -> None:
|
177
178
|
super().__init__()
|
178
179
|
|
179
180
|
self._buf = buf
|
180
181
|
|
181
182
|
self._indents = 0
|
183
|
+
if isinstance(indent, int):
|
184
|
+
indent = ' ' * indent
|
182
185
|
self._indent = indent
|
183
186
|
|
184
187
|
self._blank_lines = 0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=YGmAnUBszmosQQ_7Hh2wwtDiYdYZ4unNKYzOtALuels,7968
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=ZBkJyvFWxZFNvvD7zkGGThXCoE7JjItJdlIadSjnLho,3380
|
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
|
@@ -7,7 +7,7 @@ omlish/check.py,sha256=THqm6jD1a0skAO5EC8SOVg58yq96Vk5wcuruBkCYxyU,2016
|
|
7
7
|
omlish/datetimes.py,sha256=HajeM1kBvwlTa-uR1TTZHmZ3zTPnnUr1uGGQhiO1XQ0,2152
|
8
8
|
omlish/defs.py,sha256=9uUjJuVIbCBL3g14fyzAp-9gH935MFofvlfOGwcBIaM,4913
|
9
9
|
omlish/dynamic.py,sha256=kIZokHHid8a0pIAPXMNiXrVJvJJyBnY49WP1a2m-HUQ,6525
|
10
|
-
omlish/libc.py,sha256=
|
10
|
+
omlish/libc.py,sha256=8K4c66YV1ziJerl5poAAYCmsV-VSsHkT3EHhPW04ufg,15639
|
11
11
|
omlish/outcome.py,sha256=ABIE0zjjTyTNtn-ZqQ_9_mUzLiBQ3sDAyqc9JVD8N2k,7852
|
12
12
|
omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
|
13
13
|
omlish/shlex.py,sha256=bsW2XUD8GiMTUTDefJejZ5AyqT1pTgWMPD0BMoF02jE,248
|
@@ -134,27 +134,29 @@ omlish/codecs/funcs.py,sha256=p4imNt7TobyZVXWC-WhntHVu9KfJrO4QwdtPRh-cVOk,850
|
|
134
134
|
omlish/codecs/registry.py,sha256=Ald3fs707cJsUovYjNmxdT2zAQworvDxwMFk7DBT8r0,3995
|
135
135
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
136
136
|
omlish/codecs/text.py,sha256=JzrdwMpQPo2NBBg3K1EZszzQy5vEWmd82SIerJd4yeQ,5723
|
137
|
-
omlish/collections/__init__.py,sha256=
|
137
|
+
omlish/collections/__init__.py,sha256=ddzZS3C2rvDo65hspO9KlFsrinElxPWvYEgVyBUZdb0,2164
|
138
138
|
omlish/collections/abc.py,sha256=sP7BpTVhx6s6C59mTFeosBi4rHOWC6tbFBYbxdZmvh0,2365
|
139
139
|
omlish/collections/coerce.py,sha256=g68ROb_-5HgH-vI8612mU2S0FZ8-wp2ZHK5_Zy_kVC0,7037
|
140
140
|
omlish/collections/exceptions.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
|
141
|
-
omlish/collections/frozen.py,sha256=
|
141
|
+
omlish/collections/frozen.py,sha256=mxhd8pw5zIXUiRHiBVZWYCYT7wYDVG3tAY5PNU-WH-I,4150
|
142
142
|
omlish/collections/hasheq.py,sha256=XcOCE6f2lXizDCOXxSX6vJv-rLcpDo2OWCYIKGSWuic,3697
|
143
|
-
omlish/collections/identity.py,sha256=
|
144
|
-
omlish/collections/indexed.py,sha256=
|
145
|
-
omlish/collections/mappings.py,sha256=
|
146
|
-
omlish/collections/ordered.py,sha256=
|
147
|
-
omlish/collections/
|
148
|
-
omlish/collections/skiplist.py,sha256=xjuKZtSScp1VnOi9lpf7I090vGp1DnjA5ELjFhMeGps,5987
|
149
|
-
omlish/collections/sorted.py,sha256=E5ZOdNn7Jju1EcQ7CX2Ltk9StIXsBOzqvh7EsT3ZA2U,3354
|
150
|
-
omlish/collections/treap.py,sha256=A09ZPacGyJlyRB-Wi4TNj3tE0w-RpFNliPgpDaa6Vwg,7719
|
151
|
-
omlish/collections/treapmap.py,sha256=TxOM-ZRF5PK2xe5wRIhESNt7DGh9b_MeZfE7HLkCOs4,5804
|
152
|
-
omlish/collections/unmodifiable.py,sha256=QmUEi9IBXqiM_KGgH2rqg15VmkHJo1MZ6kwq2twEMho,4750
|
143
|
+
omlish/collections/identity.py,sha256=SwnUE5D3v9RBjATDE1LUr_vO3Rb2NHcmTK64GZIcsO8,2720
|
144
|
+
omlish/collections/indexed.py,sha256=tLa88qgWGzTZGssMFgvhgraIEkNEUvcIk5p4yjNEquQ,2201
|
145
|
+
omlish/collections/mappings.py,sha256=YunNPyADrpitZGTJcXV0k4bmJddj1avDvEavz0coJWU,3203
|
146
|
+
omlish/collections/ordered.py,sha256=tUAl99XHbSbzn7Hdh99jUBl27NcC2J7ZTI67slTMe5M,2333
|
147
|
+
omlish/collections/unmodifiable.py,sha256=-zys__n6L7liWzhmHAIvfxprq7cUE5HoR3foGvXc_7I,4748
|
153
148
|
omlish/collections/utils.py,sha256=Q0lHhNDokVxdOvApmu1QX5fABYwbn1ATiIwp194Ur_E,2889
|
154
149
|
omlish/collections/cache/__init__.py,sha256=D1gO71VcwxFTZP9gAc9isHfg_TEdalwhsJcgGLvS9hg,233
|
155
150
|
omlish/collections/cache/descriptor.py,sha256=t-1Gh4DTABDuNmeDJlpoW4LV3gi_uSlBd9ZfBINfYCM,5023
|
156
151
|
omlish/collections/cache/impl.py,sha256=ySRU9UJG7jH9VPvuXdwZQ_rSqrleY-1mtie5Ml738wY,14755
|
157
152
|
omlish/collections/cache/types.py,sha256=yNjwd6CGyTJQdxN2CQxFqqBAlcs1Z7vvNV-aU1K7p8E,685
|
153
|
+
omlish/collections/persistent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
154
|
+
omlish/collections/persistent/persistent.py,sha256=KG471s0bhhReQrjlmX0xaN9HeAIcrtT264ddZCxsExo,875
|
155
|
+
omlish/collections/persistent/treap.py,sha256=A09ZPacGyJlyRB-Wi4TNj3tE0w-RpFNliPgpDaa6Vwg,7719
|
156
|
+
omlish/collections/persistent/treapmap.py,sha256=TxOM-ZRF5PK2xe5wRIhESNt7DGh9b_MeZfE7HLkCOs4,5804
|
157
|
+
omlish/collections/sorted/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
158
|
+
omlish/collections/sorted/skiplist.py,sha256=eU_cYQVnT-EZxv_dN9PYQZdOP0km5usEcOQRiJKL7Rw,5986
|
159
|
+
omlish/collections/sorted/sorted.py,sha256=3dl3MD3soVP9j2m4lnDZFYA9fho6Ic1MpMpYePZTW-0,3353
|
158
160
|
omlish/concurrent/__init__.py,sha256=9p-s8MvBEYDqHIoYU3OYoe-Nni22QdkW7nhZGEukJTM,197
|
159
161
|
omlish/concurrent/executors.py,sha256=FYKCDYYuj-OgMa8quLsA47SfFNX3KDJvRENVk8NDsrA,1292
|
160
162
|
omlish/concurrent/futures.py,sha256=J2s9wYURUskqRJiBbAR0PNEAp1pXbIMYldOVBTQduQY,4239
|
@@ -173,6 +175,12 @@ omlish/configs/processing/matching.py,sha256=R64RxpPB1uX5Ztvvk2dQ2xi_xwlaxkxQgZw
|
|
173
175
|
omlish/configs/processing/names.py,sha256=weHmaTclzgM9lUn3aBtw-kwZ3mc2N-CZlFg3Kd_UsKo,1093
|
174
176
|
omlish/configs/processing/rewriting.py,sha256=v7PfHtuTn5v_5Y6Au7oMN2Z0nxAMy1iYyO5CXnTvZhs,4226
|
175
177
|
omlish/configs/processing/strings.py,sha256=qFS2oh6z02IaM_q4lTKLdufzkJqAJ6J-Qjrz5S-QJoM,826
|
178
|
+
omlish/daemons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
179
|
+
omlish/daemons/daemon.py,sha256=rK5T_ZbQPwwF-yLgS03fmJ0cZsVGSjTF5M4xSq_YiM0,5534
|
180
|
+
omlish/daemons/reparent.py,sha256=UaG2X6VJHJPOlUwHPNRH3aWGgF0Fg771jjO9IRPLlyY,280
|
181
|
+
omlish/daemons/spawning.py,sha256=cx00xeqSrfhlFbjCtKqaBHvMuHwB9hdjuKNHzAAo_dw,4030
|
182
|
+
omlish/daemons/targets.py,sha256=scq6BYgzi0H2apfgD74U0D8_msQuYAel3Qiij74YWVo,1501
|
183
|
+
omlish/daemons/waiting.py,sha256=RfgD1L33QQVbD2431dkKZGE4w6DUcGvYeRXXi8puAP4,1676
|
176
184
|
omlish/dataclasses/__init__.py,sha256=D7I6ZJjEFeLN2re8oOZ_7JKWiG2plrPnaUFq3iEXYmQ,1553
|
177
185
|
omlish/dataclasses/utils.py,sha256=N2seT8cJtfOv-41D7F3E-q4us-FCTQmnxxPv3dt1OcI,3796
|
178
186
|
omlish/dataclasses/impl/LICENSE,sha256=Oy-B_iHRgcSZxZolbI4ZaEVdZonSaaqFNzv7avQdo78,13936
|
@@ -220,9 +228,9 @@ omlish/diag/replserver/server.py,sha256=Hnfp-aFgUtkWGyVXjWJ33HhhBrrtZnJu5FZRV6MT
|
|
220
228
|
omlish/dispatch/__init__.py,sha256=GsiGJ91NKiQptSROtnCSkrZExBkvfDwYvdoTu5dBqF0,117
|
221
229
|
omlish/dispatch/_dispatch2.py,sha256=v3tCNyxGpOwY8qTwdp54TlM8mG6OVwtQoUZfYJ_griU,1756
|
222
230
|
omlish/dispatch/_dispatch3.py,sha256=Vnu5DfoPWFJLodudBqoZBXGTi2wYk-Az56MXJgdQvwc,2608
|
223
|
-
omlish/dispatch/dispatch.py,sha256=
|
231
|
+
omlish/dispatch/dispatch.py,sha256=p3-RqBf9RKZaNub1FMGHZkETewF43mU_rv4fYD_ERqU,4090
|
224
232
|
omlish/dispatch/functions.py,sha256=S8ElsLi6DKxTdtFGigWaF0vAquwy2sK-3f4iRLaYq70,1522
|
225
|
-
omlish/dispatch/methods.py,sha256=
|
233
|
+
omlish/dispatch/methods.py,sha256=Sg134xzG41-__czfnWdzDlXdsxVt7ELOq90N2E6NSzI,5501
|
226
234
|
omlish/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
227
235
|
omlish/docker/all.py,sha256=2BqXMehpqj4j6-rVq_iOMcjoWgw4oyC3jWeHd_jPOZo,487
|
228
236
|
omlish/docker/cli.py,sha256=gtb9kitVfGnd4cr587NsVVk8D5Ok5y5SAsqD_SwGrSA,2565
|
@@ -246,10 +254,9 @@ omlish/formats/yaml.py,sha256=ffOwGnLA6chdiFyaS7X0TBMGmHG9AoGudzKVWfQ1UOs,7389
|
|
246
254
|
omlish/formats/ini/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
247
255
|
omlish/formats/ini/codec.py,sha256=omuFg0kiDksv8rRlWd_v32ebzEcKlgmiPgGID3bRi2M,631
|
248
256
|
omlish/formats/ini/sections.py,sha256=7wYyZdVTQbMPFpjQEACKJfAEPzUBrogINsrvFgxJoZ0,1015
|
249
|
-
omlish/formats/json/__init__.py,sha256=
|
257
|
+
omlish/formats/json/__init__.py,sha256=1lEtsA5v3F34nlhnWCn2CtoC3cgDIubSsxGz5J9wkZs,780
|
250
258
|
omlish/formats/json/codecs.py,sha256=E5KErfqsgGZq763ixXLT3qysbk5MIsypT92xG5aSaIs,796
|
251
259
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
252
|
-
omlish/formats/json/delimted.py,sha256=UpcTP-KAc6HgMtb9n-Ldgux18OlZjb_9BDFTWol2vo8,29
|
253
260
|
omlish/formats/json/encoding.py,sha256=O4iIWle7W_-RwpOvJNlqOfkbnDyiQHexV5Za4hlrFzw,497
|
254
261
|
omlish/formats/json/json.py,sha256=Mdqv2vdMi7gp96eV0BIYH5UdWpjWfsh-tSMZeywG-08,331
|
255
262
|
omlish/formats/json/literals.py,sha256=6ptwZyfTXodEtAjDnUhsx6XU3KRZWWYWKYtZ8T7rzsQ,5625
|
@@ -360,7 +367,7 @@ omlish/io/compress/__init__.py,sha256=fJFPT4ONfqxmsA4jR6qbMt2woIyyEgnc_qOWK9o1kI
|
|
360
367
|
omlish/io/compress/abc.py,sha256=P9YoQX8XYoq2UfBsinKLUuwwqV1ODUIJzjTraRWGF1M,3090
|
361
368
|
omlish/io/compress/adapters.py,sha256=LJHhjwMHXstoLyX_q0QhGoBAcqyYGWfzhzQbGBXHzHY,6148
|
362
369
|
omlish/io/compress/base.py,sha256=zwPnicyrEY-zersxdhxGHXxn02ycl8ew2uZXEecJea4,615
|
363
|
-
omlish/io/compress/brotli.py,sha256=
|
370
|
+
omlish/io/compress/brotli.py,sha256=sNDX5HmEVqg9_xID5NTFPAWuvlNPw5ixfOnnIWwZf_o,1189
|
364
371
|
omlish/io/compress/bz2.py,sha256=HtwBuBYHJ3MyWO9xJ0XhWpyIYTA3OszLrpu_J4kRRPA,1534
|
365
372
|
omlish/io/compress/codecs.py,sha256=VBc_MAz0W8lVKTKavot3aVKOuPmEUquzarMtpyuteiU,1804
|
366
373
|
omlish/io/compress/gzip.py,sha256=tSjZmLWc7BZugYhmv07Pjr_TaVD1X-0JnZIlAk67iyQ,12213
|
@@ -374,7 +381,7 @@ omlish/io/coro/consts.py,sha256=4r6IMLBMic6MJHVn9UiORIkkPAuxsqtzFT3KV0fatC0,33
|
|
374
381
|
omlish/io/coro/direct.py,sha256=Y--rP3wvBAYMeYctokb5IGd8UyQGmEFChyKISmRg5k0,294
|
375
382
|
omlish/io/coro/readers.py,sha256=9VcXuBQ7BSoFen8UVuYFwnl2jJVjyilWV7QeqLNQtKU,4131
|
376
383
|
omlish/io/coro/stepped.py,sha256=eAppRniUZ00rk3goWLU4zsd52MhZB2_YrOmFqs3RfR4,4929
|
377
|
-
omlish/io/fdio/__init__.py,sha256=
|
384
|
+
omlish/io/fdio/__init__.py,sha256=XJMieft-Z-JEkpeARn0M1Jj7HYCjRHwfs2QfE8gdzQs,137
|
378
385
|
omlish/io/fdio/handlers.py,sha256=VDPEff3yXPnCj2jZEkrzuI42bKC8wD8fLmOG97hKrgo,1350
|
379
386
|
omlish/io/fdio/kqueue.py,sha256=YgGBQibkAUYODYDiGl7Enjtx1oQsJXuDsBLBXgqlLQw,3832
|
380
387
|
omlish/io/fdio/manager.py,sha256=q4wWf7nKrNtjx6yPEvrVnFt4UtK_BTvVlquEGw7poEo,1250
|
@@ -384,11 +391,11 @@ omlish/iterators/iterators.py,sha256=ghI4dO6WPyyFOLTIIMaHQ_IOy2xXaFpGPqveZ5YGIBU
|
|
384
391
|
omlish/iterators/recipes.py,sha256=53mkexitMhkwXQZbL6DrhpT0WePQ_56uXd5Jaw3DfzI,467
|
385
392
|
omlish/iterators/tools.py,sha256=Pi4ybXytUXVZ3xwK89xpPImQfYYId9p1vIFQvVqVLqA,2551
|
386
393
|
omlish/iterators/unique.py,sha256=0jAX3kwzVfRNhe0Tmh7kVP_Q2WBIn8POo_O-rgFV0rQ,1390
|
387
|
-
omlish/lang/__init__.py,sha256=
|
394
|
+
omlish/lang/__init__.py,sha256=bE8ra_QM5M4k8v3qFtreTjQswaZClIOaqXt9fE43MD0,4079
|
388
395
|
omlish/lang/cached.py,sha256=tQaqMu1LID0q4NSTk5vPXsgxIBWSFAmjs5AhQoEHoCQ,7833
|
389
396
|
omlish/lang/clsdct.py,sha256=sJYadm-fwzti-gsi98knR5qQUxriBmOqQE_qz3RopNk,1743
|
390
397
|
omlish/lang/cmp.py,sha256=5vbzWWbqdzDmNKAGL19z6ZfUKe5Ci49e-Oegf9f4BsE,1346
|
391
|
-
omlish/lang/contextmanagers.py,sha256=
|
398
|
+
omlish/lang/contextmanagers.py,sha256=Mrn8NJ3pP0Zxi-IoGqSjZDdWUctsyee2vrZ2FtZvNmo,10529
|
392
399
|
omlish/lang/datetimes.py,sha256=ehI_DhQRM-bDxAavnp470XcekbbXc4Gdw9y1KpHDJT0,223
|
393
400
|
omlish/lang/descriptors.py,sha256=njkYDS1gn5p4-3v1jr-s_srauC7tvvt571RjE7Q4LXE,6616
|
394
401
|
omlish/lang/exceptions.py,sha256=qJBo3NU1mOWWm-NhQUHCY5feYXR3arZVyEHinLsmRH4,47
|
@@ -433,7 +440,7 @@ omlish/lite/resources.py,sha256=YNSmX1Ohck1aoWRs55a-o5ChVbFJIQhtbqE-XwF55Oc,326
|
|
433
440
|
omlish/lite/runtime.py,sha256=XQo408zxTdJdppUZqOWHyeUR50VlCpNIExNGHz4U6O4,459
|
434
441
|
omlish/lite/secrets.py,sha256=3Mz3V2jf__XU9qNHcH56sBSw95L3U2UPL24bjvobG0c,816
|
435
442
|
omlish/lite/strings.py,sha256=QGxT1Yh4oI8ycsfeobxnjEhvDob_GiAKLeIhZwo1j24,1986
|
436
|
-
omlish/lite/timeouts.py,sha256=
|
443
|
+
omlish/lite/timeouts.py,sha256=lhXo0zwpLM7nr2-AliBRui2BO9jh7B8ALxetwOq6hYI,4968
|
437
444
|
omlish/lite/timing.py,sha256=aVu3hEDB_jyTF_ryZI7iU-xg4q8CNwqpp9Apfru_iwY,196
|
438
445
|
omlish/lite/types.py,sha256=fP5EMyBdEp2LmDxcHjUDtwAMdR06ISr9lKOL7smWfHM,140
|
439
446
|
omlish/lite/typing.py,sha256=U3-JaEnkDSYxK4tsu_MzUn3RP6qALBe5FXQXpD-licE,1090
|
@@ -455,17 +462,15 @@ omlish/logs/utils.py,sha256=mzHrZ9ji75p5A8qR29eUr05CBAHMb8J753MSkID_VaQ,393
|
|
455
462
|
omlish/manifests/__init__.py,sha256=P2B0dpT8D7l5lJwRGPA92IcQj6oeXfd90X5-q9BJrKg,51
|
456
463
|
omlish/manifests/load.py,sha256=LrWAvBfdzDkFdLuVwfw2RwFvLjxx-rvfkpU9eBsWeIc,5626
|
457
464
|
omlish/manifests/types.py,sha256=d8bv5tknCJqclRfxCpao_8XxHo2yofhLpVHQTB-MfNw,260
|
458
|
-
omlish/marshal/__init__.py,sha256=
|
459
|
-
omlish/marshal/base.py,sha256=
|
465
|
+
omlish/marshal/__init__.py,sha256=00D3S6qwUld1TUWd67hVHuNcrj3c_FAFSkCVXgGWT-s,2607
|
466
|
+
omlish/marshal/base.py,sha256=tJ4iNuD7cW2GpGMznOhkAf2hugqp2pF2em0FaQcekrk,6740
|
460
467
|
omlish/marshal/exceptions.py,sha256=jwQWn4LcPnadT2KRI_1JJCOSkwWh0yHnYK9BmSkNN4U,302
|
461
468
|
omlish/marshal/factories.py,sha256=Q926jSVjaQLEmStnHLhm_c_vqEysN1LnDCwAsFLIzXw,2970
|
462
|
-
omlish/marshal/forbidden.py,sha256=NDe828hqCQw-AgxcEm8MiDZNxWoBwf3o7sTyvQsSsQ0,867
|
463
469
|
omlish/marshal/global_.py,sha256=K76wB1-pdg4VWgiqR7wyxRNYr-voJApexYW2nV-R4DM,1127
|
464
470
|
omlish/marshal/naming.py,sha256=lIklR_Od4x1ghltAgOzqcKhHs-leeSv2YmFhCHO7GIs,613
|
465
|
-
omlish/marshal/
|
471
|
+
omlish/marshal/proxy.py,sha256=puKJpwPpuDlMOIrKMcLTRLJyMiL6n_Xs-p59AuDEymA,543
|
466
472
|
omlish/marshal/registries.py,sha256=FvC6qXHCizNB2QmU_N3orxW7iqfGYkiUXYYdTRWS6HA,2353
|
467
|
-
omlish/marshal/standard.py,sha256=
|
468
|
-
omlish/marshal/utils.py,sha256=puKJpwPpuDlMOIrKMcLTRLJyMiL6n_Xs-p59AuDEymA,543
|
473
|
+
omlish/marshal/standard.py,sha256=nuWeto3DGFCUMRKeUusev57ty9c1Fo4P3Y0QogNq8Lo,3781
|
469
474
|
omlish/marshal/values.py,sha256=ssHiWdg_L6M17kAn8GiGdPW7UeQOm3RDikWkvwblf5I,263
|
470
475
|
omlish/marshal/composite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
471
476
|
omlish/marshal/composite/iterables.py,sha256=tOMjJ-nyYBrRnAGAlT2scV3iR9QSic8La-1qFcy9yNk,2642
|
@@ -487,13 +492,16 @@ omlish/marshal/polymorphism/metadata.py,sha256=hbXqkYKXhfJeMllzI0Ubeeqbq201khVN8
|
|
487
492
|
omlish/marshal/polymorphism/unions.py,sha256=YwsK9T3okGiHj88LTFNdUvuH7VkCsD-aTnZseKzhpdA,4350
|
488
493
|
omlish/marshal/polymorphism/unmarshal.py,sha256=gdWTgpl4hXBqac1gHmg_23VMb7x42CE2x-3oRpCaLwU,2047
|
489
494
|
omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
490
|
-
omlish/marshal/singular/any.py,sha256=42XmUbX_AaiHGFwS2QmA-huPCcZ1_jzVyrnBUYVm21U,787
|
491
495
|
omlish/marshal/singular/base64.py,sha256=gQIkFN60lNEuSiu3MDQFoHwMZTtzDbrBRtNpFZ2HXew,1098
|
492
496
|
omlish/marshal/singular/datetimes.py,sha256=1PDVFF6TGkGxGUno8TaFGRof0DQUookYf_X2Nl8T4V0,3723
|
493
497
|
omlish/marshal/singular/enums.py,sha256=0FSRj8fiM9LrRrFtlWrMsjG-ualfirGNSP0H-36J4sA,1481
|
494
498
|
omlish/marshal/singular/numbers.py,sha256=12a8HxjDHMTgtJTxO7VY_h5llaPyYB-QEPY09dUFOec,1680
|
495
499
|
omlish/marshal/singular/primitives.py,sha256=EZi2AIi_Onw1pekAiL4ujz4w-ASuOGWCu4MUIE_dCnk,1299
|
496
500
|
omlish/marshal/singular/uuids.py,sha256=rZoE6NE5z6x_ZRmVMjjR2iK7CR8ijfDOvhMKgmm8Mgk,918
|
501
|
+
omlish/marshal/trivial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
502
|
+
omlish/marshal/trivial/any.py,sha256=42XmUbX_AaiHGFwS2QmA-huPCcZ1_jzVyrnBUYVm21U,787
|
503
|
+
omlish/marshal/trivial/forbidden.py,sha256=7buKYamev2T3Q4RAhCBRzHO700vs8biH0--V5iBDqx4,874
|
504
|
+
omlish/marshal/trivial/nop.py,sha256=41bpwsLGeDGqIwzZ7j88lbc4wIYh0EcPROhCU98mQxo,466
|
497
505
|
omlish/math/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
498
506
|
omlish/math/bits.py,sha256=yip1l8agOYzT7bFyMGc0RR3XlnGCfHMpjw_SECLLh1I,3477
|
499
507
|
omlish/math/floats.py,sha256=UimhOT7KRl8LXTzOI5cQWoX_9h6WNWe_3vcOuO7-h_8,327
|
@@ -503,22 +511,25 @@ omlish/multiprocessing/proxies.py,sha256=bInhGds2rv6xT9q3qRMlZuSXFAjwfspkiohXZ36
|
|
503
511
|
omlish/multiprocessing/spawn.py,sha256=sTvPLIJGYnjjI6ASqhFzHF-97tCnaOXX7u7s-33SUMw,1875
|
504
512
|
omlish/os/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
505
513
|
omlish/os/atomics.py,sha256=KhWNeh4mzU3M-TF0v8uR6hUqMfZJW42MeyIK9Jl6R0k,5246
|
506
|
-
omlish/os/death.py,sha256=-VdNDTECyo9qUZHJriR1_mLSmczquKBIa2ltNYqSqAA,4868
|
507
514
|
omlish/os/deathsig.py,sha256=hk9Yq2kyDdI-cI7OQH7mOfpRbOKzY_TfPKEqgrjVYbA,641
|
508
515
|
omlish/os/fcntl.py,sha256=riQf9iEEEIC28lJp8ud06MU56w2XJHJ9nBFtck_hdhc,1501
|
509
516
|
omlish/os/files.py,sha256=WJ_42vsZIZukQURN3TTccp-n74ZNhbux_ps3TLbHj18,1106
|
510
|
-
omlish/os/forkhooks.py,sha256=
|
517
|
+
omlish/os/forkhooks.py,sha256=yjodOvs90ClXskv5oBIJbHn0Y7dzajLmZmOpRMKbyxM,5656
|
511
518
|
omlish/os/journald.py,sha256=2nI8Res1poXkbLc31--MPUlzYMESnCcPUkIxDOCjZW0,3903
|
512
519
|
omlish/os/linux.py,sha256=whJ6scwMKSFBdXiVhJW0BCpJV4jOGMr-a_a3Bhwz6Ls,18938
|
513
520
|
omlish/os/paths.py,sha256=hqPiyg_eYaRoIVPdAeX4oeLEV4Kpln_XsH0tHvbOf8Q,844
|
514
521
|
omlish/os/sizes.py,sha256=ohkALLvqSqBX4iR-7DMKJ4pfOCRdZXV8htH4QywUNM0,152
|
515
522
|
omlish/os/temp.py,sha256=P97KiVeNB7rfGn4tlgU5ro86JUxAsiphLMlxsjQgfB0,1198
|
523
|
+
omlish/os/deathpacts/__init__.py,sha256=IFJkHVWff-VhBbQX38th1RlmjUF2ptKh5TPIzP9Ei2M,229
|
524
|
+
omlish/os/deathpacts/base.py,sha256=EGN3BWSXPv0s9kl_QLrWE31hTybDHCmsLc_w3U2VyHc,1740
|
525
|
+
omlish/os/deathpacts/heartbeatfile.py,sha256=OybdvhM2kxBTuoJWOJJ5LcX-0lg3jTOvvD2HUunxDWU,1731
|
526
|
+
omlish/os/deathpacts/pipe.py,sha256=ZH-l-fIKyurocCehqOgvaYRurxIEMWe8D7l2dsJeGws,3214
|
516
527
|
omlish/os/pidfiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
517
|
-
omlish/os/pidfiles/manager.py,sha256=
|
518
|
-
omlish/os/pidfiles/pidfile.py,sha256=
|
528
|
+
omlish/os/pidfiles/manager.py,sha256=qSEwNaWT1KOAnU0KxliwvU_uowme5jyf1FyIPsGwnTY,2391
|
529
|
+
omlish/os/pidfiles/pidfile.py,sha256=wrttUQB7rk2SJ7MqtaRlqVGii5Kg6LWm3eV2auHb3zA,4125
|
519
530
|
omlish/os/pidfiles/pinning.py,sha256=_AwYjJc1UGX7mdCOk4mItJJcsOJo3RW2ebBOm2noW5Y,6359
|
520
|
-
omlish/reflect/__init__.py,sha256=
|
521
|
-
omlish/reflect/inspect.py,sha256=
|
531
|
+
omlish/reflect/__init__.py,sha256=Er2yBHibVO16hFNA1szQF2_f43Y3HRCBWtS-fjsOIYc,798
|
532
|
+
omlish/reflect/inspect.py,sha256=WCo2YpBYauKw6k758FLlZ_H4Q05rgVPs96fEv9w6zHQ,1538
|
522
533
|
omlish/reflect/ops.py,sha256=RJ6jzrM4ieFsXzWyNXWV43O_WgzEaUvlHSc5N2ezW2A,2044
|
523
534
|
omlish/reflect/subst.py,sha256=g3q7NmNWsmc67mcchmCE3WFPCMDSBq-FXn4ah-DWL_U,3622
|
524
535
|
omlish/reflect/types.py,sha256=lYxK_hlC4kVDMKeDYJp0mymSth21quwuFAMAEFBznyE,9151
|
@@ -615,10 +626,9 @@ omlish/sql/alchemy/duckdb.py,sha256=kr7pIhiBLNAuZrcigHDtFg9zHkVcrRW3LfryO9VJ4mk,
|
|
615
626
|
omlish/sql/alchemy/exprs.py,sha256=gO4Fj4xEY-PuDgV-N8hBMy55glZz7O-4H7v1LWabfZY,323
|
616
627
|
omlish/sql/alchemy/secrets.py,sha256=WEeaec1ejQcE3Yaa7p5BSP9AMGEzy1lwr7QMSRL0VBw,180
|
617
628
|
omlish/sql/alchemy/sqlean.py,sha256=RbkuOuFIfM4fowwKk8-sQ6Dxk-tTUwxS94nY5Kxt52s,403
|
618
|
-
omlish/sql/queries/__init__.py,sha256=
|
629
|
+
omlish/sql/queries/__init__.py,sha256=N8oQFKY99g_MQhrPmvlBAkMeGIRURE9UxMO244mytzY,1332
|
619
630
|
omlish/sql/queries/base.py,sha256=_8O3MbH_OEjBnhp2oIJUZ3ClaQ8l4Sj9BdPdsP0Ie-g,224
|
620
631
|
omlish/sql/queries/binary.py,sha256=dcEzeEn104AMPuQ7QrJU2O-YCN3SUdxB5S4jaWKOUqY,2253
|
621
|
-
omlish/sql/queries/building.py,sha256=J2ZDfDyLzRm8q5-TLAN6I_qjhs-7RpfW23yuCYYLf5k,643
|
622
632
|
omlish/sql/queries/exprs.py,sha256=THeSyFF8bouDvU-Keej-hyFUwbp63bw0HpAF4lCYuiQ,1187
|
623
633
|
omlish/sql/queries/idents.py,sha256=w2RxO6SR3K-u30S259OtnAZaPv7YA70PzY9R7RtuCQ8,891
|
624
634
|
omlish/sql/queries/inserts.py,sha256=H0Dv_6l--T7WXuoJQbLFd23PnjXA-3RETegjYnPr9lc,1281
|
@@ -629,7 +639,9 @@ omlish/sql/queries/ops.py,sha256=B7IDfjr2DW5LJhWoNaY1WW90BJhe5ZtmxIELhWXbW-0,129
|
|
629
639
|
omlish/sql/queries/params.py,sha256=iR8tnetkZFWY378iUbPe08d86g-Wf1J3YqfZr_KhIwQ,1175
|
630
640
|
omlish/sql/queries/relations.py,sha256=7YrEC9IjoVpRGLAFKRSRsHHnTmx-g7hBNXsOgP2HOuI,2998
|
631
641
|
omlish/sql/queries/rendering.py,sha256=8naCMwxVEFAJaMP5m2bf6kCyhvwFZhXiWYEma51fQ4k,6813
|
642
|
+
omlish/sql/queries/rendering2.py,sha256=S7BD7i2tMEWdxOtvw-udWfk5nei-vV3hUghR7qEIL-I,6469
|
632
643
|
omlish/sql/queries/selects.py,sha256=RFySZ9sb-nE29QrLLbQ7JYZW_V_ifaFTcl-RQTgQncY,1369
|
644
|
+
omlish/sql/queries/std.py,sha256=J2ZDfDyLzRm8q5-TLAN6I_qjhs-7RpfW23yuCYYLf5k,643
|
633
645
|
omlish/sql/queries/stmts.py,sha256=pBqwD7dRlqMu6uh6vR3xaWOEgbZCcFWbOQ9ryYd17T4,441
|
634
646
|
omlish/sql/queries/unary.py,sha256=MEYBDZn_H0bexmUrJeONOv5-gIpYowUaXOsEHeQM4ks,1144
|
635
647
|
omlish/sql/tabledefs/__init__.py,sha256=TvtQsp-jJu6_ZahyCOFAaElSSBcRftNyJpdiDPGYCDk,190
|
@@ -687,11 +699,11 @@ omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
|
|
687
699
|
omlish/text/glyphsplit.py,sha256=kqqjglRdxGo0czYZxOz9Vi8aBmVsCOq8h6lPwRA5xe0,3803
|
688
700
|
omlish/text/indent.py,sha256=YjtJEBYWuk8--b9JU_T6q4yxV85_TR7VEVr5ViRCFwk,1336
|
689
701
|
omlish/text/minja.py,sha256=jZC-fp3Xuhx48ppqsf2Sf1pHbC0t8XBB7UpUUoOk2Qw,5751
|
690
|
-
omlish/text/parts.py,sha256=
|
702
|
+
omlish/text/parts.py,sha256=JkNZpyR2tv2CNcTaWJJhpQ9E4F0yPR8P_YfDbZfMtwQ,6182
|
691
703
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
692
|
-
omlish-0.0.0.
|
693
|
-
omlish-0.0.0.
|
694
|
-
omlish-0.0.0.
|
695
|
-
omlish-0.0.0.
|
696
|
-
omlish-0.0.0.
|
697
|
-
omlish-0.0.0.
|
704
|
+
omlish-0.0.0.dev231.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
705
|
+
omlish-0.0.0.dev231.dist-info/METADATA,sha256=glvhjWJ8XJlRwe1JuGQQYJBpwdsJhjPFHEWn7Z985oE,4176
|
706
|
+
omlish-0.0.0.dev231.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
707
|
+
omlish-0.0.0.dev231.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
708
|
+
omlish-0.0.0.dev231.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
709
|
+
omlish-0.0.0.dev231.dist-info/RECORD,,
|
omlish/formats/json/delimted.py
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|