omlish 0.0.0.dev356__py3-none-any.whl → 0.0.0.dev358__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.
Potentially problematic release.
This version of omlish might be problematic. Click here for more details.
- omlish/__about__.py +2 -2
- omlish/asyncs/asyncio/subprocesses.py +1 -1
- omlish/asyncs/bluelet/core.py +1 -1
- omlish/asyncs/bluelet/events.py +1 -1
- omlish/codecs/base.py +2 -2
- omlish/codecs/text.py +2 -2
- omlish/concurrent/executors.py +1 -1
- omlish/formats/json/literals.py +0 -20
- omlish/formats/json/stream/parsing.py +1 -1
- omlish/formats/json/stream/rendering.py +3 -3
- omlish/formats/json5/rendering.py +4 -8
- omlish/graphs/trees.py +1 -1
- omlish/http/coro/server.py +1 -1
- omlish/inject/elements.py +1 -1
- omlish/inject/impl/injector.py +1 -1
- omlish/inject/impl/scopes.py +1 -1
- omlish/inject/managed.py +2 -2
- omlish/inject/scopes.py +1 -1
- omlish/io/buffers.py +1 -1
- omlish/io/compress/codecs.py +2 -2
- omlish/io/compress/gzip.py +2 -2
- omlish/io/coro/stepped.py +1 -1
- omlish/lite/contextmanagers.py +1 -1
- omlish/lite/inject.py +1 -1
- omlish/marshal/__init__.py +5 -0
- omlish/marshal/base.py +17 -0
- omlish/marshal/global_.py +10 -4
- omlish/marshal/standard.py +22 -12
- omlish/specs/jmespath/lexer.py +1 -1
- omlish/term/progressbar.py +1 -1
- omlish/testing/pytest/inject/harness.py +2 -2
- {omlish-0.0.0.dev356.dist-info → omlish-0.0.0.dev358.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev356.dist-info → omlish-0.0.0.dev358.dist-info}/RECORD +37 -37
- {omlish-0.0.0.dev356.dist-info → omlish-0.0.0.dev358.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev356.dist-info → omlish-0.0.0.dev358.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev356.dist-info → omlish-0.0.0.dev358.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev356.dist-info → omlish-0.0.0.dev358.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/asyncs/bluelet/core.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# ruff: noqa: UP006 UP007 UP045
|
|
1
|
+
# ruff: noqa: UP006 UP007 UP043 UP045
|
|
2
2
|
# @omlish-lite
|
|
3
3
|
# Based on bluelet ( https://github.com/sampsyo/bluelet ) by Adrian Sampson, original license:
|
|
4
4
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
omlish/asyncs/bluelet/events.py
CHANGED
|
@@ -12,7 +12,7 @@ import typing as ta
|
|
|
12
12
|
|
|
13
13
|
R = ta.TypeVar('R')
|
|
14
14
|
|
|
15
|
-
BlueletEventT = ta.TypeVar('BlueletEventT', bound='BlueletEvent')
|
|
15
|
+
BlueletEventT = ta.TypeVar('BlueletEventT', bound='BlueletEvent')
|
|
16
16
|
|
|
17
17
|
BlueletWaitable = ta.Union[int, 'BlueletHasFileno'] # ta.TypeAlias
|
|
18
18
|
|
omlish/codecs/base.py
CHANGED
|
@@ -37,11 +37,11 @@ class EagerCodec(lang.Abstract, ta.Generic[I, O]):
|
|
|
37
37
|
|
|
38
38
|
class IncrementalCodec(lang.Abstract, ta.Generic[I, O]):
|
|
39
39
|
@abc.abstractmethod
|
|
40
|
-
def encode_incremental(self) -> ta.Generator[O | None, I
|
|
40
|
+
def encode_incremental(self) -> ta.Generator[O | None, I]:
|
|
41
41
|
raise NotImplementedError
|
|
42
42
|
|
|
43
43
|
@abc.abstractmethod
|
|
44
|
-
def decode_incremental(self) -> ta.Generator[I | None, O
|
|
44
|
+
def decode_incremental(self) -> ta.Generator[I | None, O]:
|
|
45
45
|
raise NotImplementedError
|
|
46
46
|
|
|
47
47
|
|
omlish/codecs/text.py
CHANGED
|
@@ -88,7 +88,7 @@ class TextEncodingComboCodec(ComboCodec[str, bytes]):
|
|
|
88
88
|
i, _ = self._info.decode(o, self._opts.errors)
|
|
89
89
|
return i
|
|
90
90
|
|
|
91
|
-
def encode_incremental(self) -> ta.Generator[bytes | None, str
|
|
91
|
+
def encode_incremental(self) -> ta.Generator[bytes | None, str]:
|
|
92
92
|
x = self._info.incrementalencoder(self._opts.errors)
|
|
93
93
|
i = yield None
|
|
94
94
|
while True:
|
|
@@ -99,7 +99,7 @@ class TextEncodingComboCodec(ComboCodec[str, bytes]):
|
|
|
99
99
|
o = x.encode(i, final=True)
|
|
100
100
|
yield o
|
|
101
101
|
|
|
102
|
-
def decode_incremental(self) -> ta.Generator[str | None, bytes
|
|
102
|
+
def decode_incremental(self) -> ta.Generator[str | None, bytes]:
|
|
103
103
|
x = self._info.incrementaldecoder(self._opts.errors)
|
|
104
104
|
i = yield None
|
|
105
105
|
while True:
|
omlish/concurrent/executors.py
CHANGED
|
@@ -37,7 +37,7 @@ def new_executor(
|
|
|
37
37
|
*,
|
|
38
38
|
immediate_exceptions: bool = False,
|
|
39
39
|
**kwargs: ta.Any,
|
|
40
|
-
) -> ta.Generator[cf.Executor
|
|
40
|
+
) -> ta.Generator[cf.Executor]:
|
|
41
41
|
if max_workers == 0:
|
|
42
42
|
yield ImmediateExecutor(
|
|
43
43
|
immediate_exceptions=immediate_exceptions,
|
omlish/formats/json/literals.py
CHANGED
|
@@ -121,26 +121,6 @@ def encode_string(
|
|
|
121
121
|
])
|
|
122
122
|
|
|
123
123
|
|
|
124
|
-
def encode_string_ascii(
|
|
125
|
-
s: str | bytes,
|
|
126
|
-
q: str | None = None,
|
|
127
|
-
*,
|
|
128
|
-
lq: str | None = None,
|
|
129
|
-
rq: str | None = None,
|
|
130
|
-
escape_map: ta.Mapping[str, str] | None = None,
|
|
131
|
-
) -> str:
|
|
132
|
-
"""Return an ASCII-only JSON representation of a Python string."""
|
|
133
|
-
|
|
134
|
-
return encode_string(
|
|
135
|
-
s,
|
|
136
|
-
q,
|
|
137
|
-
lq=lq,
|
|
138
|
-
rq=rq,
|
|
139
|
-
escape_map=escape_map,
|
|
140
|
-
ensure_ascii=True,
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
|
|
144
124
|
##
|
|
145
125
|
|
|
146
126
|
|
|
@@ -58,7 +58,7 @@ class JsonStreamParserEvents(lang.Namespace):
|
|
|
58
58
|
##
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
def yield_parser_events(obj: ta.Any) -> ta.Generator[JsonStreamParserEvent
|
|
61
|
+
def yield_parser_events(obj: ta.Any) -> ta.Generator[JsonStreamParserEvent]:
|
|
62
62
|
if isinstance(obj, SCALAR_VALUE_TYPES):
|
|
63
63
|
yield obj # type: ignore
|
|
64
64
|
|
|
@@ -36,7 +36,7 @@ class StreamJsonRenderer(AbstractJsonRenderer[ta.Iterable[JsonStreamParserEvent]
|
|
|
36
36
|
self,
|
|
37
37
|
o: ta.Any,
|
|
38
38
|
state: AbstractJsonRenderer.State = AbstractJsonRenderer.State.VALUE,
|
|
39
|
-
) -> ta.Generator[str
|
|
39
|
+
) -> ta.Generator[str]:
|
|
40
40
|
if self._style is not None:
|
|
41
41
|
pre, post = self._style(o, state)
|
|
42
42
|
yield pre
|
|
@@ -52,7 +52,7 @@ class StreamJsonRenderer(AbstractJsonRenderer[ta.Iterable[JsonStreamParserEvent]
|
|
|
52
52
|
if post:
|
|
53
53
|
yield post
|
|
54
54
|
|
|
55
|
-
def _render(self, e: JsonStreamParserEvent) -> ta.Generator[str
|
|
55
|
+
def _render(self, e: JsonStreamParserEvent) -> ta.Generator[str]:
|
|
56
56
|
if self._need_delimit:
|
|
57
57
|
yield self._delimiter
|
|
58
58
|
self._need_delimit = False
|
|
@@ -124,7 +124,7 @@ class StreamJsonRenderer(AbstractJsonRenderer[ta.Iterable[JsonStreamParserEvent]
|
|
|
124
124
|
else:
|
|
125
125
|
raise TypeError(e)
|
|
126
126
|
|
|
127
|
-
def render(self, events: ta.Iterable[JsonStreamParserEvent]) -> ta.Generator[str
|
|
127
|
+
def render(self, events: ta.Iterable[JsonStreamParserEvent]) -> ta.Generator[str]:
|
|
128
128
|
for e in events:
|
|
129
129
|
yield from self._render(e)
|
|
130
130
|
|
|
@@ -3,7 +3,6 @@ import typing as ta
|
|
|
3
3
|
from ..json import Scalar
|
|
4
4
|
from ..json.literals import ESCAPE_MAP
|
|
5
5
|
from ..json.literals import encode_string
|
|
6
|
-
from ..json.literals import encode_string_ascii
|
|
7
6
|
from ..json.rendering import JsonRenderer
|
|
8
7
|
from ..json.rendering import JsonRendererOut
|
|
9
8
|
|
|
@@ -35,15 +34,12 @@ class Json5Renderer(JsonRenderer):
|
|
|
35
34
|
isinstance(o, str) and
|
|
36
35
|
'\n' in o
|
|
37
36
|
):
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
return encode_string(
|
|
38
|
+
o,
|
|
40
39
|
lq='"\\\n',
|
|
40
|
+
escape_map=MULTILINE_STRINGS_ESCAPE_MAP,
|
|
41
|
+
ensure_ascii=self._ensure_ascii,
|
|
41
42
|
)
|
|
42
43
|
|
|
43
|
-
if self._ensure_ascii:
|
|
44
|
-
return encode_string_ascii(o, **kw)
|
|
45
|
-
else:
|
|
46
|
-
return encode_string(o, **kw)
|
|
47
|
-
|
|
48
44
|
else:
|
|
49
45
|
return super()._format_scalar(o)
|
omlish/graphs/trees.py
CHANGED
omlish/http/coro/server.py
CHANGED
omlish/inject/elements.py
CHANGED
|
@@ -24,7 +24,7 @@ class Elements(lang.Final):
|
|
|
24
24
|
es: ta.Collection[Element] | None = None
|
|
25
25
|
cs: ta.Collection['Elements'] | None = None
|
|
26
26
|
|
|
27
|
-
def __iter__(self) -> ta.Generator[Element
|
|
27
|
+
def __iter__(self) -> ta.Generator[Element]:
|
|
28
28
|
if self.es:
|
|
29
29
|
yield from self.es
|
|
30
30
|
if self.cs:
|
omlish/inject/impl/injector.py
CHANGED
|
@@ -149,7 +149,7 @@ class InjectorImpl(Injector, lang.Final):
|
|
|
149
149
|
pass
|
|
150
150
|
|
|
151
151
|
@contextlib.contextmanager
|
|
152
|
-
def _current_request(self) -> ta.Generator[_Request
|
|
152
|
+
def _current_request(self) -> ta.Generator[_Request]:
|
|
153
153
|
if (cr := self.__cur_req) is not None:
|
|
154
154
|
yield cr
|
|
155
155
|
return
|
omlish/inject/impl/scopes.py
CHANGED
|
@@ -155,7 +155,7 @@ class SeededScopeImpl(ScopeImpl):
|
|
|
155
155
|
self._ssi = check.isinstance(self._ii.get_scope_impl(self._ss), SeededScopeImpl)
|
|
156
156
|
|
|
157
157
|
@contextlib.contextmanager
|
|
158
|
-
def __call__(self, seeds: ta.Mapping[Key, ta.Any]) -> ta.Generator[None
|
|
158
|
+
def __call__(self, seeds: ta.Mapping[Key, ta.Any]) -> ta.Generator[None]:
|
|
159
159
|
try:
|
|
160
160
|
if self._ssi._st is not None: # noqa
|
|
161
161
|
raise ScopeAlreadyOpenError(self._ss)
|
omlish/inject/managed.py
CHANGED
|
@@ -26,7 +26,7 @@ T = ta.TypeVar('T')
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
@contextlib.contextmanager
|
|
29
|
-
def create_managed_injector(*args: Elemental) -> ta.Generator[Injector
|
|
29
|
+
def create_managed_injector(*args: Elemental) -> ta.Generator[Injector]:
|
|
30
30
|
i = create_injector(
|
|
31
31
|
bind(contextlib.ExitStack, singleton=True, eager=True),
|
|
32
32
|
*args,
|
|
@@ -60,7 +60,7 @@ def make_managed_provider(
|
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
@contextlib.asynccontextmanager
|
|
63
|
-
async def create_async_managed_injector(*args: Elemental) -> ta.AsyncGenerator[Injector
|
|
63
|
+
async def create_async_managed_injector(*args: Elemental) -> ta.AsyncGenerator[Injector]:
|
|
64
64
|
i = await _asyncs.s_to_a(create_injector)(
|
|
65
65
|
bind(contextlib.AsyncExitStack, singleton=True, eager=True),
|
|
66
66
|
*args,
|
omlish/inject/scopes.py
CHANGED
omlish/io/buffers.py
CHANGED
omlish/io/compress/codecs.py
CHANGED
|
@@ -28,10 +28,10 @@ class CompressionEagerCodec(codecs.EagerCodec[bytes, bytes]):
|
|
|
28
28
|
class CompressionIncrementalCodec(codecs.IncrementalCodec[bytes, bytes]):
|
|
29
29
|
compression: IncrementalCompression
|
|
30
30
|
|
|
31
|
-
def encode_incremental(self) -> ta.Generator[bytes | None, bytes
|
|
31
|
+
def encode_incremental(self) -> ta.Generator[bytes | None, bytes]:
|
|
32
32
|
return self.compression.compress_incremental()
|
|
33
33
|
|
|
34
|
-
def decode_incremental(self) -> ta.Generator[bytes | None, bytes
|
|
34
|
+
def decode_incremental(self) -> ta.Generator[bytes | None, bytes]:
|
|
35
35
|
return buffer_bytes_stepped_reader_coro(self.compression.decompress_incremental())
|
|
36
36
|
|
|
37
37
|
|
omlish/io/compress/gzip.py
CHANGED
|
@@ -121,7 +121,7 @@ class IncrementalGzipCompressor:
|
|
|
121
121
|
self._level = level
|
|
122
122
|
self._mtime = mtime
|
|
123
123
|
|
|
124
|
-
def _write_gzip_header(self) -> ta.Generator[bytes
|
|
124
|
+
def _write_gzip_header(self) -> ta.Generator[bytes]:
|
|
125
125
|
check.none((yield b'\037\213')) # magic header
|
|
126
126
|
check.none((yield b'\010')) # compression method
|
|
127
127
|
|
|
@@ -267,7 +267,7 @@ class IncrementalGzipDecompressor:
|
|
|
267
267
|
rdr: PrependableBytesCoroReader,
|
|
268
268
|
crc: int,
|
|
269
269
|
stream_size: int,
|
|
270
|
-
) -> ta.Generator[int | None, bytes
|
|
270
|
+
) -> ta.Generator[int | None, bytes]:
|
|
271
271
|
# We've read to the end of the file.
|
|
272
272
|
# We check that the computed CRC and size of the uncompressed data matches the stored values. Note that the size
|
|
273
273
|
# stored is the true file size mod 2**32.
|
omlish/io/coro/stepped.py
CHANGED
|
@@ -196,7 +196,7 @@ def buffer_bytes_stepped_reader_coro(g: BytesSteppedReaderCoro) -> BytesSteppedC
|
|
|
196
196
|
|
|
197
197
|
|
|
198
198
|
@lang.autostart
|
|
199
|
-
def iterable_bytes_stepped_coro(g: BytesSteppedCoro) -> ta.Generator[ta.Iterator[bytes], bytes
|
|
199
|
+
def iterable_bytes_stepped_coro(g: BytesSteppedCoro) -> ta.Generator[ta.Iterator[bytes], bytes]:
|
|
200
200
|
i: bytes | None = check.isinstance((yield None), bytes) # type: ignore[misc]
|
|
201
201
|
eof = False
|
|
202
202
|
|
omlish/lite/contextmanagers.py
CHANGED
omlish/lite/inject.py
CHANGED
omlish/marshal/__init__.py
CHANGED
|
@@ -143,6 +143,11 @@ from .polymorphism.unmarshal import ( # noqa
|
|
|
143
143
|
make_polymorphism_unmarshaler,
|
|
144
144
|
)
|
|
145
145
|
|
|
146
|
+
from .singular.base64 import ( # noqa
|
|
147
|
+
BASE64_MARSHALER_FACTORY,
|
|
148
|
+
BASE64_UNMARSHALER_FACTORY,
|
|
149
|
+
)
|
|
150
|
+
|
|
146
151
|
from .singular.primitives import ( # noqa
|
|
147
152
|
PRIMITIVE_TYPES,
|
|
148
153
|
)
|
omlish/marshal/base.py
CHANGED
|
@@ -102,6 +102,9 @@ from .registries import RegistryItem
|
|
|
102
102
|
from .values import Value
|
|
103
103
|
|
|
104
104
|
|
|
105
|
+
T = ta.TypeVar('T')
|
|
106
|
+
|
|
107
|
+
|
|
105
108
|
##
|
|
106
109
|
|
|
107
110
|
|
|
@@ -382,6 +385,9 @@ class MarshalContext(BaseContext, lang.Final):
|
|
|
382
385
|
except mfs.MatchGuardError:
|
|
383
386
|
raise UnhandledTypeError(rty) # noqa
|
|
384
387
|
|
|
388
|
+
def marshal(self, obj: ta.Any, ty: ta.Any | None = None) -> Value:
|
|
389
|
+
return self.make(ty if ty is not None else type(obj)).marshal(self, obj)
|
|
390
|
+
|
|
385
391
|
|
|
386
392
|
@dc.dataclass(frozen=True)
|
|
387
393
|
class UnmarshalContext(BaseContext, lang.Final):
|
|
@@ -394,6 +400,17 @@ class UnmarshalContext(BaseContext, lang.Final):
|
|
|
394
400
|
except mfs.MatchGuardError:
|
|
395
401
|
raise UnhandledTypeError(rty) # noqa
|
|
396
402
|
|
|
403
|
+
@ta.overload
|
|
404
|
+
def unmarshal(self, v: Value, ty: type[T]) -> T:
|
|
405
|
+
...
|
|
406
|
+
|
|
407
|
+
@ta.overload
|
|
408
|
+
def unmarshal(self, v: Value, ty: ta.Any) -> ta.Any:
|
|
409
|
+
...
|
|
410
|
+
|
|
411
|
+
def unmarshal(self, v, ty):
|
|
412
|
+
return self.make(ty).unmarshal(self, v)
|
|
413
|
+
|
|
397
414
|
|
|
398
415
|
##
|
|
399
416
|
|
omlish/marshal/global_.py
CHANGED
|
@@ -30,8 +30,11 @@ def global_marshaler_factory() -> MarshalerFactory:
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def marshal(obj: ta.Any, ty: ta.Any | None = None, **kwargs: ta.Any) -> Value:
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
return MarshalContext(
|
|
34
|
+
GLOBAL_REGISTRY,
|
|
35
|
+
factory=global_marshaler_factory(),
|
|
36
|
+
**kwargs,
|
|
37
|
+
).marshal(obj, ty)
|
|
35
38
|
|
|
36
39
|
|
|
37
40
|
##
|
|
@@ -53,8 +56,11 @@ def unmarshal(v: Value, ty: ta.Any, **kwargs: ta.Any) -> ta.Any:
|
|
|
53
56
|
|
|
54
57
|
|
|
55
58
|
def unmarshal(v, ty, **kwargs):
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
return UnmarshalContext(
|
|
60
|
+
GLOBAL_REGISTRY,
|
|
61
|
+
factory=global_unmarshaler_factory(),
|
|
62
|
+
**kwargs,
|
|
63
|
+
).unmarshal(v, ty)
|
|
58
64
|
|
|
59
65
|
|
|
60
66
|
##
|
omlish/marshal/standard.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import typing as ta
|
|
2
|
+
|
|
1
3
|
from .base import MarshalerFactory
|
|
2
4
|
from .base import MultiMarshalerFactory
|
|
3
5
|
from .base import MultiUnmarshalerFactory
|
|
@@ -26,8 +28,6 @@ from .objects.namedtuples import NamedtupleMarshalerFactory
|
|
|
26
28
|
from .objects.namedtuples import NamedtupleUnmarshalerFactory
|
|
27
29
|
from .polymorphism.unions import PrimitiveUnionMarshalerFactory
|
|
28
30
|
from .polymorphism.unions import PrimitiveUnionUnmarshalerFactory
|
|
29
|
-
from .singular.base64 import BASE64_MARSHALER_FACTORY
|
|
30
|
-
from .singular.base64 import BASE64_UNMARSHALER_FACTORY
|
|
31
31
|
from .singular.datetimes import DATETIME_MARSHALER_FACTORY
|
|
32
32
|
from .singular.datetimes import DATETIME_UNMARSHALER_FACTORY
|
|
33
33
|
from .singular.enums import EnumMarshalerFactory
|
|
@@ -56,7 +56,6 @@ STANDARD_MARSHALER_FACTORIES: list[MarshalerFactory] = [
|
|
|
56
56
|
LiteralMarshalerFactory(),
|
|
57
57
|
NUMBERS_MARSHALER_FACTORY,
|
|
58
58
|
UUID_MARSHALER_FACTORY,
|
|
59
|
-
BASE64_MARSHALER_FACTORY,
|
|
60
59
|
DATETIME_MARSHALER_FACTORY,
|
|
61
60
|
MaybeMarshalerFactory(),
|
|
62
61
|
MappingMarshalerFactory(),
|
|
@@ -66,12 +65,18 @@ STANDARD_MARSHALER_FACTORIES: list[MarshalerFactory] = [
|
|
|
66
65
|
]
|
|
67
66
|
|
|
68
67
|
|
|
69
|
-
def new_standard_marshaler_factory(
|
|
68
|
+
def new_standard_marshaler_factory(
|
|
69
|
+
*,
|
|
70
|
+
first: ta.Iterable[MarshalerFactory] | None = None,
|
|
71
|
+
last: ta.Iterable[MarshalerFactory] | None = None,
|
|
72
|
+
) -> MarshalerFactory:
|
|
70
73
|
return TypeCacheMarshalerFactory(
|
|
71
74
|
RecursiveMarshalerFactory(
|
|
72
|
-
MultiMarshalerFactory(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
MultiMarshalerFactory([
|
|
76
|
+
*(first if first is not None else []),
|
|
77
|
+
*STANDARD_MARSHALER_FACTORIES,
|
|
78
|
+
*(last if last is not None else []),
|
|
79
|
+
]),
|
|
75
80
|
),
|
|
76
81
|
)
|
|
77
82
|
|
|
@@ -90,7 +95,6 @@ STANDARD_UNMARSHALER_FACTORIES: list[UnmarshalerFactory] = [
|
|
|
90
95
|
LiteralUnmarshalerFactory(),
|
|
91
96
|
NUMBERS_UNMARSHALER_FACTORY,
|
|
92
97
|
UUID_UNMARSHALER_FACTORY,
|
|
93
|
-
BASE64_UNMARSHALER_FACTORY,
|
|
94
98
|
DATETIME_UNMARSHALER_FACTORY,
|
|
95
99
|
MaybeUnmarshalerFactory(),
|
|
96
100
|
MappingUnmarshalerFactory(),
|
|
@@ -100,12 +104,18 @@ STANDARD_UNMARSHALER_FACTORIES: list[UnmarshalerFactory] = [
|
|
|
100
104
|
]
|
|
101
105
|
|
|
102
106
|
|
|
103
|
-
def new_standard_unmarshaler_factory(
|
|
107
|
+
def new_standard_unmarshaler_factory(
|
|
108
|
+
*,
|
|
109
|
+
first: ta.Iterable[UnmarshalerFactory] | None = None,
|
|
110
|
+
last: ta.Iterable[UnmarshalerFactory] | None = None,
|
|
111
|
+
) -> UnmarshalerFactory:
|
|
104
112
|
return TypeCacheUnmarshalerFactory(
|
|
105
113
|
RecursiveUnmarshalerFactory(
|
|
106
|
-
MultiUnmarshalerFactory(
|
|
107
|
-
|
|
108
|
-
|
|
114
|
+
MultiUnmarshalerFactory([
|
|
115
|
+
*(first if first is not None else []),
|
|
116
|
+
*STANDARD_UNMARSHALER_FACTORIES,
|
|
117
|
+
*(last if last is not None else []),
|
|
118
|
+
]),
|
|
109
119
|
),
|
|
110
120
|
)
|
|
111
121
|
|
omlish/specs/jmespath/lexer.py
CHANGED
|
@@ -48,7 +48,7 @@ class Lexer:
|
|
|
48
48
|
self._enable_legacy_literals = False
|
|
49
49
|
self._current: str | None = None
|
|
50
50
|
|
|
51
|
-
def tokenize(self, expression: str, options: Options | None = None) -> ta.Generator[Token
|
|
51
|
+
def tokenize(self, expression: str, options: Options | None = None) -> ta.Generator[Token]:
|
|
52
52
|
if options is not None:
|
|
53
53
|
self._enable_legacy_literals = options.enable_legacy_literals
|
|
54
54
|
|
omlish/term/progressbar.py
CHANGED
|
@@ -65,7 +65,7 @@ class Harness:
|
|
|
65
65
|
##
|
|
66
66
|
|
|
67
67
|
@contextlib.contextmanager
|
|
68
|
-
def activate(self) -> ta.Generator[ta.Self
|
|
68
|
+
def activate(self) -> ta.Generator[ta.Self]:
|
|
69
69
|
check.none(self._inj)
|
|
70
70
|
check.not_in(self, _ACTIVE_HARNESSES)
|
|
71
71
|
_ACTIVE_HARNESSES.add(self)
|
|
@@ -107,7 +107,7 @@ class Harness:
|
|
|
107
107
|
self,
|
|
108
108
|
pytest_scope: PytestScope,
|
|
109
109
|
request: pytest.FixtureRequest,
|
|
110
|
-
) -> ta.Generator[None
|
|
110
|
+
) -> ta.Generator[None]:
|
|
111
111
|
ss = _SCOPES_BY_PYTEST_SCOPE[pytest_scope]
|
|
112
112
|
with inj.enter_seeded_scope(check.not_none(self._inj), ss, {
|
|
113
113
|
inj.Key(pytest.FixtureRequest, tag=pytest_scope): request,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
omlish/.manifests.json,sha256=Egsh9irGGefBuu0l9ppa8a-6lo-r9iD7DnUYVmHaTMY,8587
|
|
2
|
-
omlish/__about__.py,sha256=
|
|
2
|
+
omlish/__about__.py,sha256=JRplWNaIIKxW6IFs-T0T-tR3LQDJWSV_XQrzdVwPsaI,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
|
|
@@ -42,15 +42,15 @@ omlish/asyncs/asyncio/all.py,sha256=u2JpMEs-0AJ0Vd8yU10HvWD8rfKxdFfMiwBu2oDeuuQ,
|
|
|
42
42
|
omlish/asyncs/asyncio/channels.py,sha256=oniTpmw_eeKK70APyEZLhRUChwLwebE4N0_uZiwSKgQ,1085
|
|
43
43
|
omlish/asyncs/asyncio/sockets.py,sha256=i1a2DZ52IuvRQQQW8FJxEUFboqpKn_K08a_MsMaecqU,1264
|
|
44
44
|
omlish/asyncs/asyncio/streams.py,sha256=Laa9BNwajZ7Wt_rJoYMbQtfSX4Q4i-dVHhtYSekCHXM,1015
|
|
45
|
-
omlish/asyncs/asyncio/subprocesses.py,sha256=
|
|
45
|
+
omlish/asyncs/asyncio/subprocesses.py,sha256=jVtvitvWgCLzAhgSLabHTzIOcPmNQqnsJpDr6hy6zgU,6908
|
|
46
46
|
omlish/asyncs/asyncio/timeouts.py,sha256=lJ4qmDqyxUeAQCXJGiLL8pxYwoR1F1lntZ18HVf40Wo,452
|
|
47
47
|
omlish/asyncs/asyncio/utils.py,sha256=dCC4hXqCTKBpU5urAXsKUIIua2M9JXAtumwh7IUEu7E,2443
|
|
48
48
|
omlish/asyncs/bluelet/LICENSE,sha256=q5Kpj4s30qpi8H66tXFlh5v8_fkaKMFIzqdGfnN0Hz0,555
|
|
49
49
|
omlish/asyncs/bluelet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
50
|
omlish/asyncs/bluelet/all.py,sha256=aUV6PwnR8DqnEBS9wsZuPW_UtP6G9M8_KY-mmxZeVG0,1516
|
|
51
51
|
omlish/asyncs/bluelet/api.py,sha256=RFOd95cVSQ7NQNlOVfcIiVtf9cHYx0sLq2ugbR_LIQk,906
|
|
52
|
-
omlish/asyncs/bluelet/core.py,sha256=
|
|
53
|
-
omlish/asyncs/bluelet/events.py,sha256=
|
|
52
|
+
omlish/asyncs/bluelet/core.py,sha256=HmCLIXRZ3BO22dNybLZdCfL5yuQqTSUIhx8_glJGa40,5438
|
|
53
|
+
omlish/asyncs/bluelet/events.py,sha256=hLPm-MuqMg3p1baSJKQkYgntoEE6RmREjwFc2_s5vwI,2426
|
|
54
54
|
omlish/asyncs/bluelet/files.py,sha256=AYTldx_87MHUFr9TQZ7iBIUj7lqzM9pT2lXxsMG55Ys,2391
|
|
55
55
|
omlish/asyncs/bluelet/runner.py,sha256=dG4ymYjZgvS0iEv3CZtSm68ikljgW7qZ1Ci68UVRLr0,15477
|
|
56
56
|
omlish/asyncs/bluelet/sockets.py,sha256=62OH3dh5Ua5ykXjtCFF5jZFTpiDekPgcf2CDLaBFRDs,6754
|
|
@@ -69,13 +69,13 @@ omlish/bootstrap/main.py,sha256=RQAQVb_Cbk_Lnu-hSGMAo-aVQVIJ-E_TW7ZLsPO-ECk,5909
|
|
|
69
69
|
omlish/bootstrap/marshal.py,sha256=aKLeiOyPW6DelVK78dmw0axQzOMHX-ALrSqOOzYh05w,486
|
|
70
70
|
omlish/bootstrap/sys.py,sha256=r06ZroT2Rv0CBHiEweqDV6oWaMGNhFc4u0XBMBv3nnY,8793
|
|
71
71
|
omlish/codecs/__init__.py,sha256=-FDwRJFGagg-fZyQ8wup4GPuR6gHpmaChzthlykn-kY,876
|
|
72
|
-
omlish/codecs/base.py,sha256=
|
|
72
|
+
omlish/codecs/base.py,sha256=UTbImMPnbLqxtM6lbyuOIh2EwbSS1JGvi4Xn5lSMufo,2234
|
|
73
73
|
omlish/codecs/bytes.py,sha256=jlZ87OmZ52HhQDNyL87R3OIviK2qV5iU2jZYOTOLWjk,2157
|
|
74
74
|
omlish/codecs/chain.py,sha256=DrBi5vbaFfObfoppo6alwOmyW2XbrH2051cjExwr2Gs,527
|
|
75
75
|
omlish/codecs/funcs.py,sha256=p4imNt7TobyZVXWC-WhntHVu9KfJrO4QwdtPRh-cVOk,850
|
|
76
76
|
omlish/codecs/registry.py,sha256=2FnO5YP7ui1LzkguwESY0MP3WIdwgPTIJTM_4RyTOEg,3896
|
|
77
77
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
|
78
|
-
omlish/codecs/text.py,sha256=
|
|
78
|
+
omlish/codecs/text.py,sha256=MgAzXapiHie-hhLBmcho67WXfWbmhlHz4tNPcHXnWUk,5711
|
|
79
79
|
omlish/collections/__init__.py,sha256=AKf3dEpZar2KTrSaRF0VQ3CRjqUBZObY3zNwYL7lbmY,2690
|
|
80
80
|
omlish/collections/abc.py,sha256=p9zhL5oNV5WPyWmMn34fWfkuxPQAjOtL7WQA-Xsyhwk,2628
|
|
81
81
|
omlish/collections/bimap.py,sha256=3szDCscPJlFRtkpyVQNWneg4s50mr6Rd0jdTzVEIcnE,1661
|
|
@@ -109,7 +109,7 @@ omlish/collections/sorted/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
109
109
|
omlish/collections/sorted/skiplist.py,sha256=bcTO1hZvV5EnYxBZ3YBhdewXP_2aCTZra7tJ0pA7jjo,6194
|
|
110
110
|
omlish/collections/sorted/sorted.py,sha256=Y_-7bA8hXG1KXEx5sS_EoLiH-Ru6ERJEsjHIcJ-8-IA,3968
|
|
111
111
|
omlish/concurrent/__init__.py,sha256=9p-s8MvBEYDqHIoYU3OYoe-Nni22QdkW7nhZGEukJTM,197
|
|
112
|
-
omlish/concurrent/executors.py,sha256=
|
|
112
|
+
omlish/concurrent/executors.py,sha256=d5XSLetkcG41459TB3uUiTI6pHuH3MukR77lzelEh8M,1279
|
|
113
113
|
omlish/concurrent/futures.py,sha256=870tx8ELI8THvMnTrQoYIlEFKO9hM4KUrlehckJqKBU,4238
|
|
114
114
|
omlish/concurrent/threadlets.py,sha256=JfirbTDJgy9Ouokz_VmHeAAPS7cih8qMUJrN-owwXD4,2423
|
|
115
115
|
omlish/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -265,7 +265,7 @@ omlish/formats/json/__init__.py,sha256=i41uhoyXjuLjj5JmdRj4Ud2sfKD0j6KAyk_XyyCIB
|
|
|
265
265
|
omlish/formats/json/codecs.py,sha256=wvPHZw8cDHaOV6u7e9rfpCH3JVF_IjA6ND_fQUhcCXU,844
|
|
266
266
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
|
267
267
|
omlish/formats/json/encoding.py,sha256=iwoYyJePibgvRDZ6e9b2OlXmOBJEczquRNoiffVf3hE,502
|
|
268
|
-
omlish/formats/json/literals.py,sha256=
|
|
268
|
+
omlish/formats/json/literals.py,sha256=lXwS7rUOZRl7nZ8VofCCqO4VcI3udLiA5xclPSCzX6s,7751
|
|
269
269
|
omlish/formats/json/rendering.py,sha256=5p8kG1t3aGm2GXsb82h1S90Mmz4lzbX8sX9_qh7fH1U,4915
|
|
270
270
|
omlish/formats/json/types.py,sha256=ueO9-uOU2eVWowJf0LH1fHFLjZ6fTIZyq9qybcLQaiQ,147
|
|
271
271
|
omlish/formats/json/backends/__init__.py,sha256=K5nAP-fCgUvaSylHqgRvmJp6j6PTWdMjrNhvMouKrFc,161
|
|
@@ -279,8 +279,8 @@ omlish/formats/json/stream/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
279
279
|
omlish/formats/json/stream/building.py,sha256=SGbExmaerqOEiNSom2AERlpyXTj4dpM0QbMW-2WWM2o,2550
|
|
280
280
|
omlish/formats/json/stream/errors.py,sha256=c8M8UAYmIZ-vWZLeKD2jMj4EDCJbr9QR8Jq_DyHjujQ,43
|
|
281
281
|
omlish/formats/json/stream/lexing.py,sha256=0XbkpKm4rmn5DLRyqnVpyvBXMi_MjVEI1k6-TIgQWRM,7208
|
|
282
|
-
omlish/formats/json/stream/parsing.py,sha256=
|
|
283
|
-
omlish/formats/json/stream/rendering.py,sha256=
|
|
282
|
+
omlish/formats/json/stream/parsing.py,sha256=UClKJn-BkZzcvJFgzGdYbH7RszY5pKstyKuk4-NVVXs,6442
|
|
283
|
+
omlish/formats/json/stream/rendering.py,sha256=U0MyVoYRDv7JLI8e7ItwmxyKnqYhKvfJY4-ZBQ5lHzA,3694
|
|
284
284
|
omlish/formats/json/stream/utils.py,sha256=UhBRuWbb25wrdQWl8Ttq7xGRLoa329TvNdecGCZxgzg,1197
|
|
285
285
|
omlish/formats/json5/Json5.g4,sha256=ZUmgJPvj8lSMUD_v3wijp10ZQExYB5mu5Q089dYEJSU,2389
|
|
286
286
|
omlish/formats/json5/__init__.py,sha256=5D7pUwtS8HMgs8rGJG3xUBLhOq5uFUULcwE-jIlpwmY,139
|
|
@@ -288,7 +288,7 @@ omlish/formats/json5/codec.py,sha256=IVllnRk5Nc0CnrsPiC36P1Mh8MZeasU-yq8OBZRtIk0
|
|
|
288
288
|
omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC4,38
|
|
289
289
|
omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
|
|
290
290
|
omlish/formats/json5/parsing.py,sha256=CWJHfe_FXCQuyDk00a7PI5wOdROq7Tc3fbWrNuwaKCw,2346
|
|
291
|
-
omlish/formats/json5/rendering.py,sha256=
|
|
291
|
+
omlish/formats/json5/rendering.py,sha256=amSbWSxmy-3TG9xLFRXXGkKxTHM9Evlc90g3lxtCJas,1085
|
|
292
292
|
omlish/formats/json5/_antlr/Json5Lexer.py,sha256=LnURBD0tL35VHNpxqM4DOPrTkE_9oONHtbftRM26tak,23239
|
|
293
293
|
omlish/formats/json5/_antlr/Json5Listener.py,sha256=37Jhzu7tQEw6gLIxtcZtV5Yjn08kS-GkxF7d0KjXyo8,2097
|
|
294
294
|
omlish/formats/json5/_antlr/Json5Parser.py,sha256=YU9bP89nq97A8ZCrjIcbgoBg4z76-N-6IMFGQe_ws54,19679
|
|
@@ -306,7 +306,7 @@ omlish/funcs/pipes.py,sha256=E7Sz8Aj8ke_vCs5AMNwg1I36kRdHVGTnzxVQaDyn43U,2490
|
|
|
306
306
|
omlish/graphs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
307
307
|
omlish/graphs/dags.py,sha256=GsTVDehSGxIpjuZ3qe29dldhVydqWexZD9mpqZErhnI,4400
|
|
308
308
|
omlish/graphs/domination.py,sha256=iwQa4QUXitLU2X4cdPxJ1ltRRUTuXnz0lI8j4GtuBsw,7591
|
|
309
|
-
omlish/graphs/trees.py,sha256=
|
|
309
|
+
omlish/graphs/trees.py,sha256=mcfkzcfKhhG8W2KtOgMaUJTe15-_H5kBCjTqCBsFK5w,8221
|
|
310
310
|
omlish/graphs/dot/__init__.py,sha256=Y1MZRQBZkcYyG1Tn7K2FhL8aYbm4v4tk6f5g9AqEkUw,359
|
|
311
311
|
omlish/graphs/dot/items.py,sha256=GIzUqLHJPR4AVtF141uA8JnyybkRZx6mFYsNJHu_JVg,4087
|
|
312
312
|
omlish/graphs/dot/make.py,sha256=e-M1IEdh4kHEjJmBxpaEUPxvFLrm5uIXdGxjQZr2HRo,365
|
|
@@ -337,42 +337,42 @@ omlish/http/clients/httpx.py,sha256=Grl9_sG7QNIZj8HqaU7XduAsBDyfXl36RjbYQzQqal0,
|
|
|
337
337
|
omlish/http/clients/urllib.py,sha256=DVKFPLQzANiZmwnlbFw5pWs5ZPLLvvgCb3UInvCSqPE,2701
|
|
338
338
|
omlish/http/coro/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
339
339
|
omlish/http/coro/fdio.py,sha256=mFhOzUocGOwrxLbSssULHora3hINfTcOwLOggXemYag,4146
|
|
340
|
-
omlish/http/coro/server.py,sha256=
|
|
340
|
+
omlish/http/coro/server.py,sha256=94KsfrORaPHlbM0JXxwd6C63LP22L_Xp1QGvVm84Rlo,18647
|
|
341
341
|
omlish/http/coro/simple.py,sha256=wpIDGa4AYndmAq2mCCj2IWpkLx67uM3JpKXKgrHLiD8,3275
|
|
342
342
|
omlish/http/coro/sockets.py,sha256=ziTzdDCsw3mrwskoGBa4stqkm21ReNq6BtrM-ZkxB3k,2257
|
|
343
343
|
omlish/inject/__init__.py,sha256=pY-A8Q4v08-Xa4a-XdZ3lSFC3OwCO2T9HhesB67Q4tQ,1895
|
|
344
344
|
omlish/inject/binder.py,sha256=3-6KMOcSgFE5bvthy3YUrRzCX5w7YSGmdJ3Tv2yXZGw,4022
|
|
345
345
|
omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
|
|
346
346
|
omlish/inject/eagers.py,sha256=JBY7PcjXt-Rg9scQ1ol9xpcoTLXkXC_Ie9uwTWdzUkA,340
|
|
347
|
-
omlish/inject/elements.py,sha256=
|
|
347
|
+
omlish/inject/elements.py,sha256=y4luEO_-eOlVnLcUDiNGSyMXee4pusl46ZGr0JFhbcY,1405
|
|
348
348
|
omlish/inject/errors.py,sha256=_wkN2tF55gQzmMOMKJC_9jYHBZzaBiCDcyqI9Sf2UZs,626
|
|
349
349
|
omlish/inject/injector.py,sha256=fyvaRoJXo_oibx1_IiGkncP9oXnZSKtDm7-ULNKRXHE,1071
|
|
350
350
|
omlish/inject/inspect.py,sha256=Uq4KMloGWF_YS2mgZbrx-JXhZQnYHHKJSr68i9yoBVc,597
|
|
351
351
|
omlish/inject/keys.py,sha256=bkpaE_hXFZ1pX8xPU_Km4jPJh8rkk07fs5aA_8bpC5M,665
|
|
352
352
|
omlish/inject/listeners.py,sha256=wyPsAJsl45fZHmrFwsVBxaCiT7r_Riw1I8Eowwg5NHE,592
|
|
353
|
-
omlish/inject/managed.py,sha256
|
|
353
|
+
omlish/inject/managed.py,sha256=-9aBm1vRPOjNz4kgOmpt8S2T55s727t9RiggFBH8maU,2096
|
|
354
354
|
omlish/inject/multis.py,sha256=4K0iO5o1OLUnPScrTWmEQOoI34T1EXWm6-I4CIjIl6o,3389
|
|
355
355
|
omlish/inject/origins.py,sha256=-qXa18rIIkNwBdTrvASRDjgPYnoY6n6OPC222jJDrXg,551
|
|
356
356
|
omlish/inject/overrides.py,sha256=ybEcq9cDf6kvqu5mqnwi6Evj0MFjKNeE3r0oUlGw5E4,546
|
|
357
357
|
omlish/inject/privates.py,sha256=CyE-hvQ-F_uyCzcwfdiYVtfm9IF1WZvMDOYilFyZmWk,658
|
|
358
358
|
omlish/inject/providers.py,sha256=GDjSEN6iLsc-Tdu_OCPvFHWu4yP0Vn0pAyH_xjw1DPg,783
|
|
359
|
-
omlish/inject/scopes.py,sha256=
|
|
359
|
+
omlish/inject/scopes.py,sha256=MqGus6vCogQVRJlZUnoXFwEeHuGMSYv2NF23_OFxWHE,1995
|
|
360
360
|
omlish/inject/types.py,sha256=Z-ZEdgtCpHBNrbxxKaMVvfeD7hYXdL4rC7A9_VGxZ6g,256
|
|
361
361
|
omlish/inject/utils.py,sha256=5Xm6LEelY7QujhMK7oD5vqEtY7Ymg_oG1Y-ZdEGD3bc,592
|
|
362
362
|
omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
363
363
|
omlish/inject/impl/bindings.py,sha256=xSvUcoDz8NH-aNHPwBPEZsFg73K2WcF_A63npVbGt_k,420
|
|
364
364
|
omlish/inject/impl/elements.py,sha256=PM_055moROskSTQqmohEa6I0tt1OQ-VRNArXCMG6vyk,5947
|
|
365
|
-
omlish/inject/impl/injector.py,sha256=
|
|
365
|
+
omlish/inject/impl/injector.py,sha256=Ch47a_RyABZX6_DwbY9N8u4eALqpKLO_7dfVRpVATvQ,7545
|
|
366
366
|
omlish/inject/impl/inspect.py,sha256=reXkNsjyvJXva5379tHTWklVK0vzqGLP0BgI_4VVPgQ,3116
|
|
367
367
|
omlish/inject/impl/multis.py,sha256=j2QHSpJp0jPv10yZEZJwi0w62kXFQ25gkHa026xv4-Q,2053
|
|
368
368
|
omlish/inject/impl/origins.py,sha256=dgGdkoMN6I4DZrWjlpZYijeFsrF6Up1WPq_QSAgTtuQ,1676
|
|
369
369
|
omlish/inject/impl/privates.py,sha256=alpCYyk5VJ9lJknbRH2nLVNFYVvFhkj-VC1Vco3zCFQ,2613
|
|
370
370
|
omlish/inject/impl/providers.py,sha256=QnwhsujJFIHC0JTgd2Wlo1kP53i3CWTrj1nKU2DNxwg,2375
|
|
371
371
|
omlish/inject/impl/proxy.py,sha256=gyCME_W48Zrl7QJMKiIPwGpSctf5fhvh4ZldgtA9MEE,1641
|
|
372
|
-
omlish/inject/impl/scopes.py,sha256=
|
|
372
|
+
omlish/inject/impl/scopes.py,sha256=21ngZvtp38qUqwtXnQdn78EmDDzvK-hMw8rrg-ygK48,5905
|
|
373
373
|
omlish/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
374
374
|
omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
|
|
375
|
-
omlish/io/buffers.py,sha256=
|
|
375
|
+
omlish/io/buffers.py,sha256=2ZAAZn-fTAtPCgtwcH_UJrSr5ZS9VNRp7yynufv0Rmk,7291
|
|
376
376
|
omlish/io/fileno.py,sha256=dvzjLvGHoAcqziVvI6KYDQs2aLrxWdinRmR19GJFRdE,180
|
|
377
377
|
omlish/io/pyio.py,sha256=q4RBFVpBE5PYjnGPGT-_4pcZb7dFJmLJ4LtI8OoDRQY,95433
|
|
378
378
|
omlish/io/trampoline.py,sha256=yM7Evz7cgWpFj97IUiHgq9jfqpsx-deTSZwGl1qOnoM,7199
|
|
@@ -382,8 +382,8 @@ omlish/io/compress/adapters.py,sha256=LJHhjwMHXstoLyX_q0QhGoBAcqyYGWfzhzQbGBXHzH
|
|
|
382
382
|
omlish/io/compress/base.py,sha256=zwPnicyrEY-zersxdhxGHXxn02ycl8ew2uZXEecJea4,615
|
|
383
383
|
omlish/io/compress/brotli.py,sha256=sNDX5HmEVqg9_xID5NTFPAWuvlNPw5ixfOnnIWwZf_o,1189
|
|
384
384
|
omlish/io/compress/bz2.py,sha256=HtwBuBYHJ3MyWO9xJ0XhWpyIYTA3OszLrpu_J4kRRPA,1534
|
|
385
|
-
omlish/io/compress/codecs.py,sha256=
|
|
386
|
-
omlish/io/compress/gzip.py,sha256=
|
|
385
|
+
omlish/io/compress/codecs.py,sha256=kpSJrCSnfFxAwReZTwdcXsaHe0iqoFbdZtZxjzuzxu0,1792
|
|
386
|
+
omlish/io/compress/gzip.py,sha256=6nCWycCYo0_4cTMu4QMhu23MT1xbrwyf7E8sGGBkR_w,12199
|
|
387
387
|
omlish/io/compress/lz4.py,sha256=qaze1yVXexjJyN18Adh8fbTm_5pEeyytx66KoMUNpCU,2759
|
|
388
388
|
omlish/io/compress/lzma.py,sha256=qDyshBgBUSPcZpAyXiRXnqI7zx7x60UpPxn8K3nN8aM,2469
|
|
389
389
|
omlish/io/compress/snappy.py,sha256=JFoH_9l0Tr9AGaQ0jHRiP4TsFnG071l27mprCBcqt4c,704
|
|
@@ -393,7 +393,7 @@ omlish/io/coro/__init__.py,sha256=Mr8-GoDzOlA2sKmaDxuov2vPmjX_IeB_49I8dTSvjvA,10
|
|
|
393
393
|
omlish/io/coro/consts.py,sha256=4r6IMLBMic6MJHVn9UiORIkkPAuxsqtzFT3KV0fatC0,33
|
|
394
394
|
omlish/io/coro/direct.py,sha256=Y--rP3wvBAYMeYctokb5IGd8UyQGmEFChyKISmRg5k0,294
|
|
395
395
|
omlish/io/coro/readers.py,sha256=9VcXuBQ7BSoFen8UVuYFwnl2jJVjyilWV7QeqLNQtKU,4131
|
|
396
|
-
omlish/io/coro/stepped.py,sha256=
|
|
396
|
+
omlish/io/coro/stepped.py,sha256=92HXRwR_YQBJoLQlGANPXPa8I8EPeE_HybbzEpUs3N4,5637
|
|
397
397
|
omlish/io/fdio/__init__.py,sha256=XJMieft-Z-JEkpeARn0M1Jj7HYCjRHwfs2QfE8gdzQs,137
|
|
398
398
|
omlish/io/fdio/handlers.py,sha256=Bw2jhrNili7XRlsf63mlSkrFPHmWM2jelb3BmWqy3Ok,1361
|
|
399
399
|
omlish/io/fdio/kqueue.py,sha256=xRxDPKcOw5_bMDS0buF5xi12WHok4reNnnaYTX4kkCk,3843
|
|
@@ -451,10 +451,10 @@ omlish/lite/__init__.py,sha256=ISLhM4q0LR1XXTCaHdZOZxBRyIsoZqYm4u0bf1BPcVk,148
|
|
|
451
451
|
omlish/lite/cached.py,sha256=O7ozcoDNFm1Hg2wtpHEqYSp_i_nCLNOP6Ueq_Uk-7mU,1300
|
|
452
452
|
omlish/lite/check.py,sha256=CVUp_lVjTvnFdlKCh-S7GMJtp6UoQOU7lhZYdTUaSB8,13860
|
|
453
453
|
omlish/lite/configs.py,sha256=4-1uVxo-aNV7vMKa7PVNhM610eejG1WepB42-Dw2xQI,914
|
|
454
|
-
omlish/lite/contextmanagers.py,sha256=
|
|
454
|
+
omlish/lite/contextmanagers.py,sha256=jpMxp5xwooRQJxsQ6J2ll4AJP9O7a5_YrLCGgwUFfD0,5703
|
|
455
455
|
omlish/lite/dataclasses.py,sha256=vAxWRkEZfeFwU6Hy9UTCynD-pz2fkCcLY27odDqs1n8,1918
|
|
456
456
|
omlish/lite/imports.py,sha256=JDYRFxu-ofHEBfd5VV3b27oKOLhtTpuzte1_Nt7yLgw,1352
|
|
457
|
-
omlish/lite/inject.py,sha256=
|
|
457
|
+
omlish/lite/inject.py,sha256=xvmLmtD3_2INnkurJQv76_Rkh9usbApEQrXJ4cvuVAk,29019
|
|
458
458
|
omlish/lite/json.py,sha256=7-02Ny4fq-6YAu5ynvqoijhuYXWpLmfCI19GUeZnb1c,740
|
|
459
459
|
omlish/lite/logs.py,sha256=CWFG0NKGhqNeEgryF5atN2gkPYbUdTINEw_s1phbINM,51
|
|
460
460
|
omlish/lite/marshal.py,sha256=43fWY7CyLw3NGKHGxFqkiqKFGzXIHqayMVgfeHT02AU,18477
|
|
@@ -490,15 +490,15 @@ omlish/manifests/base.py,sha256=5CmayiuzdXXv9hB5tDnWqfAosAoEQ26YG0B-emkiTXU,941
|
|
|
490
490
|
omlish/manifests/load.py,sha256=XYSWJve4dYSaXNO4vSTv5REB6dqJEy9u-S0hoWOx8ko,6661
|
|
491
491
|
omlish/manifests/static.py,sha256=7YwOVh_Ek9_aTrWsWNO8kWS10_j4K7yv3TpXZSHsvDY,501
|
|
492
492
|
omlish/manifests/types.py,sha256=4iDPXWpJnLQkxnHtKqPNz3qdPgKzLpB3E5MTf9jYW8s,312
|
|
493
|
-
omlish/marshal/__init__.py,sha256=
|
|
494
|
-
omlish/marshal/base.py,sha256=
|
|
493
|
+
omlish/marshal/__init__.py,sha256=QeWqXKb6_Jk8vpX9Z-apWlM3nUbJY3uCPOm0k8Lw8b8,3584
|
|
494
|
+
omlish/marshal/base.py,sha256=3GMrhJBcnVrVtlQRQLOMgvV66MciAYpHKEQi5Ns3dIk,11853
|
|
495
495
|
omlish/marshal/errors.py,sha256=g5XJyTHd__8lfwQ4KwgK-E5WR6MoNTMrqKP2U_QRQQQ,307
|
|
496
496
|
omlish/marshal/factories.py,sha256=Q926jSVjaQLEmStnHLhm_c_vqEysN1LnDCwAsFLIzXw,2970
|
|
497
|
-
omlish/marshal/global_.py,sha256=
|
|
497
|
+
omlish/marshal/global_.py,sha256=vNLpwQVt7Nn9sA5bBh7c_JYcUu9-1CLyENq1zBH-rcM,1510
|
|
498
498
|
omlish/marshal/naming.py,sha256=7jQ204u_Kpc3-OGr-ctUHSv997DdWYRLh643qLHJhks,852
|
|
499
499
|
omlish/marshal/proxy.py,sha256=puKJpwPpuDlMOIrKMcLTRLJyMiL6n_Xs-p59AuDEymA,543
|
|
500
500
|
omlish/marshal/registries.py,sha256=FvC6qXHCizNB2QmU_N3orxW7iqfGYkiUXYYdTRWS6HA,2353
|
|
501
|
-
omlish/marshal/standard.py,sha256
|
|
501
|
+
omlish/marshal/standard.py,sha256=-Xfovb_T89BCNhgxRbRHVgOzqlQjYRrIDT6lUw67GGA,4812
|
|
502
502
|
omlish/marshal/values.py,sha256=ssHiWdg_L6M17kAn8GiGdPW7UeQOm3RDikWkvwblf5I,263
|
|
503
503
|
omlish/marshal/composite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
504
504
|
omlish/marshal/composite/iterables.py,sha256=YdkdWNUe_AzdUqiAsr7z3kaDcPeg7Znj3AuQepY_qaA,2647
|
|
@@ -623,7 +623,7 @@ omlish/specs/jmespath/ast.py,sha256=XhcUGodHIdsY3-hVZEfpeW6LBehRjLbxVFXkMfZhRdk,
|
|
|
623
623
|
omlish/specs/jmespath/cli.py,sha256=ThesJo0mWt5NXy0DK0-21QDLO894N0voXN0fG6QCHCw,2142
|
|
624
624
|
omlish/specs/jmespath/errors.py,sha256=Co1HiUBPFNwFgZY3FV_ayuZoSgZIAmDcImImxauYNxc,4435
|
|
625
625
|
omlish/specs/jmespath/functions.py,sha256=YnuwlgkcbUJWlqOvSpN3LGXZpF0fpImKa--FLkA7-qc,22571
|
|
626
|
-
omlish/specs/jmespath/lexer.py,sha256=
|
|
626
|
+
omlish/specs/jmespath/lexer.py,sha256=HBLuGK8kYXY2utmPE75Cg0TvMFF_A9Mqs5GOZypIq24,12627
|
|
627
627
|
omlish/specs/jmespath/parser.py,sha256=yfkydotVR4LBhrUTsptL_kLYDoGZrRN9zSEs_76kvZM,24441
|
|
628
628
|
omlish/specs/jmespath/scope.py,sha256=UyDsl9rv_c8DCjJBuVIA2ESu1jrgYvuwEKiaJDQKnT0,1590
|
|
629
629
|
omlish/specs/jmespath/visitor.py,sha256=J1vI5WMt8v0TxCXz1EfeU_Po-t-RxaqeoSoOeL99TxE,16615
|
|
@@ -737,7 +737,7 @@ omlish/term/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
737
737
|
omlish/term/codes.py,sha256=fDRhUYzCzllcvCfMMgEroJaQoxqFsfTivpYdVmnwcCE,6390
|
|
738
738
|
omlish/term/coloring.py,sha256=MCFYV_JTvEObTCJE12wfalW8OFFQB_KIFBKDtfES6Nk,2559
|
|
739
739
|
omlish/term/confirm.py,sha256=5aqZnfy60K9CBSfXDsD-zA84HJm5fBWb_Y1T1x8gRnw,918
|
|
740
|
-
omlish/term/progressbar.py,sha256=
|
|
740
|
+
omlish/term/progressbar.py,sha256=em2o2emwbfmJIB-EHljQBCkwHd-Zw8Zydl3n73IYvX0,3678
|
|
741
741
|
omlish/term/vt100/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
742
742
|
omlish/term/vt100/c.py,sha256=cAhDKXI81PZRtFmTotfad3HZGREP1QnOlWYoAw6v-Fw,3532
|
|
743
743
|
omlish/term/vt100/states.py,sha256=OxPUxfFTcfz56MhtDgIigEApChOtN6XO1g6R2H08mu4,8303
|
|
@@ -749,7 +749,7 @@ omlish/testing/pytest/helpers.py,sha256=HxiKvpJQ4b6WCiQXOqQTqKbmr7CMAgCF6hViT6pf
|
|
|
749
749
|
omlish/testing/pytest/marks.py,sha256=qhVnq-3LlQ5uRLS1LXYkh8Xk-8aQGOgs2Nr49T8YqOA,280
|
|
750
750
|
omlish/testing/pytest/skip.py,sha256=tra8FM5CZTh4M7ZWVf9YPmKUX4yhesf61XRoIkO4s9c,954
|
|
751
751
|
omlish/testing/pytest/inject/__init__.py,sha256=pdRKv1HcDmJ_yArKJbYITPXXZthRSGgBJWqITr0Er38,117
|
|
752
|
-
omlish/testing/pytest/inject/harness.py,sha256=
|
|
752
|
+
omlish/testing/pytest/inject/harness.py,sha256=uaFDli1ovhue-kfXV5WXyLn6cVOWNQf_2vFD13r-JyQ,5700
|
|
753
753
|
omlish/testing/pytest/plugins/__init__.py,sha256=ys1zXrYrNm7Uo6YOIVJ6Bd3dQo6kv387k7MbTYlqZSI,467
|
|
754
754
|
omlish/testing/pytest/plugins/_registry.py,sha256=IK04KlBgiOJxKAyCCgjpX2R-9tE-btalYJkgjLc8Te8,77
|
|
755
755
|
omlish/testing/pytest/plugins/depskip.py,sha256=9xsvf4Py31Cc3RMUBA-BcTkOstLmYsU1GA4iwNr3fPo,3209
|
|
@@ -866,9 +866,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
|
866
866
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
|
867
867
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
|
868
868
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
|
869
|
-
omlish-0.0.0.
|
|
870
|
-
omlish-0.0.0.
|
|
871
|
-
omlish-0.0.0.
|
|
872
|
-
omlish-0.0.0.
|
|
873
|
-
omlish-0.0.0.
|
|
874
|
-
omlish-0.0.0.
|
|
869
|
+
omlish-0.0.0.dev358.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
870
|
+
omlish-0.0.0.dev358.dist-info/METADATA,sha256=gziBFXTEdHJrfpEwufPfvtqYps1snUBY-OyT38yeNnc,4416
|
|
871
|
+
omlish-0.0.0.dev358.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
872
|
+
omlish-0.0.0.dev358.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
|
873
|
+
omlish-0.0.0.dev358.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
|
874
|
+
omlish-0.0.0.dev358.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|