omlish 0.0.0.dev250__py3-none-any.whl → 0.0.0.dev252__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 +3 -3
- omlish/dispatch/impls.py +7 -0
- omlish/formats/json5/parsing.py +1 -1
- omlish/lang/params.py +2 -2
- omlish/lite/marshal.py +1 -1
- omlish/math/stats.py +2 -2
- omlish/specs/__init__.py +0 -2
- omlish/specs/jsonrpc/types.py +3 -0
- omlish/specs/proto/Protobuf3.g4 +396 -0
- omlish/specs/proto/__init__.py +0 -0
- omlish/specs/proto/_antlr/Protobuf3Lexer.py +339 -0
- omlish/specs/proto/_antlr/Protobuf3Listener.py +447 -0
- omlish/specs/proto/_antlr/Protobuf3Parser.py +3908 -0
- omlish/specs/proto/_antlr/Protobuf3Visitor.py +256 -0
- omlish/specs/proto/_antlr/__init__.py +0 -0
- omlish/specs/proto/nodes.py +54 -0
- omlish/specs/proto/parsing.py +97 -0
- {omlish-0.0.0.dev250.dist-info → omlish-0.0.0.dev252.dist-info}/METADATA +5 -5
- {omlish-0.0.0.dev250.dist-info → omlish-0.0.0.dev252.dist-info}/RECORD +23 -14
- {omlish-0.0.0.dev250.dist-info → omlish-0.0.0.dev252.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev250.dist-info → omlish-0.0.0.dev252.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev250.dist-info → omlish-0.0.0.dev252.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev250.dist-info → omlish-0.0.0.dev252.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,256 @@
|
|
1
|
+
# type: ignore
|
2
|
+
# ruff: noqa
|
3
|
+
# flake8: noqa
|
4
|
+
# Generated from Protobuf3.g4 by ANTLR 4.13.2
|
5
|
+
from omlish.antlr._runtime._all import *
|
6
|
+
if "." in __name__:
|
7
|
+
from .Protobuf3Parser import Protobuf3Parser
|
8
|
+
else:
|
9
|
+
from Protobuf3Parser import Protobuf3Parser
|
10
|
+
|
11
|
+
# This class defines a complete generic visitor for a parse tree produced by Protobuf3Parser.
|
12
|
+
|
13
|
+
class Protobuf3Visitor(ParseTreeVisitor):
|
14
|
+
|
15
|
+
# Visit a parse tree produced by Protobuf3Parser#proto.
|
16
|
+
def visitProto(self, ctx:Protobuf3Parser.ProtoContext):
|
17
|
+
return self.visitChildren(ctx)
|
18
|
+
|
19
|
+
|
20
|
+
# Visit a parse tree produced by Protobuf3Parser#syntax.
|
21
|
+
def visitSyntax(self, ctx:Protobuf3Parser.SyntaxContext):
|
22
|
+
return self.visitChildren(ctx)
|
23
|
+
|
24
|
+
|
25
|
+
# Visit a parse tree produced by Protobuf3Parser#syntaxExtra.
|
26
|
+
def visitSyntaxExtra(self, ctx:Protobuf3Parser.SyntaxExtraContext):
|
27
|
+
return self.visitChildren(ctx)
|
28
|
+
|
29
|
+
|
30
|
+
# Visit a parse tree produced by Protobuf3Parser#importStmt.
|
31
|
+
def visitImportStmt(self, ctx:Protobuf3Parser.ImportStmtContext):
|
32
|
+
return self.visitChildren(ctx)
|
33
|
+
|
34
|
+
|
35
|
+
# Visit a parse tree produced by Protobuf3Parser#packageStmt.
|
36
|
+
def visitPackageStmt(self, ctx:Protobuf3Parser.PackageStmtContext):
|
37
|
+
return self.visitChildren(ctx)
|
38
|
+
|
39
|
+
|
40
|
+
# Visit a parse tree produced by Protobuf3Parser#option.
|
41
|
+
def visitOption(self, ctx:Protobuf3Parser.OptionContext):
|
42
|
+
return self.visitChildren(ctx)
|
43
|
+
|
44
|
+
|
45
|
+
# Visit a parse tree produced by Protobuf3Parser#optionName.
|
46
|
+
def visitOptionName(self, ctx:Protobuf3Parser.OptionNameContext):
|
47
|
+
return self.visitChildren(ctx)
|
48
|
+
|
49
|
+
|
50
|
+
# Visit a parse tree produced by Protobuf3Parser#optionBody.
|
51
|
+
def visitOptionBody(self, ctx:Protobuf3Parser.OptionBodyContext):
|
52
|
+
return self.visitChildren(ctx)
|
53
|
+
|
54
|
+
|
55
|
+
# Visit a parse tree produced by Protobuf3Parser#optionBodyVariable.
|
56
|
+
def visitOptionBodyVariable(self, ctx:Protobuf3Parser.OptionBodyVariableContext):
|
57
|
+
return self.visitChildren(ctx)
|
58
|
+
|
59
|
+
|
60
|
+
# Visit a parse tree produced by Protobuf3Parser#topLevelDef.
|
61
|
+
def visitTopLevelDef(self, ctx:Protobuf3Parser.TopLevelDefContext):
|
62
|
+
return self.visitChildren(ctx)
|
63
|
+
|
64
|
+
|
65
|
+
# Visit a parse tree produced by Protobuf3Parser#message.
|
66
|
+
def visitMessage(self, ctx:Protobuf3Parser.MessageContext):
|
67
|
+
return self.visitChildren(ctx)
|
68
|
+
|
69
|
+
|
70
|
+
# Visit a parse tree produced by Protobuf3Parser#messageBody.
|
71
|
+
def visitMessageBody(self, ctx:Protobuf3Parser.MessageBodyContext):
|
72
|
+
return self.visitChildren(ctx)
|
73
|
+
|
74
|
+
|
75
|
+
# Visit a parse tree produced by Protobuf3Parser#messageBodyContent.
|
76
|
+
def visitMessageBodyContent(self, ctx:Protobuf3Parser.MessageBodyContentContext):
|
77
|
+
return self.visitChildren(ctx)
|
78
|
+
|
79
|
+
|
80
|
+
# Visit a parse tree produced by Protobuf3Parser#enumDef.
|
81
|
+
def visitEnumDef(self, ctx:Protobuf3Parser.EnumDefContext):
|
82
|
+
return self.visitChildren(ctx)
|
83
|
+
|
84
|
+
|
85
|
+
# Visit a parse tree produced by Protobuf3Parser#enumBody.
|
86
|
+
def visitEnumBody(self, ctx:Protobuf3Parser.EnumBodyContext):
|
87
|
+
return self.visitChildren(ctx)
|
88
|
+
|
89
|
+
|
90
|
+
# Visit a parse tree produced by Protobuf3Parser#enumField.
|
91
|
+
def visitEnumField(self, ctx:Protobuf3Parser.EnumFieldContext):
|
92
|
+
return self.visitChildren(ctx)
|
93
|
+
|
94
|
+
|
95
|
+
# Visit a parse tree produced by Protobuf3Parser#enumValueOption.
|
96
|
+
def visitEnumValueOption(self, ctx:Protobuf3Parser.EnumValueOptionContext):
|
97
|
+
return self.visitChildren(ctx)
|
98
|
+
|
99
|
+
|
100
|
+
# Visit a parse tree produced by Protobuf3Parser#extend.
|
101
|
+
def visitExtend(self, ctx:Protobuf3Parser.ExtendContext):
|
102
|
+
return self.visitChildren(ctx)
|
103
|
+
|
104
|
+
|
105
|
+
# Visit a parse tree produced by Protobuf3Parser#service.
|
106
|
+
def visitService(self, ctx:Protobuf3Parser.ServiceContext):
|
107
|
+
return self.visitChildren(ctx)
|
108
|
+
|
109
|
+
|
110
|
+
# Visit a parse tree produced by Protobuf3Parser#rpc.
|
111
|
+
def visitRpc(self, ctx:Protobuf3Parser.RpcContext):
|
112
|
+
return self.visitChildren(ctx)
|
113
|
+
|
114
|
+
|
115
|
+
# Visit a parse tree produced by Protobuf3Parser#reserved.
|
116
|
+
def visitReserved(self, ctx:Protobuf3Parser.ReservedContext):
|
117
|
+
return self.visitChildren(ctx)
|
118
|
+
|
119
|
+
|
120
|
+
# Visit a parse tree produced by Protobuf3Parser#ranges.
|
121
|
+
def visitRanges(self, ctx:Protobuf3Parser.RangesContext):
|
122
|
+
return self.visitChildren(ctx)
|
123
|
+
|
124
|
+
|
125
|
+
# Visit a parse tree produced by Protobuf3Parser#rangeRule.
|
126
|
+
def visitRangeRule(self, ctx:Protobuf3Parser.RangeRuleContext):
|
127
|
+
return self.visitChildren(ctx)
|
128
|
+
|
129
|
+
|
130
|
+
# Visit a parse tree produced by Protobuf3Parser#fieldNames.
|
131
|
+
def visitFieldNames(self, ctx:Protobuf3Parser.FieldNamesContext):
|
132
|
+
return self.visitChildren(ctx)
|
133
|
+
|
134
|
+
|
135
|
+
# Visit a parse tree produced by Protobuf3Parser#typeRule.
|
136
|
+
def visitTypeRule(self, ctx:Protobuf3Parser.TypeRuleContext):
|
137
|
+
return self.visitChildren(ctx)
|
138
|
+
|
139
|
+
|
140
|
+
# Visit a parse tree produced by Protobuf3Parser#simpleType.
|
141
|
+
def visitSimpleType(self, ctx:Protobuf3Parser.SimpleTypeContext):
|
142
|
+
return self.visitChildren(ctx)
|
143
|
+
|
144
|
+
|
145
|
+
# Visit a parse tree produced by Protobuf3Parser#fieldNumber.
|
146
|
+
def visitFieldNumber(self, ctx:Protobuf3Parser.FieldNumberContext):
|
147
|
+
return self.visitChildren(ctx)
|
148
|
+
|
149
|
+
|
150
|
+
# Visit a parse tree produced by Protobuf3Parser#field.
|
151
|
+
def visitField(self, ctx:Protobuf3Parser.FieldContext):
|
152
|
+
return self.visitChildren(ctx)
|
153
|
+
|
154
|
+
|
155
|
+
# Visit a parse tree produced by Protobuf3Parser#fieldOptions.
|
156
|
+
def visitFieldOptions(self, ctx:Protobuf3Parser.FieldOptionsContext):
|
157
|
+
return self.visitChildren(ctx)
|
158
|
+
|
159
|
+
|
160
|
+
# Visit a parse tree produced by Protobuf3Parser#fieldOption.
|
161
|
+
def visitFieldOption(self, ctx:Protobuf3Parser.FieldOptionContext):
|
162
|
+
return self.visitChildren(ctx)
|
163
|
+
|
164
|
+
|
165
|
+
# Visit a parse tree produced by Protobuf3Parser#oneof.
|
166
|
+
def visitOneof(self, ctx:Protobuf3Parser.OneofContext):
|
167
|
+
return self.visitChildren(ctx)
|
168
|
+
|
169
|
+
|
170
|
+
# Visit a parse tree produced by Protobuf3Parser#oneofField.
|
171
|
+
def visitOneofField(self, ctx:Protobuf3Parser.OneofFieldContext):
|
172
|
+
return self.visitChildren(ctx)
|
173
|
+
|
174
|
+
|
175
|
+
# Visit a parse tree produced by Protobuf3Parser#mapField.
|
176
|
+
def visitMapField(self, ctx:Protobuf3Parser.MapFieldContext):
|
177
|
+
return self.visitChildren(ctx)
|
178
|
+
|
179
|
+
|
180
|
+
# Visit a parse tree produced by Protobuf3Parser#keyType.
|
181
|
+
def visitKeyType(self, ctx:Protobuf3Parser.KeyTypeContext):
|
182
|
+
return self.visitChildren(ctx)
|
183
|
+
|
184
|
+
|
185
|
+
# Visit a parse tree produced by Protobuf3Parser#reservedWord.
|
186
|
+
def visitReservedWord(self, ctx:Protobuf3Parser.ReservedWordContext):
|
187
|
+
return self.visitChildren(ctx)
|
188
|
+
|
189
|
+
|
190
|
+
# Visit a parse tree produced by Protobuf3Parser#fullIdent.
|
191
|
+
def visitFullIdent(self, ctx:Protobuf3Parser.FullIdentContext):
|
192
|
+
return self.visitChildren(ctx)
|
193
|
+
|
194
|
+
|
195
|
+
# Visit a parse tree produced by Protobuf3Parser#messageName.
|
196
|
+
def visitMessageName(self, ctx:Protobuf3Parser.MessageNameContext):
|
197
|
+
return self.visitChildren(ctx)
|
198
|
+
|
199
|
+
|
200
|
+
# Visit a parse tree produced by Protobuf3Parser#enumName.
|
201
|
+
def visitEnumName(self, ctx:Protobuf3Parser.EnumNameContext):
|
202
|
+
return self.visitChildren(ctx)
|
203
|
+
|
204
|
+
|
205
|
+
# Visit a parse tree produced by Protobuf3Parser#messageOrEnumName.
|
206
|
+
def visitMessageOrEnumName(self, ctx:Protobuf3Parser.MessageOrEnumNameContext):
|
207
|
+
return self.visitChildren(ctx)
|
208
|
+
|
209
|
+
|
210
|
+
# Visit a parse tree produced by Protobuf3Parser#fieldName.
|
211
|
+
def visitFieldName(self, ctx:Protobuf3Parser.FieldNameContext):
|
212
|
+
return self.visitChildren(ctx)
|
213
|
+
|
214
|
+
|
215
|
+
# Visit a parse tree produced by Protobuf3Parser#oneofName.
|
216
|
+
def visitOneofName(self, ctx:Protobuf3Parser.OneofNameContext):
|
217
|
+
return self.visitChildren(ctx)
|
218
|
+
|
219
|
+
|
220
|
+
# Visit a parse tree produced by Protobuf3Parser#mapName.
|
221
|
+
def visitMapName(self, ctx:Protobuf3Parser.MapNameContext):
|
222
|
+
return self.visitChildren(ctx)
|
223
|
+
|
224
|
+
|
225
|
+
# Visit a parse tree produced by Protobuf3Parser#serviceName.
|
226
|
+
def visitServiceName(self, ctx:Protobuf3Parser.ServiceNameContext):
|
227
|
+
return self.visitChildren(ctx)
|
228
|
+
|
229
|
+
|
230
|
+
# Visit a parse tree produced by Protobuf3Parser#rpcName.
|
231
|
+
def visitRpcName(self, ctx:Protobuf3Parser.RpcNameContext):
|
232
|
+
return self.visitChildren(ctx)
|
233
|
+
|
234
|
+
|
235
|
+
# Visit a parse tree produced by Protobuf3Parser#messageType.
|
236
|
+
def visitMessageType(self, ctx:Protobuf3Parser.MessageTypeContext):
|
237
|
+
return self.visitChildren(ctx)
|
238
|
+
|
239
|
+
|
240
|
+
# Visit a parse tree produced by Protobuf3Parser#messageOrEnumType.
|
241
|
+
def visitMessageOrEnumType(self, ctx:Protobuf3Parser.MessageOrEnumTypeContext):
|
242
|
+
return self.visitChildren(ctx)
|
243
|
+
|
244
|
+
|
245
|
+
# Visit a parse tree produced by Protobuf3Parser#emptyStmt.
|
246
|
+
def visitEmptyStmt(self, ctx:Protobuf3Parser.EmptyStmtContext):
|
247
|
+
return self.visitChildren(ctx)
|
248
|
+
|
249
|
+
|
250
|
+
# Visit a parse tree produced by Protobuf3Parser#constant.
|
251
|
+
def visitConstant(self, ctx:Protobuf3Parser.ConstantContext):
|
252
|
+
return self.visitChildren(ctx)
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
del Protobuf3Parser
|
File without changes
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import enum
|
2
|
+
import typing as ta
|
3
|
+
|
4
|
+
from ... import dataclasses as dc
|
5
|
+
|
6
|
+
|
7
|
+
##
|
8
|
+
|
9
|
+
|
10
|
+
class SimpleType(enum.Enum):
|
11
|
+
DOUBLE = 'double'
|
12
|
+
FLOAT = 'float'
|
13
|
+
INT32 = 'int32'
|
14
|
+
INT64 = 'int64'
|
15
|
+
UINT32 = 'uint32'
|
16
|
+
UINT64 = 'uint64'
|
17
|
+
SINT32 = 'sint32'
|
18
|
+
SINT64 = 'sint64'
|
19
|
+
FIXED32 = 'fixed32'
|
20
|
+
FIXED64 = 'fixed64'
|
21
|
+
SFIXED32 = 'sfixed32'
|
22
|
+
SFIXED64 = 'sfixed64'
|
23
|
+
BOOL = 'bool'
|
24
|
+
STRING = 'string'
|
25
|
+
BYTES = 'bytes'
|
26
|
+
|
27
|
+
|
28
|
+
class TypeRef(dc.Frozen):
|
29
|
+
name: str
|
30
|
+
|
31
|
+
|
32
|
+
Type: ta.TypeAlias = SimpleType | TypeRef
|
33
|
+
|
34
|
+
|
35
|
+
##
|
36
|
+
|
37
|
+
|
38
|
+
class Field(dc.Frozen):
|
39
|
+
name: str
|
40
|
+
type: Type
|
41
|
+
num: int
|
42
|
+
repeated: bool = False
|
43
|
+
|
44
|
+
|
45
|
+
class Message(dc.Frozen):
|
46
|
+
name: str
|
47
|
+
fields: ta.Sequence[Field]
|
48
|
+
|
49
|
+
|
50
|
+
##
|
51
|
+
|
52
|
+
|
53
|
+
class ProtoFile(dc.Frozen):
|
54
|
+
messages: ta.Sequence[Message] | None = None
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# ruff: noqa: N802 N803
|
2
|
+
import typing as ta
|
3
|
+
|
4
|
+
from ... import check
|
5
|
+
from ...antlr import runtime as antlr4
|
6
|
+
from ...antlr.errors import SilentRaisingErrorListener
|
7
|
+
from . import nodes as no
|
8
|
+
from ._antlr.Protobuf3Lexer import Protobuf3Lexer # type: ignore
|
9
|
+
from ._antlr.Protobuf3Parser import Protobuf3Parser # type: ignore
|
10
|
+
from ._antlr.Protobuf3Visitor import Protobuf3Visitor # type: ignore
|
11
|
+
|
12
|
+
|
13
|
+
##
|
14
|
+
|
15
|
+
|
16
|
+
class _ParseVisitor(Protobuf3Visitor):
|
17
|
+
def visit(self, ctx: antlr4.ParserRuleContext):
|
18
|
+
check.isinstance(ctx, antlr4.ParserRuleContext)
|
19
|
+
node = ctx.accept(self)
|
20
|
+
return node
|
21
|
+
|
22
|
+
def aggregateResult(self, aggregate, nextResult):
|
23
|
+
if aggregate is not None:
|
24
|
+
check.none(nextResult)
|
25
|
+
return aggregate
|
26
|
+
else:
|
27
|
+
check.none(aggregate)
|
28
|
+
return nextResult
|
29
|
+
|
30
|
+
#
|
31
|
+
|
32
|
+
def visitField(self, ctx: Protobuf3Parser.FieldContext):
|
33
|
+
name = ctx.fieldName().getText()
|
34
|
+
type_: no.Type = check.isinstance(self.visitTypeRule(ctx.typeRule()), (no.SimpleType, no.TypeRef))
|
35
|
+
num = int(ctx.fieldNumber().getText())
|
36
|
+
repeated = ctx.REPEATED() is not None
|
37
|
+
return no.Field(
|
38
|
+
name=name,
|
39
|
+
type=type_,
|
40
|
+
num=num,
|
41
|
+
repeated=repeated,
|
42
|
+
)
|
43
|
+
|
44
|
+
def visitMessage(self, ctx: Protobuf3Parser.MessageContext):
|
45
|
+
name = ctx.messageName().getText()
|
46
|
+
fields: list[no.Field] = []
|
47
|
+
for mbc_ctx in ctx.messageBody().messageBodyContent():
|
48
|
+
mbc = self.visitMessageBodyContent(mbc_ctx)
|
49
|
+
if isinstance(mbc, no.Field):
|
50
|
+
fields.append(mbc)
|
51
|
+
return no.Message(
|
52
|
+
name=name,
|
53
|
+
fields=fields,
|
54
|
+
)
|
55
|
+
|
56
|
+
def visitMessageOrEnumType(self, ctx: Protobuf3Parser.MessageOrEnumTypeContext):
|
57
|
+
return no.TypeRef(ctx.getText())
|
58
|
+
|
59
|
+
def visitProto(self, ctx: Protobuf3Parser.ProtoContext):
|
60
|
+
messages: list[no.Message] = []
|
61
|
+
for ex_ctx in ctx.syntaxExtra():
|
62
|
+
ex = self.visitSyntaxExtra(ex_ctx)
|
63
|
+
if isinstance(ex, no.Message):
|
64
|
+
messages.append(ex)
|
65
|
+
return no.ProtoFile(
|
66
|
+
messages=messages,
|
67
|
+
)
|
68
|
+
|
69
|
+
def visitSimpleType(self, ctx: Protobuf3Parser.SimpleTypeContext):
|
70
|
+
return no.SimpleType(ctx.getText())
|
71
|
+
|
72
|
+
|
73
|
+
##
|
74
|
+
|
75
|
+
|
76
|
+
def create_parser(buf: str) -> Protobuf3Parser:
|
77
|
+
lexer = Protobuf3Lexer(antlr4.InputStream(buf))
|
78
|
+
lexer.removeErrorListeners()
|
79
|
+
lexer.addErrorListener(SilentRaisingErrorListener())
|
80
|
+
|
81
|
+
stream = antlr4.CommonTokenStream(lexer)
|
82
|
+
stream.fill()
|
83
|
+
|
84
|
+
parser = Protobuf3Parser(stream)
|
85
|
+
parser.removeErrorListeners()
|
86
|
+
parser.addErrorListener(SilentRaisingErrorListener())
|
87
|
+
|
88
|
+
return parser
|
89
|
+
|
90
|
+
|
91
|
+
##
|
92
|
+
|
93
|
+
|
94
|
+
def parse_proto(buf: str, **kwargs: ta.Any) -> ta.Any:
|
95
|
+
parser = create_parser(buf, **kwargs)
|
96
|
+
node = _ParseVisitor().visit(parser.proto())
|
97
|
+
return node
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev252
|
4
4
|
Summary: omlish
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -13,7 +13,7 @@ Classifier: Operating System :: POSIX
|
|
13
13
|
Requires-Python: >=3.12
|
14
14
|
License-File: LICENSE
|
15
15
|
Provides-Extra: all
|
16
|
-
Requires-Dist: anyio~=4.
|
16
|
+
Requires-Dist: anyio~=4.9; extra == "all"
|
17
17
|
Requires-Dist: sniffio~=1.3; extra == "all"
|
18
18
|
Requires-Dist: greenlet~=3.1; extra == "all"
|
19
19
|
Requires-Dist: trio~=0.29; extra == "all"
|
@@ -43,7 +43,7 @@ Requires-Dist: apsw~=3.47; extra == "all"
|
|
43
43
|
Requires-Dist: sqlean.py~=3.45; extra == "all"
|
44
44
|
Requires-Dist: duckdb~=1.2; extra == "all"
|
45
45
|
Requires-Dist: pytest~=8.0; extra == "all"
|
46
|
-
Requires-Dist: anyio~=4.
|
46
|
+
Requires-Dist: anyio~=4.9; extra == "all"
|
47
47
|
Requires-Dist: sniffio~=1.3; extra == "all"
|
48
48
|
Requires-Dist: asttokens~=3.0; extra == "all"
|
49
49
|
Requires-Dist: executing~=2.2; extra == "all"
|
@@ -51,7 +51,7 @@ Requires-Dist: orjson~=3.10; extra == "all"
|
|
51
51
|
Requires-Dist: pyyaml~=6.0; extra == "all"
|
52
52
|
Requires-Dist: wrapt~=1.17; extra == "all"
|
53
53
|
Provides-Extra: async
|
54
|
-
Requires-Dist: anyio~=4.
|
54
|
+
Requires-Dist: anyio~=4.9; extra == "async"
|
55
55
|
Requires-Dist: sniffio~=1.3; extra == "async"
|
56
56
|
Requires-Dist: greenlet~=3.1; extra == "async"
|
57
57
|
Requires-Dist: trio~=0.29; extra == "async"
|
@@ -91,7 +91,7 @@ Requires-Dist: duckdb~=1.2; extra == "sqldrivers"
|
|
91
91
|
Provides-Extra: testing
|
92
92
|
Requires-Dist: pytest~=8.0; extra == "testing"
|
93
93
|
Provides-Extra: plus
|
94
|
-
Requires-Dist: anyio~=4.
|
94
|
+
Requires-Dist: anyio~=4.9; extra == "plus"
|
95
95
|
Requires-Dist: sniffio~=1.3; extra == "plus"
|
96
96
|
Requires-Dist: asttokens~=3.0; extra == "plus"
|
97
97
|
Requires-Dist: executing~=2.2; extra == "plus"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=x26AIwDzScUvnX-p4xlq6Zc5QYrAo0Vmgf1qHc1KL_M,8253
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=irK5EMsRK45Vveo-bLYvfj4i3jGa_hT0w6FNpRHdcso,3380
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=ubu7lHwss5V4UznbejAI0qXhXahrU01MysuHOZI9C4U,8116
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
@@ -237,7 +237,7 @@ omlish/dispatch/_dispatch2.py,sha256=70k1tKKvuhxtAu6v4skECfHKIKVWrmlt7G_JKLUsKEs
|
|
237
237
|
omlish/dispatch/_dispatch3.py,sha256=9Zjd7bINAC3keiaBdssc4v5dY0-8OI6XooV2DR9U7Z0,2818
|
238
238
|
omlish/dispatch/dispatch.py,sha256=KA5l49AiGLRjp4J7RDJW9RiDp9WUD1ewR1AOPEF8g38,3062
|
239
239
|
omlish/dispatch/functions.py,sha256=8Qvj62XKn9SKfiqoVQdBD3wVRE4JUWpZDqs0oouuDIw,1519
|
240
|
-
omlish/dispatch/impls.py,sha256=
|
240
|
+
omlish/dispatch/impls.py,sha256=0t1N3EZUHi-V3kzgOVUezE7ghevZt1G3r0eo2q_do7c,2151
|
241
241
|
omlish/dispatch/methods.py,sha256=dr8xQo-zVRckIo_V2Wp8Reqor3NE6APuzomUfsSBGdk,5498
|
242
242
|
omlish/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
243
243
|
omlish/docker/all.py,sha256=xXRgJgLGPwAtr7bDMJ_Dp9jTfOwfGvohNhc6LsoELJc,514
|
@@ -289,7 +289,7 @@ omlish/formats/json5/__init__.py,sha256=BsjPz5zJDji3GjQ8x8hWvcl1GYPV_ZIHnE3c2Sr8
|
|
289
289
|
omlish/formats/json5/codec.py,sha256=ldnxCRo0JP1fkGLt0mMxJlLvNxqIF_1KUCcSp1HtI-M,452
|
290
290
|
omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC4,38
|
291
291
|
omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
|
292
|
-
omlish/formats/json5/parsing.py,sha256=
|
292
|
+
omlish/formats/json5/parsing.py,sha256=FrH6CgAYoqHGgJMPfbhNNuvwxi20i5rus9pGHU-BcW0,2346
|
293
293
|
omlish/formats/json5/_antlr/Json5Lexer.py,sha256=8TKxlENDsl6CPfoLR06uQSvhDnzGcY7fKsIhFJ_g6N4,23237
|
294
294
|
omlish/formats/json5/_antlr/Json5Listener.py,sha256=fSiOzSS0CMjxaCev3sxZqJlW-buqIyDLwgnuRv-Uh80,2095
|
295
295
|
omlish/formats/json5/_antlr/Json5Parser.py,sha256=nbbwoCPvEVRcEh5_t092XLmsXIHnbzONvH0W0g_BYkQ,19677
|
@@ -415,7 +415,7 @@ omlish/lang/imports.py,sha256=Gdl6xCF89xiMOE1yDmdvKWamLq8HX-XPianO58Jdpmw,9218
|
|
415
415
|
omlish/lang/iterables.py,sha256=HOjcxOwyI5bBApDLsxRAGGhTTmw7fdZl2kEckxRVl-0,1994
|
416
416
|
omlish/lang/maybes.py,sha256=dAgrUoAhCgyrHRqa73CkaGnpXwGc-o9n-NIThrNXnbU,3416
|
417
417
|
omlish/lang/objects.py,sha256=65XsD7UtblRdNe2ID1-brn_QvRkJhBIk5nyZWcQNeqU,4574
|
418
|
-
omlish/lang/params.py,sha256=
|
418
|
+
omlish/lang/params.py,sha256=QmNVBfJsfxjDG5ilDPgHV7sK4UwRztkSQdLTo0umb8I,6648
|
419
419
|
omlish/lang/resolving.py,sha256=OuN2mDTPNyBUbcrswtvFKtj4xgH4H4WglgqSKv3MTy0,1606
|
420
420
|
omlish/lang/resources.py,sha256=WKkAddC3ctMK1bvGw-elGe8ZxAj2IaUTKVSu2nfgHTo,2839
|
421
421
|
omlish/lang/strings.py,sha256=egdv8PxLNG40-5V93agP5j2rBUDIsahCx048zV7uEbU,4690
|
@@ -447,7 +447,7 @@ omlish/lite/imports.py,sha256=o9WWrNrWg0hKeMvaj91giaovED_9VFanN2MyEHBGekY,1346
|
|
447
447
|
omlish/lite/inject.py,sha256=-tTsOqqef-Ix5Tgl2DP_JAsNWJQDFUptERl3lk14Uzs,29007
|
448
448
|
omlish/lite/json.py,sha256=7-02Ny4fq-6YAu5ynvqoijhuYXWpLmfCI19GUeZnb1c,740
|
449
449
|
omlish/lite/logs.py,sha256=CWFG0NKGhqNeEgryF5atN2gkPYbUdTINEw_s1phbINM,51
|
450
|
-
omlish/lite/marshal.py,sha256=
|
450
|
+
omlish/lite/marshal.py,sha256=4DCbLoimLwJakihpvMjJ_kpc7v9aZQY8P3-gkoqEGUE,18471
|
451
451
|
omlish/lite/maybes.py,sha256=7OlHJ8Q2r4wQ-aRbZSlJY7x0e8gDvufFdlohGEIJ3P4,833
|
452
452
|
omlish/lite/pycharm.py,sha256=pUOJevrPClSqTCEOkQBO11LKX2003tfDcp18a03QFrc,1163
|
453
453
|
omlish/lite/reflect.py,sha256=pzOY2PPuHH0omdtglkN6DheXDrGopdL3PtTJnejyLFU,2189
|
@@ -523,7 +523,7 @@ omlish/marshal/trivial/nop.py,sha256=41bpwsLGeDGqIwzZ7j88lbc4wIYh0EcPROhCU98mQxo
|
|
523
523
|
omlish/math/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
524
524
|
omlish/math/bits.py,sha256=LC3dTgrvodNbfxy9dvlya61eQuDEy0azzQLCvEbFHj4,3476
|
525
525
|
omlish/math/floats.py,sha256=UimhOT7KRl8LXTzOI5cQWoX_9h6WNWe_3vcOuO7-h_8,327
|
526
|
-
omlish/math/stats.py,sha256=
|
526
|
+
omlish/math/stats.py,sha256=iQh-g6M_ig0mJJ4Frs4njxDmpw515HjGSpQSiggJH4U,10042
|
527
527
|
omlish/multiprocessing/__init__.py,sha256=jwlWGOaSGcX8DkzyZwJ49nfkHocWWeKgKb7kMpgcj_Y,485
|
528
528
|
omlish/multiprocessing/proxies.py,sha256=bInhGds2rv6xT9q3qRMlZuSXFAjwfspkiohXZ36aUpY,484
|
529
529
|
omlish/multiprocessing/spawn.py,sha256=sTvPLIJGYnjjI6ASqhFzHF-97tCnaOXX7u7s-33SUMw,1875
|
@@ -579,7 +579,7 @@ omlish/sockets/server/handlers.py,sha256=PPsb1X5oU9dN8jfztaMGsRiqWTyEANT-1aSLbS6
|
|
579
579
|
omlish/sockets/server/server.py,sha256=FkaishIxJuU4it9tTI7wzlGqJYzFGXzDrd_HgV0jAmU,6253
|
580
580
|
omlish/sockets/server/ssl.py,sha256=VE0GpdA-gYsN2m9_uvfDwWmXtIbRQqJomVdpGJO8o2M,1061
|
581
581
|
omlish/sockets/server/threading.py,sha256=YmW3Ym_p5j_F4SIH9BgRHIObywjq1HS39j9CGWIcMAY,2856
|
582
|
-
omlish/specs/__init__.py,sha256=
|
582
|
+
omlish/specs/__init__.py,sha256=fxpcfXEWESH2kiPStKhl2dAdfLkZVTt_cssZKyqBLiQ,87
|
583
583
|
omlish/specs/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
584
584
|
omlish/specs/irc/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
585
585
|
omlish/specs/irc/messages/base.py,sha256=JQWq4L-USYFw1DmHPpL3FiAwvynf6Hi48-zNdC__jT0,1240
|
@@ -614,7 +614,7 @@ omlish/specs/jmespath/visitor.py,sha256=yneRMO4qf3k2Mdcm2cPC0ozRgOaudzlxRVRGatzt
|
|
614
614
|
omlish/specs/jsonrpc/__init__.py,sha256=E0EogYSKmbj1D-V57tBgPDTyVuD8HosHqVg0Vh1CVwM,416
|
615
615
|
omlish/specs/jsonrpc/errors.py,sha256=-Zgmlo6bV6J8w5f8h9axQgLquIFBHDgIwcpufEH5NsE,707
|
616
616
|
omlish/specs/jsonrpc/marshal.py,sha256=hM1rPZddoha_87qcQtBWkyaZshCXlPoHPJg6J_nBi9k,1915
|
617
|
-
omlish/specs/jsonrpc/types.py,sha256=
|
617
|
+
omlish/specs/jsonrpc/types.py,sha256=50aARffC_FdxAaRxEJMNhydygj9sP8L3Kb2fx5vQGm4,2164
|
618
618
|
omlish/specs/jsonschema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
619
619
|
omlish/specs/jsonschema/types.py,sha256=qoxExgKfrI-UZXdk3qcVZIEyp1WckFbb85_eGInEoAY,467
|
620
620
|
omlish/specs/jsonschema/keywords/__init__.py,sha256=kZNJCujSpflCOrPNeJT8C1a5sfStn6cwiXXzbu9YPyg,753
|
@@ -640,6 +640,15 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=
|
|
640
640
|
omlish/specs/openapi/__init__.py,sha256=zilQhafjvteRDF_TUIRgF293dBC6g-TJChmUb6T9VBQ,77
|
641
641
|
omlish/specs/openapi/marshal.py,sha256=Z-E2Knm04C81N8AA8cibCVSl2ImhSpHZVc7yAhmPx88,2135
|
642
642
|
omlish/specs/openapi/openapi.py,sha256=y4h04jeB7ORJSVrcy7apaBdpwLjIyscv1Ub5SderH2c,12682
|
643
|
+
omlish/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
|
644
|
+
omlish/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
645
|
+
omlish/specs/proto/nodes.py,sha256=nwA6KyU9pZHLE9cO9dh46qTl6vfYJ8SjuUDlLBuoOms,776
|
646
|
+
omlish/specs/proto/parsing.py,sha256=Rrdhvl-QHBxykGFd9XltqG8GBPgHaw5rRM8wuELCdsA,2861
|
647
|
+
omlish/specs/proto/_antlr/Protobuf3Lexer.py,sha256=-FpQNpCJyhHf2dM4ngLtAtb7sssrtAXeR0W4WuKY4Yo,19471
|
648
|
+
omlish/specs/proto/_antlr/Protobuf3Listener.py,sha256=hjzAJjcj4xWRim-68v-6QwIsPVdPwOFUGz1rusRcaWU,14506
|
649
|
+
omlish/specs/proto/_antlr/Protobuf3Parser.py,sha256=VmkUyJx3WxIgAecOa1BGwbO9fVNysZt5-arQ-wDubpk,132411
|
650
|
+
omlish/specs/proto/_antlr/Protobuf3Visitor.py,sha256=zEVBXly2k9Cqmgdb45QwpLR-fZCEq8hpp2WQj-s7Wps,8782
|
651
|
+
omlish/specs/proto/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
643
652
|
omlish/sql/__init__.py,sha256=TpZLsEJKJzvJ0eMzuV8hwOJJbkxBCV1RZPUMLAVB6io,173
|
644
653
|
omlish/sql/abc.py,sha256=yrUSO2OSY6rtMyA0_MlrEFEyIKXLJymSPpmJwEjEJuc,4038
|
645
654
|
omlish/sql/dbapi.py,sha256=o6umqE7zVFI_ax0TnCKAikhAIPXChYOwVULb_OdcL1c,2974
|
@@ -735,9 +744,9 @@ omlish/text/mangle.py,sha256=kfzFLfvepH-chl1P89_mdc5vC4FSqyPA2aVtgzuB8IY,1133
|
|
735
744
|
omlish/text/minja.py,sha256=jZC-fp3Xuhx48ppqsf2Sf1pHbC0t8XBB7UpUUoOk2Qw,5751
|
736
745
|
omlish/text/parts.py,sha256=JkNZpyR2tv2CNcTaWJJhpQ9E4F0yPR8P_YfDbZfMtwQ,6182
|
737
746
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
738
|
-
omlish-0.0.0.
|
739
|
-
omlish-0.0.0.
|
740
|
-
omlish-0.0.0.
|
741
|
-
omlish-0.0.0.
|
742
|
-
omlish-0.0.0.
|
743
|
-
omlish-0.0.0.
|
747
|
+
omlish-0.0.0.dev252.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
748
|
+
omlish-0.0.0.dev252.dist-info/METADATA,sha256=d3I-8A12dfY6BUTJyIZ70ySFdyaJLUuDZstZPmrYvD0,4176
|
749
|
+
omlish-0.0.0.dev252.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
750
|
+
omlish-0.0.0.dev252.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
751
|
+
omlish-0.0.0.dev252.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
752
|
+
omlish-0.0.0.dev252.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|