omlish 0.0.0.dev332__py3-none-any.whl → 0.0.0.dev334__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/dataclasses/reflection.py +18 -0
- omlish/formats/json/__init__.py +9 -0
- omlish/formats/json/backends/__init__.py +5 -0
- omlish/funcs/match.py +1 -3
- omlish/marshal/global_.py +11 -1
- omlish/specs/jsonschema/__init__.py +8 -0
- omlish/specs/jsonschema/marshal.py +29 -0
- omlish/specs/openapi/marshal.py +84 -1
- omlish/specs/openapi/openapi.py +3 -27
- omlish/typedvalues/marshal.py +26 -12
- {omlish-0.0.0.dev332.dist-info → omlish-0.0.0.dev334.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev332.dist-info → omlish-0.0.0.dev334.dist-info}/RECORD +17 -16
- {omlish-0.0.0.dev332.dist-info → omlish-0.0.0.dev334.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev332.dist-info → omlish-0.0.0.dev334.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev332.dist-info → omlish-0.0.0.dev334.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev332.dist-info → omlish-0.0.0.dev334.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/dataclasses/reflection.py
CHANGED
@@ -29,6 +29,8 @@ class ClassReflection:
|
|
29
29
|
def cls(self) -> type:
|
30
30
|
return self._cls
|
31
31
|
|
32
|
+
#
|
33
|
+
|
32
34
|
@lang.cached_property
|
33
35
|
def spec(self) -> ClassSpec:
|
34
36
|
if (cs := get_class_spec(self._cls)) is not None:
|
@@ -60,6 +62,8 @@ class ClassReflection:
|
|
60
62
|
|
61
63
|
return cs
|
62
64
|
|
65
|
+
#
|
66
|
+
|
63
67
|
@lang.cached_property
|
64
68
|
def fields_inspection(self) -> FieldsInspection:
|
65
69
|
return inspect_fields(self._cls)
|
@@ -80,6 +84,20 @@ class ClassReflection:
|
|
80
84
|
def instance_fields(self) -> ta.Sequence[dc.Field]:
|
81
85
|
return [f for f in self.fields.values() if std_field_type(f) is StdFieldType.INSTANCE]
|
82
86
|
|
87
|
+
#
|
88
|
+
|
89
|
+
@lang.cached_property
|
90
|
+
def type_hints(self) -> ta.Mapping[str, ta.Any]:
|
91
|
+
return ta.get_type_hints(self._cls)
|
92
|
+
|
93
|
+
@lang.cached_property
|
94
|
+
def field_annotations(self) -> ta.Mapping[str, ta.Any]:
|
95
|
+
return {
|
96
|
+
f: self.type_hints[f]
|
97
|
+
for f in self.fields
|
98
|
+
if f in self.type_hints
|
99
|
+
}
|
100
|
+
|
83
101
|
|
84
102
|
def reflect(cls: type) -> ClassReflection:
|
85
103
|
return ClassReflection(cls)
|
omlish/formats/json/__init__.py
CHANGED
omlish/funcs/match.py
CHANGED
@@ -196,9 +196,7 @@ cached = CachedMatchFn
|
|
196
196
|
class MatchFnClass(MatchFn[P, T]):
|
197
197
|
_cls_match_fn: ta.ClassVar[MultiMatchFn]
|
198
198
|
|
199
|
-
|
200
|
-
super().__init__()
|
201
|
-
self.__match_fn: MatchFn[P, T] | None = None
|
199
|
+
__match_fn: MatchFn[P, T] | None = None
|
202
200
|
|
203
201
|
@property
|
204
202
|
def _match_fn(self) -> MatchFn[P, T]:
|
omlish/marshal/global_.py
CHANGED
@@ -29,7 +29,7 @@ def global_marshaler_factory() -> MarshalerFactory:
|
|
29
29
|
return new_standard_marshaler_factory()
|
30
30
|
|
31
31
|
|
32
|
-
def marshal(obj: ta.Any, ty:
|
32
|
+
def marshal(obj: ta.Any, ty: ta.Any | None = None, **kwargs: ta.Any) -> Value:
|
33
33
|
mc = MarshalContext(GLOBAL_REGISTRY, factory=global_marshaler_factory(), **kwargs)
|
34
34
|
return mc.make(ty if ty is not None else type(obj)).marshal(mc, obj)
|
35
35
|
|
@@ -42,7 +42,17 @@ def global_unmarshaler_factory() -> UnmarshalerFactory:
|
|
42
42
|
return new_standard_unmarshaler_factory()
|
43
43
|
|
44
44
|
|
45
|
+
@ta.overload
|
45
46
|
def unmarshal(v: Value, ty: type[T], **kwargs: ta.Any) -> T:
|
47
|
+
...
|
48
|
+
|
49
|
+
|
50
|
+
@ta.overload
|
51
|
+
def unmarshal(v: Value, ty: ta.Any, **kwargs: ta.Any) -> ta.Any:
|
52
|
+
...
|
53
|
+
|
54
|
+
|
55
|
+
def unmarshal(v, ty, **kwargs):
|
46
56
|
uc = UnmarshalContext(GLOBAL_REGISTRY, factory=global_unmarshaler_factory(), **kwargs)
|
47
57
|
return uc.make(ty).unmarshal(uc, v)
|
48
58
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import typing as ta
|
2
|
+
|
3
|
+
from ... import check
|
4
|
+
from ... import lang
|
5
|
+
from ... import marshal as msh
|
6
|
+
from .keywords.base import Keywords
|
7
|
+
from .keywords.parse import KeywordParser
|
8
|
+
from .keywords.render import render_keywords
|
9
|
+
|
10
|
+
|
11
|
+
##
|
12
|
+
|
13
|
+
|
14
|
+
class _KeywordsMarshaler(msh.Marshaler):
|
15
|
+
def marshal(self, ctx: msh.MarshalContext, o: ta.Any) -> msh.Value:
|
16
|
+
return render_keywords(check.isinstance(o, Keywords))
|
17
|
+
|
18
|
+
|
19
|
+
class _KeywordsUnmarshaler(msh.Unmarshaler):
|
20
|
+
def unmarshal(self, ctx: msh.UnmarshalContext, v: msh.Value) -> ta.Any:
|
21
|
+
return KeywordParser(allow_unknown=True).parse_keywords(check.isinstance(v, ta.Mapping))
|
22
|
+
|
23
|
+
|
24
|
+
@lang.static_init
|
25
|
+
def _install_standard_marshalling() -> None:
|
26
|
+
msh.install_standard_factories(
|
27
|
+
msh.TypeMapMarshalerFactory({Keywords: _KeywordsMarshaler()}),
|
28
|
+
msh.TypeMapUnmarshalerFactory({Keywords: _KeywordsUnmarshaler()}),
|
29
|
+
)
|
omlish/specs/openapi/marshal.py
CHANGED
@@ -6,10 +6,12 @@ from ... import lang
|
|
6
6
|
from ... import marshal as msh
|
7
7
|
from ... import reflect as rfl
|
8
8
|
from ...funcs import match as mfs
|
9
|
+
from .. import jsonschema as jsch
|
9
10
|
from .openapi import Reference
|
11
|
+
from .openapi import Schema
|
10
12
|
|
11
13
|
|
12
|
-
|
14
|
+
##
|
13
15
|
|
14
16
|
|
15
17
|
def _reference_union_arg(rty: rfl.Type) -> rfl.Type | None:
|
@@ -19,6 +21,9 @@ def _reference_union_arg(rty: rfl.Type) -> rfl.Type | None:
|
|
19
21
|
return None
|
20
22
|
|
21
23
|
|
24
|
+
#
|
25
|
+
|
26
|
+
|
22
27
|
@dc.dataclass(frozen=True)
|
23
28
|
class _ReferenceUnionMarshaler(msh.Marshaler):
|
24
29
|
m: msh.Marshaler
|
@@ -37,6 +42,9 @@ class _ReferenceUnionMarshalerFactory(msh.MarshalerFactoryMatchClass):
|
|
37
42
|
return _ReferenceUnionMarshaler(ctx.make(check.not_none(_reference_union_arg(rty))), ctx.make(Reference))
|
38
43
|
|
39
44
|
|
45
|
+
#
|
46
|
+
|
47
|
+
|
40
48
|
@dc.dataclass(frozen=True)
|
41
49
|
class _ReferenceUnionUnmarshaler(msh.Unmarshaler):
|
42
50
|
u: msh.Unmarshaler
|
@@ -57,9 +65,84 @@ class _ReferenceUnionUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
|
|
57
65
|
return _ReferenceUnionUnmarshaler(ctx.make(check.not_none(_reference_union_arg(rty))), ctx.make(Reference))
|
58
66
|
|
59
67
|
|
68
|
+
##
|
69
|
+
|
70
|
+
|
71
|
+
@dc.dataclass(frozen=True)
|
72
|
+
class _SchemaMarshaler(msh.Marshaler):
|
73
|
+
m_dct: ta.Mapping[str, tuple[str, msh.Marshaler]]
|
74
|
+
kw_m: msh.Marshaler
|
75
|
+
|
76
|
+
def marshal(self, ctx: msh.MarshalContext, o: ta.Any) -> msh.Value:
|
77
|
+
sch: Schema = check.isinstance(o, Schema)
|
78
|
+
dct = {}
|
79
|
+
for f, (k, fm) in self.m_dct.items():
|
80
|
+
fv = getattr(sch, f)
|
81
|
+
if fv is None:
|
82
|
+
continue
|
83
|
+
dct[k] = fm.marshal(ctx, fv)
|
84
|
+
if sch.keywords is not None:
|
85
|
+
dct.update(keywords=self.kw_m.marshal(ctx, sch.keywords))
|
86
|
+
return dct
|
87
|
+
|
88
|
+
|
89
|
+
class _SchemaMarshalerFactory(msh.MarshalerFactoryMatchClass):
|
90
|
+
@mfs.simple(lambda _, ctx, rty: rty is Schema)
|
91
|
+
def _build(self, ctx: msh.MarshalContext, rty: rfl.Type) -> msh.Marshaler:
|
92
|
+
return _SchemaMarshaler(
|
93
|
+
{
|
94
|
+
f: (msh.translate_name(f, msh.Naming.LOW_CAMEL), ctx.make(rfl.type_(a)))
|
95
|
+
for f, a in dc.reflect(Schema).field_annotations.items()
|
96
|
+
if f != 'keywords'
|
97
|
+
},
|
98
|
+
ctx.make(jsch.Keywords),
|
99
|
+
)
|
100
|
+
|
101
|
+
|
102
|
+
#
|
103
|
+
|
104
|
+
|
105
|
+
@dc.dataclass(frozen=True)
|
106
|
+
class _SchemaUnmarshaler(msh.Unmarshaler):
|
107
|
+
u_dct: ta.Mapping[str, tuple[str, msh.Unmarshaler]]
|
108
|
+
kw_u: msh.Unmarshaler
|
109
|
+
|
110
|
+
def unmarshal(self, ctx: msh.UnmarshalContext, v: msh.Value) -> ta.Any:
|
111
|
+
dct = dict(check.isinstance(v, ta.Mapping))
|
112
|
+
kw = {}
|
113
|
+
for k, (f, fu) in self.u_dct.items():
|
114
|
+
try:
|
115
|
+
kv = dct.pop(k)
|
116
|
+
except KeyError:
|
117
|
+
continue
|
118
|
+
kw[f] = fu.unmarshal(ctx, kv)
|
119
|
+
if dct:
|
120
|
+
kw.update(keywords=self.kw_u.unmarshal(ctx, dct))
|
121
|
+
return Schema(**kw)
|
122
|
+
|
123
|
+
|
124
|
+
class _SchemaUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
|
125
|
+
@mfs.simple(lambda _, ctx, rty: rty is Schema)
|
126
|
+
def _build(self, ctx: msh.UnmarshalContext, rty: rfl.Type) -> msh.Unmarshaler:
|
127
|
+
return _SchemaUnmarshaler(
|
128
|
+
{
|
129
|
+
msh.translate_name(f, msh.Naming.LOW_CAMEL): (f, ctx.make(rfl.type_(a)))
|
130
|
+
for f, a in dc.reflect(Schema).field_annotations.items()
|
131
|
+
if f != 'keywords'
|
132
|
+
},
|
133
|
+
ctx.make(jsch.Keywords),
|
134
|
+
)
|
135
|
+
|
136
|
+
|
137
|
+
##
|
138
|
+
|
139
|
+
|
60
140
|
@lang.static_init
|
61
141
|
def _install_standard_marshalling() -> None:
|
62
142
|
msh.install_standard_factories(
|
63
143
|
_ReferenceUnionMarshalerFactory(),
|
64
144
|
_ReferenceUnionUnmarshalerFactory(),
|
145
|
+
|
146
|
+
_SchemaMarshalerFactory(),
|
147
|
+
_SchemaUnmarshalerFactory(),
|
65
148
|
)
|
omlish/specs/openapi/openapi.py
CHANGED
@@ -7,6 +7,7 @@ from ... import check
|
|
7
7
|
from ... import dataclasses as dc
|
8
8
|
from ... import marshal as msh
|
9
9
|
from ...formats import json
|
10
|
+
from .. import jsonschema as jsch
|
10
11
|
|
11
12
|
|
12
13
|
##
|
@@ -76,7 +77,6 @@ class Discriminator:
|
|
76
77
|
|
77
78
|
|
78
79
|
@dc.dataclass(frozen=True)
|
79
|
-
@msh.update_object_metadata(field_naming=msh.Naming.LOW_CAMEL, unknown_field='x')
|
80
80
|
class Schema:
|
81
81
|
"""https://swagger.io/specification/#schema-object"""
|
82
82
|
|
@@ -85,31 +85,7 @@ class Schema:
|
|
85
85
|
external_docs: ta.Optional['ExternalDocumentation'] = None
|
86
86
|
example: ta.Any | None = None
|
87
87
|
|
88
|
-
|
89
|
-
|
90
|
-
type: str | None = None
|
91
|
-
format: str | None = None
|
92
|
-
one_of: ta.Any = None
|
93
|
-
all_of: ta.Any = None
|
94
|
-
default: ta.Any = None
|
95
|
-
enum: ta.Any = None
|
96
|
-
items: ta.Any = None
|
97
|
-
required: ta.Any = None
|
98
|
-
properties: ta.Any = None
|
99
|
-
description: str | None = None
|
100
|
-
title: str | None = None
|
101
|
-
deprecated: bool | None = None
|
102
|
-
nullable: bool | None = None
|
103
|
-
additional_properties: ta.Any = None
|
104
|
-
|
105
|
-
#
|
106
|
-
|
107
|
-
x: ta.Mapping[str, ta.Any] | None = None
|
108
|
-
|
109
|
-
@dc.init
|
110
|
-
def _check_x(self) -> None:
|
111
|
-
for k in self.x or {}:
|
112
|
-
check.arg(k.startswith('x-'))
|
88
|
+
keywords: jsch.Keywords | None = None
|
113
89
|
|
114
90
|
|
115
91
|
@dc.dataclass(frozen=True)
|
@@ -230,7 +206,7 @@ class ParameterCommon:
|
|
230
206
|
style: str | None = None
|
231
207
|
explode: bool | None = None
|
232
208
|
allow_reserved: bool | None = None
|
233
|
-
schema: Schema | None = None
|
209
|
+
schema: Schema | Reference | None = None
|
234
210
|
example: ta.Any = None
|
235
211
|
examples: ta.Mapping[str, Example | Reference] | None = None
|
236
212
|
|
omlish/typedvalues/marshal.py
CHANGED
@@ -96,30 +96,44 @@ def _build_typed_values_impls(rty: rfl.Type) -> msh.Impls:
|
|
96
96
|
return msh.Impls(tv_impls)
|
97
97
|
|
98
98
|
|
99
|
+
#
|
100
|
+
|
101
|
+
|
102
|
+
def build_typed_values_marshaler(ctx: msh.MarshalContext, rty: rfl.Type) -> msh.Marshaler:
|
103
|
+
tv_m = msh.make_polymorphism_marshaler(
|
104
|
+
msh.Impls(_build_typed_values_impls(rty)),
|
105
|
+
msh.WrapperTypeTagging(),
|
106
|
+
ctx,
|
107
|
+
)
|
108
|
+
return msh.IterableMarshaler(tv_m)
|
109
|
+
|
110
|
+
|
99
111
|
class TypedValuesMarshalerFactory(msh.MarshalerFactoryMatchClass):
|
100
112
|
@mfs.simple(lambda _, ctx, rty: isinstance(rty, rfl.Generic) and rty.cls is TypedValues)
|
101
113
|
def _build(self, ctx: msh.MarshalContext, rty: rfl.Type) -> msh.Marshaler:
|
102
|
-
|
103
|
-
msh.Impls(_build_typed_values_impls(rty)),
|
104
|
-
msh.WrapperTypeTagging(),
|
105
|
-
ctx,
|
106
|
-
)
|
107
|
-
return msh.IterableMarshaler(tv_m)
|
114
|
+
return build_typed_values_marshaler(ctx, rty)
|
108
115
|
|
109
116
|
@mfs.simple(lambda _, ctx, rty: rty is TypedValues)
|
110
117
|
def _build_concrete(self, ctx: msh.MarshalContext, rty: rfl.Type) -> msh.Marshaler:
|
111
118
|
raise NotImplementedError
|
112
119
|
|
113
120
|
|
121
|
+
#
|
122
|
+
|
123
|
+
|
124
|
+
def build_typed_values_unmarshaler(ctx: msh.UnmarshalContext, rty: rfl.Type) -> msh.Unmarshaler:
|
125
|
+
tv_u = msh.make_polymorphism_unmarshaler(
|
126
|
+
msh.Impls(_build_typed_values_impls(rty)),
|
127
|
+
msh.WrapperTypeTagging(),
|
128
|
+
ctx,
|
129
|
+
)
|
130
|
+
return msh.IterableUnmarshaler(lambda it: TypedValues(*it), tv_u) # noqa
|
131
|
+
|
132
|
+
|
114
133
|
class TypedValuesUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
|
115
134
|
@mfs.simple(lambda _, ctx, rty: isinstance(rty, rfl.Generic) and rty.cls is TypedValues)
|
116
135
|
def _build(self, ctx: msh.UnmarshalContext, rty: rfl.Type) -> msh.Unmarshaler:
|
117
|
-
|
118
|
-
msh.Impls(_build_typed_values_impls(rty)),
|
119
|
-
msh.WrapperTypeTagging(),
|
120
|
-
ctx,
|
121
|
-
)
|
122
|
-
return msh.IterableUnmarshaler(lambda it: TypedValues(*it), tv_u) # noqa
|
136
|
+
return build_typed_values_unmarshaler(ctx, rty)
|
123
137
|
|
124
138
|
@mfs.simple(lambda _, ctx, rty: rty is TypedValues)
|
125
139
|
def _build_concrete(self, ctx: msh.UnmarshalContext, rty: rfl.Type) -> msh.Unmarshaler:
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=orgsRvtpHu8tdhaCvlP9v3P495OJopYYiHKjK68WtWg,8587
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=PGELc-IWonEnbSdy9g9Y972xiTIxoswSoUSwZonf5FU,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
|
@@ -140,7 +140,7 @@ omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,2
|
|
140
140
|
omlish/dataclasses/errors.py,sha256=tyv3WR6az66uGGiq9FIuCHvy1Ef-G7zeMY7mMG6hy2Y,2527
|
141
141
|
omlish/dataclasses/inspect.py,sha256=BlpPghVCU3w_YDnONEqqE99YHzJM2q3eoqe39YX25Ko,4596
|
142
142
|
omlish/dataclasses/internals.py,sha256=vIGCZnStgD3ef4drYRtVOrxhxmAPa0vJpo4pXcDcQvM,3073
|
143
|
-
omlish/dataclasses/reflection.py,sha256=
|
143
|
+
omlish/dataclasses/reflection.py,sha256=r0cZWIajIyPeacwR6PGfJGbL8dg7jHXZSvJjey81rPo,2766
|
144
144
|
omlish/dataclasses/specs.py,sha256=JFpMILJhxiWYmfTD4TDl03O13o1i0Rwgf14WpI7U9go,6193
|
145
145
|
omlish/dataclasses/utils.py,sha256=gv6za6oJYBr1VaeGd7oXqq9lhBs_sxkpC27XYzJggno,1870
|
146
146
|
omlish/dataclasses/api/__init__.py,sha256=k5iS9QOwf_f4iOfGffYhnqDOcmEIwEUUTp00u11kIPM,455
|
@@ -260,7 +260,7 @@ omlish/formats/edn/values.py,sha256=jf0g88KJIMALxcuH51SoaMWg1HqTUqc1ugldmyyXWoc,
|
|
260
260
|
omlish/formats/ini/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
261
261
|
omlish/formats/ini/codec.py,sha256=omuFg0kiDksv8rRlWd_v32ebzEcKlgmiPgGID3bRi2M,631
|
262
262
|
omlish/formats/ini/sections.py,sha256=7wYyZdVTQbMPFpjQEACKJfAEPzUBrogINsrvFgxJoZ0,1015
|
263
|
-
omlish/formats/json/__init__.py,sha256=
|
263
|
+
omlish/formats/json/__init__.py,sha256=MAvDQlUgn6DlVZaL03539tYfdtU0cT1Y9Rcy9yBhjYs,889
|
264
264
|
omlish/formats/json/codecs.py,sha256=E5KErfqsgGZq763ixXLT3qysbk5MIsypT92xG5aSaIs,796
|
265
265
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
266
266
|
omlish/formats/json/encoding.py,sha256=iwoYyJePibgvRDZ6e9b2OlXmOBJEczquRNoiffVf3hE,502
|
@@ -268,7 +268,7 @@ omlish/formats/json/json.py,sha256=Mdqv2vdMi7gp96eV0BIYH5UdWpjWfsh-tSMZeywG-08,3
|
|
268
268
|
omlish/formats/json/literals.py,sha256=MMou9UIoztL9EyX2Zhv3Kzfq8eaKMfGNCFhL16n-fTk,7532
|
269
269
|
omlish/formats/json/rendering.py,sha256=0S_ppr5ihkUW7PP0mipZXHr72otqwUCNfanwopcboag,4571
|
270
270
|
omlish/formats/json/types.py,sha256=ueO9-uOU2eVWowJf0LH1fHFLjZ6fTIZyq9qybcLQaiQ,147
|
271
|
-
omlish/formats/json/backends/__init__.py,sha256=
|
271
|
+
omlish/formats/json/backends/__init__.py,sha256=foi543hIIODpUfvlwVMtkWDGhZSRGaC3BBxdIrinofo,160
|
272
272
|
omlish/formats/json/backends/base.py,sha256=WqtyoM82pyM0NyqpPwndrebr1bUVU1QlpmVQNrcAO8c,1114
|
273
273
|
omlish/formats/json/backends/default.py,sha256=a-eM-Y1IHdpYvZFjazwq_orRncjtYR7BKxP_2kpEXog,322
|
274
274
|
omlish/formats/json/backends/jiter.py,sha256=8qv_XWGpcupPtVm6Z_egHio_iY1Kk8eqkvXTF6fVZr4,1193
|
@@ -300,7 +300,7 @@ omlish/formats/toml/parser.py,sha256=0laC7Br_Colk8QxgmuU_pPg6fhcAQ2rMB2saSlLm9S0
|
|
300
300
|
omlish/formats/toml/writer.py,sha256=HIp6XvriXaPTLqyLe-fkIiEf1Pyhsp0TcOg5rFBpO3g,3226
|
301
301
|
omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
302
302
|
omlish/funcs/genmachine.py,sha256=D9dChaliNBIjYE6lJP5ctcVQUCffNBhceyaaLvBJ7ns,2578
|
303
|
-
omlish/funcs/match.py,sha256=
|
303
|
+
omlish/funcs/match.py,sha256=MAzpWkdIvhdoQTm-R2ivRDkfG8--RmdusiRF137cKEM,6085
|
304
304
|
omlish/funcs/pairs.py,sha256=VCkZjDmJGtR76BsejsHNfb4TcpHCtkkmak-zWDFchAo,3904
|
305
305
|
omlish/funcs/pipes.py,sha256=E7Sz8Aj8ke_vCs5AMNwg1I36kRdHVGTnzxVQaDyn43U,2490
|
306
306
|
omlish/graphs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -492,7 +492,7 @@ omlish/marshal/__init__.py,sha256=7jIXe9wQv-if1iRUuU6a4MdHScTLFFL8X2JwHaNTAxI,33
|
|
492
492
|
omlish/marshal/base.py,sha256=Q0ZRsz5z0NTI6PeWPc9mdMstJryDDbeIAdpKH9-SDps,11427
|
493
493
|
omlish/marshal/errors.py,sha256=g5XJyTHd__8lfwQ4KwgK-E5WR6MoNTMrqKP2U_QRQQQ,307
|
494
494
|
omlish/marshal/factories.py,sha256=Q926jSVjaQLEmStnHLhm_c_vqEysN1LnDCwAsFLIzXw,2970
|
495
|
-
omlish/marshal/global_.py,sha256=
|
495
|
+
omlish/marshal/global_.py,sha256=nTJmC17O8SJNURScIdYqEY72h-dRy6D-SaDSUQCp-cY,1523
|
496
496
|
omlish/marshal/naming.py,sha256=7jQ204u_Kpc3-OGr-ctUHSv997DdWYRLh643qLHJhks,852
|
497
497
|
omlish/marshal/proxy.py,sha256=puKJpwPpuDlMOIrKMcLTRLJyMiL6n_Xs-p59AuDEymA,543
|
498
498
|
omlish/marshal/registries.py,sha256=FvC6qXHCizNB2QmU_N3orxW7iqfGYkiUXYYdTRWS6HA,2353
|
@@ -628,7 +628,8 @@ omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI
|
|
628
628
|
omlish/specs/jsonrpc/errors.py,sha256=-Zgmlo6bV6J8w5f8h9axQgLquIFBHDgIwcpufEH5NsE,707
|
629
629
|
omlish/specs/jsonrpc/marshal.py,sha256=HM736piPGnBZrg8CMLDX-L5fZpegyF6l6JUjzLoSDtk,1852
|
630
630
|
omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
|
631
|
-
omlish/specs/jsonschema/__init__.py,sha256
|
631
|
+
omlish/specs/jsonschema/__init__.py,sha256=-A5mPI3NPcGxqTfux9gvV56O6GbQG9MytAGB98E-1DU,1227
|
632
|
+
omlish/specs/jsonschema/marshal.py,sha256=-pmBtNnKC0sxGg3TMVWngTbSSAwG1zQyt0D6aZutd84,873
|
632
633
|
omlish/specs/jsonschema/types.py,sha256=_H7ma99hD3_Xu42BFGHOXRI5p79tY8WBX8QE36k7lbw,472
|
633
634
|
omlish/specs/jsonschema/keywords/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
634
635
|
omlish/specs/jsonschema/keywords/base.py,sha256=QjkMrKw58j99r-Ug2I4Y-SGbyKSTVho5FUP_lWDQ4wA,3010
|
@@ -653,8 +654,8 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json,sha256=j
|
|
653
654
|
omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json,sha256=Lb-8tzmUtnCwl2SSre4f_7RsIWgnhNL1pMpWH54tDLQ,506
|
654
655
|
omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=cBCjHlQfMtK-ch4t40jfdcmzaHaj7TBId_wKvaHTelg,2834
|
655
656
|
omlish/specs/openapi/__init__.py,sha256=mIx7Askk3FNxGE1CDLBQUOOrRGYaqW7cPGVW4_nAFF4,187
|
656
|
-
omlish/specs/openapi/marshal.py,sha256=
|
657
|
-
omlish/specs/openapi/openapi.py,sha256=
|
657
|
+
omlish/specs/openapi/marshal.py,sha256=6CB2LCwFfU5rstqkgN_j4Z5rbnba2glzOxcSd01uffI,4451
|
658
|
+
omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
|
658
659
|
omlish/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
|
659
660
|
omlish/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
660
661
|
omlish/specs/proto/nodes.py,sha256=nwA6KyU9pZHLE9cO9dh46qTl6vfYJ8SjuUDlLBuoOms,776
|
@@ -854,12 +855,12 @@ omlish/typedvalues/collection.py,sha256=TjNuEEyTXbGfbsk7nvBB_Jhgz94R5JSs0u6ocNAl
|
|
854
855
|
omlish/typedvalues/consumer.py,sha256=peDQAgriSyBx_Hc8QHAhEgYy0oSS52qQ_7Tqdssl2AE,4375
|
855
856
|
omlish/typedvalues/generic.py,sha256=ft-x4X3k1oFirtYnDfsvrI3ZQikWM8lGLrvrOEbcGq0,742
|
856
857
|
omlish/typedvalues/holder.py,sha256=vu-umn-h1nvUqmtV5T9ZfQ_OoOYsERu8PhI2N48Ryns,1133
|
857
|
-
omlish/typedvalues/marshal.py,sha256=
|
858
|
+
omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0,4956
|
858
859
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
859
860
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
860
|
-
omlish-0.0.0.
|
861
|
-
omlish-0.0.0.
|
862
|
-
omlish-0.0.0.
|
863
|
-
omlish-0.0.0.
|
864
|
-
omlish-0.0.0.
|
865
|
-
omlish-0.0.0.
|
861
|
+
omlish-0.0.0.dev334.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
862
|
+
omlish-0.0.0.dev334.dist-info/METADATA,sha256=PQVRplnQdzBebIw1s5NvsTM-U5O9KJluBfmJYhT5h6o,4416
|
863
|
+
omlish-0.0.0.dev334.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
864
|
+
omlish-0.0.0.dev334.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
865
|
+
omlish-0.0.0.dev334.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
866
|
+
omlish-0.0.0.dev334.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|