omlish 0.0.0.dev179__py3-none-any.whl → 0.0.0.dev180__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/argparse/all.py +3 -3
- omlish/argparse/cli.py +13 -13
- omlish/http/coro/fdio.py +1 -1
- omlish/http/coro/server.py +2 -2
- omlish/http/handlers.py +1 -1
- omlish/io/fdio/handlers.py +1 -1
- omlish/lite/__init__.py +4 -0
- omlish/{lite/shlex.py → shlex.py} +1 -0
- omlish/sockets/__init__.py +0 -0
- omlish/{lite/socket.py → sockets/addresses.py} +1 -25
- omlish/sockets/handlers.py +30 -0
- omlish/{lite/socketserver.py → sockets/server.py} +3 -2
- {omlish-0.0.0.dev179.dist-info → omlish-0.0.0.dev180.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev179.dist-info → omlish-0.0.0.dev180.dist-info}/RECORD +19 -17
- {omlish-0.0.0.dev179.dist-info → omlish-0.0.0.dev180.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev179.dist-info → omlish-0.0.0.dev180.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev179.dist-info → omlish-0.0.0.dev180.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev179.dist-info → omlish-0.0.0.dev180.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/argparse/all.py
CHANGED
@@ -5,9 +5,9 @@ from .cli import ( # noqa
|
|
5
5
|
ArgparseArg as Arg,
|
6
6
|
argparse_arg as arg,
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
ArgparseCmdFn as CmdFn,
|
9
|
+
ArgparseCmd as Cmd,
|
10
|
+
argparse_cmd as cmd,
|
11
11
|
|
12
12
|
ArgparseCli as Cli,
|
13
13
|
)
|
omlish/argparse/cli.py
CHANGED
@@ -21,7 +21,7 @@ from ..lite.reflect import is_optional_alias
|
|
21
21
|
T = ta.TypeVar('T')
|
22
22
|
|
23
23
|
|
24
|
-
|
24
|
+
ArgparseCmdFn = ta.Callable[[], ta.Optional[int]] # ta.TypeAlias
|
25
25
|
|
26
26
|
|
27
27
|
##
|
@@ -47,15 +47,15 @@ def argparse_arg(*args, **kwargs) -> ArgparseArg:
|
|
47
47
|
|
48
48
|
|
49
49
|
@dc.dataclass(eq=False)
|
50
|
-
class
|
50
|
+
class ArgparseCmd:
|
51
51
|
name: str
|
52
|
-
fn:
|
52
|
+
fn: ArgparseCmdFn
|
53
53
|
args: ta.Sequence[ArgparseArg] = () # noqa
|
54
54
|
|
55
55
|
# _: dc.KW_ONLY
|
56
56
|
|
57
57
|
aliases: ta.Optional[ta.Sequence[str]] = None
|
58
|
-
parent: ta.Optional['
|
58
|
+
parent: ta.Optional['ArgparseCmd'] = None
|
59
59
|
accepts_unknown: bool = False
|
60
60
|
|
61
61
|
def __post_init__(self) -> None:
|
@@ -70,7 +70,7 @@ class ArgparseCommand:
|
|
70
70
|
|
71
71
|
check.arg(callable(self.fn))
|
72
72
|
check.arg(all(isinstance(a, ArgparseArg) for a in self.args))
|
73
|
-
check.isinstance(self.parent, (
|
73
|
+
check.isinstance(self.parent, (ArgparseCmd, type(None)))
|
74
74
|
check.isinstance(self.accepts_unknown, bool)
|
75
75
|
|
76
76
|
functools.update_wrapper(self, self.fn)
|
@@ -84,21 +84,21 @@ class ArgparseCommand:
|
|
84
84
|
return self.fn(*args, **kwargs)
|
85
85
|
|
86
86
|
|
87
|
-
def
|
87
|
+
def argparse_cmd(
|
88
88
|
*args: ArgparseArg,
|
89
89
|
name: ta.Optional[str] = None,
|
90
90
|
aliases: ta.Optional[ta.Iterable[str]] = None,
|
91
|
-
parent: ta.Optional[
|
91
|
+
parent: ta.Optional[ArgparseCmd] = None,
|
92
92
|
accepts_unknown: bool = False,
|
93
|
-
) -> ta.Any: # ta.Callable[[
|
93
|
+
) -> ta.Any: # ta.Callable[[ArgparseCmdFn], ArgparseCmd]: # FIXME
|
94
94
|
for arg in args:
|
95
95
|
check.isinstance(arg, ArgparseArg)
|
96
96
|
check.isinstance(name, (str, type(None)))
|
97
|
-
check.isinstance(parent, (
|
97
|
+
check.isinstance(parent, (ArgparseCmd, type(None)))
|
98
98
|
check.not_isinstance(aliases, str)
|
99
99
|
|
100
100
|
def inner(fn):
|
101
|
-
return
|
101
|
+
return ArgparseCmd(
|
102
102
|
(name if name is not None else fn.__name__).replace('_', '-'),
|
103
103
|
fn,
|
104
104
|
args,
|
@@ -153,7 +153,7 @@ class ArgparseCli:
|
|
153
153
|
for bns in [bcls.__dict__ for bcls in reversed(mro)] + [ns]:
|
154
154
|
bseen = set() # type: ignore
|
155
155
|
for k, v in bns.items():
|
156
|
-
if isinstance(v, (
|
156
|
+
if isinstance(v, (ArgparseCmd, ArgparseArg)):
|
157
157
|
check.not_in(v, bseen)
|
158
158
|
bseen.add(v)
|
159
159
|
objs[k] = v
|
@@ -180,7 +180,7 @@ class ArgparseCli:
|
|
180
180
|
subparsers = parser.add_subparsers()
|
181
181
|
|
182
182
|
for att, obj in objs.items():
|
183
|
-
if isinstance(obj,
|
183
|
+
if isinstance(obj, ArgparseCmd):
|
184
184
|
if obj.parent is not None:
|
185
185
|
raise NotImplementedError
|
186
186
|
|
@@ -242,7 +242,7 @@ class ArgparseCli:
|
|
242
242
|
|
243
243
|
#
|
244
244
|
|
245
|
-
def _bind_cli_cmd(self, cmd:
|
245
|
+
def _bind_cli_cmd(self, cmd: ArgparseCmd) -> ta.Callable:
|
246
246
|
return cmd.__get__(self, type(self))
|
247
247
|
|
248
248
|
def prepare_cli_run(self) -> ta.Optional[ta.Callable]:
|
omlish/http/coro/fdio.py
CHANGED
@@ -7,7 +7,7 @@ from ...io.buffers import IncrementalWriteBuffer
|
|
7
7
|
from ...io.buffers import ReadableListBuffer
|
8
8
|
from ...io.fdio.handlers import SocketFdioHandler
|
9
9
|
from ...lite.check import check
|
10
|
-
from ...
|
10
|
+
from ...sockets.addresses import SocketAddress
|
11
11
|
from ..handlers import HttpHandler
|
12
12
|
from .server import CoroHttpServer
|
13
13
|
|
omlish/http/coro/server.py
CHANGED
@@ -64,8 +64,8 @@ import time
|
|
64
64
|
import typing as ta
|
65
65
|
|
66
66
|
from ...lite.check import check
|
67
|
-
from ...
|
68
|
-
from ...
|
67
|
+
from ...sockets.addresses import SocketAddress
|
68
|
+
from ...sockets.handlers import SocketHandler
|
69
69
|
from ..handlers import HttpHandler
|
70
70
|
from ..handlers import HttpHandlerRequest
|
71
71
|
from ..handlers import UnsupportedMethodHttpHandlerError
|
omlish/http/handlers.py
CHANGED
omlish/io/fdio/handlers.py
CHANGED
omlish/lite/__init__.py
CHANGED
File without changes
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# ruff: noqa: UP006 UP007
|
2
|
+
# @omlish-lite
|
2
3
|
"""
|
3
4
|
TODO:
|
4
5
|
- SocketClientAddress family / tuple pairs
|
5
6
|
+ codification of https://docs.python.org/3/library/socket.html#socket-families
|
6
7
|
"""
|
7
|
-
import abc
|
8
8
|
import dataclasses as dc
|
9
9
|
import socket
|
10
10
|
import typing as ta
|
@@ -13,9 +13,6 @@ import typing as ta
|
|
13
13
|
SocketAddress = ta.Any
|
14
14
|
|
15
15
|
|
16
|
-
SocketHandlerFactory = ta.Callable[[SocketAddress, ta.BinaryIO, ta.BinaryIO], 'SocketHandler']
|
17
|
-
|
18
|
-
|
19
16
|
##
|
20
17
|
|
21
18
|
|
@@ -54,24 +51,3 @@ def get_best_socket_family(
|
|
54
51
|
)
|
55
52
|
ai = SocketAddressInfo(*next(iter(infos)))
|
56
53
|
return ai.family, ai.sockaddr
|
57
|
-
|
58
|
-
|
59
|
-
##
|
60
|
-
|
61
|
-
|
62
|
-
class SocketHandler(abc.ABC):
|
63
|
-
def __init__(
|
64
|
-
self,
|
65
|
-
client_address: SocketAddress,
|
66
|
-
rfile: ta.BinaryIO,
|
67
|
-
wfile: ta.BinaryIO,
|
68
|
-
) -> None:
|
69
|
-
super().__init__()
|
70
|
-
|
71
|
-
self._client_address = client_address
|
72
|
-
self._rfile = rfile
|
73
|
-
self._wfile = wfile
|
74
|
-
|
75
|
-
@abc.abstractmethod
|
76
|
-
def handle(self) -> None:
|
77
|
-
raise NotImplementedError
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007
|
2
|
+
# @omlish-lite
|
3
|
+
import abc
|
4
|
+
import typing as ta
|
5
|
+
|
6
|
+
from .addresses import SocketAddress
|
7
|
+
|
8
|
+
|
9
|
+
SocketHandlerFactory = ta.Callable[[SocketAddress, ta.BinaryIO, ta.BinaryIO], 'SocketHandler']
|
10
|
+
|
11
|
+
|
12
|
+
##
|
13
|
+
|
14
|
+
|
15
|
+
class SocketHandler(abc.ABC):
|
16
|
+
def __init__(
|
17
|
+
self,
|
18
|
+
client_address: SocketAddress,
|
19
|
+
rfile: ta.BinaryIO,
|
20
|
+
wfile: ta.BinaryIO,
|
21
|
+
) -> None:
|
22
|
+
super().__init__()
|
23
|
+
|
24
|
+
self._client_address = client_address
|
25
|
+
self._rfile = rfile
|
26
|
+
self._wfile = wfile
|
27
|
+
|
28
|
+
@abc.abstractmethod
|
29
|
+
def handle(self) -> None:
|
30
|
+
raise NotImplementedError
|
@@ -1,12 +1,13 @@
|
|
1
1
|
# ruff: noqa: UP006 UP007
|
2
|
+
# @omlish-lite
|
2
3
|
import socket
|
3
4
|
import socketserver
|
4
5
|
import typing as ta
|
5
6
|
|
6
7
|
from omlish.lite.check import check
|
7
8
|
|
8
|
-
from .
|
9
|
-
from .
|
9
|
+
from .addresses import SocketAddress
|
10
|
+
from .handlers import SocketHandlerFactory
|
10
11
|
|
11
12
|
|
12
13
|
##
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=lRkBDFxlAbf6lN5upo3WSf-owW8YG1T21dfpbQL-XHM,7598
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=7vMVy87ffE8iOF0eMquVWoGR2M295AJLJjSOvuDvPAg,3409
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=ubu7lHwss5V4UznbejAI0qXhXahrU01MysuHOZI9C4U,8116
|
5
5
|
omlish/cached.py,sha256=UI-XTFBwA6YXWJJJeBn-WkwBkfzDjLBBaZf4nIJA9y0,510
|
@@ -10,6 +10,7 @@ omlish/dynamic.py,sha256=35C_cCX_Vq2HrHzGk5T-zbrMvmUdiIiwDzDNixczoDo,6541
|
|
10
10
|
omlish/libc.py,sha256=8r7Ejyhttk9ruCfBkxNTrlzir5WPbDE2vmY7VPlceMA,15362
|
11
11
|
omlish/multiprocessing.py,sha256=QZT4C7I-uThCAjaEY3xgUYb-5GagUlnE4etN01LDyU4,5186
|
12
12
|
omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
|
13
|
+
omlish/shlex.py,sha256=bsW2XUD8GiMTUTDefJejZ5AyqT1pTgWMPD0BMoF02jE,248
|
13
14
|
omlish/subprocesses.py,sha256=n6pk0nUaTFHzD_A6duyKNJ4ggncU7uNepfh_T90etHE,8671
|
14
15
|
omlish/sync.py,sha256=QJ79kxmIqDP9SeHDoZAf--DpFIhDQe1jACy8H4N0yZI,2928
|
15
16
|
omlish/term.py,sha256=EVHm3lEEIc9hT4f8BPmzbNUwlqZ8nrRpCwyQMN7LBm0,9313
|
@@ -82,8 +83,8 @@ omlish/antlr/_runtime/xpath/XPath.py,sha256=KSL1SH3VAeRDZCe4dAD7xmUdfk-j434ypZKR
|
|
82
83
|
omlish/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B2W6ie4ivtWLvlgymM,3509
|
83
84
|
omlish/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
|
84
85
|
omlish/argparse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
|
-
omlish/argparse/all.py,sha256=
|
86
|
-
omlish/argparse/cli.py,sha256=
|
86
|
+
omlish/argparse/all.py,sha256=2qhVgFTq3w_tJ_okEnw_D-2k4jlJD7EcM5hNEow6M2M,1030
|
87
|
+
omlish/argparse/cli.py,sha256=Kjq3bzd_E2XwV0T7-cddDdrm68N4AWptTKdJty8vN8g,8217
|
87
88
|
omlish/asyncs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
89
|
omlish/asyncs/all.py,sha256=uUz9ziKh4_QrgmdhKFMgq6j7mFbiZd3LiogguDCQsGI,587
|
89
90
|
omlish/asyncs/anyio.py,sha256=gfpx-D8QGmUfhnQxHEaHXcAP8zSMQjcGw4COFTGNnHI,8021
|
@@ -265,7 +266,7 @@ omlish/http/consts.py,sha256=7BJ4D1MdIvqBcepkgCfBFHolgTwbOlqsOEiee_IjxOA,2289
|
|
265
266
|
omlish/http/cookies.py,sha256=uuOYlHR6e2SC3GM41V0aozK10nef9tYg83Scqpn5-HM,6351
|
266
267
|
omlish/http/dates.py,sha256=Otgp8wRxPgNGyzx8LFowu1vC4EKJYARCiAwLFncpfHM,2875
|
267
268
|
omlish/http/encodings.py,sha256=w2WoKajpaZnQH8j-IBvk5ZFL2O2pAU_iBvZnkocaTlw,164
|
268
|
-
omlish/http/handlers.py,sha256=
|
269
|
+
omlish/http/handlers.py,sha256=2bKw7XRM11C0VSx-DStKa6exFKNINKK4jZ3uVUVh5d8,795
|
269
270
|
omlish/http/headers.py,sha256=ZMmjrEiYjzo0YTGyK0YsvjdwUazktGqzVVYorY4fd44,5081
|
270
271
|
omlish/http/json.py,sha256=9XwAsl4966Mxrv-1ytyCqhcE6lbBJw-0_tFZzGszgHE,7440
|
271
272
|
omlish/http/jwt.py,sha256=6Rigk1WrJ059DY4jDIKnxjnChWb7aFdermj2AI2DSvk,4346
|
@@ -276,8 +277,8 @@ omlish/http/sse.py,sha256=MDs9RvxQXoQliImcc6qK1ERajEYM7Q1l8xmr-9ceNBc,2315
|
|
276
277
|
omlish/http/versions.py,sha256=wSiOXPiClVjkVgSU_VmxkoD1SUYGaoPbP0U5Aw-Ufg8,409
|
277
278
|
omlish/http/wsgi.py,sha256=czZsVUX-l2YTlMrUjKN49wRoP4rVpS0qpeBn4O5BoMY,948
|
278
279
|
omlish/http/coro/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
279
|
-
omlish/http/coro/fdio.py,sha256=
|
280
|
-
omlish/http/coro/server.py,sha256
|
280
|
+
omlish/http/coro/fdio.py,sha256=ajj_lekRockGwQEw8m_mi6RO9-o6hnC9ITiwtZe3y-s,4017
|
281
|
+
omlish/http/coro/server.py,sha256=-e-J5pPqPDGrvQkwcukwltOjTbTNatiCx9Rl7FvooTI,18071
|
281
282
|
omlish/inject/__init__.py,sha256=n0RC9UDGsBQQ39cST39-XJqJPq2M0tnnh9yJubW9azo,1891
|
282
283
|
omlish/inject/binder.py,sha256=DAbc8TZi5w8Mna0TUtq0mT4jeDVA7i7SlBtOFrh2swc,4185
|
283
284
|
omlish/inject/bindings.py,sha256=pLXn2U3kvmAS-68IOG-tr77DbiI-wp9hGyy4lhG6_H8,525
|
@@ -327,7 +328,7 @@ omlish/io/compress/snappy.py,sha256=JFoH_9l0Tr9AGaQ0jHRiP4TsFnG071l27mprCBcqt4c,
|
|
327
328
|
omlish/io/compress/zlib.py,sha256=BQ0BvX-wEN-0NwktcqFECYHTGwVe-VHCVCNarspGQ8o,2396
|
328
329
|
omlish/io/compress/zstd.py,sha256=wik_HWLq_8fGAJgGyMGq9fhFQovot1aCH4lwMpihQmg,949
|
329
330
|
omlish/io/fdio/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
330
|
-
omlish/io/fdio/handlers.py,sha256=
|
331
|
+
omlish/io/fdio/handlers.py,sha256=VDPEff3yXPnCj2jZEkrzuI42bKC8wD8fLmOG97hKrgo,1350
|
331
332
|
omlish/io/fdio/kqueue.py,sha256=YgGBQibkAUYODYDiGl7Enjtx1oQsJXuDsBLBXgqlLQw,3832
|
332
333
|
omlish/io/fdio/manager.py,sha256=q4wWf7nKrNtjx6yPEvrVnFt4UtK_BTvVlquEGw7poEo,1250
|
333
334
|
omlish/io/fdio/pollers.py,sha256=yNadAt3W5wd90PFmd3vD77bq5QwoVb2A6SM2JjZpKRs,5507
|
@@ -374,7 +375,7 @@ omlish/lifecycles/controller.py,sha256=ToYNJKH1Mxr7HyyF1cJrrec8NV_m84jrcvTMX0V5e
|
|
374
375
|
omlish/lifecycles/manager.py,sha256=Au66KaO-fI-SEJALaPUJsCHYW2GE20xextk1wKn2BEU,5445
|
375
376
|
omlish/lifecycles/states.py,sha256=zqMOU2ZU-MDNnWuwauM3_anIAiXM8LoBDElDEraptFg,1292
|
376
377
|
omlish/lifecycles/transitions.py,sha256=qQtFby-h4VzbvgaUqT2NnbNumlcOx9FVVADP9t83xj4,1939
|
377
|
-
omlish/lite/__init__.py,sha256=
|
378
|
+
omlish/lite/__init__.py,sha256=ISLhM4q0LR1XXTCaHdZOZxBRyIsoZqYm4u0bf1BPcVk,148
|
378
379
|
omlish/lite/cached.py,sha256=O7ozcoDNFm1Hg2wtpHEqYSp_i_nCLNOP6Ueq_Uk-7mU,1300
|
379
380
|
omlish/lite/check.py,sha256=0PD-GKtaDqDX6jU5KbzbMvH-vl6jH82xgYfplmfTQkg,12941
|
380
381
|
omlish/lite/contextmanagers.py,sha256=m9JO--p7L7mSl4cycXysH-1AO27weDKjP3DZG61cwwM,1683
|
@@ -389,9 +390,6 @@ omlish/lite/reflect.py,sha256=pzOY2PPuHH0omdtglkN6DheXDrGopdL3PtTJnejyLFU,2189
|
|
389
390
|
omlish/lite/resources.py,sha256=YNSmX1Ohck1aoWRs55a-o5ChVbFJIQhtbqE-XwF55Oc,326
|
390
391
|
omlish/lite/runtime.py,sha256=XQo408zxTdJdppUZqOWHyeUR50VlCpNIExNGHz4U6O4,459
|
391
392
|
omlish/lite/secrets.py,sha256=3Mz3V2jf__XU9qNHcH56sBSw95L3U2UPL24bjvobG0c,816
|
392
|
-
omlish/lite/shlex.py,sha256=CGAgKv1rgrHPhSmY8ItKkiqHYOvXB9j_uL_6u8p2fqI,233
|
393
|
-
omlish/lite/socket.py,sha256=7OYgkXTcQv0wq7TQuLnl9y6dJA1ZT6Vbc1JH59QlxgY,1792
|
394
|
-
omlish/lite/socketserver.py,sha256=doTXIctu_6c8XneFtzPFVG_Wq6xVmA3p9ymut8IvBoU,1586
|
395
393
|
omlish/lite/strings.py,sha256=nGWaOi9LzTjkc5kPN2IqsVN8PUw8m_2yllTGRUQU5PI,1983
|
396
394
|
omlish/lite/typing.py,sha256=U3-JaEnkDSYxK4tsu_MzUn3RP6qALBe5FXQXpD-licE,1090
|
397
395
|
omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -466,6 +464,10 @@ omlish/secrets/pwgen.py,sha256=v-5ztnOTHTAWXLGR-3H6HkMj2nPIZBMbo5xWR3q0rDY,1707
|
|
466
464
|
omlish/secrets/pwhash.py,sha256=Goktn-swmC6PXqfRBnDrH_Lr42vjckT712UyErPjzkw,4102
|
467
465
|
omlish/secrets/secrets.py,sha256=cnDGBoPknVxsCN04_gqcJT_7Ebk3iO3VPkRZ2oMjkMw,7868
|
468
466
|
omlish/secrets/subprocesses.py,sha256=ffjfbgPbEE_Pwb_87vG4yYR2CGZy3I31mHNCo_0JtHw,1212
|
467
|
+
omlish/sockets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
468
|
+
omlish/sockets/addresses.py,sha256=ZQFacDsXo6cKSgEjzN525IcUJPyfubXETzbY-_BBAro,1285
|
469
|
+
omlish/sockets/handlers.py,sha256=9kkNMj1DTJa4xo_3hcBvSkjKc-dy_Ho5he2ubJieJ2A,621
|
470
|
+
omlish/sockets/server.py,sha256=g9CSL0m6Ox10usyysXw4YRFr9H3LlQUH-9GftFCLeFw,1606
|
469
471
|
omlish/specs/__init__.py,sha256=zZwF8yXTEkSstYtORkDhVLK-_hWU8WOJCuBpognb_NY,118
|
470
472
|
omlish/specs/jmespath/LICENSE,sha256=IH-ZZlZkS8XMkf_ubNVD1aYHQ2l_wd0tmHtXrCcYpRU,1113
|
471
473
|
omlish/specs/jmespath/__init__.py,sha256=9tsrquw1kXe1KAhTP3WeL0GlGBiTguQVxsC-lUYTWP4,2087
|
@@ -571,9 +573,9 @@ omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
|
|
571
573
|
omlish/text/minja.py,sha256=KAmZ2POcLcxwF4DPKxdWa16uWxXmVz1UnJXLSwt4oZo,5761
|
572
574
|
omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
|
573
575
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
574
|
-
omlish-0.0.0.
|
575
|
-
omlish-0.0.0.
|
576
|
-
omlish-0.0.0.
|
577
|
-
omlish-0.0.0.
|
578
|
-
omlish-0.0.0.
|
579
|
-
omlish-0.0.0.
|
576
|
+
omlish-0.0.0.dev180.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
577
|
+
omlish-0.0.0.dev180.dist-info/METADATA,sha256=YTRf_o1wf-jeZft0XvdNUg0MGJYmpJe0Z2x3k3fCObY,4264
|
578
|
+
omlish-0.0.0.dev180.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
579
|
+
omlish-0.0.0.dev180.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
580
|
+
omlish-0.0.0.dev180.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
581
|
+
omlish-0.0.0.dev180.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|