omextra 0.0.0.dev437__py3-none-any.whl → 0.0.0.dev438__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.
Files changed (99) hide show
  1. omextra/formats/json/_antlr/JsonLexer.py +1 -1
  2. omextra/formats/json/_antlr/JsonListener.py +1 -1
  3. omextra/formats/json/_antlr/JsonParser.py +1 -1
  4. omextra/formats/json/_antlr/JsonVisitor.py +1 -1
  5. omextra/formats/json5/Json5.g4 +168 -0
  6. omextra/formats/json5/__init__.py +0 -0
  7. omextra/formats/json5/_antlr/Json5Lexer.py +354 -0
  8. omextra/formats/json5/_antlr/Json5Listener.py +79 -0
  9. omextra/formats/json5/_antlr/Json5Parser.py +617 -0
  10. omextra/formats/json5/_antlr/Json5Visitor.py +52 -0
  11. omextra/formats/json5/_antlr/__init__.py +0 -0
  12. omextra/formats/json5/parsing.py +101 -0
  13. omextra/specs/proto/_antlr/Protobuf3Lexer.py +1 -1
  14. omextra/specs/proto/_antlr/Protobuf3Listener.py +1 -1
  15. omextra/specs/proto/_antlr/Protobuf3Parser.py +1 -1
  16. omextra/specs/proto/_antlr/Protobuf3Visitor.py +1 -1
  17. omextra/specs/proto/parsing.py +2 -2
  18. omextra/sql/parsing/_antlr/MinisqlLexer.py +1 -1
  19. omextra/sql/parsing/_antlr/MinisqlListener.py +1 -1
  20. omextra/sql/parsing/_antlr/MinisqlParser.py +1 -1
  21. omextra/sql/parsing/_antlr/MinisqlVisitor.py +1 -1
  22. omextra/sql/parsing/parsing.py +3 -3
  23. omextra/text/antlr/__init__.py +3 -0
  24. omextra/text/antlr/_runtime/BufferedTokenStream.py +305 -0
  25. omextra/text/antlr/_runtime/CommonTokenFactory.py +64 -0
  26. omextra/text/antlr/_runtime/CommonTokenStream.py +90 -0
  27. omextra/text/antlr/_runtime/FileStream.py +30 -0
  28. omextra/text/antlr/_runtime/InputStream.py +90 -0
  29. omextra/text/antlr/_runtime/IntervalSet.py +183 -0
  30. omextra/text/antlr/_runtime/LICENSE.txt +28 -0
  31. omextra/text/antlr/_runtime/LL1Analyzer.py +176 -0
  32. omextra/text/antlr/_runtime/Lexer.py +332 -0
  33. omextra/text/antlr/_runtime/ListTokenSource.py +147 -0
  34. omextra/text/antlr/_runtime/Parser.py +583 -0
  35. omextra/text/antlr/_runtime/ParserInterpreter.py +173 -0
  36. omextra/text/antlr/_runtime/ParserRuleContext.py +189 -0
  37. omextra/text/antlr/_runtime/PredictionContext.py +632 -0
  38. omextra/text/antlr/_runtime/Recognizer.py +150 -0
  39. omextra/text/antlr/_runtime/RuleContext.py +230 -0
  40. omextra/text/antlr/_runtime/StdinStream.py +14 -0
  41. omextra/text/antlr/_runtime/Token.py +158 -0
  42. omextra/text/antlr/_runtime/TokenStreamRewriter.py +258 -0
  43. omextra/text/antlr/_runtime/Utils.py +36 -0
  44. omextra/text/antlr/_runtime/__init__.py +2 -0
  45. omextra/text/antlr/_runtime/_all.py +24 -0
  46. omextra/text/antlr/_runtime/_pygrun.py +174 -0
  47. omextra/text/antlr/_runtime/atn/ATN.py +135 -0
  48. omextra/text/antlr/_runtime/atn/ATNConfig.py +162 -0
  49. omextra/text/antlr/_runtime/atn/ATNConfigSet.py +215 -0
  50. omextra/text/antlr/_runtime/atn/ATNDeserializationOptions.py +27 -0
  51. omextra/text/antlr/_runtime/atn/ATNDeserializer.py +449 -0
  52. omextra/text/antlr/_runtime/atn/ATNSimulator.py +50 -0
  53. omextra/text/antlr/_runtime/atn/ATNState.py +267 -0
  54. omextra/text/antlr/_runtime/atn/ATNType.py +20 -0
  55. omextra/text/antlr/_runtime/atn/LexerATNSimulator.py +573 -0
  56. omextra/text/antlr/_runtime/atn/LexerAction.py +301 -0
  57. omextra/text/antlr/_runtime/atn/LexerActionExecutor.py +146 -0
  58. omextra/text/antlr/_runtime/atn/ParserATNSimulator.py +1664 -0
  59. omextra/text/antlr/_runtime/atn/PredictionMode.py +502 -0
  60. omextra/text/antlr/_runtime/atn/SemanticContext.py +333 -0
  61. omextra/text/antlr/_runtime/atn/Transition.py +271 -0
  62. omextra/text/antlr/_runtime/atn/__init__.py +4 -0
  63. omextra/text/antlr/_runtime/dfa/DFA.py +136 -0
  64. omextra/text/antlr/_runtime/dfa/DFASerializer.py +76 -0
  65. omextra/text/antlr/_runtime/dfa/DFAState.py +129 -0
  66. omextra/text/antlr/_runtime/dfa/__init__.py +4 -0
  67. omextra/text/antlr/_runtime/error/DiagnosticErrorListener.py +111 -0
  68. omextra/text/antlr/_runtime/error/ErrorListener.py +75 -0
  69. omextra/text/antlr/_runtime/error/ErrorStrategy.py +712 -0
  70. omextra/text/antlr/_runtime/error/Errors.py +176 -0
  71. omextra/text/antlr/_runtime/error/__init__.py +4 -0
  72. omextra/text/antlr/_runtime/tree/Chunk.py +33 -0
  73. omextra/text/antlr/_runtime/tree/ParseTreeMatch.py +121 -0
  74. omextra/text/antlr/_runtime/tree/ParseTreePattern.py +75 -0
  75. omextra/text/antlr/_runtime/tree/ParseTreePatternMatcher.py +377 -0
  76. omextra/text/antlr/_runtime/tree/RuleTagToken.py +53 -0
  77. omextra/text/antlr/_runtime/tree/TokenTagToken.py +50 -0
  78. omextra/text/antlr/_runtime/tree/Tree.py +194 -0
  79. omextra/text/antlr/_runtime/tree/Trees.py +114 -0
  80. omextra/text/antlr/_runtime/tree/__init__.py +2 -0
  81. omextra/text/antlr/_runtime/xpath/XPath.py +278 -0
  82. omextra/text/antlr/_runtime/xpath/XPathLexer.py +98 -0
  83. omextra/text/antlr/_runtime/xpath/__init__.py +4 -0
  84. omextra/text/antlr/cli/consts.py +1 -1
  85. omextra/text/antlr/delimit.py +110 -0
  86. omextra/text/antlr/dot.py +42 -0
  87. omextra/text/antlr/errors.py +14 -0
  88. omextra/text/antlr/input.py +96 -0
  89. omextra/text/antlr/parsing.py +55 -0
  90. omextra/text/antlr/runtime.py +102 -0
  91. omextra/text/antlr/utils.py +38 -0
  92. omextra-0.0.0.dev438.dist-info/METADATA +28 -0
  93. omextra-0.0.0.dev438.dist-info/RECORD +144 -0
  94. omextra-0.0.0.dev437.dist-info/METADATA +0 -73
  95. omextra-0.0.0.dev437.dist-info/RECORD +0 -69
  96. {omextra-0.0.0.dev437.dist-info → omextra-0.0.0.dev438.dist-info}/WHEEL +0 -0
  97. {omextra-0.0.0.dev437.dist-info → omextra-0.0.0.dev438.dist-info}/entry_points.txt +0 -0
  98. {omextra-0.0.0.dev437.dist-info → omextra-0.0.0.dev438.dist-info}/licenses/LICENSE +0 -0
  99. {omextra-0.0.0.dev437.dist-info → omextra-0.0.0.dev438.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,96 @@
1
+ # ruff: noqa: N802
2
+ import typing as ta
3
+
4
+
5
+ ##
6
+
7
+
8
+ # class InputStream(ta.Protocol):
9
+ #
10
+ # @property
11
+ # def index(self) -> int: ...
12
+ #
13
+ # @property
14
+ # def size(self) -> int: ...
15
+ #
16
+ # # Reset the stream so that it's in the same state it was when the object was created *except* the data array is not
17
+ # # touched.
18
+ # def reset(self) -> None: ...
19
+ #
20
+ # def consume(self) -> None: ...
21
+ #
22
+ # def LA(self, offset: int) -> int: ...
23
+ #
24
+ # def LT(self, offset: int) -> int: ...
25
+ #
26
+ # def mark(self) -> int: ...
27
+ #
28
+ # def release(self, marker: int) -> None: ...
29
+ #
30
+ # # consume() ahead until p==_index; can't just set p=_index as we must update line and column. If we seek backwards,
31
+ # # just set p
32
+ # def seek(self, _index: int) -> None: ...
33
+ #
34
+ # def getText(self, start: int, stop: int) -> str: ...
35
+ #
36
+ # def __str__(self) -> str: ...
37
+
38
+
39
+ InputStream: ta.TypeAlias = ta.Any
40
+
41
+
42
+ ##
43
+
44
+
45
+ # @lang.protocol_check(InputStream)
46
+ class ProxyInputStream:
47
+ def __init__(self, target: InputStream) -> None:
48
+ super().__init__()
49
+
50
+ self._target = target
51
+
52
+ @property
53
+ def index(self) -> int:
54
+ return self._target.index
55
+
56
+ @property
57
+ def size(self) -> int:
58
+ return self._target.size
59
+
60
+ def reset(self) -> None:
61
+ self._target.reset()
62
+
63
+ def consume(self) -> None:
64
+ self._target.consume()
65
+
66
+ def LA(self, offset: int) -> int:
67
+ return self._target.LA(offset)
68
+
69
+ def LT(self, offset: int) -> int:
70
+ return self._target.LT(offset)
71
+
72
+ def mark(self) -> int:
73
+ return self._target.mark()
74
+
75
+ def release(self, marker: int) -> None:
76
+ return self._target.release(marker)
77
+
78
+ def seek(self, _index: int) -> None:
79
+ return self._target.seek(_index)
80
+
81
+ def getText(self, start: int, stop: int) -> str:
82
+ return self._target.getText(start, stop)
83
+
84
+ def __str__(self) -> str:
85
+ return str(self._target)
86
+
87
+
88
+ ##
89
+
90
+
91
+ class CaseInsensitiveInputStream(ProxyInputStream):
92
+ def LA(self, offset: int) -> int:
93
+ ret = super().LA(offset)
94
+ if ret != -1:
95
+ ret = ord(chr(ret).upper())
96
+ return ret
@@ -0,0 +1,55 @@
1
+ # ruff: noqa: N802 N803
2
+ import typing as ta
3
+
4
+ from omlish import check
5
+
6
+ from . import runtime as antlr4
7
+ from .errors import SilentRaisingErrorListener
8
+
9
+
10
+ LexerT = ta.TypeVar('LexerT', bound=antlr4.Lexer)
11
+ ParserT = ta.TypeVar('ParserT', bound=antlr4.Parser)
12
+
13
+
14
+ ##
15
+
16
+
17
+ def is_eof_context(ctx: antlr4.ParserRuleContext) -> bool:
18
+ return ctx.getChildCount() == 1 and ctx.getChild(0).getSymbol().type == antlr4.Token.EOF
19
+
20
+
21
+ class StandardParseTreeVisitor(antlr4.ParseTreeVisitor):
22
+ def visit(self, ctx: antlr4.ParserRuleContext):
23
+ check.isinstance(ctx, antlr4.ParserRuleContext)
24
+ return ctx.accept(self)
25
+
26
+ def aggregateResult(self, aggregate, nextResult): # noqa
27
+ if aggregate is not None:
28
+ check.none(nextResult)
29
+ return aggregate
30
+ else:
31
+ check.none(aggregate)
32
+ return nextResult
33
+
34
+
35
+ def make_parser(
36
+ buf: str,
37
+ lexer_cls: type[LexerT],
38
+ parser_cls: type[ParserT],
39
+ *,
40
+ silent_errors: bool = False,
41
+ ) -> ParserT:
42
+ lexer = lexer_cls(antlr4.InputStream(buf))
43
+ if silent_errors:
44
+ lexer.removeErrorListeners()
45
+ lexer.addErrorListener(SilentRaisingErrorListener())
46
+
47
+ stream = antlr4.CommonTokenStream(lexer)
48
+ stream.fill()
49
+
50
+ parser = parser_cls(stream)
51
+ if silent_errors:
52
+ parser.removeErrorListeners()
53
+ parser.addErrorListener(SilentRaisingErrorListener())
54
+
55
+ return parser
@@ -0,0 +1,102 @@
1
+ # ruff: noqa: I001
2
+ # flake8: noqa: F401
3
+
4
+ from ._runtime.BufferedTokenStream import ( # type: ignore
5
+ TokenStream,
6
+ )
7
+
8
+ from ._runtime.CommonTokenStream import ( # type: ignore
9
+ CommonTokenStream,
10
+ )
11
+
12
+ from ._runtime.FileStream import ( # type: ignore
13
+ FileStream,
14
+ )
15
+
16
+ from ._runtime.InputStream import ( # type: ignore
17
+ InputStream,
18
+ )
19
+
20
+ from ._runtime.Lexer import ( # type: ignore
21
+ Lexer,
22
+ )
23
+
24
+ from ._runtime.Parser import ( # type: ignore
25
+ Parser,
26
+ )
27
+
28
+ from ._runtime.ParserRuleContext import ( # type: ignore
29
+ ParserRuleContext,
30
+ RuleContext,
31
+ )
32
+
33
+ from ._runtime.PredictionContext import ( # type: ignore
34
+ PredictionContextCache,
35
+ )
36
+
37
+ from ._runtime.StdinStream import ( # type: ignore
38
+ StdinStream,
39
+ )
40
+
41
+ from ._runtime.Token import ( # type: ignore
42
+ Token,
43
+ )
44
+
45
+ from ._runtime.Utils import ( # type: ignore
46
+ str_list,
47
+ )
48
+
49
+ from ._runtime.atn.ATN import ( # type: ignore
50
+ ATN,
51
+ )
52
+
53
+ from ._runtime.atn.ATNDeserializer import ( # type: ignore
54
+ ATNDeserializer,
55
+ )
56
+
57
+ from ._runtime.atn.LexerATNSimulator import ( # type: ignore
58
+ LexerATNSimulator,
59
+ )
60
+
61
+ from ._runtime.atn.ParserATNSimulator import ( # type: ignore
62
+ ParserATNSimulator,
63
+ )
64
+
65
+ from ._runtime.atn.PredictionMode import ( # type: ignore
66
+ PredictionMode,
67
+ )
68
+
69
+ from ._runtime.dfa.DFA import ( # type: ignore
70
+ DFA,
71
+ )
72
+
73
+ from ._runtime.error.DiagnosticErrorListener import ( # type: ignore
74
+ DiagnosticErrorListener,
75
+ )
76
+
77
+ from ._runtime.error.ErrorListener import ( # type: ignore
78
+ ErrorListener,
79
+ )
80
+
81
+ from ._runtime.error.ErrorStrategy import ( # type: ignore
82
+ BailErrorStrategy,
83
+ )
84
+
85
+ from ._runtime.error.Errors import ( # type: ignore
86
+ LexerNoViableAltException,
87
+ )
88
+
89
+ from ._runtime.error.Errors import ( # type: ignore
90
+ IllegalStateException,
91
+ NoViableAltException,
92
+ RecognitionException,
93
+ )
94
+
95
+ from ._runtime.tree.Tree import ( # type: ignore
96
+ ErrorNode,
97
+ ParseTreeListener,
98
+ ParseTreeVisitor,
99
+ ParseTreeWalker,
100
+ RuleNode,
101
+ TerminalNode,
102
+ )
@@ -0,0 +1,38 @@
1
+ # ruff: noqa: N802 N803
2
+ import io
3
+ import typing as ta
4
+
5
+ from . import runtime as antlr4
6
+
7
+
8
+ ##
9
+
10
+
11
+ def pformat(
12
+ node: ta.Any,
13
+ *,
14
+ buf: ta.IO | None = None,
15
+ indent: str = '',
16
+ child_indent: str = ' ',
17
+ ) -> ta.IO:
18
+ if buf is None:
19
+ buf = io.StringIO()
20
+ buf.write(indent)
21
+ buf.write(node.__class__.__name__)
22
+ if hasattr(node, 'start') and hasattr(node, 'stop'):
23
+ buf.write(f' ({node.start} -> {node.stop})')
24
+ buf.write('\n')
25
+ for child in getattr(node, 'children', []) or []:
26
+ pformat(child, buf=buf, indent=indent + child_indent, child_indent=child_indent)
27
+ return buf
28
+
29
+
30
+ def yield_contexts(
31
+ root: antlr4.ParserRuleContext,
32
+ ) -> ta.Iterator[antlr4.ParserRuleContext]:
33
+ q = [root]
34
+ while q:
35
+ c = q.pop()
36
+ yield c
37
+ if not isinstance(c, antlr4.TerminalNode) and c.children:
38
+ q.extend(c.children)
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.4
2
+ Name: omextra
3
+ Version: 0.0.0.dev438
4
+ Summary: omextra
5
+ Author: wrmsr
6
+ License-Expression: BSD-3-Clause
7
+ Project-URL: source, https://github.com/wrmsr/omlish
8
+ Classifier: Development Status :: 2 - Pre-Alpha
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Operating System :: POSIX
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Requires-Python: >=3.13
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: omlish==0.0.0.dev438
18
+ Dynamic: license-file
19
+
20
+ # Overview
21
+
22
+ Core-like code not appropriate for inclusion in `omlish` for one reason or another. A bit like
23
+ [`golang.org/x`](https://pkg.go.dev/golang.org/x).
24
+
25
+ # Notable packages
26
+
27
+ - **[text.antlr](https://github.com/wrmsr/omlish/blob/master/omextra/text/antlr)** -
28
+ [ANTLR](https://www.antlr.org/)-related code.
@@ -0,0 +1,144 @@
1
+ omextra/.omlish-manifests.json,sha256=E1M9UJ31RfpLfsZ2MfbN0_GAh_Lu_vj9wVJKPgak8jQ,290
2
+ omextra/__about__.py,sha256=UmONS0zKtygpY7Z9AD42Kn1cajMEdLKHzUwG00kaaFM,689
3
+ omextra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ omextra/defs.py,sha256=iMaDGj5VSG7QdYA1s7MvIYTbtTsXc1msINsuuZym1vs,4902
5
+ omextra/dynamic.py,sha256=i3aJRWwHJOmsrXI9a2iWCLa7pUQXx5YbMvUOS5LZ_Bs,6531
6
+ omextra/asyncs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ omextra/asyncs/bridge.py,sha256=75FScB7uZtINJelaJutDRuy6zCoFrTRL5Yajx8TFpWs,10158
8
+ omextra/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ omextra/formats/json/Json.g4,sha256=fYImsljcVPdlMTHBabM_rza2j4udqjfLQNxIz4S_TpY,1206
10
+ omextra/formats/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ omextra/formats/json/_antlr/JsonLexer.py,sha256=SYlMV8XKi_kJ9meEulNmm2B98hjdzz_xLyPsoqCyYoE,4957
12
+ omextra/formats/json/_antlr/JsonListener.py,sha256=NhLh08embB9B4gAUovNs3ACl3Y_SjA2XrVAcWQF33iI,1587
13
+ omextra/formats/json/_antlr/JsonParser.py,sha256=YaAQITAAzZhluBJ__GWd6L69eC8YmhyZnPo-s8pW6mY,14291
14
+ omextra/formats/json/_antlr/JsonVisitor.py,sha256=b97Pk5JKWm1a3b6WNYESTXvuqvJX_Jt7v1SIIMiuy8E,1131
15
+ omextra/formats/json/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ omextra/formats/json5/Json5.g4,sha256=2V3IB8W1R45mFax5Qy4laAwcHJ9oFPWHc-r8qy9-YE4,2381
17
+ omextra/formats/json5/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ omextra/formats/json5/parsing.py,sha256=ItsDI7EheELd1CqtU4-wqvTDqjhx8AGRKsdsrPyl6nU,2873
19
+ omextra/formats/json5/_antlr/Json5Lexer.py,sha256=8sT04wjBTDpyHpLo6a5byREBwfNnFtLPZp7Wx3KfbkY,23259
20
+ omextra/formats/json5/_antlr/Json5Listener.py,sha256=wIqOwp4r-cOHxy6sxQbNmlYczqh2C3-H-74o_hr7WrA,2117
21
+ omextra/formats/json5/_antlr/Json5Parser.py,sha256=psacqZWRzPNEZq70XKpOnelZXHuXjkULq1r-owaPs6g,19699
22
+ omextra/formats/json5/_antlr/Json5Visitor.py,sha256=fIp5GhQ2Sd-bKEBBcBd31FOoCLiV1SZYPRof0Az6v6k,1455
23
+ omextra/formats/json5/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ omextra/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ omextra/io/trampoline.py,sha256=nzCXtL4qip3IjfHwSHqhWkh429iakUFikbYKgx66cLc,7221
26
+ omextra/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ omextra/specs/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ omextra/specs/irc/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ omextra/specs/irc/messages/base.py,sha256=7tHICphzOievcjs39tzeooTL0Z6iL4nvVHxgRKK54LY,1248
30
+ omextra/specs/irc/messages/formats.py,sha256=8Cz2mmlx0--Vnp4VvUYSndYc1Dnq97Mls5ol4zgdG2Q,2370
31
+ omextra/specs/irc/messages/messages.py,sha256=QaNktXScvtKCWD6KbHIx_5XvXmsJlbkoVR_zXjLdyiA,14079
32
+ omextra/specs/irc/messages/parsing.py,sha256=nennTwdNbaWYx-BzMe9qKhdFdTlBeEuOVrBlhMNBYf0,2225
33
+ omextra/specs/irc/numerics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ omextra/specs/irc/numerics/formats.py,sha256=NI5DKyePCEnOeE66R1qVgu2rUt56id_n52wzx_9w8uw,2261
35
+ omextra/specs/irc/numerics/numerics.py,sha256=iOEG9PqfGUiDh6gDgdiNUqVY6WAbMBIwEPPIma34JNo,18215
36
+ omextra/specs/irc/numerics/types.py,sha256=myjN4K29QzwE3XvKeyW7QYhPW-H13jCR2gvv59_g0Pc,1289
37
+ omextra/specs/irc/protocol/LICENSE,sha256=1CT5_XkDMJ9HDZh0tX4TIsm7LfrSdljRX5EirPBhDYM,778
38
+ omextra/specs/irc/protocol/__init__.py,sha256=0OFSLrMS5jYFJCqH1LKv0UfTrp5faPQhlhYKBQyCZeA,1701
39
+ omextra/specs/irc/protocol/consts.py,sha256=iDCsJIyDE5-UnkIQpwCLzdbf3DUFWRmqkuVd0cZtujw,185
40
+ omextra/specs/irc/protocol/errors.py,sha256=cRP8c--kRts5Uwqn1xl1J97OI74hicG4UbkJs_EOSDg,334
41
+ omextra/specs/irc/protocol/message.py,sha256=i1-iZj17_mrmX5WaIcBuVD-dZP6g-bP6I_zH-0gVLzU,403
42
+ omextra/specs/irc/protocol/nuh.py,sha256=6DamgLNVaZRZdvpGqOn-cFsnru-a_kYmJIrb_Epu8_o,1287
43
+ omextra/specs/irc/protocol/parsing.py,sha256=yL9LRLw4GqtmiXmrH_AcIzu5x2riP6QDMEWESZVJ3jc,4058
44
+ omextra/specs/irc/protocol/rendering.py,sha256=-V7_Yr9m_izcUrwkOeD3L4aCNTT4iLi22QH5J0Upd5g,4914
45
+ omextra/specs/irc/protocol/tags.py,sha256=M89vR2GgDNroEsiH2QNchVX2LmT6sMIXY7huTEv7rIM,2784
46
+ omextra/specs/irc/protocol/utils.py,sha256=tUbkShJov8oCsbg1KZE1EC5pCThXJTdXFcw0HBM5ApQ,692
47
+ omextra/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
48
+ omextra/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ omextra/specs/proto/nodes.py,sha256=NJYPGYrKV6GM51acYfRYmGNf23j9HeIvt4q--fVVAJQ,779
50
+ omextra/specs/proto/parsing.py,sha256=Wr1L_rsgSe15RZbbwaBd1kdabD_Ag_LMy5pKoPP1e_M,2875
51
+ omextra/specs/proto/_antlr/Protobuf3Lexer.py,sha256=CqZS0oOfpSgswxjM8CuOwRZDEm1Jm2lrYarS7ptI5Ug,19493
52
+ omextra/specs/proto/_antlr/Protobuf3Listener.py,sha256=CdBxX40sEmqZSdyOcBaogOwsm7106Kr9-KcqZZE3jUs,14528
53
+ omextra/specs/proto/_antlr/Protobuf3Parser.py,sha256=iOeqyU9lUJ-kpiDj3lS86XjnE-L4Wv_UmdvVG0dGCQU,132433
54
+ omextra/specs/proto/_antlr/Protobuf3Visitor.py,sha256=K5NxkXvMEJVsqnpXsHxMAHJOUFEYKSCSdsNR4RWgrE4,8804
55
+ omextra/specs/proto/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ omextra/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ omextra/sql/parsing/Minisql.g4,sha256=Jw8xT-8UI6ySHAgStyCg5QX9NTCinvTenLJReWiZIJU,4578
58
+ omextra/sql/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
+ omextra/sql/parsing/parsing.py,sha256=FkGpXcHoWzdEwxsxlSPhjAjpUip6U592rdFf0ymKenI,3374
60
+ omextra/sql/parsing/_antlr/MinisqlLexer.py,sha256=Ce5hPERmyCle953lwQR7a6F24a1_KyVt6PtmOsGwRbg,17633
61
+ omextra/sql/parsing/_antlr/MinisqlListener.py,sha256=4B9d9ONDxzrx1QR-g96Qw_ilAW_I23VpULbq_UeIY0w,16655
62
+ omextra/sql/parsing/_antlr/MinisqlParser.py,sha256=htIMgNde8PqLj7mDV2cLo7kDiwn-acDZjr7mUBAC3PA,132479
63
+ omextra/sql/parsing/_antlr/MinisqlVisitor.py,sha256=UPs2qA2VlNRP_LMwF0DpMxMir9tIS9w59vGTq07mmlI,10052
64
+ omextra/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ omextra/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ omextra/text/antlr/__init__.py,sha256=88bMl_28cfSKslgOkMGYXqALgsHz3KC4LFvAVtzj7k8,89
67
+ omextra/text/antlr/delimit.py,sha256=s0Jlu6oOamtuyWv_V98P0YC7HmgFJBF7GHVsDfMYTdI,3476
68
+ omextra/text/antlr/dot.py,sha256=37ZBYpum-n6Xg9UGj1Wc0wyuR3gL_uX63KwrSzyWNmk,967
69
+ omextra/text/antlr/errors.py,sha256=4J0WuVKbeFoZEP0wePCmn-e7mI1VMwWoE3wkeQO-4nk,313
70
+ omextra/text/antlr/input.py,sha256=baeO279AIxR50pymya0eabtnc2A0bSdA5u7jvIGebzA,2090
71
+ omextra/text/antlr/parsing.py,sha256=aQoPrVxb2H7BfqvPoogrgtlunskDHt5AHUi8zyBJUow,1424
72
+ omextra/text/antlr/runtime.py,sha256=wYUiJ0qoj4soHFL6fsq91MnUrDSKUEQVmJScKJibOAc,1975
73
+ omextra/text/antlr/utils.py,sha256=hi_RFUl222r2gQsmmm5MYg5_vYa3q8u-KP4CC1ZHndA,912
74
+ omextra/text/antlr/_runtime/BufferedTokenStream.py,sha256=1Rnhm62MZCWSuQeRs7lRUbdtdyo7Gyg8r4gAETjv-cE,10793
75
+ omextra/text/antlr/_runtime/CommonTokenFactory.py,sha256=QrSSTH0gYhOpPeOHqrs6-2g1PGcgYvjhR6J6pynKLOc,2147
76
+ omextra/text/antlr/_runtime/CommonTokenStream.py,sha256=L7giynpsS97oM6ZtPRIw8m6eIbGSaeEUJ7HN6b2etN4,2795
77
+ omextra/text/antlr/_runtime/FileStream.py,sha256=X2PqkNatRxhFrk3acH4NhWv0aBCgMwAn87pmrTLmL5c,905
78
+ omextra/text/antlr/_runtime/InputStream.py,sha256=50Ko4Vq-iWpk7sAMhJ0rrmB3LFv20TztUMpeIEcEfxg,2371
79
+ omextra/text/antlr/_runtime/IntervalSet.py,sha256=-8puC1vhHPwFMG3YzmA62MjJf37hkBSzteJ_GIvXJhk,6002
80
+ omextra/text/antlr/_runtime/LICENSE.txt,sha256=PbH7PueaS0-ZGPxND2Ezvxijz3h_EmzSL4qpuGIoHAw,1480
81
+ omextra/text/antlr/_runtime/LL1Analyzer.py,sha256=Try7EBMnZfpDV-E_JDCTluc9XnbTPfNanDvVYtAUxzE,7747
82
+ omextra/text/antlr/_runtime/Lexer.py,sha256=p5BbDve_V7Oms9FiiNfbVWWXc6dwt5B9wqije-RUc_0,11549
83
+ omextra/text/antlr/_runtime/ListTokenSource.py,sha256=wjaO4eWaZu5LTHFlNGnaW4K8kfuPW28wVbRkyElYjD0,5381
84
+ omextra/text/antlr/_runtime/Parser.py,sha256=RClLh37vtzhOpopUZPvSEesfya5yyC3Acpo1Bqzs1JM,22842
85
+ omextra/text/antlr/_runtime/ParserInterpreter.py,sha256=F0Uscv8hApF7Z4Nm8sE9naGhJrn6tlix7BRcANOvpp8,7177
86
+ omextra/text/antlr/_runtime/ParserRuleContext.py,sha256=2iV0H6_tjBD6LIQh8wMRlpZ4cSNxNc1_8MSeJUcdj7s,6787
87
+ omextra/text/antlr/_runtime/PredictionContext.py,sha256=WWtD-vG0KcBtKqyjt42lGprSuu-VfSixeNxxbi8rQtw,23516
88
+ omextra/text/antlr/_runtime/Recognizer.py,sha256=wsI9wHVeFk0b7J4E8dutGTX_B_U9lELoiTdoirQR29s,5397
89
+ omextra/text/antlr/_runtime/RuleContext.py,sha256=tKXuP56if7CObxGkliLFynf8Da42Nr2CejFhReFK56g,8130
90
+ omextra/text/antlr/_runtime/StdinStream.py,sha256=8up7-oFlr-ydpFV7kFqI1mRDD83Y8wYcXs0rBj-73Us,340
91
+ omextra/text/antlr/_runtime/Token.py,sha256=Ywq-AwJz6GXQ431TTFExNylshQbNr6T5u4_48dxlrtk,5249
92
+ omextra/text/antlr/_runtime/TokenStreamRewriter.py,sha256=2Zd8vdNQ7_XF1Y4r3axxHTD-hdauxyEPaePOqArF1g0,10355
93
+ omextra/text/antlr/_runtime/Utils.py,sha256=Edv360609RwDaEz2JxlXCj9-HuXNEmqr4RVVcbhdLco,974
94
+ omextra/text/antlr/_runtime/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
95
+ omextra/text/antlr/_runtime/_all.py,sha256=MbNYoQYRympa1nGlgtuZ1AkJTv1SacqvBKG7bTXG0So,1042
96
+ omextra/text/antlr/_runtime/_pygrun.py,sha256=22tgQKyhLO2UbnwacAzsew7bkXjENctDs4XrmSHAqXc,6328
97
+ omextra/text/antlr/_runtime/atn/ATN.py,sha256=0V07bHRY-_rX-Du85F08KbMDbvr055co3Crt0VZbwOo,5792
98
+ omextra/text/antlr/_runtime/atn/ATNConfig.py,sha256=sY7zO2oSh9SLSvs05gY84vtFmV4ZcTKz7dXvDIxH_ew,6573
99
+ omextra/text/antlr/_runtime/atn/ATNConfigSet.py,sha256=vm06ECB3eJsD7BssUCoi08FAsnpRnJJDeuMZKMrlDNc,8336
100
+ omextra/text/antlr/_runtime/atn/ATNDeserializationOptions.py,sha256=87uY6moHi9KpjeRZxwGLsaUL4eNZabFLL9nEK9m-WxU,1053
101
+ omextra/text/antlr/_runtime/atn/ATNDeserializer.py,sha256=TwMeggclcky9tlmAmUXEilBfp2GMIFyveJGOYai-h5Q,18938
102
+ omextra/text/antlr/_runtime/atn/ATNSimulator.py,sha256=RCQsNhVBbY0tdShJYJ7m5jhbcAWPsLe1PnasrJ4owos,2311
103
+ omextra/text/antlr/_runtime/atn/ATNState.py,sha256=Eq2l1BLDqtZG8VHmoDCEUnyeiRJ-hcWPrzE5Kh_MY9w,7696
104
+ omextra/text/antlr/_runtime/atn/ATNType.py,sha256=_UdEWJXYM9gmOQ0u8XxruKLJTYU5ePuNGMAQQu1mWv4,465
105
+ omextra/text/antlr/_runtime/atn/LexerATNSimulator.py,sha256=ZFUTqu7D39AiC8VZunslTrsl7sZKpukEzlkWFK8CRBA,25408
106
+ omextra/text/antlr/_runtime/atn/LexerAction.py,sha256=PS8ArQadDRVXYnfCbOxJBuEVh7jMX2JtarhxZJ9c-jE,10057
107
+ omextra/text/antlr/_runtime/atn/LexerActionExecutor.py,sha256=GoLnxIG-mzOAHLZvfgIBMGB9i2FyXrZrqtFK3B0Hoak,6448
108
+ omextra/text/antlr/_runtime/atn/ParserATNSimulator.py,sha256=5N0htVWAy3x8rfWVs1YN2Jz16LLpXKjAwefFPXgBHcM,80746
109
+ omextra/text/antlr/_runtime/atn/PredictionMode.py,sha256=JAnsYHfd6vD1t1wvLNpBuyi5avjxn8Flbkh_lcrgs1g,22479
110
+ omextra/text/antlr/_runtime/atn/SemanticContext.py,sha256=jYz90ZjiL4Hcya5881fTQd3zvTzTYpjsntiqiRx7xLA,10674
111
+ omextra/text/antlr/_runtime/atn/Transition.py,sha256=YrPBbwKK9E4SwFNmS5u6ATfZ-uC-fx5GSAtPyQsBn4E,8775
112
+ omextra/text/antlr/_runtime/atn/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
113
+ omextra/text/antlr/_runtime/dfa/DFA.py,sha256=1eLI8ckM7_Q4dx_l5m1eiiqJPpaTWJ1DDKUMUUbc-qA,5381
114
+ omextra/text/antlr/_runtime/dfa/DFASerializer.py,sha256=HmQpIrVl0_kit8GSCqYyT4AnFvWyBj8vuye0YeFNEKE,2549
115
+ omextra/text/antlr/_runtime/dfa/DFAState.py,sha256=vZ5sBJc0hp5BaOVVT3sdQEd1jEi6yb-u-aO9DHpC2Tw,5616
116
+ omextra/text/antlr/_runtime/dfa/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
117
+ omextra/text/antlr/_runtime/error/DiagnosticErrorListener.py,sha256=SyUCrVs2Vzgvf8j2cSkzjODRBeXrVVrKytRH2LxjALs,4479
118
+ omextra/text/antlr/_runtime/error/ErrorListener.py,sha256=pPVVFGIDbELkMhG-A5-b39y3SkNkJvsP6n8Y0TfotfA,2765
119
+ omextra/text/antlr/_runtime/error/ErrorStrategy.py,sha256=0nZwpqR8L0264DphJHoEmYkQHlxZxCEdO54RAvHY6FI,30407
120
+ omextra/text/antlr/_runtime/error/Errors.py,sha256=sCf-5-vb9MyO8XIDdHSqV_ozfEcRrm87yjg_sNtStXM,6808
121
+ omextra/text/antlr/_runtime/error/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
122
+ omextra/text/antlr/_runtime/tree/Chunk.py,sha256=xsSnPUGcULkNDJNLlpqq1tqwa2WhsgH-K1JOfKRI3_A,738
123
+ omextra/text/antlr/_runtime/tree/ParseTreeMatch.py,sha256=sKf5rCZK7NosjIWIMjb7DtgobDfOa1k5sXNrm43dwRE,4506
124
+ omextra/text/antlr/_runtime/tree/ParseTreePattern.py,sha256=TUpGiMTK2_qZO77f0Qa_rZidJa9IiBLoXOTjbmgwH7o,2851
125
+ omextra/text/antlr/_runtime/tree/ParseTreePatternMatcher.py,sha256=EzOgoX-2sp1Gxsls8AVqiT20RbslFkt5kYuNayj-czY,16320
126
+ omextra/text/antlr/_runtime/tree/RuleTagToken.py,sha256=KB4A0yYRSoYLOoPZNQogi2uU9IriMr8aiY668wB-6dg,2060
127
+ omextra/text/antlr/_runtime/tree/TokenTagToken.py,sha256=V2ymw3sTiykgi7Lp64a7VsW_s8LvxAQ2FiHd5aOJPhA,1614
128
+ omextra/text/antlr/_runtime/tree/Tree.py,sha256=-5aYTkO_eUUGY2BPY03IJLyG72lNMeO_uuf2u1kZL_4,5610
129
+ omextra/text/antlr/_runtime/tree/Trees.py,sha256=iRcq2bhjBziXEUr6OFFs1rJs82q6wXTSduSBfCMMG7k,3985
130
+ omextra/text/antlr/_runtime/tree/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
131
+ omextra/text/antlr/_runtime/xpath/XPath.py,sha256=KSL1SH3VAeRDZCe4dAD7xmUdfk-j434ypZKRreFG2vk,9820
132
+ omextra/text/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B2W6ie4ivtWLvlgymM,3509
133
+ omextra/text/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
134
+ omextra/text/antlr/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
+ omextra/text/antlr/cli/__main__.py,sha256=ckYkj0drxabBVwWYewH2SS36TTeAxllZtS4xElOuTkU,191
136
+ omextra/text/antlr/cli/cli.py,sha256=LW8pJNmySBOV3g8QxquPjUgxFv7YblzEyi555hHH3_M,1234
137
+ omextra/text/antlr/cli/consts.py,sha256=HUYJP9j4RfeuuQv6HFd2oFMS0piWJ9Sq1tbeAs4OlBc,290
138
+ omextra/text/antlr/cli/gen.py,sha256=HYleVptrpynwcl6GspX6O9_oMRSxwdYAQGuUFfDYse8,5236
139
+ omextra-0.0.0.dev438.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
140
+ omextra-0.0.0.dev438.dist-info/METADATA,sha256=rbuwMiCrZoyyx_CszS33QEBqHLhZI7dRgjFzatndzZ0,908
141
+ omextra-0.0.0.dev438.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
142
+ omextra-0.0.0.dev438.dist-info/entry_points.txt,sha256=-MFAMks5HgZ60Ore0Wl5lKVKk8z4kf1Ls3WY9E_OlCU,37
143
+ omextra-0.0.0.dev438.dist-info/top_level.txt,sha256=o1nCNRejLMcayDngLuWMWwaeOucz33BXbpuoVvvzjPc,8
144
+ omextra-0.0.0.dev438.dist-info/RECORD,,
@@ -1,73 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: omextra
3
- Version: 0.0.0.dev437
4
- Summary: omextra
5
- Author: wrmsr
6
- License-Expression: BSD-3-Clause
7
- Project-URL: source, https://github.com/wrmsr/omlish
8
- Classifier: Development Status :: 2 - Pre-Alpha
9
- Classifier: Intended Audience :: Developers
10
- Classifier: Operating System :: OS Independent
11
- Classifier: Operating System :: POSIX
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.13
14
- Requires-Python: >=3.13
15
- Description-Content-Type: text/markdown
16
- License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev437
18
- Dynamic: license-file
19
-
20
- # Overview
21
-
22
- My python monorepo, the successor to my previous one `omnibus`(... 'ish').
23
-
24
- The core libraries have no required dependencies besides each other, but there are numerous optional ones - see their
25
- respective `pyproject.toml` files for details.
26
-
27
- Standard code is written for python 3.13+, '[lite](https://github.com/wrmsr/omlish/blob/master/omlish#lite-code)' code
28
- for 3.8+.
29
-
30
- # Core libraries
31
-
32
- - **[omlish](https://github.com/wrmsr/omlish/blob/master/omlish#readme)** - Core foundational code
33
- - **[omdev](https://github.com/wrmsr/omlish/blob/master/omdev#readme)** - Development utilities
34
- - **[ominfra](https://github.com/wrmsr/omlish/blob/master/ominfra#readme)** - Infrastructure and cloud code
35
- - **[ommlds](https://github.com/wrmsr/omlish/blob/master/ommlds#readme)** - ML / data science code
36
- - **[omserv](https://github.com/wrmsr/omlish/blob/master/omserv#readme)** - Request serving code
37
-
38
- # Installation
39
-
40
- Core libraries installable by name from pypi:
41
-
42
- ```bash
43
- pip install omlish
44
- ```
45
-
46
- Or directly from git via:
47
-
48
- ```bash
49
- pip install 'git+https://github.com/wrmsr/omlish@master#subdirectory=.pkg/omlish'
50
- ```
51
-
52
- The CLI is installable through uvx or pipx via:
53
-
54
- ```bash
55
- curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
56
- ```
57
-
58
- Additional deps to be injected may be appended to the command.
59
-
60
- Once installed the CLI can be updated via:
61
-
62
- ```bash
63
- om cli reinstall
64
- ```
65
-
66
- # Project structure
67
-
68
- The structure of the repo is managed by the internal
69
- [pyproject](https://github.com/wrmsr/omlish/blob/master/omdev/pyproject) tool, which generates
70
- [`.pkg`](https://github.com/wrmsr/omlish/blob/master/.pkg) directories (which map to published packages) from each
71
- library's [`__about__.py`](https://github.com/wrmsr/omlish/blob/master/omlish/__about__.py). The root-level
72
- [`pyproject.toml`](https://github.com/wrmsr/omlish/blob/master/pyproject.toml) does not actually contain a PEP-621
73
- project.
@@ -1,69 +0,0 @@
1
- omextra/.omlish-manifests.json,sha256=E1M9UJ31RfpLfsZ2MfbN0_GAh_Lu_vj9wVJKPgak8jQ,290
2
- omextra/__about__.py,sha256=UmONS0zKtygpY7Z9AD42Kn1cajMEdLKHzUwG00kaaFM,689
3
- omextra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- omextra/defs.py,sha256=iMaDGj5VSG7QdYA1s7MvIYTbtTsXc1msINsuuZym1vs,4902
5
- omextra/dynamic.py,sha256=i3aJRWwHJOmsrXI9a2iWCLa7pUQXx5YbMvUOS5LZ_Bs,6531
6
- omextra/asyncs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- omextra/asyncs/bridge.py,sha256=75FScB7uZtINJelaJutDRuy6zCoFrTRL5Yajx8TFpWs,10158
8
- omextra/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- omextra/formats/json/Json.g4,sha256=fYImsljcVPdlMTHBabM_rza2j4udqjfLQNxIz4S_TpY,1206
10
- omextra/formats/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- omextra/formats/json/_antlr/JsonLexer.py,sha256=3hSOdSsr_QHPV0R4wJgukK5PL-SweeiiiHPRmIMKFrA,4960
12
- omextra/formats/json/_antlr/JsonListener.py,sha256=Xp7anXXD_cpo_IqzCuci48GXTCgL1Vx0v-wxV6IMum0,1590
13
- omextra/formats/json/_antlr/JsonParser.py,sha256=qer0KlKadkvtfFIMnoeuzGRS6eiPPjIXx3JS-aheXOw,14294
14
- omextra/formats/json/_antlr/JsonVisitor.py,sha256=-FcZhCrfDThE1Oah0R-Cy_w6sh5QaVipgR9cyhMjMgs,1134
15
- omextra/formats/json/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- omextra/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- omextra/io/trampoline.py,sha256=nzCXtL4qip3IjfHwSHqhWkh429iakUFikbYKgx66cLc,7221
18
- omextra/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- omextra/specs/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- omextra/specs/irc/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- omextra/specs/irc/messages/base.py,sha256=7tHICphzOievcjs39tzeooTL0Z6iL4nvVHxgRKK54LY,1248
22
- omextra/specs/irc/messages/formats.py,sha256=8Cz2mmlx0--Vnp4VvUYSndYc1Dnq97Mls5ol4zgdG2Q,2370
23
- omextra/specs/irc/messages/messages.py,sha256=QaNktXScvtKCWD6KbHIx_5XvXmsJlbkoVR_zXjLdyiA,14079
24
- omextra/specs/irc/messages/parsing.py,sha256=nennTwdNbaWYx-BzMe9qKhdFdTlBeEuOVrBlhMNBYf0,2225
25
- omextra/specs/irc/numerics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- omextra/specs/irc/numerics/formats.py,sha256=NI5DKyePCEnOeE66R1qVgu2rUt56id_n52wzx_9w8uw,2261
27
- omextra/specs/irc/numerics/numerics.py,sha256=iOEG9PqfGUiDh6gDgdiNUqVY6WAbMBIwEPPIma34JNo,18215
28
- omextra/specs/irc/numerics/types.py,sha256=myjN4K29QzwE3XvKeyW7QYhPW-H13jCR2gvv59_g0Pc,1289
29
- omextra/specs/irc/protocol/LICENSE,sha256=1CT5_XkDMJ9HDZh0tX4TIsm7LfrSdljRX5EirPBhDYM,778
30
- omextra/specs/irc/protocol/__init__.py,sha256=0OFSLrMS5jYFJCqH1LKv0UfTrp5faPQhlhYKBQyCZeA,1701
31
- omextra/specs/irc/protocol/consts.py,sha256=iDCsJIyDE5-UnkIQpwCLzdbf3DUFWRmqkuVd0cZtujw,185
32
- omextra/specs/irc/protocol/errors.py,sha256=cRP8c--kRts5Uwqn1xl1J97OI74hicG4UbkJs_EOSDg,334
33
- omextra/specs/irc/protocol/message.py,sha256=i1-iZj17_mrmX5WaIcBuVD-dZP6g-bP6I_zH-0gVLzU,403
34
- omextra/specs/irc/protocol/nuh.py,sha256=6DamgLNVaZRZdvpGqOn-cFsnru-a_kYmJIrb_Epu8_o,1287
35
- omextra/specs/irc/protocol/parsing.py,sha256=yL9LRLw4GqtmiXmrH_AcIzu5x2riP6QDMEWESZVJ3jc,4058
36
- omextra/specs/irc/protocol/rendering.py,sha256=-V7_Yr9m_izcUrwkOeD3L4aCNTT4iLi22QH5J0Upd5g,4914
37
- omextra/specs/irc/protocol/tags.py,sha256=M89vR2GgDNroEsiH2QNchVX2LmT6sMIXY7huTEv7rIM,2784
38
- omextra/specs/irc/protocol/utils.py,sha256=tUbkShJov8oCsbg1KZE1EC5pCThXJTdXFcw0HBM5ApQ,692
39
- omextra/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
40
- omextra/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- omextra/specs/proto/nodes.py,sha256=NJYPGYrKV6GM51acYfRYmGNf23j9HeIvt4q--fVVAJQ,779
42
- omextra/specs/proto/parsing.py,sha256=GT-k38yWaeUgwp-S7sfrXy_1Zo9ZQaYT0UYjp7b8oyU,2883
43
- omextra/specs/proto/_antlr/Protobuf3Lexer.py,sha256=SMkCBO7ihX8r8tYoDyBqdAs6GXBPWzUkGn7i07w-jr4,19496
44
- omextra/specs/proto/_antlr/Protobuf3Listener.py,sha256=20JlzaDp0ptctY0nqsS2Kri4NVTow9FvTQzz_KNvhqo,14531
45
- omextra/specs/proto/_antlr/Protobuf3Parser.py,sha256=dsRoqphD2YEmEa1RJOzkn7bgVN3dH1cnOJlAFa_OV_o,132436
46
- omextra/specs/proto/_antlr/Protobuf3Visitor.py,sha256=SUl_MEoZ4mRuiYi_q80j71AZSz5kks77Q1Ptt24waSg,8807
47
- omextra/specs/proto/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- omextra/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- omextra/sql/parsing/Minisql.g4,sha256=Jw8xT-8UI6ySHAgStyCg5QX9NTCinvTenLJReWiZIJU,4578
50
- omextra/sql/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- omextra/sql/parsing/parsing.py,sha256=fWKaIXFWzk2HpKbosZFCC47iZ1lUOChaTD_xidpJ56k,3386
52
- omextra/sql/parsing/_antlr/MinisqlLexer.py,sha256=KHlQp9PqOOBb54lUFGSd0lEjUsFlf0fpRm5y8tzLegE,17636
53
- omextra/sql/parsing/_antlr/MinisqlListener.py,sha256=zkrQFLp7eXgjZ9jJg2ketq0yENJjFhpCifB2F2jIfjA,16658
54
- omextra/sql/parsing/_antlr/MinisqlParser.py,sha256=Bhc0fNf0gVQmWCawsuR-N16AxdK2rjCIcJFIlC4Eijc,132482
55
- omextra/sql/parsing/_antlr/MinisqlVisitor.py,sha256=k2-C56zh1_dyodyZxQqP9C-8j6k2tT_j_SXwDm3pwAo,10055
56
- omextra/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- omextra/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- omextra/text/antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- omextra/text/antlr/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- omextra/text/antlr/cli/__main__.py,sha256=ckYkj0drxabBVwWYewH2SS36TTeAxllZtS4xElOuTkU,191
61
- omextra/text/antlr/cli/cli.py,sha256=LW8pJNmySBOV3g8QxquPjUgxFv7YblzEyi555hHH3_M,1234
62
- omextra/text/antlr/cli/consts.py,sha256=4xH4jyNE5czXRWCn65jFF0MrAodMPe_kYMWpgMxWmpo,289
63
- omextra/text/antlr/cli/gen.py,sha256=HYleVptrpynwcl6GspX6O9_oMRSxwdYAQGuUFfDYse8,5236
64
- omextra-0.0.0.dev437.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
65
- omextra-0.0.0.dev437.dist-info/METADATA,sha256=phWJO8Hll1Ix23C637tT4YBHO5FulyjQofX8zlr6Rws,2531
66
- omextra-0.0.0.dev437.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
67
- omextra-0.0.0.dev437.dist-info/entry_points.txt,sha256=-MFAMks5HgZ60Ore0Wl5lKVKk8z4kf1Ls3WY9E_OlCU,37
68
- omextra-0.0.0.dev437.dist-info/top_level.txt,sha256=o1nCNRejLMcayDngLuWMWwaeOucz33BXbpuoVvvzjPc,8
69
- omextra-0.0.0.dev437.dist-info/RECORD,,