omlish 0.0.0.dev387__py3-none-any.whl → 0.0.0.dev388__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/lang/__init__.py +4 -3
- omlish/lang/maysyncs.py +12 -22
- omlish/lite/maysyncs.py +144 -66
- omlish/subprocesses/async_.py +5 -1
- omlish/subprocesses/maysync.py +52 -0
- omlish/subprocesses/run.py +18 -0
- {omlish-0.0.0.dev387.dist-info → omlish-0.0.0.dev388.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev387.dist-info → omlish-0.0.0.dev388.dist-info}/RECORD +13 -12
- {omlish-0.0.0.dev387.dist-info → omlish-0.0.0.dev388.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev387.dist-info → omlish-0.0.0.dev388.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev387.dist-info → omlish-0.0.0.dev388.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev387.dist-info → omlish-0.0.0.dev388.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/lang/__init__.py
CHANGED
@@ -251,10 +251,9 @@ from .iterables import ( # noqa
|
|
251
251
|
)
|
252
252
|
|
253
253
|
from .maysyncs import ( # noqa
|
254
|
-
|
254
|
+
MaysyncP,
|
255
255
|
|
256
256
|
make_maysync,
|
257
|
-
|
258
257
|
maysync,
|
259
258
|
)
|
260
259
|
|
@@ -396,7 +395,9 @@ empty = Maybe.empty
|
|
396
395
|
just = Maybe.just
|
397
396
|
|
398
397
|
from ..lite.maysyncs import ( # noqa
|
399
|
-
|
398
|
+
Maywaitable,
|
399
|
+
Maysync,
|
400
|
+
Maysync_,
|
400
401
|
)
|
401
402
|
|
402
403
|
from ..lite.reprs import ( # noqa
|
omlish/lang/maysyncs.py
CHANGED
@@ -1,41 +1,31 @@
|
|
1
1
|
import typing as ta
|
2
2
|
|
3
|
+
from ..lite.maysyncs import Maywaitable
|
3
4
|
from ..lite.maysyncs import make_maysync as _make_maysync
|
4
5
|
from ..lite.maysyncs import maysync as _maysync
|
6
|
+
from .functions import as_async
|
5
7
|
|
6
8
|
|
7
|
-
|
9
|
+
T = ta.TypeVar('T')
|
8
10
|
P = ta.ParamSpec('P')
|
9
11
|
|
12
|
+
MaysyncP: ta.TypeAlias = ta.Callable[P, Maywaitable[T]]
|
10
13
|
|
11
|
-
##
|
12
|
-
|
13
|
-
|
14
|
-
class MaysyncableP(ta.Protocol[P, T_co]):
|
15
|
-
@property
|
16
|
-
def s(self) -> ta.Callable[P, T_co]:
|
17
|
-
...
|
18
14
|
|
19
|
-
|
20
|
-
def a(self) -> ta.Callable[P, ta.Awaitable[T_co]]:
|
21
|
-
...
|
22
|
-
|
23
|
-
@property
|
24
|
-
def m(self) -> ta.Callable[P, ta.Awaitable[T_co]]:
|
25
|
-
...
|
15
|
+
##
|
26
16
|
|
27
17
|
|
28
18
|
def make_maysync(
|
29
|
-
s: ta.Callable[P,
|
30
|
-
a: ta.Callable[P, ta.Awaitable[
|
31
|
-
) ->
|
32
|
-
return ta.cast('
|
19
|
+
s: ta.Callable[P, T],
|
20
|
+
a: ta.Callable[P, ta.Awaitable[T]] | None = None,
|
21
|
+
) -> MaysyncP[P, T]:
|
22
|
+
return ta.cast('MaysyncP[P, T]', _make_maysync(
|
33
23
|
s,
|
34
|
-
a,
|
24
|
+
a if a is not None else as_async(s),
|
35
25
|
))
|
36
26
|
|
37
27
|
|
38
|
-
def maysync(m: ta.Callable[P, ta.Awaitable[
|
39
|
-
return ta.cast('
|
28
|
+
def maysync(m: ta.Callable[P, ta.Awaitable[T]]) -> MaysyncP[P, T]:
|
29
|
+
return ta.cast('MaysyncP[P, T]', _maysync(
|
40
30
|
m,
|
41
31
|
))
|
omlish/lite/maysyncs.py
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
# ruff: noqa: UP045
|
2
2
|
# @omlish-lite
|
3
|
+
"""
|
4
|
+
TODO:
|
5
|
+
- __del__
|
6
|
+
"""
|
3
7
|
import abc
|
4
|
-
import dataclasses as dc
|
5
8
|
import functools
|
6
9
|
import typing as ta
|
7
10
|
|
8
|
-
from .args import Args
|
9
|
-
from .check import check
|
10
|
-
|
11
11
|
|
12
12
|
T = ta.TypeVar('T')
|
13
|
+
T_co = ta.TypeVar('T_co', covariant=True)
|
14
|
+
_X = ta.TypeVar('_X')
|
13
15
|
|
14
16
|
_MaysyncGen = ta.Generator['_MaysyncOp', ta.Any, T] # ta.TypeAlias
|
15
17
|
|
@@ -17,62 +19,115 @@ _MaysyncGen = ta.Generator['_MaysyncOp', ta.Any, T] # ta.TypeAlias
|
|
17
19
|
##
|
18
20
|
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
class Maywaitable(ta.Protocol[T_co]):
|
23
|
+
def s(self) -> T_co:
|
24
|
+
...
|
25
|
+
|
26
|
+
def a(self) -> ta.Awaitable[T_co]:
|
27
|
+
...
|
28
|
+
|
29
|
+
def m(self) -> ta.Awaitable[T_co]:
|
30
|
+
...
|
31
|
+
|
32
|
+
|
33
|
+
Maysync = ta.Callable[..., Maywaitable[T]] # ta.TypeAlias # omlish-amalg-typing-no-move
|
34
|
+
|
35
|
+
|
36
|
+
class Maysync_(abc.ABC): # noqa
|
37
|
+
pass
|
25
38
|
|
26
|
-
@abc.abstractmethod
|
27
|
-
def a(self, *args: ta.Any, **kwargs: ta.Any) -> ta.Awaitable[T]:
|
28
|
-
raise NotImplementedError
|
29
39
|
|
40
|
+
##
|
41
|
+
|
42
|
+
|
43
|
+
class _Maywaitable(abc.ABC, ta.Generic[_X, T]):
|
30
44
|
@ta.final
|
31
|
-
def
|
32
|
-
|
45
|
+
def __init__(
|
46
|
+
self,
|
47
|
+
x: _X,
|
48
|
+
*args: ta.Any,
|
49
|
+
**kwargs: ta.Any,
|
50
|
+
) -> None:
|
51
|
+
self.x = x
|
52
|
+
self.args = args
|
53
|
+
self.kwargs = kwargs
|
54
|
+
|
55
|
+
@ta.final
|
56
|
+
def m(self) -> ta.Awaitable[T]:
|
57
|
+
return _MaysyncFuture(_MaysyncOp(
|
58
|
+
ta.cast(ta.Any, self.x),
|
59
|
+
*self.args,
|
60
|
+
**self.kwargs,
|
61
|
+
))
|
33
62
|
|
34
63
|
|
35
64
|
##
|
36
65
|
|
37
66
|
|
38
|
-
@
|
39
|
-
class
|
40
|
-
|
41
|
-
|
67
|
+
@ta.final
|
68
|
+
class _FnMaysync(Maysync_, ta.Generic[T]):
|
69
|
+
def __init__(
|
70
|
+
self,
|
71
|
+
s: ta.Callable[..., T],
|
72
|
+
a: ta.Callable[..., ta.Awaitable[T]],
|
73
|
+
) -> None:
|
74
|
+
if s is None:
|
75
|
+
raise TypeError(s)
|
76
|
+
if a is None:
|
77
|
+
raise TypeError(a)
|
78
|
+
self.s = s
|
79
|
+
self.a = a
|
80
|
+
|
81
|
+
def __get__(self, instance, owner=None):
|
82
|
+
return _FnMaysync(
|
83
|
+
self.s.__get__(instance, owner), # noqa
|
84
|
+
self.a.__get__(instance, owner), # noqa
|
85
|
+
)
|
42
86
|
|
43
|
-
def
|
44
|
-
|
45
|
-
check.not_none(self.a)
|
87
|
+
def __call__(self, *args, **kwargs):
|
88
|
+
return _FnMaywaitable(self, *args, **kwargs)
|
46
89
|
|
47
|
-
def __init_subclass__(cls, **kwargs):
|
48
|
-
raise TypeError
|
49
90
|
|
91
|
+
@ta.final
|
92
|
+
class _FnMaywaitable(_Maywaitable[_FnMaysync[T], T]):
|
93
|
+
def s(self) -> T:
|
94
|
+
return self.x.s(*self.args, **self.kwargs)
|
50
95
|
|
51
|
-
|
96
|
+
async def a(self) -> T:
|
97
|
+
return await self.x.a(*self.args, **self.kwargs)
|
52
98
|
|
53
99
|
|
54
100
|
def make_maysync(
|
55
101
|
s: ta.Callable[..., T],
|
56
102
|
a: ta.Callable[..., ta.Awaitable[T]],
|
57
|
-
) ->
|
58
|
-
return
|
59
|
-
s,
|
60
|
-
a,
|
61
|
-
)
|
103
|
+
) -> Maysync[T]:
|
104
|
+
return _FnMaysync(s, a)
|
62
105
|
|
63
106
|
|
64
107
|
##
|
65
108
|
|
66
109
|
|
67
|
-
@
|
68
|
-
class
|
69
|
-
|
110
|
+
@ta.final
|
111
|
+
class _MgMaysync(Maysync_, ta.Generic[T]):
|
112
|
+
def __init__(
|
113
|
+
self,
|
114
|
+
mg: ta.Callable[..., _MaysyncGen[T]],
|
115
|
+
) -> None:
|
116
|
+
self.mg = mg
|
117
|
+
|
118
|
+
def __get__(self, instance, owner=None):
|
119
|
+
return _MgMaysync(
|
120
|
+
self.mg.__get__(instance, owner), # noqa
|
121
|
+
)
|
70
122
|
|
71
|
-
def
|
72
|
-
|
123
|
+
def __call__(self, *args, **kwargs):
|
124
|
+
return _MgMaywaitable(self, *args, **kwargs)
|
73
125
|
|
74
|
-
|
75
|
-
|
126
|
+
|
127
|
+
@ta.final
|
128
|
+
class _MgMaywaitable(_Maywaitable[_MgMaysync[T], T]):
|
129
|
+
def s(self) -> T:
|
130
|
+
g = self.x.mg(*self.args, **self.kwargs)
|
76
131
|
|
77
132
|
i: ta.Any = None
|
78
133
|
e: ta.Any = None
|
@@ -89,14 +144,17 @@ class _MgMaysyncable(Maysyncable[T]):
|
|
89
144
|
i = None
|
90
145
|
e = None
|
91
146
|
|
92
|
-
|
147
|
+
if not isinstance(o, _MaysyncOp):
|
148
|
+
raise TypeError(o)
|
93
149
|
try:
|
94
|
-
i =
|
150
|
+
i = o.x(*o.args, **o.kwargs).s()
|
95
151
|
except BaseException as ex: # noqa
|
96
152
|
e = ex
|
97
153
|
|
98
|
-
|
99
|
-
|
154
|
+
del o
|
155
|
+
|
156
|
+
async def a(self) -> T:
|
157
|
+
g = self.x.mg(*self.args, **self.kwargs)
|
100
158
|
|
101
159
|
i: ta.Any = None
|
102
160
|
e: ta.Any = None
|
@@ -113,18 +171,30 @@ class _MgMaysyncable(Maysyncable[T]):
|
|
113
171
|
i = None
|
114
172
|
e = None
|
115
173
|
|
116
|
-
|
174
|
+
if not isinstance(o, _MaysyncOp):
|
175
|
+
raise TypeError(o)
|
117
176
|
try:
|
118
|
-
i = await
|
177
|
+
i = await o.x(*o.args, **o.kwargs).a()
|
119
178
|
except BaseException as ex: # noqa
|
120
179
|
e = ex
|
121
180
|
|
181
|
+
del o
|
182
|
+
|
183
|
+
|
184
|
+
@ta.final
|
185
|
+
class _MgMaysyncFn:
|
186
|
+
def __init__(self, m):
|
187
|
+
self.m = m
|
122
188
|
|
123
|
-
|
124
|
-
@functools.wraps(m)
|
125
|
-
def mg_fn(*args, **kwargs):
|
126
|
-
a = m(*args, **kwargs).__await__()
|
189
|
+
functools.update_wrapper(self, m)
|
127
190
|
|
191
|
+
def __get__(self, instance, owner=None):
|
192
|
+
return _MgMaysyncFn(
|
193
|
+
self.m.__get__(instance, owner),
|
194
|
+
)
|
195
|
+
|
196
|
+
def __call__(self, *args, **kwargs):
|
197
|
+
a = self.m(*args, **kwargs).__await__()
|
128
198
|
try:
|
129
199
|
g = iter(a)
|
130
200
|
try:
|
@@ -134,13 +204,14 @@ def maysync(m: ta.Callable[..., ta.Awaitable[T]]) -> Maysyncable[T]:
|
|
134
204
|
except StopIteration as e:
|
135
205
|
return e.value
|
136
206
|
|
137
|
-
|
138
|
-
|
207
|
+
if not isinstance(o, _MaysyncFuture):
|
208
|
+
raise TypeError(o)
|
209
|
+
if not o.done:
|
139
210
|
try:
|
140
|
-
|
211
|
+
o.result = yield o.op
|
141
212
|
except BaseException as e: # noqa
|
142
|
-
|
143
|
-
|
213
|
+
o.error = e
|
214
|
+
o.done = True
|
144
215
|
|
145
216
|
finally:
|
146
217
|
g.close()
|
@@ -148,31 +219,38 @@ def maysync(m: ta.Callable[..., ta.Awaitable[T]]) -> Maysyncable[T]:
|
|
148
219
|
finally:
|
149
220
|
a.close()
|
150
221
|
|
151
|
-
return _MgMaysyncable(mg_fn)
|
152
|
-
|
153
|
-
|
154
|
-
##
|
155
|
-
|
156
|
-
|
157
|
-
@dc.dataclass(frozen=True, eq=False)
|
158
|
-
class _MaysyncOp:
|
159
|
-
mx: Maysyncable
|
160
|
-
a: Args
|
161
222
|
|
162
|
-
|
163
|
-
|
223
|
+
def maysync(m: ta.Callable[..., ta.Awaitable[T]]) -> Maysync[T]:
|
224
|
+
return _MgMaysync(_MgMaysyncFn(m))
|
164
225
|
|
165
226
|
|
166
227
|
##
|
167
228
|
|
168
229
|
|
169
|
-
@
|
230
|
+
@ta.final
|
231
|
+
class _MaysyncOp:
|
232
|
+
def __init__(
|
233
|
+
self,
|
234
|
+
x: Maysync[T],
|
235
|
+
*args: ta.Any,
|
236
|
+
**kwargs: ta.Any,
|
237
|
+
) -> None:
|
238
|
+
self.x = x
|
239
|
+
self.args = args
|
240
|
+
self.kwargs = kwargs
|
241
|
+
|
242
|
+
|
243
|
+
@ta.final
|
170
244
|
class _MaysyncFuture(ta.Generic[T]):
|
171
|
-
|
245
|
+
def __init__(
|
246
|
+
self,
|
247
|
+
op: _MaysyncOp,
|
248
|
+
) -> None:
|
249
|
+
self.op = op
|
172
250
|
|
173
251
|
done: bool = False
|
174
|
-
error: ta.Optional[BaseException] = None
|
175
252
|
result: ta.Optional[T] = None
|
253
|
+
error: ta.Optional[BaseException] = None
|
176
254
|
|
177
255
|
def __await__(self):
|
178
256
|
if not self.done:
|
omlish/subprocesses/async_.py
CHANGED
@@ -13,7 +13,7 @@ from .run import SubprocessRunOutput
|
|
13
13
|
##
|
14
14
|
|
15
15
|
|
16
|
-
class
|
16
|
+
class _AbstractAsyncSubprocesses(BaseSubprocesses):
|
17
17
|
@abc.abstractmethod
|
18
18
|
async def run_(self, run: SubprocessRun) -> SubprocessRunOutput:
|
19
19
|
raise NotImplementedError
|
@@ -95,3 +95,7 @@ class AbstractAsyncSubprocesses(BaseSubprocesses):
|
|
95
95
|
return None
|
96
96
|
else:
|
97
97
|
return ret.decode().strip()
|
98
|
+
|
99
|
+
|
100
|
+
class AbstractAsyncSubprocesses(_AbstractAsyncSubprocesses, abc.ABC):
|
101
|
+
pass
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007 UP045
|
2
|
+
# @omlish-lite
|
3
|
+
import abc
|
4
|
+
import sys
|
5
|
+
import typing as ta
|
6
|
+
|
7
|
+
from ..lite.maysyncs import make_maysync
|
8
|
+
from .async_ import AbstractAsyncSubprocesses
|
9
|
+
from .async_ import _AbstractAsyncSubprocesses
|
10
|
+
from .run import SubprocessRun
|
11
|
+
from .run import SubprocessRunOutput
|
12
|
+
from .sync import AbstractSubprocesses
|
13
|
+
|
14
|
+
|
15
|
+
##
|
16
|
+
|
17
|
+
|
18
|
+
class AbstractMaysyncSubprocesses(_AbstractAsyncSubprocesses, abc.ABC):
|
19
|
+
pass
|
20
|
+
|
21
|
+
|
22
|
+
##
|
23
|
+
|
24
|
+
|
25
|
+
class MaysyncSubprocesses(AbstractMaysyncSubprocesses):
|
26
|
+
def __init__(
|
27
|
+
self,
|
28
|
+
subprocesses: AbstractSubprocesses,
|
29
|
+
async_subprocesses: AbstractAsyncSubprocesses,
|
30
|
+
) -> None:
|
31
|
+
super().__init__()
|
32
|
+
|
33
|
+
self._subprocesses = subprocesses
|
34
|
+
self._async_subprocesses = async_subprocesses
|
35
|
+
|
36
|
+
async def run_(self, run: SubprocessRun) -> SubprocessRunOutput:
|
37
|
+
return await make_maysync(
|
38
|
+
self._subprocesses.run,
|
39
|
+
self._async_subprocesses.run,
|
40
|
+
)(run).m()
|
41
|
+
|
42
|
+
async def check_call(self, *cmd: str, stdout: ta.Any = sys.stderr, **kwargs: ta.Any) -> None:
|
43
|
+
return await make_maysync(
|
44
|
+
self._subprocesses.check_call,
|
45
|
+
self._async_subprocesses.check_call,
|
46
|
+
)(*cmd, **kwargs).m()
|
47
|
+
|
48
|
+
async def check_output(self, *cmd: str, **kwargs: ta.Any) -> bytes:
|
49
|
+
return await make_maysync(
|
50
|
+
self._subprocesses.check_output,
|
51
|
+
self._async_subprocesses.check_output,
|
52
|
+
)(*cmd, **kwargs).m()
|
omlish/subprocesses/run.py
CHANGED
@@ -105,6 +105,17 @@ class SubprocessRun:
|
|
105
105
|
async_subprocesses = self._DEFAULT_ASYNC_SUBPROCESSES
|
106
106
|
return await check.not_none(async_subprocesses).run_(self.replace(**kwargs))
|
107
107
|
|
108
|
+
_DEFAULT_MAYSYNC_SUBPROCESSES: ta.ClassVar[ta.Optional[ta.Any]] = None # AbstractMaysyncSubprocesses
|
109
|
+
|
110
|
+
async def maysync_run(
|
111
|
+
self,
|
112
|
+
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
113
|
+
**kwargs: ta.Any,
|
114
|
+
) -> SubprocessRunOutput:
|
115
|
+
if maysync_subprocesses is None:
|
116
|
+
maysync_subprocesses = self._DEFAULT_MAYSYNC_SUBPROCESSES
|
117
|
+
return await check.not_none(maysync_subprocesses).run_(self.replace(**kwargs))
|
118
|
+
|
108
119
|
|
109
120
|
SubprocessRun._FIELD_NAMES = frozenset(fld.name for fld in dc.fields(SubprocessRun)) # noqa
|
110
121
|
|
@@ -136,3 +147,10 @@ class SubprocessRunnable(abc.ABC, ta.Generic[T]):
|
|
136
147
|
**kwargs: ta.Any,
|
137
148
|
) -> T:
|
138
149
|
return self.handle_run_output(await self.make_run().async_run(async_subprocesses, **kwargs))
|
150
|
+
|
151
|
+
async def maysync_run(
|
152
|
+
self,
|
153
|
+
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
154
|
+
**kwargs: ta.Any,
|
155
|
+
) -> T:
|
156
|
+
return self.handle_run_output(await self.make_run().maysync_run(maysync_subprocesses, **kwargs))
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=aT8yZ-Zh-9wfHl5Ym5ouiWC1i0cy7Q7RlhzavB6VLPI,8587
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=Yte_7PVV4dR_gMOEh3rykgNGh8hm1tSqvBzJHfYNgcE,3543
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
@@ -420,7 +420,7 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
|
|
420
420
|
omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
|
421
421
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
422
422
|
omlish/iterators/unique.py,sha256=Nw0pSaNEcHAkve0ugfLPvJcirDOn9ECyC5wIL8JlJKI,1395
|
423
|
-
omlish/lang/__init__.py,sha256=
|
423
|
+
omlish/lang/__init__.py,sha256=ZkDWvp1jUTbw2-sDzUij4hYH4RtjnTBLHMPjrw-4ORk,6785
|
424
424
|
omlish/lang/attrs.py,sha256=zFiVuGVOq88x45464T_LxDa-ZEq_RD9zJLq2zeVEBDc,5105
|
425
425
|
omlish/lang/casing.py,sha256=cFUlbDdXLhwnWwcYx4qnM5c4zGX7hIRUfcjiZbxUD28,4636
|
426
426
|
omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
|
@@ -435,7 +435,7 @@ omlish/lang/functions.py,sha256=aLdxhmqG0Pj9tBgsKdoCu_q15r82WIkNqDDSPQU19L8,5689
|
|
435
435
|
omlish/lang/generators.py,sha256=a4D5HU_mySs2T2z3xCmE_s3t4QJkj0YRrK4-hhpGd0A,5197
|
436
436
|
omlish/lang/imports.py,sha256=y9W9Y-d_cQ35QCLuSIPoa6vnEqSErFCz8b-34IH128U,10552
|
437
437
|
omlish/lang/iterables.py,sha256=y1SX2Co3VsOeX2wlfFF7K3rwLvF7Dtre7VY6EpfwAwA,3338
|
438
|
-
omlish/lang/maysyncs.py,sha256=
|
438
|
+
omlish/lang/maysyncs.py,sha256=rUeOFpoqVSbQ_YcPvky4IDBDnpm67K26ADYCNfjMSQY,683
|
439
439
|
omlish/lang/objects.py,sha256=ZsibJwNp1EXorbaObm9TlCNtuuM65snCmVb7H4_llqI,6116
|
440
440
|
omlish/lang/outcomes.py,sha256=0PqxoKaGbBXU9UYZ6AE2QSq94Z-gFDt6wYdp0KomNQw,8712
|
441
441
|
omlish/lang/overrides.py,sha256=IBzK6ljfLX6TLgIyKTSjhqTLcuKRkQNVtEOnBLS4nuA,2095
|
@@ -478,7 +478,7 @@ omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
|
|
478
478
|
omlish/lite/logs.py,sha256=CWFG0NKGhqNeEgryF5atN2gkPYbUdTINEw_s1phbINM,51
|
479
479
|
omlish/lite/marshal.py,sha256=JD_8ox5-yeIo7MZ6iipCdiVxx33So52M02AtvFlRGC8,20392
|
480
480
|
omlish/lite/maybes.py,sha256=0p_fzb6yiOjEpvMKaQ53Q6CH1VPW1or7v7Lt1JIKcgM,4359
|
481
|
-
omlish/lite/maysyncs.py,sha256=
|
481
|
+
omlish/lite/maysyncs.py,sha256=Za0kvANYaK9q-IUs_rSjo1ZQIOTZzkVB7IIEGw5eOsQ,5687
|
482
482
|
omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
|
483
483
|
omlish/lite/reflect.py,sha256=pzOY2PPuHH0omdtglkN6DheXDrGopdL3PtTJnejyLFU,2189
|
484
484
|
omlish/lite/reprs.py,sha256=Tiqf_ciD8FfS0ury7FcJ5G21yY342fW0vPacYlb8EO4,2014
|
@@ -748,10 +748,11 @@ omlish/sql/tabledefs/lower.py,sha256=i4_QkVlVH5U99O6pqokrB661AudNVJ9Q-OwtkKOBleU
|
|
748
748
|
omlish/sql/tabledefs/marshal.py,sha256=5Z7K433SzfN7-z8Yd7FJRzOV9tJv-ErRMA6inZ2iBCE,475
|
749
749
|
omlish/sql/tabledefs/tabledefs.py,sha256=lIhvlt0pk6G7RZAtDFsFXm5j0l9BvRfnP7vNGeydHtE,816
|
750
750
|
omlish/subprocesses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
751
|
-
omlish/subprocesses/async_.py,sha256=
|
751
|
+
omlish/subprocesses/async_.py,sha256=Zs9TxCyROVTOhbZmZMHi_-zwydptVi7MN4esUiK4-YI,2448
|
752
752
|
omlish/subprocesses/base.py,sha256=r60N3ad4ooSvdgFmT94L_xZEy7FMbMX6JcG2VgpHo6w,6139
|
753
753
|
omlish/subprocesses/editor.py,sha256=xBrd7gY0akhRfDIBK5YIBrYMHECtl_8r499iKViyfpQ,2634
|
754
|
-
omlish/subprocesses/
|
754
|
+
omlish/subprocesses/maysync.py,sha256=dK2wDv2so4wa0rOWBkafUqBy1QEJmLg_9CxMsr_kR4I,1456
|
755
|
+
omlish/subprocesses/run.py,sha256=8EeMm2FdNEFmEmbhhzJyHXASUhCCMMRN_-8ybqFhgLI,4378
|
755
756
|
omlish/subprocesses/sync.py,sha256=YdGxa9_GhqqsvTucmnmUXWYcKKys0S5PQk271K1Jg68,3664
|
756
757
|
omlish/subprocesses/utils.py,sha256=v5uEzxmbmRvXwOl_0DtBa5Il6yITKYRgmVSGHcLsT4o,402
|
757
758
|
omlish/subprocesses/wrap.py,sha256=AhGV8rsnaVUMQCFYKkrjj35fs3O-VJLZC1hZ14dz3C8,769
|
@@ -894,9 +895,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
894
895
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
895
896
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
896
897
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
897
|
-
omlish-0.0.0.
|
898
|
-
omlish-0.0.0.
|
899
|
-
omlish-0.0.0.
|
900
|
-
omlish-0.0.0.
|
901
|
-
omlish-0.0.0.
|
902
|
-
omlish-0.0.0.
|
898
|
+
omlish-0.0.0.dev388.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
899
|
+
omlish-0.0.0.dev388.dist-info/METADATA,sha256=YvbEgGvf4ZNKIIJWrToJVEysF8nsyVuzRgd1VeAcc8k,18825
|
900
|
+
omlish-0.0.0.dev388.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
901
|
+
omlish-0.0.0.dev388.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
902
|
+
omlish-0.0.0.dev388.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
903
|
+
omlish-0.0.0.dev388.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|