omlish 0.0.0.dev229__py3-none-any.whl → 0.0.0.dev231__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.
- 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
|