omlish 0.0.0.dev308__py3-none-any.whl → 0.0.0.dev309__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/asyncs/asyncio/sockets.py +1 -1
- omlish/asyncs/asyncio/subprocesses.py +3 -3
- omlish/asyncs/asyncio/timeouts.py +1 -1
- omlish/daemons/daemon.py +2 -2
- omlish/lite/timeouts.py +5 -5
- omlish/os/pidfiles/pinning.py +1 -1
- omlish/sockets/ports.py +1 -1
- omlish/sockets/wait.py +2 -2
- omlish/specs/jsonrpc/conns.py +26 -12
- omlish/subprocesses/async_.py +1 -1
- omlish/subprocesses/run.py +2 -2
- omlish/subprocesses/sync.py +1 -1
- {omlish-0.0.0.dev308.dist-info → omlish-0.0.0.dev309.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev308.dist-info → omlish-0.0.0.dev309.dist-info}/RECORD +19 -19
- {omlish-0.0.0.dev308.dist-info → omlish-0.0.0.dev309.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev308.dist-info → omlish-0.0.0.dev309.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev308.dist-info → omlish-0.0.0.dev309.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev308.dist-info → omlish-0.0.0.dev309.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/asyncs/asyncio/sockets.py
CHANGED
@@ -14,7 +14,7 @@ async def asyncio_wait_until_can_connect(
|
|
14
14
|
host: ta.Any = None,
|
15
15
|
port: ta.Any = None,
|
16
16
|
*,
|
17
|
-
timeout:
|
17
|
+
timeout: TimeoutLike = None,
|
18
18
|
on_fail: ta.Optional[ta.Callable[[BaseException], None]] = None,
|
19
19
|
sleep_s: float = .1,
|
20
20
|
exception: ta.Union[ta.Type[BaseException], ta.Tuple[ta.Type[BaseException], ...]] = (Exception,),
|
@@ -131,7 +131,7 @@ class AsyncioProcessCommunicator:
|
|
131
131
|
async def communicate(
|
132
132
|
self,
|
133
133
|
input: ta.Any = None, # noqa
|
134
|
-
timeout:
|
134
|
+
timeout: TimeoutLike = None,
|
135
135
|
) -> Communication:
|
136
136
|
return await asyncio_maybe_timeout(self._communicate(input), timeout)
|
137
137
|
|
@@ -144,7 +144,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
|
|
144
144
|
self,
|
145
145
|
proc: asyncio.subprocess.Process,
|
146
146
|
input: ta.Any = None, # noqa
|
147
|
-
timeout:
|
147
|
+
timeout: TimeoutLike = None,
|
148
148
|
) -> ta.Tuple[ta.Optional[bytes], ta.Optional[bytes]]:
|
149
149
|
return await AsyncioProcessCommunicator(proc).communicate(input, timeout) # noqa
|
150
150
|
|
@@ -155,7 +155,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
|
|
155
155
|
self,
|
156
156
|
*cmd: str,
|
157
157
|
shell: bool = False,
|
158
|
-
timeout:
|
158
|
+
timeout: TimeoutLike = None,
|
159
159
|
**kwargs: ta.Any,
|
160
160
|
) -> ta.AsyncGenerator[asyncio.subprocess.Process, None]:
|
161
161
|
with self.prepare_and_wrap( *cmd, shell=shell, **kwargs) as (cmd, kwargs): # noqa
|
@@ -15,7 +15,7 @@ AwaitableT = ta.TypeVar('AwaitableT', bound=ta.Awaitable)
|
|
15
15
|
|
16
16
|
def asyncio_maybe_timeout(
|
17
17
|
fut: AwaitableT,
|
18
|
-
timeout:
|
18
|
+
timeout: TimeoutLike = None,
|
19
19
|
) -> AwaitableT:
|
20
20
|
if timeout is not None:
|
21
21
|
fut = asyncio.wait_for(fut, Timeout.of(timeout)()) # type: ignore
|
omlish/daemons/daemon.py
CHANGED
@@ -109,7 +109,7 @@ class Daemon:
|
|
109
109
|
|
110
110
|
def wait_sync(
|
111
111
|
self,
|
112
|
-
timeout: lang.TimeoutLike = lang.Timeout.
|
112
|
+
timeout: lang.TimeoutLike = lang.Timeout.DEFAULT,
|
113
113
|
*,
|
114
114
|
max_tries: int | None = None,
|
115
115
|
) -> None:
|
@@ -140,7 +140,7 @@ class Daemon:
|
|
140
140
|
|
141
141
|
return launcher.launch()
|
142
142
|
|
143
|
-
def launch(self, timeout: lang.TimeoutLike = lang.Timeout.
|
143
|
+
def launch(self, timeout: lang.TimeoutLike = lang.Timeout.DEFAULT) -> None:
|
144
144
|
self.launch_no_wait()
|
145
145
|
|
146
146
|
self.wait_sync(timeout)
|
omlish/lite/timeouts.py
CHANGED
@@ -8,7 +8,7 @@ import time
|
|
8
8
|
import typing as ta
|
9
9
|
|
10
10
|
|
11
|
-
TimeoutLike = ta.Union['Timeout', ta.Type['Timeout.
|
11
|
+
TimeoutLike = ta.Union['Timeout', ta.Type['Timeout.DEFAULT'], ta.Iterable['TimeoutLike'], float, None] # ta.TypeAlias
|
12
12
|
|
13
13
|
|
14
14
|
##
|
@@ -54,7 +54,7 @@ class Timeout(abc.ABC):
|
|
54
54
|
|
55
55
|
#
|
56
56
|
|
57
|
-
class
|
57
|
+
class DEFAULT: # Noqa
|
58
58
|
def __new__(cls, *args, **kwargs): # noqa
|
59
59
|
raise TypeError
|
60
60
|
|
@@ -65,7 +65,7 @@ class Timeout(abc.ABC):
|
|
65
65
|
@classmethod
|
66
66
|
def of(
|
67
67
|
cls,
|
68
|
-
obj:
|
68
|
+
obj: TimeoutLike,
|
69
69
|
default: ta.Union[TimeoutLike, ta.Type[_NOT_SPECIFIED]] = _NOT_SPECIFIED,
|
70
70
|
) -> 'Timeout':
|
71
71
|
if obj is None:
|
@@ -80,8 +80,8 @@ class Timeout(abc.ABC):
|
|
80
80
|
elif isinstance(obj, ta.Iterable):
|
81
81
|
return CompositeTimeout(*[Timeout.of(c) for c in obj])
|
82
82
|
|
83
|
-
elif obj is Timeout.
|
84
|
-
if default is Timeout._NOT_SPECIFIED or default is Timeout.
|
83
|
+
elif obj is Timeout.DEFAULT:
|
84
|
+
if default is Timeout._NOT_SPECIFIED or default is Timeout.DEFAULT:
|
85
85
|
raise RuntimeError('Must specify a default timeout')
|
86
86
|
|
87
87
|
else:
|
omlish/os/pidfiles/pinning.py
CHANGED
@@ -64,7 +64,7 @@ class PidfilePinner(abc.ABC):
|
|
64
64
|
self,
|
65
65
|
path: str,
|
66
66
|
*,
|
67
|
-
timeout:
|
67
|
+
timeout: TimeoutLike = None,
|
68
68
|
inheritable: bool = False, # Present to match Pidfile kwargs for convenience, but enforced to be False.
|
69
69
|
**kwargs: ta.Any,
|
70
70
|
) -> ta.Iterator[int]:
|
omlish/sockets/ports.py
CHANGED
omlish/sockets/wait.py
CHANGED
@@ -14,7 +14,7 @@ from ..lite.timeouts import TimeoutLike
|
|
14
14
|
def socket_can_connect(
|
15
15
|
address: ta.Any,
|
16
16
|
*,
|
17
|
-
timeout:
|
17
|
+
timeout: TimeoutLike = None,
|
18
18
|
on_fail: ta.Optional[ta.Callable[[BaseException], None]] = None,
|
19
19
|
exception: ta.Union[ta.Type[BaseException], ta.Tuple[ta.Type[BaseException], ...]] = (ConnectionRefusedError,),
|
20
20
|
) -> bool:
|
@@ -36,7 +36,7 @@ def socket_can_connect(
|
|
36
36
|
def socket_wait_until_can_connect(
|
37
37
|
address: ta.Any,
|
38
38
|
*,
|
39
|
-
timeout:
|
39
|
+
timeout: TimeoutLike = None,
|
40
40
|
on_fail: ta.Optional[ta.Callable[[BaseException], None]] = None,
|
41
41
|
sleep_s: float = .1,
|
42
42
|
exception: ta.Union[ta.Type[BaseException], ta.Tuple[ta.Type[BaseException], ...]] = (ConnectionRefusedError,),
|
omlish/specs/jsonrpc/conns.py
CHANGED
@@ -1,14 +1,12 @@
|
|
1
|
-
"""
|
2
|
-
TODO:
|
3
|
-
- kill receive loop on __aexit__
|
4
|
-
"""
|
5
1
|
import builtins
|
2
|
+
import functools
|
6
3
|
import json
|
7
4
|
import typing as ta
|
8
5
|
import uuid
|
9
6
|
|
10
7
|
import anyio.abc
|
11
8
|
|
9
|
+
from ... import check
|
12
10
|
from ... import lang
|
13
11
|
from ... import marshal as msh
|
14
12
|
from ...asyncs import anyio as aiu
|
@@ -54,8 +52,8 @@ class JsonrpcConnection:
|
|
54
52
|
self._buf = DelimitingBuffer(b'\n')
|
55
53
|
self._response_futures_by_id: dict[Id, aiu.Future[Response]] = {}
|
56
54
|
self._send_lock = anyio.Lock()
|
55
|
+
self._shutdown_event = anyio.Event()
|
57
56
|
self._received_eof = False
|
58
|
-
self._running = True
|
59
57
|
|
60
58
|
#
|
61
59
|
|
@@ -78,7 +76,7 @@ class JsonrpcConnection:
|
|
78
76
|
return self
|
79
77
|
|
80
78
|
async def __aexit__(self, exc_type: type[BaseException] | None, *_: object) -> None:
|
81
|
-
self.
|
79
|
+
self._shutdown_event.set()
|
82
80
|
|
83
81
|
##
|
84
82
|
|
@@ -116,12 +114,28 @@ class JsonrpcConnection:
|
|
116
114
|
)
|
117
115
|
|
118
116
|
async def _receive_message_batch(self) -> list[Message] | None:
|
119
|
-
|
117
|
+
check.state(not self._received_eof)
|
118
|
+
|
119
|
+
if self._shutdown_event.is_set():
|
120
120
|
return None
|
121
121
|
|
122
122
|
while True:
|
123
|
+
maybe_shutdown: lang.Maybe[bool]
|
124
|
+
maybe_data: lang.Maybe[lang.Outcome[bytes]]
|
125
|
+
(
|
126
|
+
maybe_shutdown,
|
127
|
+
maybe_data,
|
128
|
+
) = await aiu.gather( # type: ignore
|
129
|
+
self._shutdown_event.wait,
|
130
|
+
functools.partial(lang.acapture, self._stream.receive),
|
131
|
+
take_first=True,
|
132
|
+
)
|
133
|
+
|
134
|
+
if self._shutdown_event.is_set():
|
135
|
+
return None
|
136
|
+
|
123
137
|
try:
|
124
|
-
data =
|
138
|
+
data = maybe_data.must().unwrap()
|
125
139
|
except self.CLOSED_EXCEPTIONS:
|
126
140
|
data = b''
|
127
141
|
except self.ERROR_EXCEPTIONS as e:
|
@@ -164,7 +178,7 @@ class JsonrpcConnection:
|
|
164
178
|
) -> None:
|
165
179
|
task_status.started()
|
166
180
|
|
167
|
-
while self.
|
181
|
+
while not self._shutdown_event.is_set():
|
168
182
|
msgs = await self._receive_message_batch()
|
169
183
|
if msgs is None:
|
170
184
|
break
|
@@ -188,7 +202,7 @@ class JsonrpcConnection:
|
|
188
202
|
method: str,
|
189
203
|
params: Object | None = None,
|
190
204
|
*,
|
191
|
-
timeout:
|
205
|
+
timeout: lang.TimeoutLike | None = lang.Timeout.DEFAULT,
|
192
206
|
) -> ta.Any:
|
193
207
|
msg_id = _create_id()
|
194
208
|
req = request(msg_id, method, params)
|
@@ -199,9 +213,9 @@ class JsonrpcConnection:
|
|
199
213
|
try:
|
200
214
|
await self.send_message(req)
|
201
215
|
|
202
|
-
timeout_val = timeout
|
216
|
+
timeout_val = lang.Timeout.of(timeout, self._default_timeout)
|
203
217
|
try:
|
204
|
-
with anyio.fail_after(timeout_val):
|
218
|
+
with anyio.fail_after(timeout_val.or_(None)):
|
205
219
|
await fut
|
206
220
|
except TimeoutError as e:
|
207
221
|
raise JsonrpcConnection.TimeoutError(f'Request timed out after {timeout_val} seconds') from e
|
omlish/subprocesses/async_.py
CHANGED
@@ -22,7 +22,7 @@ class AbstractAsyncSubprocesses(BaseSubprocesses):
|
|
22
22
|
self,
|
23
23
|
*cmd: str,
|
24
24
|
input: ta.Any = None, # noqa
|
25
|
-
timeout:
|
25
|
+
timeout: TimeoutLike = None,
|
26
26
|
check: bool = False,
|
27
27
|
capture_output: ta.Optional[bool] = None,
|
28
28
|
**kwargs: ta.Any,
|
omlish/subprocesses/run.py
CHANGED
@@ -31,7 +31,7 @@ class SubprocessRunOutput(ta.Generic[T]):
|
|
31
31
|
class SubprocessRun:
|
32
32
|
cmd: ta.Sequence[str]
|
33
33
|
input: ta.Any = None
|
34
|
-
timeout:
|
34
|
+
timeout: TimeoutLike = None
|
35
35
|
check: bool = False
|
36
36
|
capture_output: ta.Optional[bool] = None
|
37
37
|
kwargs: ta.Optional[ta.Mapping[str, ta.Any]] = None
|
@@ -67,7 +67,7 @@ class SubprocessRun:
|
|
67
67
|
cls,
|
68
68
|
*cmd: str,
|
69
69
|
input: ta.Any = None, # noqa
|
70
|
-
timeout:
|
70
|
+
timeout: TimeoutLike = None,
|
71
71
|
check: bool = False, # noqa
|
72
72
|
capture_output: ta.Optional[bool] = None,
|
73
73
|
**kwargs: ta.Any,
|
omlish/subprocesses/sync.py
CHANGED
@@ -28,7 +28,7 @@ class AbstractSubprocesses(BaseSubprocesses, abc.ABC):
|
|
28
28
|
self,
|
29
29
|
*cmd: str,
|
30
30
|
input: ta.Any = None, # noqa
|
31
|
-
timeout:
|
31
|
+
timeout: TimeoutLike = None,
|
32
32
|
check: bool = False,
|
33
33
|
capture_output: ta.Optional[bool] = None,
|
34
34
|
**kwargs: ta.Any,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=orgsRvtpHu8tdhaCvlP9v3P495OJopYYiHKjK68WtWg,8587
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=AMalr2v0ecBESsAeIHXFu3Gev9RWMipfQsSGjc671qA,3478
|
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
|
@@ -108,10 +108,10 @@ omlish/asyncs/anyio/utils.py,sha256=X2Rz1DGrCJ0zkt1O5cHoMRaYKTPndBj6dzLhb09mVtE,
|
|
108
108
|
omlish/asyncs/asyncio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
109
|
omlish/asyncs/asyncio/all.py,sha256=u2JpMEs-0AJ0Vd8yU10HvWD8rfKxdFfMiwBu2oDeuuQ,313
|
110
110
|
omlish/asyncs/asyncio/channels.py,sha256=X3S951YTjTRDguMSQRlfu74mPuWkNd2ZEUWboLY58-M,1079
|
111
|
-
omlish/asyncs/asyncio/sockets.py,sha256=
|
111
|
+
omlish/asyncs/asyncio/sockets.py,sha256=QdXWswN9p9jOlaXUSYnCQZtwu1_jSQNWBiKPt6bws6o,1258
|
112
112
|
omlish/asyncs/asyncio/streams.py,sha256=J_d1hgX4Mx9SfyW4DjOzh91PqzZmjOtiIB95ytF8Ygw,1009
|
113
|
-
omlish/asyncs/asyncio/subprocesses.py,sha256=
|
114
|
-
omlish/asyncs/asyncio/timeouts.py,sha256=
|
113
|
+
omlish/asyncs/asyncio/subprocesses.py,sha256=Mvy5cXHbY-JB5Yl57G05c2O7aEMAjSe29Ed_J63pvx0,6896
|
114
|
+
omlish/asyncs/asyncio/timeouts.py,sha256=c-DhZi0yFXhJ6NtHa4EhB1Vrr1QDVd-7HBRkr96Q2So,446
|
115
115
|
omlish/asyncs/asyncio/utils.py,sha256=mDjYNm1cylUhQ8slWXwdPoXasuWfafjzu78GHt2Mdig,2437
|
116
116
|
omlish/asyncs/bluelet/LICENSE,sha256=VHf3oPQihOHnWyIR8LcXX0dpONa1lgyJnjWC2qVuRR0,559
|
117
117
|
omlish/asyncs/bluelet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -195,7 +195,7 @@ omlish/configs/processing/names.py,sha256=weHmaTclzgM9lUn3aBtw-kwZ3mc2N-CZlFg3Kd
|
|
195
195
|
omlish/configs/processing/rewriting.py,sha256=v7PfHtuTn5v_5Y6Au7oMN2Z0nxAMy1iYyO5CXnTvZhs,4226
|
196
196
|
omlish/configs/processing/strings.py,sha256=qFS2oh6z02IaM_q4lTKLdufzkJqAJ6J-Qjrz5S-QJoM,826
|
197
197
|
omlish/daemons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
198
|
-
omlish/daemons/daemon.py,sha256=
|
198
|
+
omlish/daemons/daemon.py,sha256=pUwomapIrUwXLnov9jlA5EU1vp4qEYcIiUxKD3SQyVo,3479
|
199
199
|
omlish/daemons/launching.py,sha256=sNOYW939IGI4ZlLQ0bKxzXj6EyeOiwV7Upqhd5XfoHc,3747
|
200
200
|
omlish/daemons/reparent.py,sha256=7uJ9oPGt9Ud7uA8bDl_SHcuqjcsmXa3kkjp9jf29wOw,585
|
201
201
|
omlish/daemons/services.py,sha256=YYp2SMkJ71WgzOcYSXjWHeAyKKxu3j1dfuJvWkl0Dgw,3492
|
@@ -529,7 +529,7 @@ omlish/lite/resources.py,sha256=YNSmX1Ohck1aoWRs55a-o5ChVbFJIQhtbqE-XwF55Oc,326
|
|
529
529
|
omlish/lite/runtime.py,sha256=XQo408zxTdJdppUZqOWHyeUR50VlCpNIExNGHz4U6O4,459
|
530
530
|
omlish/lite/secrets.py,sha256=3Mz3V2jf__XU9qNHcH56sBSw95L3U2UPL24bjvobG0c,816
|
531
531
|
omlish/lite/strings.py,sha256=QGxT1Yh4oI8ycsfeobxnjEhvDob_GiAKLeIhZwo1j24,1986
|
532
|
-
omlish/lite/timeouts.py,sha256=
|
532
|
+
omlish/lite/timeouts.py,sha256=NX7gfW4FLYBcewMh4Dg_XlWqJkLY1Fom3z_OLSzuK7M,4969
|
533
533
|
omlish/lite/timing.py,sha256=aVu3hEDB_jyTF_ryZI7iU-xg4q8CNwqpp9Apfru_iwY,196
|
534
534
|
omlish/lite/types.py,sha256=fP5EMyBdEp2LmDxcHjUDtwAMdR06ISr9lKOL7smWfHM,140
|
535
535
|
omlish/lite/typing.py,sha256=U3-JaEnkDSYxK4tsu_MzUn3RP6qALBe5FXQXpD-licE,1090
|
@@ -627,7 +627,7 @@ omlish/os/pidfiles/__main__.py,sha256=AF8TwjK4xgHVnoLAP9dIWgKvT0vGhHJlfDW0tKZ7tx
|
|
627
627
|
omlish/os/pidfiles/cli.py,sha256=2SSsP4O3VdpsDIMAkWgWSjh_YNIPzCD9l5LNN2qrIjo,2074
|
628
628
|
omlish/os/pidfiles/manager.py,sha256=QphQxIENVVwvBWynLCNU31NwOfLkV43VoTVeYFn2Hac,2351
|
629
629
|
omlish/os/pidfiles/pidfile.py,sha256=9tI5IMVwfPfnni0XMn4x5ptNQgm36n8tLeUNPf50UqU,4394
|
630
|
-
omlish/os/pidfiles/pinning.py,sha256=
|
630
|
+
omlish/os/pidfiles/pinning.py,sha256=aQgCmvcAqN0lvI70GcSB2TKVX1G4vwbyN_AOHF3-eKE,6630
|
631
631
|
omlish/reflect/__init__.py,sha256=64eHbD6zL6Fhp7FfXb8n9ZHywlODjBN3rm1LMvZ081A,822
|
632
632
|
omlish/reflect/inspect.py,sha256=WCo2YpBYauKw6k758FLlZ_H4Q05rgVPs96fEv9w6zHQ,1538
|
633
633
|
omlish/reflect/ops.py,sha256=RJ6jzrM4ieFsXzWyNXWV43O_WgzEaUvlHSc5N2ezW2A,2044
|
@@ -649,8 +649,8 @@ omlish/sockets/addresses.py,sha256=vbVeQBkzI513H4vRv-JS89QtRbr9U8v5zqkm3oODl_s,1
|
|
649
649
|
omlish/sockets/bind.py,sha256=J1SfFFFnVf3H5nqESDX2NGEY8DmjyIMUXZciZM33zQY,8003
|
650
650
|
omlish/sockets/handlers.py,sha256=Gj6xZoo4vommge8XvkehYw3B7O4aql2P4qzZIIa0p24,462
|
651
651
|
omlish/sockets/io.py,sha256=lfhTkB7NnAIx9kuQhAkwgsEUXY78Mp1_WtYrIQNS_k8,1408
|
652
|
-
omlish/sockets/ports.py,sha256=
|
653
|
-
omlish/sockets/wait.py,sha256=
|
652
|
+
omlish/sockets/ports.py,sha256=NQYVvd8IBbQkPl8TnBtupTiv-Htqhc6QBIXJJ6GprnQ,1389
|
653
|
+
omlish/sockets/wait.py,sha256=OtLbcoLYzksl4GU0TNbQpzzVWGxp2iRLgo2cGZZfFFM,1559
|
654
654
|
omlish/sockets/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
655
655
|
omlish/sockets/server/handlers.py,sha256=PPsb1X5oU9dN8jfztaMGsRiqWTyEANT-1aSLbS6bUVg,3867
|
656
656
|
omlish/sockets/server/server.py,sha256=FkaishIxJuU4it9tTI7wzlGqJYzFGXzDrd_HgV0jAmU,6253
|
@@ -689,7 +689,7 @@ omlish/specs/jmespath/parser.py,sha256=yfkydotVR4LBhrUTsptL_kLYDoGZrRN9zSEs_76kv
|
|
689
689
|
omlish/specs/jmespath/scope.py,sha256=UyDsl9rv_c8DCjJBuVIA2ESu1jrgYvuwEKiaJDQKnT0,1590
|
690
690
|
omlish/specs/jmespath/visitor.py,sha256=HVro_6aBGL0CMBy8NRy6vJzWgwsHGB1qJXldX8H7wSg,16592
|
691
691
|
omlish/specs/jsonrpc/__init__.py,sha256=ugIdqHXWZjSy1R1SkwoxstO2GCHEF4W95Ogl3_5_DV4,544
|
692
|
-
omlish/specs/jsonrpc/conns.py,sha256=
|
692
|
+
omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI,7029
|
693
693
|
omlish/specs/jsonrpc/errors.py,sha256=-Zgmlo6bV6J8w5f8h9axQgLquIFBHDgIwcpufEH5NsE,707
|
694
694
|
omlish/specs/jsonrpc/marshal.py,sha256=HM736piPGnBZrg8CMLDX-L5fZpegyF6l6JUjzLoSDtk,1852
|
695
695
|
omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
|
@@ -787,11 +787,11 @@ omlish/sql/tabledefs/lower.py,sha256=YQf8gl1kxD5Fm-vOxV6G0Feh_D9PP1pYwz_vz6XjTPQ
|
|
787
787
|
omlish/sql/tabledefs/marshal.py,sha256=x8XG0fJLQ6hlwyu957xqnUhr71ouKiRGBWVueZUEMZU,470
|
788
788
|
omlish/sql/tabledefs/tabledefs.py,sha256=lIhvlt0pk6G7RZAtDFsFXm5j0l9BvRfnP7vNGeydHtE,816
|
789
789
|
omlish/subprocesses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
790
|
-
omlish/subprocesses/async_.py,sha256=
|
790
|
+
omlish/subprocesses/async_.py,sha256=st7452hRImm6dCwD-Cf293VPeB50xxc8sk_EoRNe_fY,2360
|
791
791
|
omlish/subprocesses/base.py,sha256=W6El-PUKKF9KLAks5LB6kzqs_n3FfkblJ-JOv6NFQbY,6133
|
792
792
|
omlish/subprocesses/editor.py,sha256=tVU1EQsEhCM242HheylQvEsqaAZYnT61kMhlzZcdk5U,2628
|
793
|
-
omlish/subprocesses/run.py,sha256=
|
794
|
-
omlish/subprocesses/sync.py,sha256=
|
793
|
+
omlish/subprocesses/run.py,sha256=ViFvLJYQHAExk0novi8wCx4xk7T4WPH6CTT3P55B6-4,3642
|
794
|
+
omlish/subprocesses/sync.py,sha256=Lmr6LYQrH37wVnlYRQc-fk4iENn2zFGxJmiU8-biUEQ,3658
|
795
795
|
omlish/subprocesses/utils.py,sha256=MJb6hvKhZceTmBeFVqlc5oM7rDxWkUzSzK9nKvbIvM8,396
|
796
796
|
omlish/subprocesses/wrap.py,sha256=HMvCZrO2H227oGNN03KjB3FI-M5bAICqp19W8oG2f5M,763
|
797
797
|
omlish/term/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -853,9 +853,9 @@ omlish/typedvalues/holder.py,sha256=ZTnHiw-K38ciOBLEdwgrltr7Xp8jjEs_0Lp69DH-G-o,
|
|
853
853
|
omlish/typedvalues/marshal.py,sha256=hWHRLcrGav7lvXJDtb9bNI0ickl4SKPQ6F4BbTpqw3A,4219
|
854
854
|
omlish/typedvalues/reflect.py,sha256=Ih1YgU-srUjsvBn_P7C66f73_VCvcwqE3ffeBnZBgt4,674
|
855
855
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
856
|
-
omlish-0.0.0.
|
857
|
-
omlish-0.0.0.
|
858
|
-
omlish-0.0.0.
|
859
|
-
omlish-0.0.0.
|
860
|
-
omlish-0.0.0.
|
861
|
-
omlish-0.0.0.
|
856
|
+
omlish-0.0.0.dev309.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
857
|
+
omlish-0.0.0.dev309.dist-info/METADATA,sha256=whxbYMrVb5r3hPkfUNldkiBM2-N5weht_JZVVwC7rkI,4416
|
858
|
+
omlish-0.0.0.dev309.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
|
859
|
+
omlish-0.0.0.dev309.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
860
|
+
omlish-0.0.0.dev309.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
861
|
+
omlish-0.0.0.dev309.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|