omlish 0.0.0.dev359__py3-none-any.whl → 0.0.0.dev361__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of omlish might be problematic. Click here for more details.

Files changed (43) hide show
  1. omlish/__about__.py +2 -2
  2. omlish/formats/json/Json.g4 +77 -0
  3. omlish/formats/json/_antlr/JsonLexer.py +109 -0
  4. omlish/formats/json/_antlr/JsonListener.py +61 -0
  5. omlish/formats/json/_antlr/JsonParser.py +457 -0
  6. omlish/formats/json/_antlr/JsonVisitor.py +42 -0
  7. omlish/formats/json/_antlr/__init__.py +0 -0
  8. omlish/formats/json/literals.py +27 -13
  9. omlish/formats/json/stream/__init__.py +57 -0
  10. omlish/formats/json/stream/building.py +1 -1
  11. omlish/formats/json/stream/utils.py +14 -6
  12. omlish/formats/json5/Json5.g4 +8 -9
  13. omlish/formats/json5/_antlr/Json5Lexer.py +1 -0
  14. omlish/formats/json5/_antlr/Json5Listener.py +1 -0
  15. omlish/formats/json5/_antlr/Json5Parser.py +1 -0
  16. omlish/formats/json5/_antlr/Json5Visitor.py +1 -0
  17. omlish/formats/json5/parsing.py +30 -8
  18. omlish/formats/json5/rendering.py +118 -10
  19. omlish/lang/__init__.py +1 -0
  20. omlish/lang/classes/namespaces.py +8 -3
  21. omlish/lang/strings.py +15 -0
  22. omlish/specs/jmespath/__init__.py +1 -0
  23. omlish/specs/jmespath/ast.py +17 -0
  24. omlish/specs/jmespath/cli.py +3 -0
  25. omlish/specs/jmespath/errors.py +3 -0
  26. omlish/specs/jmespath/lexer.py +4 -0
  27. omlish/specs/jmespath/parser.py +13 -2
  28. omlish/specs/jmespath/scope.py +3 -0
  29. omlish/specs/jmespath/visitor.py +9 -0
  30. omlish/specs/proto/_antlr/Protobuf3Lexer.py +1 -0
  31. omlish/specs/proto/_antlr/Protobuf3Listener.py +1 -0
  32. omlish/specs/proto/_antlr/Protobuf3Parser.py +1 -0
  33. omlish/specs/proto/_antlr/Protobuf3Visitor.py +1 -0
  34. omlish/sql/parsing/_antlr/MinisqlLexer.py +1 -0
  35. omlish/sql/parsing/_antlr/MinisqlListener.py +1 -0
  36. omlish/sql/parsing/_antlr/MinisqlParser.py +1 -0
  37. omlish/sql/parsing/_antlr/MinisqlVisitor.py +1 -0
  38. {omlish-0.0.0.dev359.dist-info → omlish-0.0.0.dev361.dist-info}/METADATA +1 -1
  39. {omlish-0.0.0.dev359.dist-info → omlish-0.0.0.dev361.dist-info}/RECORD +43 -37
  40. {omlish-0.0.0.dev359.dist-info → omlish-0.0.0.dev361.dist-info}/WHEEL +0 -0
  41. {omlish-0.0.0.dev359.dist-info → omlish-0.0.0.dev361.dist-info}/entry_points.txt +0 -0
  42. {omlish-0.0.0.dev359.dist-info → omlish-0.0.0.dev361.dist-info}/licenses/LICENSE +0 -0
  43. {omlish-0.0.0.dev359.dist-info → omlish-0.0.0.dev361.dist-info}/top_level.txt +0 -0
omlish/__about__.py CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev359'
2
- __revision__ = 'cf82d536414bfdad0fd42ad399d4f8a8cbaba2ec'
1
+ __version__ = '0.0.0.dev361'
2
+ __revision__ = '5d1c7dfc41b991532313e0f59e3734cd3ce52503'
3
3
 
4
4
 
5
5
  #
@@ -0,0 +1,77 @@
1
+ // Taken from "The Definitive ANTLR 4 Reference" by Terence Parr
2
+
3
+ // Derived from https://json.org
4
+
5
+ // $antlr-format alignTrailingComments true, columnLimit 150, minEmptyLines 1, maxEmptyLinesToKeep 1, reflowComments false, useTab false
6
+ // $antlr-format allowShortRulesOnASingleLine false, allowShortBlocksOnASingleLine true, alignSemicolons hanging, alignColons hanging
7
+
8
+ grammar Json;
9
+
10
+ json
11
+ : value EOF
12
+ ;
13
+
14
+ obj
15
+ : '{' pair (',' pair)* '}'
16
+ | '{' '}'
17
+ ;
18
+
19
+ pair
20
+ : STRING ':' value
21
+ ;
22
+
23
+ arr
24
+ : '[' value (',' value)* ']'
25
+ | '[' ']'
26
+ ;
27
+
28
+ value
29
+ : STRING
30
+ | NUMBER
31
+ | obj
32
+ | arr
33
+ | 'true'
34
+ | 'false'
35
+ | 'null'
36
+ ;
37
+
38
+ // Lexer
39
+
40
+ STRING
41
+ : '"' (ESC | SAFECODEPOINT)* '"'
42
+ ;
43
+
44
+ fragment ESC
45
+ : '\\' (["\\/bfnrt] | UNICODE)
46
+ ;
47
+
48
+ fragment UNICODE
49
+ : 'u' HEX HEX HEX HEX
50
+ ;
51
+
52
+ fragment HEX
53
+ : [0-9a-fA-F]
54
+ ;
55
+
56
+ fragment SAFECODEPOINT
57
+ : ~ ["\\\u0000-\u001F]
58
+ ;
59
+
60
+ NUMBER
61
+ : '-'? INT ('.' [0-9]+)? EXP?
62
+ ;
63
+
64
+ fragment INT
65
+ // integer part forbids leading 0s (e.g. `01`)
66
+ : '0'
67
+ | [1-9] [0-9]*
68
+ ;
69
+
70
+ fragment EXP
71
+ // exponent number permits leading 0s (e.g. `1e01`)
72
+ : [Ee] [+-]? [0-9]+
73
+ ;
74
+
75
+ WS
76
+ : [ \t\n\r]+ -> skip
77
+ ;
@@ -0,0 +1,109 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ # @omlish-generated
5
+ # Generated from Json.g4 by ANTLR 4.13.2
6
+ from ....text.antlr._runtime._all import *
7
+ from io import StringIO
8
+ import sys
9
+ if sys.version_info[1] > 5:
10
+ from typing import TextIO
11
+ else:
12
+ from typing.io import TextIO
13
+
14
+
15
+ def serializedATN():
16
+ return [
17
+ 4,0,12,131,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
18
+ 2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
19
+ 13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,1,0,1,0,1,1,1,1,
20
+ 1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,
21
+ 1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,5,9,69,8,9,10,9,12,9,
22
+ 72,9,9,1,9,1,9,1,10,1,10,1,10,3,10,79,8,10,1,11,1,11,1,11,1,11,1,
23
+ 11,1,11,1,12,1,12,1,13,1,13,1,14,3,14,92,8,14,1,14,1,14,1,14,4,14,
24
+ 97,8,14,11,14,12,14,98,3,14,101,8,14,1,14,3,14,104,8,14,1,15,1,15,
25
+ 1,15,5,15,109,8,15,10,15,12,15,112,9,15,3,15,114,8,15,1,16,1,16,
26
+ 3,16,118,8,16,1,16,4,16,121,8,16,11,16,12,16,122,1,17,4,17,126,8,
27
+ 17,11,17,12,17,127,1,17,1,17,0,0,18,1,1,3,2,5,3,7,4,9,5,11,6,13,
28
+ 7,15,8,17,9,19,10,21,0,23,0,25,0,27,0,29,11,31,0,33,0,35,12,1,0,
29
+ 8,8,0,34,34,47,47,92,92,98,98,102,102,110,110,114,114,116,116,3,
30
+ 0,48,57,65,70,97,102,3,0,0,31,34,34,92,92,1,0,48,57,1,0,49,57,2,
31
+ 0,69,69,101,101,2,0,43,43,45,45,3,0,9,10,13,13,32,32,136,0,1,1,0,
32
+ 0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,
33
+ 0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,29,1,0,0,0,
34
+ 0,35,1,0,0,0,1,37,1,0,0,0,3,39,1,0,0,0,5,41,1,0,0,0,7,43,1,0,0,0,
35
+ 9,45,1,0,0,0,11,47,1,0,0,0,13,49,1,0,0,0,15,54,1,0,0,0,17,60,1,0,
36
+ 0,0,19,65,1,0,0,0,21,75,1,0,0,0,23,80,1,0,0,0,25,86,1,0,0,0,27,88,
37
+ 1,0,0,0,29,91,1,0,0,0,31,113,1,0,0,0,33,115,1,0,0,0,35,125,1,0,0,
38
+ 0,37,38,5,123,0,0,38,2,1,0,0,0,39,40,5,44,0,0,40,4,1,0,0,0,41,42,
39
+ 5,125,0,0,42,6,1,0,0,0,43,44,5,58,0,0,44,8,1,0,0,0,45,46,5,91,0,
40
+ 0,46,10,1,0,0,0,47,48,5,93,0,0,48,12,1,0,0,0,49,50,5,116,0,0,50,
41
+ 51,5,114,0,0,51,52,5,117,0,0,52,53,5,101,0,0,53,14,1,0,0,0,54,55,
42
+ 5,102,0,0,55,56,5,97,0,0,56,57,5,108,0,0,57,58,5,115,0,0,58,59,5,
43
+ 101,0,0,59,16,1,0,0,0,60,61,5,110,0,0,61,62,5,117,0,0,62,63,5,108,
44
+ 0,0,63,64,5,108,0,0,64,18,1,0,0,0,65,70,5,34,0,0,66,69,3,21,10,0,
45
+ 67,69,3,27,13,0,68,66,1,0,0,0,68,67,1,0,0,0,69,72,1,0,0,0,70,68,
46
+ 1,0,0,0,70,71,1,0,0,0,71,73,1,0,0,0,72,70,1,0,0,0,73,74,5,34,0,0,
47
+ 74,20,1,0,0,0,75,78,5,92,0,0,76,79,7,0,0,0,77,79,3,23,11,0,78,76,
48
+ 1,0,0,0,78,77,1,0,0,0,79,22,1,0,0,0,80,81,5,117,0,0,81,82,3,25,12,
49
+ 0,82,83,3,25,12,0,83,84,3,25,12,0,84,85,3,25,12,0,85,24,1,0,0,0,
50
+ 86,87,7,1,0,0,87,26,1,0,0,0,88,89,8,2,0,0,89,28,1,0,0,0,90,92,5,
51
+ 45,0,0,91,90,1,0,0,0,91,92,1,0,0,0,92,93,1,0,0,0,93,100,3,31,15,
52
+ 0,94,96,5,46,0,0,95,97,7,3,0,0,96,95,1,0,0,0,97,98,1,0,0,0,98,96,
53
+ 1,0,0,0,98,99,1,0,0,0,99,101,1,0,0,0,100,94,1,0,0,0,100,101,1,0,
54
+ 0,0,101,103,1,0,0,0,102,104,3,33,16,0,103,102,1,0,0,0,103,104,1,
55
+ 0,0,0,104,30,1,0,0,0,105,114,5,48,0,0,106,110,7,4,0,0,107,109,7,
56
+ 3,0,0,108,107,1,0,0,0,109,112,1,0,0,0,110,108,1,0,0,0,110,111,1,
57
+ 0,0,0,111,114,1,0,0,0,112,110,1,0,0,0,113,105,1,0,0,0,113,106,1,
58
+ 0,0,0,114,32,1,0,0,0,115,117,7,5,0,0,116,118,7,6,0,0,117,116,1,0,
59
+ 0,0,117,118,1,0,0,0,118,120,1,0,0,0,119,121,7,3,0,0,120,119,1,0,
60
+ 0,0,121,122,1,0,0,0,122,120,1,0,0,0,122,123,1,0,0,0,123,34,1,0,0,
61
+ 0,124,126,7,7,0,0,125,124,1,0,0,0,126,127,1,0,0,0,127,125,1,0,0,
62
+ 0,127,128,1,0,0,0,128,129,1,0,0,0,129,130,6,17,0,0,130,36,1,0,0,
63
+ 0,13,0,68,70,78,91,98,100,103,110,113,117,122,127,1,6,0,0
64
+ ]
65
+
66
+ class JsonLexer(Lexer):
67
+
68
+ atn = ATNDeserializer().deserialize(serializedATN())
69
+
70
+ decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
71
+
72
+ T__0 = 1
73
+ T__1 = 2
74
+ T__2 = 3
75
+ T__3 = 4
76
+ T__4 = 5
77
+ T__5 = 6
78
+ T__6 = 7
79
+ T__7 = 8
80
+ T__8 = 9
81
+ STRING = 10
82
+ NUMBER = 11
83
+ WS = 12
84
+
85
+ channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
86
+
87
+ modeNames = [ "DEFAULT_MODE" ]
88
+
89
+ literalNames = [ "<INVALID>",
90
+ "'{'", "','", "'}'", "':'", "'['", "']'", "'true'", "'false'",
91
+ "'null'" ]
92
+
93
+ symbolicNames = [ "<INVALID>",
94
+ "STRING", "NUMBER", "WS" ]
95
+
96
+ ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6",
97
+ "T__7", "T__8", "STRING", "ESC", "UNICODE", "HEX", "SAFECODEPOINT",
98
+ "NUMBER", "INT", "EXP", "WS" ]
99
+
100
+ grammarFileName = "Json.g4"
101
+
102
+ def __init__(self, input=None, output:TextIO = sys.stdout):
103
+ super().__init__(input, output)
104
+ self.checkVersion("4.13.2")
105
+ self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
106
+ self._actions = None
107
+ self._predicates = None
108
+
109
+
@@ -0,0 +1,61 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ # @omlish-generated
5
+ # Generated from Json.g4 by ANTLR 4.13.2
6
+ from ....text.antlr._runtime._all import *
7
+ if "." in __name__:
8
+ from .JsonParser import JsonParser
9
+ else:
10
+ from JsonParser import JsonParser
11
+
12
+ # This class defines a complete listener for a parse tree produced by JsonParser.
13
+ class JsonListener(ParseTreeListener):
14
+
15
+ # Enter a parse tree produced by JsonParser#json.
16
+ def enterJson(self, ctx:JsonParser.JsonContext):
17
+ pass
18
+
19
+ # Exit a parse tree produced by JsonParser#json.
20
+ def exitJson(self, ctx:JsonParser.JsonContext):
21
+ pass
22
+
23
+
24
+ # Enter a parse tree produced by JsonParser#obj.
25
+ def enterObj(self, ctx:JsonParser.ObjContext):
26
+ pass
27
+
28
+ # Exit a parse tree produced by JsonParser#obj.
29
+ def exitObj(self, ctx:JsonParser.ObjContext):
30
+ pass
31
+
32
+
33
+ # Enter a parse tree produced by JsonParser#pair.
34
+ def enterPair(self, ctx:JsonParser.PairContext):
35
+ pass
36
+
37
+ # Exit a parse tree produced by JsonParser#pair.
38
+ def exitPair(self, ctx:JsonParser.PairContext):
39
+ pass
40
+
41
+
42
+ # Enter a parse tree produced by JsonParser#arr.
43
+ def enterArr(self, ctx:JsonParser.ArrContext):
44
+ pass
45
+
46
+ # Exit a parse tree produced by JsonParser#arr.
47
+ def exitArr(self, ctx:JsonParser.ArrContext):
48
+ pass
49
+
50
+
51
+ # Enter a parse tree produced by JsonParser#value.
52
+ def enterValue(self, ctx:JsonParser.ValueContext):
53
+ pass
54
+
55
+ # Exit a parse tree produced by JsonParser#value.
56
+ def exitValue(self, ctx:JsonParser.ValueContext):
57
+ pass
58
+
59
+
60
+
61
+ del JsonParser