omlish 0.0.0.dev251__py3-none-any.whl → 0.0.0.dev253__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/_antlr/__init__.py +0 -0
- omlish/formats/json5/parsing.py +1 -1
- omlish/specs/__init__.py +0 -2
- 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/sql/parsing/Minisql.g4 +289 -0
- omlish/sql/parsing/__init__.py +0 -0
- omlish/sql/parsing/_antlr/MinisqlLexer.py +321 -0
- omlish/sql/parsing/_antlr/MinisqlListener.py +510 -0
- omlish/sql/parsing/_antlr/MinisqlParser.py +3762 -0
- omlish/sql/parsing/_antlr/MinisqlVisitor.py +291 -0
- omlish/sql/parsing/_antlr/__init__.py +0 -0
- omlish/sql/parsing/parsing.py +119 -0
- {omlish-0.0.0.dev251.dist-info → omlish-0.0.0.dev253.dist-info}/METADATA +5 -5
- {omlish-0.0.0.dev251.dist-info → omlish-0.0.0.dev253.dist-info}/RECORD +27 -9
- {omlish-0.0.0.dev251.dist-info → omlish-0.0.0.dev253.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev251.dist-info → omlish-0.0.0.dev253.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev251.dist-info → omlish-0.0.0.dev253.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev251.dist-info → omlish-0.0.0.dev253.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,291 @@
|
|
1
|
+
# type: ignore
|
2
|
+
# ruff: noqa
|
3
|
+
# flake8: noqa
|
4
|
+
# Generated from Minisql.g4 by ANTLR 4.13.2
|
5
|
+
from omlish.antlr._runtime._all import *
|
6
|
+
if "." in __name__:
|
7
|
+
from .MinisqlParser import MinisqlParser
|
8
|
+
else:
|
9
|
+
from MinisqlParser import MinisqlParser
|
10
|
+
|
11
|
+
# This class defines a complete generic visitor for a parse tree produced by MinisqlParser.
|
12
|
+
|
13
|
+
class MinisqlVisitor(ParseTreeVisitor):
|
14
|
+
|
15
|
+
# Visit a parse tree produced by MinisqlParser#singleStmt.
|
16
|
+
def visitSingleStmt(self, ctx:MinisqlParser.SingleStmtContext):
|
17
|
+
return self.visitChildren(ctx)
|
18
|
+
|
19
|
+
|
20
|
+
# Visit a parse tree produced by MinisqlParser#select.
|
21
|
+
def visitSelect(self, ctx:MinisqlParser.SelectContext):
|
22
|
+
return self.visitChildren(ctx)
|
23
|
+
|
24
|
+
|
25
|
+
# Visit a parse tree produced by MinisqlParser#cteSelect.
|
26
|
+
def visitCteSelect(self, ctx:MinisqlParser.CteSelectContext):
|
27
|
+
return self.visitChildren(ctx)
|
28
|
+
|
29
|
+
|
30
|
+
# Visit a parse tree produced by MinisqlParser#cte.
|
31
|
+
def visitCte(self, ctx:MinisqlParser.CteContext):
|
32
|
+
return self.visitChildren(ctx)
|
33
|
+
|
34
|
+
|
35
|
+
# Visit a parse tree produced by MinisqlParser#unionSelect.
|
36
|
+
def visitUnionSelect(self, ctx:MinisqlParser.UnionSelectContext):
|
37
|
+
return self.visitChildren(ctx)
|
38
|
+
|
39
|
+
|
40
|
+
# Visit a parse tree produced by MinisqlParser#unionItem.
|
41
|
+
def visitUnionItem(self, ctx:MinisqlParser.UnionItemContext):
|
42
|
+
return self.visitChildren(ctx)
|
43
|
+
|
44
|
+
|
45
|
+
# Visit a parse tree produced by MinisqlParser#primarySelect.
|
46
|
+
def visitPrimarySelect(self, ctx:MinisqlParser.PrimarySelectContext):
|
47
|
+
return self.visitChildren(ctx)
|
48
|
+
|
49
|
+
|
50
|
+
# Visit a parse tree produced by MinisqlParser#allSelectItem.
|
51
|
+
def visitAllSelectItem(self, ctx:MinisqlParser.AllSelectItemContext):
|
52
|
+
return self.visitChildren(ctx)
|
53
|
+
|
54
|
+
|
55
|
+
# Visit a parse tree produced by MinisqlParser#exprSelectItem.
|
56
|
+
def visitExprSelectItem(self, ctx:MinisqlParser.ExprSelectItemContext):
|
57
|
+
return self.visitChildren(ctx)
|
58
|
+
|
59
|
+
|
60
|
+
# Visit a parse tree produced by MinisqlParser#expr.
|
61
|
+
def visitExpr(self, ctx:MinisqlParser.ExprContext):
|
62
|
+
return self.visitChildren(ctx)
|
63
|
+
|
64
|
+
|
65
|
+
# Visit a parse tree produced by MinisqlParser#unaryBooleanExpr.
|
66
|
+
def visitUnaryBooleanExpr(self, ctx:MinisqlParser.UnaryBooleanExprContext):
|
67
|
+
return self.visitChildren(ctx)
|
68
|
+
|
69
|
+
|
70
|
+
# Visit a parse tree produced by MinisqlParser#predicatedBooleanExpr.
|
71
|
+
def visitPredicatedBooleanExpr(self, ctx:MinisqlParser.PredicatedBooleanExprContext):
|
72
|
+
return self.visitChildren(ctx)
|
73
|
+
|
74
|
+
|
75
|
+
# Visit a parse tree produced by MinisqlParser#binaryBooleanExpr.
|
76
|
+
def visitBinaryBooleanExpr(self, ctx:MinisqlParser.BinaryBooleanExprContext):
|
77
|
+
return self.visitChildren(ctx)
|
78
|
+
|
79
|
+
|
80
|
+
# Visit a parse tree produced by MinisqlParser#castBooleanExpr.
|
81
|
+
def visitCastBooleanExpr(self, ctx:MinisqlParser.CastBooleanExprContext):
|
82
|
+
return self.visitChildren(ctx)
|
83
|
+
|
84
|
+
|
85
|
+
# Visit a parse tree produced by MinisqlParser#cmpPredicate.
|
86
|
+
def visitCmpPredicate(self, ctx:MinisqlParser.CmpPredicateContext):
|
87
|
+
return self.visitChildren(ctx)
|
88
|
+
|
89
|
+
|
90
|
+
# Visit a parse tree produced by MinisqlParser#isNullPredicate.
|
91
|
+
def visitIsNullPredicate(self, ctx:MinisqlParser.IsNullPredicateContext):
|
92
|
+
return self.visitChildren(ctx)
|
93
|
+
|
94
|
+
|
95
|
+
# Visit a parse tree produced by MinisqlParser#inListPredicate.
|
96
|
+
def visitInListPredicate(self, ctx:MinisqlParser.InListPredicateContext):
|
97
|
+
return self.visitChildren(ctx)
|
98
|
+
|
99
|
+
|
100
|
+
# Visit a parse tree produced by MinisqlParser#inSelectPredicate.
|
101
|
+
def visitInSelectPredicate(self, ctx:MinisqlParser.InSelectPredicateContext):
|
102
|
+
return self.visitChildren(ctx)
|
103
|
+
|
104
|
+
|
105
|
+
# Visit a parse tree produced by MinisqlParser#likePredicate.
|
106
|
+
def visitLikePredicate(self, ctx:MinisqlParser.LikePredicateContext):
|
107
|
+
return self.visitChildren(ctx)
|
108
|
+
|
109
|
+
|
110
|
+
# Visit a parse tree produced by MinisqlParser#arithValueExpr.
|
111
|
+
def visitArithValueExpr(self, ctx:MinisqlParser.ArithValueExprContext):
|
112
|
+
return self.visitChildren(ctx)
|
113
|
+
|
114
|
+
|
115
|
+
# Visit a parse tree produced by MinisqlParser#unaryValueExpr.
|
116
|
+
def visitUnaryValueExpr(self, ctx:MinisqlParser.UnaryValueExprContext):
|
117
|
+
return self.visitChildren(ctx)
|
118
|
+
|
119
|
+
|
120
|
+
# Visit a parse tree produced by MinisqlParser#primaryValueExpr.
|
121
|
+
def visitPrimaryValueExpr(self, ctx:MinisqlParser.PrimaryValueExprContext):
|
122
|
+
return self.visitChildren(ctx)
|
123
|
+
|
124
|
+
|
125
|
+
# Visit a parse tree produced by MinisqlParser#functionCallExpr.
|
126
|
+
def visitFunctionCallExpr(self, ctx:MinisqlParser.FunctionCallExprContext):
|
127
|
+
return self.visitChildren(ctx)
|
128
|
+
|
129
|
+
|
130
|
+
# Visit a parse tree produced by MinisqlParser#starFunctionCallExpr.
|
131
|
+
def visitStarFunctionCallExpr(self, ctx:MinisqlParser.StarFunctionCallExprContext):
|
132
|
+
return self.visitChildren(ctx)
|
133
|
+
|
134
|
+
|
135
|
+
# Visit a parse tree produced by MinisqlParser#caseExpr.
|
136
|
+
def visitCaseExpr(self, ctx:MinisqlParser.CaseExprContext):
|
137
|
+
return self.visitChildren(ctx)
|
138
|
+
|
139
|
+
|
140
|
+
# Visit a parse tree produced by MinisqlParser#selectExpr.
|
141
|
+
def visitSelectExpr(self, ctx:MinisqlParser.SelectExprContext):
|
142
|
+
return self.visitChildren(ctx)
|
143
|
+
|
144
|
+
|
145
|
+
# Visit a parse tree produced by MinisqlParser#parenExpr.
|
146
|
+
def visitParenExpr(self, ctx:MinisqlParser.ParenExprContext):
|
147
|
+
return self.visitChildren(ctx)
|
148
|
+
|
149
|
+
|
150
|
+
# Visit a parse tree produced by MinisqlParser#simplePrimaryExpr.
|
151
|
+
def visitSimplePrimaryExpr(self, ctx:MinisqlParser.SimplePrimaryExprContext):
|
152
|
+
return self.visitChildren(ctx)
|
153
|
+
|
154
|
+
|
155
|
+
# Visit a parse tree produced by MinisqlParser#simpleExpr.
|
156
|
+
def visitSimpleExpr(self, ctx:MinisqlParser.SimpleExprContext):
|
157
|
+
return self.visitChildren(ctx)
|
158
|
+
|
159
|
+
|
160
|
+
# Visit a parse tree produced by MinisqlParser#caseItem.
|
161
|
+
def visitCaseItem(self, ctx:MinisqlParser.CaseItemContext):
|
162
|
+
return self.visitChildren(ctx)
|
163
|
+
|
164
|
+
|
165
|
+
# Visit a parse tree produced by MinisqlParser#over.
|
166
|
+
def visitOver(self, ctx:MinisqlParser.OverContext):
|
167
|
+
return self.visitChildren(ctx)
|
168
|
+
|
169
|
+
|
170
|
+
# Visit a parse tree produced by MinisqlParser#sortItem.
|
171
|
+
def visitSortItem(self, ctx:MinisqlParser.SortItemContext):
|
172
|
+
return self.visitChildren(ctx)
|
173
|
+
|
174
|
+
|
175
|
+
# Visit a parse tree produced by MinisqlParser#aliasedRelation.
|
176
|
+
def visitAliasedRelation(self, ctx:MinisqlParser.AliasedRelationContext):
|
177
|
+
return self.visitChildren(ctx)
|
178
|
+
|
179
|
+
|
180
|
+
# Visit a parse tree produced by MinisqlParser#joinRelation.
|
181
|
+
def visitJoinRelation(self, ctx:MinisqlParser.JoinRelationContext):
|
182
|
+
return self.visitChildren(ctx)
|
183
|
+
|
184
|
+
|
185
|
+
# Visit a parse tree produced by MinisqlParser#selectRelation.
|
186
|
+
def visitSelectRelation(self, ctx:MinisqlParser.SelectRelationContext):
|
187
|
+
return self.visitChildren(ctx)
|
188
|
+
|
189
|
+
|
190
|
+
# Visit a parse tree produced by MinisqlParser#tableRelation.
|
191
|
+
def visitTableRelation(self, ctx:MinisqlParser.TableRelationContext):
|
192
|
+
return self.visitChildren(ctx)
|
193
|
+
|
194
|
+
|
195
|
+
# Visit a parse tree produced by MinisqlParser#parenRelation.
|
196
|
+
def visitParenRelation(self, ctx:MinisqlParser.ParenRelationContext):
|
197
|
+
return self.visitChildren(ctx)
|
198
|
+
|
199
|
+
|
200
|
+
# Visit a parse tree produced by MinisqlParser#groupBy.
|
201
|
+
def visitGroupBy(self, ctx:MinisqlParser.GroupByContext):
|
202
|
+
return self.visitChildren(ctx)
|
203
|
+
|
204
|
+
|
205
|
+
# Visit a parse tree produced by MinisqlParser#qualifiedName.
|
206
|
+
def visitQualifiedName(self, ctx:MinisqlParser.QualifiedNameContext):
|
207
|
+
return self.visitChildren(ctx)
|
208
|
+
|
209
|
+
|
210
|
+
# Visit a parse tree produced by MinisqlParser#identList.
|
211
|
+
def visitIdentList(self, ctx:MinisqlParser.IdentListContext):
|
212
|
+
return self.visitChildren(ctx)
|
213
|
+
|
214
|
+
|
215
|
+
# Visit a parse tree produced by MinisqlParser#ident.
|
216
|
+
def visitIdent(self, ctx:MinisqlParser.IdentContext):
|
217
|
+
return self.visitChildren(ctx)
|
218
|
+
|
219
|
+
|
220
|
+
# Visit a parse tree produced by MinisqlParser#quotedIdent.
|
221
|
+
def visitQuotedIdent(self, ctx:MinisqlParser.QuotedIdentContext):
|
222
|
+
return self.visitChildren(ctx)
|
223
|
+
|
224
|
+
|
225
|
+
# Visit a parse tree produced by MinisqlParser#integerNumber.
|
226
|
+
def visitIntegerNumber(self, ctx:MinisqlParser.IntegerNumberContext):
|
227
|
+
return self.visitChildren(ctx)
|
228
|
+
|
229
|
+
|
230
|
+
# Visit a parse tree produced by MinisqlParser#decimalNumber.
|
231
|
+
def visitDecimalNumber(self, ctx:MinisqlParser.DecimalNumberContext):
|
232
|
+
return self.visitChildren(ctx)
|
233
|
+
|
234
|
+
|
235
|
+
# Visit a parse tree produced by MinisqlParser#floatNumber.
|
236
|
+
def visitFloatNumber(self, ctx:MinisqlParser.FloatNumberContext):
|
237
|
+
return self.visitChildren(ctx)
|
238
|
+
|
239
|
+
|
240
|
+
# Visit a parse tree produced by MinisqlParser#string.
|
241
|
+
def visitString(self, ctx:MinisqlParser.StringContext):
|
242
|
+
return self.visitChildren(ctx)
|
243
|
+
|
244
|
+
|
245
|
+
# Visit a parse tree produced by MinisqlParser#null.
|
246
|
+
def visitNull(self, ctx:MinisqlParser.NullContext):
|
247
|
+
return self.visitChildren(ctx)
|
248
|
+
|
249
|
+
|
250
|
+
# Visit a parse tree produced by MinisqlParser#true.
|
251
|
+
def visitTrue(self, ctx:MinisqlParser.TrueContext):
|
252
|
+
return self.visitChildren(ctx)
|
253
|
+
|
254
|
+
|
255
|
+
# Visit a parse tree produced by MinisqlParser#false.
|
256
|
+
def visitFalse(self, ctx:MinisqlParser.FalseContext):
|
257
|
+
return self.visitChildren(ctx)
|
258
|
+
|
259
|
+
|
260
|
+
# Visit a parse tree produced by MinisqlParser#setQuantifier.
|
261
|
+
def visitSetQuantifier(self, ctx:MinisqlParser.SetQuantifierContext):
|
262
|
+
return self.visitChildren(ctx)
|
263
|
+
|
264
|
+
|
265
|
+
# Visit a parse tree produced by MinisqlParser#joinType.
|
266
|
+
def visitJoinType(self, ctx:MinisqlParser.JoinTypeContext):
|
267
|
+
return self.visitChildren(ctx)
|
268
|
+
|
269
|
+
|
270
|
+
# Visit a parse tree produced by MinisqlParser#cmpOp.
|
271
|
+
def visitCmpOp(self, ctx:MinisqlParser.CmpOpContext):
|
272
|
+
return self.visitChildren(ctx)
|
273
|
+
|
274
|
+
|
275
|
+
# Visit a parse tree produced by MinisqlParser#arithOp.
|
276
|
+
def visitArithOp(self, ctx:MinisqlParser.ArithOpContext):
|
277
|
+
return self.visitChildren(ctx)
|
278
|
+
|
279
|
+
|
280
|
+
# Visit a parse tree produced by MinisqlParser#unaryOp.
|
281
|
+
def visitUnaryOp(self, ctx:MinisqlParser.UnaryOpContext):
|
282
|
+
return self.visitChildren(ctx)
|
283
|
+
|
284
|
+
|
285
|
+
# Visit a parse tree produced by MinisqlParser#unquotedIdent.
|
286
|
+
def visitUnquotedIdent(self, ctx:MinisqlParser.UnquotedIdentContext):
|
287
|
+
return self.visitChildren(ctx)
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
del MinisqlParser
|
File without changes
|
@@ -0,0 +1,119 @@
|
|
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.delimit import DelimitingLexer
|
7
|
+
from ...antlr.errors import SilentRaisingErrorListener
|
8
|
+
from .. import queries as no
|
9
|
+
from ._antlr.MinisqlLexer import MinisqlLexer # type: ignore
|
10
|
+
from ._antlr.MinisqlParser import MinisqlParser # type: ignore
|
11
|
+
from ._antlr.MinisqlVisitor import MinisqlVisitor # type: ignore
|
12
|
+
|
13
|
+
|
14
|
+
##
|
15
|
+
|
16
|
+
|
17
|
+
class _ParseVisitor(MinisqlVisitor):
|
18
|
+
def visit(self, ctx: antlr4.ParserRuleContext):
|
19
|
+
check.isinstance(ctx, antlr4.ParserRuleContext)
|
20
|
+
node = ctx.accept(self)
|
21
|
+
return node
|
22
|
+
|
23
|
+
def aggregateResult(self, aggregate, nextResult):
|
24
|
+
if aggregate is not None:
|
25
|
+
check.none(nextResult)
|
26
|
+
return aggregate
|
27
|
+
else:
|
28
|
+
check.none(aggregate)
|
29
|
+
return nextResult
|
30
|
+
|
31
|
+
#
|
32
|
+
|
33
|
+
def visitExprSelectItem(self, ctx: MinisqlParser.ExprSelectItemContext):
|
34
|
+
value = self.visit(ctx.expr())
|
35
|
+
label = self.visit(ctx.ident()) if ctx.ident() is not None else None
|
36
|
+
return no.SelectItem(value, label)
|
37
|
+
|
38
|
+
def visitIntegerNumber(self, ctx: MinisqlParser.IntegerNumberContext):
|
39
|
+
return no.Literal(int(ctx.INTEGER_VALUE().getText()))
|
40
|
+
|
41
|
+
def visitPrimarySelect(self, ctx: MinisqlParser.PrimarySelectContext):
|
42
|
+
items = [self.visit(i) for i in ctx.selectItem()]
|
43
|
+
relations = [self.visit(r) for r in ctx.relation()]
|
44
|
+
where = self.visit(ctx.where) if ctx.where is not None else None
|
45
|
+
return no.Select(
|
46
|
+
items=items,
|
47
|
+
from_=check.single(relations) if relations else None,
|
48
|
+
where=where,
|
49
|
+
)
|
50
|
+
|
51
|
+
def visitQuotedIdent(self, ctx: MinisqlParser.QuotedIdentContext):
|
52
|
+
name = unquote(ctx.QUOTED_IDENT().getText(), '"')
|
53
|
+
return no.Ident(name)
|
54
|
+
|
55
|
+
def visitUnquotedIdent(self, ctx: MinisqlParser.UnquotedIdentContext):
|
56
|
+
return no.Ident(ctx.getText())
|
57
|
+
|
58
|
+
|
59
|
+
##
|
60
|
+
|
61
|
+
|
62
|
+
def create_parser(buf: str) -> MinisqlParser:
|
63
|
+
lexer = MinisqlLexer(antlr4.InputStream(buf))
|
64
|
+
lexer.removeErrorListeners()
|
65
|
+
lexer.addErrorListener(SilentRaisingErrorListener())
|
66
|
+
|
67
|
+
stream = antlr4.CommonTokenStream(lexer)
|
68
|
+
stream.fill()
|
69
|
+
|
70
|
+
parser = MinisqlParser(stream)
|
71
|
+
parser.removeErrorListeners()
|
72
|
+
parser.addErrorListener(SilentRaisingErrorListener())
|
73
|
+
|
74
|
+
return parser
|
75
|
+
|
76
|
+
|
77
|
+
##
|
78
|
+
|
79
|
+
|
80
|
+
def parse_stmt(buf: str, **kwargs) -> no.Stmt:
|
81
|
+
parser = create_parser(buf, **kwargs)
|
82
|
+
node = _ParseVisitor().visit(parser.singleStmt())
|
83
|
+
return check.isinstance(node, no.Stmt)
|
84
|
+
|
85
|
+
|
86
|
+
class _DelimitingLexer(DelimitingLexer, MinisqlLexer):
|
87
|
+
pass
|
88
|
+
|
89
|
+
|
90
|
+
def split_stmts(buf: str) -> ta.Sequence[str]:
|
91
|
+
lexer = _DelimitingLexer(
|
92
|
+
antlr4.InputStream(buf),
|
93
|
+
delimiter_token=MinisqlParser.DELIMITER,
|
94
|
+
delimiters=[';'],
|
95
|
+
)
|
96
|
+
lexer.removeErrorListeners()
|
97
|
+
lexer.addErrorListener(SilentRaisingErrorListener())
|
98
|
+
|
99
|
+
lst, part = lexer.split()
|
100
|
+
if part.strip():
|
101
|
+
raise ValueError(part)
|
102
|
+
|
103
|
+
return [s for s, _ in lst]
|
104
|
+
|
105
|
+
|
106
|
+
def parse_stmts(buf: str, **kwargs) -> ta.Sequence[no.Stmt]:
|
107
|
+
return [parse_stmt(sb, **kwargs) for sb in split_stmts(buf)]
|
108
|
+
|
109
|
+
|
110
|
+
##
|
111
|
+
|
112
|
+
|
113
|
+
def quote(val: str, q: str) -> str:
|
114
|
+
return q + val.replace(q, q * 2) + q
|
115
|
+
|
116
|
+
|
117
|
+
def unquote(val: str, q: str) -> str:
|
118
|
+
check.arg(val.startswith(q) and val.endswith(q))
|
119
|
+
return val[1:-1].replace(q * 2, q)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev253
|
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=SUzyh4gNJezXoDjwGUqKWpJF2LoBdZqSNlCL-GRYdsk,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
|
@@ -13,6 +13,7 @@ omlish/outcome.py,sha256=ABIE0zjjTyTNtn-ZqQ_9_mUzLiBQ3sDAyqc9JVD8N2k,7852
|
|
13
13
|
omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
|
14
14
|
omlish/shlex.py,sha256=bsW2XUD8GiMTUTDefJejZ5AyqT1pTgWMPD0BMoF02jE,248
|
15
15
|
omlish/sync.py,sha256=QJ79kxmIqDP9SeHDoZAf--DpFIhDQe1jACy8H4N0yZI,2928
|
16
|
+
omlish/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
17
|
omlish/algorithm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
18
|
omlish/algorithm/all.py,sha256=FudUHwoaRLNNmqYM3jhP2Yd2BpmYhNBRPaVZzARMoSc,194
|
18
19
|
omlish/algorithm/distribute.py,sha256=kO60F7HtMF3j-IxuhJdtsfgIR1Vpf1okQfacb4eNukQ,1533
|
@@ -289,7 +290,7 @@ omlish/formats/json5/__init__.py,sha256=BsjPz5zJDji3GjQ8x8hWvcl1GYPV_ZIHnE3c2Sr8
|
|
289
290
|
omlish/formats/json5/codec.py,sha256=ldnxCRo0JP1fkGLt0mMxJlLvNxqIF_1KUCcSp1HtI-M,452
|
290
291
|
omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC4,38
|
291
292
|
omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
|
292
|
-
omlish/formats/json5/parsing.py,sha256=
|
293
|
+
omlish/formats/json5/parsing.py,sha256=FrH6CgAYoqHGgJMPfbhNNuvwxi20i5rus9pGHU-BcW0,2346
|
293
294
|
omlish/formats/json5/_antlr/Json5Lexer.py,sha256=8TKxlENDsl6CPfoLR06uQSvhDnzGcY7fKsIhFJ_g6N4,23237
|
294
295
|
omlish/formats/json5/_antlr/Json5Listener.py,sha256=fSiOzSS0CMjxaCev3sxZqJlW-buqIyDLwgnuRv-Uh80,2095
|
295
296
|
omlish/formats/json5/_antlr/Json5Parser.py,sha256=nbbwoCPvEVRcEh5_t092XLmsXIHnbzONvH0W0g_BYkQ,19677
|
@@ -579,7 +580,7 @@ omlish/sockets/server/handlers.py,sha256=PPsb1X5oU9dN8jfztaMGsRiqWTyEANT-1aSLbS6
|
|
579
580
|
omlish/sockets/server/server.py,sha256=FkaishIxJuU4it9tTI7wzlGqJYzFGXzDrd_HgV0jAmU,6253
|
580
581
|
omlish/sockets/server/ssl.py,sha256=VE0GpdA-gYsN2m9_uvfDwWmXtIbRQqJomVdpGJO8o2M,1061
|
581
582
|
omlish/sockets/server/threading.py,sha256=YmW3Ym_p5j_F4SIH9BgRHIObywjq1HS39j9CGWIcMAY,2856
|
582
|
-
omlish/specs/__init__.py,sha256=
|
583
|
+
omlish/specs/__init__.py,sha256=fxpcfXEWESH2kiPStKhl2dAdfLkZVTt_cssZKyqBLiQ,87
|
583
584
|
omlish/specs/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
584
585
|
omlish/specs/irc/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
585
586
|
omlish/specs/irc/messages/base.py,sha256=JQWq4L-USYFw1DmHPpL3FiAwvynf6Hi48-zNdC__jT0,1240
|
@@ -640,6 +641,15 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=
|
|
640
641
|
omlish/specs/openapi/__init__.py,sha256=zilQhafjvteRDF_TUIRgF293dBC6g-TJChmUb6T9VBQ,77
|
641
642
|
omlish/specs/openapi/marshal.py,sha256=Z-E2Knm04C81N8AA8cibCVSl2ImhSpHZVc7yAhmPx88,2135
|
642
643
|
omlish/specs/openapi/openapi.py,sha256=y4h04jeB7ORJSVrcy7apaBdpwLjIyscv1Ub5SderH2c,12682
|
644
|
+
omlish/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
|
645
|
+
omlish/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
646
|
+
omlish/specs/proto/nodes.py,sha256=nwA6KyU9pZHLE9cO9dh46qTl6vfYJ8SjuUDlLBuoOms,776
|
647
|
+
omlish/specs/proto/parsing.py,sha256=Rrdhvl-QHBxykGFd9XltqG8GBPgHaw5rRM8wuELCdsA,2861
|
648
|
+
omlish/specs/proto/_antlr/Protobuf3Lexer.py,sha256=-FpQNpCJyhHf2dM4ngLtAtb7sssrtAXeR0W4WuKY4Yo,19471
|
649
|
+
omlish/specs/proto/_antlr/Protobuf3Listener.py,sha256=hjzAJjcj4xWRim-68v-6QwIsPVdPwOFUGz1rusRcaWU,14506
|
650
|
+
omlish/specs/proto/_antlr/Protobuf3Parser.py,sha256=VmkUyJx3WxIgAecOa1BGwbO9fVNysZt5-arQ-wDubpk,132411
|
651
|
+
omlish/specs/proto/_antlr/Protobuf3Visitor.py,sha256=zEVBXly2k9Cqmgdb45QwpLR-fZCEq8hpp2WQj-s7Wps,8782
|
652
|
+
omlish/specs/proto/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
643
653
|
omlish/sql/__init__.py,sha256=TpZLsEJKJzvJ0eMzuV8hwOJJbkxBCV1RZPUMLAVB6io,173
|
644
654
|
omlish/sql/abc.py,sha256=yrUSO2OSY6rtMyA0_MlrEFEyIKXLJymSPpmJwEjEJuc,4038
|
645
655
|
omlish/sql/dbapi.py,sha256=o6umqE7zVFI_ax0TnCKAikhAIPXChYOwVULb_OdcL1c,2974
|
@@ -660,6 +670,14 @@ omlish/sql/api/errors.py,sha256=YtC2gz5DqRTT3uCJniUOufVH1GEnFIc5ElkYLK3BHwM,230
|
|
660
670
|
omlish/sql/api/funcs.py,sha256=-H6V-o9JPSHFXsxdHtutB4mP2LwJfCzlLbRrPHunmB4,990
|
661
671
|
omlish/sql/api/queries.py,sha256=IgB8_sDe40-mKE-ByTmZ4GVOCdLLJDzJGJCevMd8R5s,1207
|
662
672
|
omlish/sql/api/rows.py,sha256=MEK9LNYEe8vLEJXQJD63MpnSOiE22cawJL-dUWQD6sU,1246
|
673
|
+
omlish/sql/parsing/Minisql.g4,sha256=DlriPFcnGT4QYG7O7VH2EmDVJQZq5zewoQ-tpXsSbIY,4748
|
674
|
+
omlish/sql/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
675
|
+
omlish/sql/parsing/parsing.py,sha256=hYIZdEKik4q22aEHHOX6lCpMa1jvgUk2aC1Llx10NMI,3343
|
676
|
+
omlish/sql/parsing/_antlr/MinisqlLexer.py,sha256=f4WzRrwqM7tW6sNn01035hRWPZL7xtuvba9EMR06j2E,17611
|
677
|
+
omlish/sql/parsing/_antlr/MinisqlListener.py,sha256=2py_bfDQeEtJaJh9rtpKghbSrQlEGAEKf5ZBLErKqsI,16633
|
678
|
+
omlish/sql/parsing/_antlr/MinisqlParser.py,sha256=y9SFjXdQlWYJa2PbPm30d5SfcYM_8M8ts46IHhENbNc,132457
|
679
|
+
omlish/sql/parsing/_antlr/MinisqlVisitor.py,sha256=NCPorucLLOZ-Q99BtNbDOAfHytQl8wyroR8pI1uVovg,10030
|
680
|
+
omlish/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
663
681
|
omlish/sql/queries/__init__.py,sha256=N8oQFKY99g_MQhrPmvlBAkMeGIRURE9UxMO244mytzY,1332
|
664
682
|
omlish/sql/queries/base.py,sha256=_8O3MbH_OEjBnhp2oIJUZ3ClaQ8l4Sj9BdPdsP0Ie-g,224
|
665
683
|
omlish/sql/queries/binary.py,sha256=dcEzeEn104AMPuQ7QrJU2O-YCN3SUdxB5S4jaWKOUqY,2253
|
@@ -735,9 +753,9 @@ omlish/text/mangle.py,sha256=kfzFLfvepH-chl1P89_mdc5vC4FSqyPA2aVtgzuB8IY,1133
|
|
735
753
|
omlish/text/minja.py,sha256=jZC-fp3Xuhx48ppqsf2Sf1pHbC0t8XBB7UpUUoOk2Qw,5751
|
736
754
|
omlish/text/parts.py,sha256=JkNZpyR2tv2CNcTaWJJhpQ9E4F0yPR8P_YfDbZfMtwQ,6182
|
737
755
|
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.
|
756
|
+
omlish-0.0.0.dev253.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
757
|
+
omlish-0.0.0.dev253.dist-info/METADATA,sha256=Mo7bxTA92y4u34s-B-sWSsWvkHFRu4wOhRnIk5VTauA,4176
|
758
|
+
omlish-0.0.0.dev253.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
759
|
+
omlish-0.0.0.dev253.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
760
|
+
omlish-0.0.0.dev253.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
761
|
+
omlish-0.0.0.dev253.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|