omlish 0.0.0.dev436__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 (89) hide show
  1. omlish/__about__.py +2 -2
  2. omlish/formats/json/stream/__init__.py +3 -1
  3. omlish/formats/json/stream/lexing.py +187 -42
  4. omlish/formats/json/stream/parsing.py +27 -5
  5. omlish/formats/json/stream/utils.py +106 -33
  6. omlish/formats/json5/literals.py +7 -4
  7. omlish/formats/json5/parsing.py +33 -79
  8. omlish/formats/json5/stream.py +45 -50
  9. omlish/http/all.py +59 -53
  10. {omlish-0.0.0.dev436.dist-info → omlish-0.0.0.dev438.dist-info}/METADATA +1 -1
  11. {omlish-0.0.0.dev436.dist-info → omlish-0.0.0.dev438.dist-info}/RECORD +15 -89
  12. omlish/formats/json5/Json5.g4 +0 -168
  13. omlish/formats/json5/_antlr/Json5Lexer.py +0 -354
  14. omlish/formats/json5/_antlr/Json5Listener.py +0 -79
  15. omlish/formats/json5/_antlr/Json5Parser.py +0 -617
  16. omlish/formats/json5/_antlr/Json5Visitor.py +0 -52
  17. omlish/formats/json5/_antlr/__init__.py +0 -0
  18. omlish/text/antlr/__init__.py +0 -3
  19. omlish/text/antlr/_runtime/BufferedTokenStream.py +0 -305
  20. omlish/text/antlr/_runtime/CommonTokenFactory.py +0 -64
  21. omlish/text/antlr/_runtime/CommonTokenStream.py +0 -90
  22. omlish/text/antlr/_runtime/FileStream.py +0 -30
  23. omlish/text/antlr/_runtime/InputStream.py +0 -90
  24. omlish/text/antlr/_runtime/IntervalSet.py +0 -183
  25. omlish/text/antlr/_runtime/LICENSE.txt +0 -28
  26. omlish/text/antlr/_runtime/LL1Analyzer.py +0 -176
  27. omlish/text/antlr/_runtime/Lexer.py +0 -332
  28. omlish/text/antlr/_runtime/ListTokenSource.py +0 -147
  29. omlish/text/antlr/_runtime/Parser.py +0 -583
  30. omlish/text/antlr/_runtime/ParserInterpreter.py +0 -173
  31. omlish/text/antlr/_runtime/ParserRuleContext.py +0 -189
  32. omlish/text/antlr/_runtime/PredictionContext.py +0 -632
  33. omlish/text/antlr/_runtime/Recognizer.py +0 -150
  34. omlish/text/antlr/_runtime/RuleContext.py +0 -230
  35. omlish/text/antlr/_runtime/StdinStream.py +0 -14
  36. omlish/text/antlr/_runtime/Token.py +0 -158
  37. omlish/text/antlr/_runtime/TokenStreamRewriter.py +0 -258
  38. omlish/text/antlr/_runtime/Utils.py +0 -36
  39. omlish/text/antlr/_runtime/__init__.py +0 -2
  40. omlish/text/antlr/_runtime/_all.py +0 -24
  41. omlish/text/antlr/_runtime/_pygrun.py +0 -174
  42. omlish/text/antlr/_runtime/atn/ATN.py +0 -135
  43. omlish/text/antlr/_runtime/atn/ATNConfig.py +0 -162
  44. omlish/text/antlr/_runtime/atn/ATNConfigSet.py +0 -215
  45. omlish/text/antlr/_runtime/atn/ATNDeserializationOptions.py +0 -27
  46. omlish/text/antlr/_runtime/atn/ATNDeserializer.py +0 -449
  47. omlish/text/antlr/_runtime/atn/ATNSimulator.py +0 -50
  48. omlish/text/antlr/_runtime/atn/ATNState.py +0 -267
  49. omlish/text/antlr/_runtime/atn/ATNType.py +0 -20
  50. omlish/text/antlr/_runtime/atn/LexerATNSimulator.py +0 -573
  51. omlish/text/antlr/_runtime/atn/LexerAction.py +0 -301
  52. omlish/text/antlr/_runtime/atn/LexerActionExecutor.py +0 -146
  53. omlish/text/antlr/_runtime/atn/ParserATNSimulator.py +0 -1664
  54. omlish/text/antlr/_runtime/atn/PredictionMode.py +0 -502
  55. omlish/text/antlr/_runtime/atn/SemanticContext.py +0 -333
  56. omlish/text/antlr/_runtime/atn/Transition.py +0 -271
  57. omlish/text/antlr/_runtime/atn/__init__.py +0 -4
  58. omlish/text/antlr/_runtime/dfa/DFA.py +0 -136
  59. omlish/text/antlr/_runtime/dfa/DFASerializer.py +0 -76
  60. omlish/text/antlr/_runtime/dfa/DFAState.py +0 -129
  61. omlish/text/antlr/_runtime/dfa/__init__.py +0 -4
  62. omlish/text/antlr/_runtime/error/DiagnosticErrorListener.py +0 -111
  63. omlish/text/antlr/_runtime/error/ErrorListener.py +0 -75
  64. omlish/text/antlr/_runtime/error/ErrorStrategy.py +0 -712
  65. omlish/text/antlr/_runtime/error/Errors.py +0 -176
  66. omlish/text/antlr/_runtime/error/__init__.py +0 -4
  67. omlish/text/antlr/_runtime/tree/Chunk.py +0 -33
  68. omlish/text/antlr/_runtime/tree/ParseTreeMatch.py +0 -121
  69. omlish/text/antlr/_runtime/tree/ParseTreePattern.py +0 -75
  70. omlish/text/antlr/_runtime/tree/ParseTreePatternMatcher.py +0 -377
  71. omlish/text/antlr/_runtime/tree/RuleTagToken.py +0 -53
  72. omlish/text/antlr/_runtime/tree/TokenTagToken.py +0 -50
  73. omlish/text/antlr/_runtime/tree/Tree.py +0 -194
  74. omlish/text/antlr/_runtime/tree/Trees.py +0 -114
  75. omlish/text/antlr/_runtime/tree/__init__.py +0 -2
  76. omlish/text/antlr/_runtime/xpath/XPath.py +0 -278
  77. omlish/text/antlr/_runtime/xpath/XPathLexer.py +0 -98
  78. omlish/text/antlr/_runtime/xpath/__init__.py +0 -4
  79. omlish/text/antlr/delimit.py +0 -109
  80. omlish/text/antlr/dot.py +0 -41
  81. omlish/text/antlr/errors.py +0 -14
  82. omlish/text/antlr/input.py +0 -96
  83. omlish/text/antlr/parsing.py +0 -54
  84. omlish/text/antlr/runtime.py +0 -102
  85. omlish/text/antlr/utils.py +0 -38
  86. {omlish-0.0.0.dev436.dist-info → omlish-0.0.0.dev438.dist-info}/WHEEL +0 -0
  87. {omlish-0.0.0.dev436.dist-info → omlish-0.0.0.dev438.dist-info}/entry_points.txt +0 -0
  88. {omlish-0.0.0.dev436.dist-info → omlish-0.0.0.dev438.dist-info}/licenses/LICENSE +0 -0
  89. {omlish-0.0.0.dev436.dist-info → omlish-0.0.0.dev438.dist-info}/top_level.txt +0 -0
@@ -1,100 +1,54 @@
1
- # ruff: noqa: N802 N803
2
1
  import typing as ta
3
2
 
4
- from ...text import antlr
5
- from ._antlr.Json5Lexer import Json5Lexer # type: ignore
6
- from ._antlr.Json5Parser import Json5Parser # type: ignore
7
- from ._antlr.Json5Visitor import Json5Visitor # type: ignore
3
+ from ..json.stream.errors import JsonStreamError
4
+ from ..json.stream.utils import DebugJsonStreamValueParser
5
+ from ..json.stream.utils import JsonStreamValueParser
8
6
  from .errors import Json5Error
9
- from .literals import LITERAL_VALUES
10
- from .literals import parse_number_literal
11
- from .literals import parse_string_literal
7
+ from .stream import make_machinery
12
8
 
13
9
 
14
10
  ##
15
11
 
16
12
 
17
- class Json5ParseVisitor(antlr.parsing.StandardParseTreeVisitor, Json5Visitor):
18
- def visitArr(self, ctx: Json5Parser.ArrContext):
19
- return [self.visit(e) for e in ctx.value()]
13
+ def parse(
14
+ buf: str,
15
+ *,
16
+ debug: bool = False,
17
+ ) -> ta.Any:
18
+ m = make_machinery()
20
19
 
21
- def visitKey(self, ctx: Json5Parser.KeyContext):
22
- if (s := ctx.STRING()) is not None:
23
- return parse_string_literal(s.getText())
20
+ if debug:
21
+ vc: type[JsonStreamValueParser] = DebugJsonStreamValueParser
22
+ else:
23
+ vc = JsonStreamValueParser
24
24
 
25
- elif (i := ctx.IDENTIFIER()) is not None:
26
- return parse_string_literal(''.join(['"', i.getText(), '"']))
27
-
28
- elif (l := ctx.LITERAL()) is not None:
29
- return LITERAL_VALUES[l.getText()]
30
-
31
- elif (n := ctx.NUMERIC_LITERAL()) is not None:
32
- return n.getText()
33
-
34
- else:
35
- raise RuntimeError(ctx)
36
-
37
- def visitNumber(self, ctx: Json5Parser.NumberContext):
38
- return parse_number_literal(ctx.getText())
39
-
40
- def visitObj(self, ctx: Json5Parser.ObjContext):
41
- dct: dict[ta.Any, ta.Any] = {}
42
- for pair in ctx.pair():
43
- key, value = self.visit(pair)
44
- dct[key] = value
45
- return dct
46
-
47
- def visitPair(self, ctx: Json5Parser.PairContext):
48
- key = self.visit(ctx.key())
49
- value = self.visit(ctx.value())
50
- return (key, value)
51
-
52
- def visitValue(self, ctx: Json5Parser.ValueContext):
53
- if (s := ctx.STRING()) is not None:
54
- return parse_string_literal(s.getText())
55
-
56
- elif (n := ctx.LITERAL()) is not None:
57
- return LITERAL_VALUES[n.getText()]
58
-
59
- else:
60
- return super().visitChildren(ctx)
61
-
62
-
63
- def _make_parser(buf: str) -> Json5Parser:
64
- return antlr.parsing.make_parser(
65
- buf,
66
- Json5Lexer,
67
- Json5Parser,
68
- silent_errors=True,
69
- )
70
-
71
-
72
- def parse(buf: str) -> ta.Any:
73
25
  try:
74
- root = _make_parser(buf).json5()
26
+ return vc.parse_exactly_one_value(m, buf)
27
+
28
+ except Json5Error:
29
+ raise
75
30
 
76
- except antlr.errors.ParseError as e:
31
+ except JsonStreamError as e:
77
32
  raise Json5Error from e
78
33
 
79
- if antlr.parsing.is_eof_context(root):
80
- raise Json5Error('Empty input')
81
34
 
82
- visitor = Json5ParseVisitor()
83
- return visitor.visit(root)
35
+ def parse_many(
36
+ buf: str,
37
+ *,
38
+ debug: bool = False,
39
+ ) -> ta.Iterator[ta.Any]:
40
+ m = make_machinery()
84
41
 
42
+ if debug:
43
+ vc: type[JsonStreamValueParser] = DebugJsonStreamValueParser
44
+ else:
45
+ vc = JsonStreamValueParser
85
46
 
86
- def parse_many(buf: str) -> ta.Generator[ta.Any]:
87
47
  try:
88
- parser = _make_parser(buf)
89
-
90
- while True:
91
- if parser.getInputStream().LT(1).type == antlr.runtime.Token.EOF:
92
- break
93
-
94
- value = parser.value()
48
+ yield from vc.parse_values(m, buf)
95
49
 
96
- visitor = Json5ParseVisitor()
97
- yield visitor.visit(value)
50
+ except Json5Error:
51
+ raise
98
52
 
99
- except antlr.errors.ParseError as e:
53
+ except JsonStreamError as e:
100
54
  raise Json5Error from e
@@ -1,82 +1,77 @@
1
1
  """
2
- TODO:
3
-
4
2
  Objects:
5
- - Object keys may be an ECMAScript 5.1 IdentifierName.
6
- - Objects may have a single trailing comma.
3
+ + Object keys may be an ECMAScript 5.1 IdentifierName.
4
+ + Objects may have a single trailing comma.
7
5
  Arrays:
8
- - Arrays may have a single trailing comma.
6
+ + Arrays may have a single trailing comma.
9
7
  Strings:
10
- - Strings may be single quoted.
11
- - Strings may span multiple lines by escaping new line characters.
12
- - Strings may include character escapes.
8
+ + Strings may be single quoted.
9
+ + Strings may span multiple lines by escaping new line characters.
10
+ + Strings may include character escapes.
13
11
  Numbers:
14
- - Numbers may be hexadecimal.
15
- - Numbers may have a leading or trailing decimal point.
16
- - Numbers may be IEEE 754 positive infinity, negative infinity, and NaN.
17
- - Numbers may begin with an explicit plus sign.
12
+ + Numbers may be hexadecimal.
13
+ + Numbers may have a leading or trailing decimal point.
14
+ + Numbers may be IEEE 754 positive infinity, negative infinity, and NaN.
15
+ + Numbers may begin with an explicit plus sign.
18
16
  Comments:
19
17
  + Single and multi-line comments are allowed.
20
18
  White Space:
21
- - Additional white space characters are allowed.
19
+ + Additional white space characters are allowed.
22
20
  """
23
- import dataclasses as dc
24
21
  import typing as ta
25
22
 
26
- from ... import lang
27
23
  from ..json.stream.building import JsonValueBuilder
28
24
  from ..json.stream.lexing import JsonStreamLexer
29
25
  from ..json.stream.parsing import JsonStreamParser
26
+ from ..json.stream.utils import JsonStreamValueParser
27
+ from .literals import parse_number_literal
30
28
  from .literals import parse_string_literal
31
29
 
32
30
 
33
31
  ##
34
32
 
35
33
 
36
- @dc.dataclass(kw_only=True)
37
- class JsonStreamValueParser(lang.ExitStacked):
38
- include_raw: bool = False
39
- yield_object_lists: bool = False
40
-
41
- #
34
+ def make_machinery(
35
+ *,
36
+ include_raw: bool = False,
37
+ yield_object_lists: bool = False,
38
+ ) -> JsonStreamValueParser.Machinery:
39
+ return JsonStreamValueParser.Machinery(
40
+ JsonStreamLexer(
41
+ include_raw=include_raw,
42
42
 
43
- _lex: JsonStreamLexer = dc.field(init=False)
44
- _parse: JsonStreamParser = dc.field(init=False)
45
- _build: JsonValueBuilder = dc.field(init=False)
43
+ allow_extended_space=True,
46
44
 
47
- def _enter_contexts(self) -> None:
48
- self._lex = JsonStreamLexer(
49
- include_raw=self.include_raw,
50
45
  allow_comments=True,
46
+
51
47
  allow_single_quotes=True,
52
48
  string_literal_parser=parse_string_literal,
53
- )
54
49
 
55
- self._parse = JsonStreamParser()
50
+ allow_extended_number_literals=True,
51
+ number_literal_parser=parse_number_literal,
52
+
53
+ allow_extended_idents=True,
54
+ ),
55
+
56
+ JsonStreamParser(
57
+ allow_trailing_commas=True,
58
+
59
+ allow_extended_idents=True,
60
+ ),
61
+
62
+ JsonValueBuilder(
63
+ yield_object_lists=yield_object_lists,
64
+ ),
65
+ )
56
66
 
57
- self._build = JsonValueBuilder(
58
- yield_object_lists=self.yield_object_lists,
59
- )
60
67
 
61
- def feed(self, i: ta.Iterable[str]) -> ta.Iterator[ta.Any]:
62
- for c in i:
63
- for t in self._lex(c):
64
- for e in self._parse(t):
65
- for v in self._build(e): # noqa
66
- yield v
68
+ def stream_parse_values(i: ta.Iterable[str], **kwargs: ta.Any) -> ta.Iterator[ta.Any]:
69
+ return JsonStreamValueParser.parse_values(make_machinery(**kwargs), i)
67
70
 
68
71
 
69
- def stream_parse_values(
70
- i: ta.Iterable[str],
71
- **kwargs: ta.Any,
72
- ) -> ta.Generator[ta.Any]:
73
- with JsonStreamValueParser(**kwargs) as p:
74
- yield from p.feed(i)
72
+ def stream_parse_one_value(i: ta.Iterable[str], **kwargs: ta.Any) -> ta.Any:
73
+ return JsonStreamValueParser.parse_one_value(make_machinery(**kwargs), i)
75
74
 
76
75
 
77
- def stream_parse_one_value(
78
- i: ta.Iterable[str],
79
- **kwargs: ta.Any,
80
- ) -> ta.Any:
81
- with JsonStreamValueParser(**kwargs) as p:
82
- return next(p.feed(i))
76
+ def stream_parse_exactly_one_value(i: ta.Iterable[str], **kwargs: ta.Any) -> ta.Any:
77
+ return JsonStreamValueParser.parse_exactly_one_value(make_machinery(**kwargs), i)
omlish/http/all.py CHANGED
@@ -1,53 +1,59 @@
1
- from . import consts # noqa
2
-
3
- from .clients import ( # noqa
4
- BaseHttpResponse,
5
- HttpClient,
6
- HttpClientError,
7
- HttpRequest,
8
- HttpResponse,
9
- HttpxHttpClient,
10
- StreamHttpResponse,
11
- UrllibHttpClient,
12
- client,
13
- close_response,
14
- closing_response,
15
- read_response,
16
- request,
17
- )
18
-
19
- from .cookies import ( # noqa
20
- CookieTooBigError,
21
- dump_cookie,
22
- parse_cookie,
23
- )
24
-
25
- from .dates import ( # noqa
26
- http_date,
27
- parse_date,
28
- )
29
-
30
- from .encodings import ( # noqa
31
- latin1_decode,
32
- latin1_encode,
33
- )
34
-
35
- from .headers import ( # noqa
36
- CanHttpHeaders,
37
- HttpHeaders,
38
- headers,
39
- )
40
-
41
- from .json import ( # noqa
42
- JSON_TAGGER,
43
- JsonTag,
44
- JsonTagger,
45
- json_dumps,
46
- json_loads,
47
- )
48
-
49
- from .multipart import ( # noqa
50
- MultipartData,
51
- MultipartEncoder,
52
- MultipartField,
53
- )
1
+ from .. import lang as _lang
2
+
3
+
4
+ with _lang.auto_proxy_init(globals()):
5
+ ##
6
+
7
+ from . import consts # noqa
8
+
9
+ from .clients import ( # noqa
10
+ BaseHttpResponse,
11
+ HttpClient,
12
+ HttpClientError,
13
+ HttpRequest,
14
+ HttpResponse,
15
+ HttpxHttpClient,
16
+ StreamHttpResponse,
17
+ UrllibHttpClient,
18
+ client,
19
+ close_response,
20
+ closing_response,
21
+ read_response,
22
+ request,
23
+ )
24
+
25
+ from .cookies import ( # noqa
26
+ CookieTooBigError,
27
+ dump_cookie,
28
+ parse_cookie,
29
+ )
30
+
31
+ from .dates import ( # noqa
32
+ http_date,
33
+ parse_date,
34
+ )
35
+
36
+ from .encodings import ( # noqa
37
+ latin1_decode,
38
+ latin1_encode,
39
+ )
40
+
41
+ from .headers import ( # noqa
42
+ CanHttpHeaders,
43
+ HttpHeaders,
44
+ headers,
45
+ )
46
+
47
+ from .json import ( # noqa
48
+ JSON_TAGGER,
49
+ JsonTag,
50
+ JsonTagger,
51
+ json_dumps,
52
+ json_loads,
53
+ )
54
+
55
+ from .multipart import ( # noqa
56
+ MultipartData,
57
+ MultipartEncoder,
58
+ MultipartField,
59
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev436
3
+ Version: 0.0.0.dev438
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=3OBaG92j-rGo_z4DyL4uOIYje_Aaj1kWPDUeU3GKdwM,3575
2
+ omlish/__about__.py,sha256=Thv5RpImyU6wQpYBs18IBVwbQYR6G0FiOOwPTbD8y40,3575
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -273,26 +273,20 @@ omlish/formats/json/backends/jiter.py,sha256=8qv_XWGpcupPtVm6Z_egHio_iY1Kk8eqkvX
273
273
  omlish/formats/json/backends/orjson.py,sha256=X2jhKgUYYwaVuAppPQmfyncbOs2PJ7drqH5BioP-AYI,3831
274
274
  omlish/formats/json/backends/std.py,sha256=Hhiug5CkC1TXLFrE9rnMR2on7xP-RliSvfYA9ill_U0,3159
275
275
  omlish/formats/json/backends/ujson.py,sha256=U3iOlAURfiCdXbiNlXfIjDdtJDbDaLZsSuZriTUvbxs,2307
276
- omlish/formats/json/stream/__init__.py,sha256=LOQvJGUEqvm1exve1hnWoO3mlMadShaO2Cy7XjCiWbA,829
276
+ omlish/formats/json/stream/__init__.py,sha256=8Fjz-kQrGcWT50CAvrUvQi1CnAuUYqacahWWiOc5JAA,891
277
277
  omlish/formats/json/stream/building.py,sha256=dyrOms7Yskayi0-MG4e5-5ilN08HIekNEogJh5C4hhs,2549
278
278
  omlish/formats/json/stream/errors.py,sha256=c8M8UAYmIZ-vWZLeKD2jMj4EDCJbr9QR8Jq_DyHjujQ,43
279
- omlish/formats/json/stream/lexing.py,sha256=E4j99qfCp2xIGk9CrwhPNVk0_ltLKvpw9G0K2xp1AAg,9396
280
- omlish/formats/json/stream/parsing.py,sha256=c7958eYT5-KO8VFIVGBM-MowuaJ6UNTt7l2tTlRKHek,6468
279
+ omlish/formats/json/stream/lexing.py,sha256=GkEhuDqAgZTOJRkroP4F_U396XtMQVNMjEqXKiCCtnU,13605
280
+ omlish/formats/json/stream/parsing.py,sha256=i99H7Z3AyTtTfayRy-0UdorM3rv4hNlqYWWLwU4qrbs,7219
281
281
  omlish/formats/json/stream/rendering.py,sha256=U0MyVoYRDv7JLI8e7ItwmxyKnqYhKvfJY4-ZBQ5lHzA,3694
282
- omlish/formats/json/stream/utils.py,sha256=_lqksQtoIgWjQWY4r-V2liJ7Dkz5rRAUnzwWyzKe8jc,2950
283
- omlish/formats/json5/Json5.g4,sha256=2V3IB8W1R45mFax5Qy4laAwcHJ9oFPWHc-r8qy9-YE4,2381
282
+ omlish/formats/json/stream/utils.py,sha256=ldjlnfD6SNHGgLkuF7iHX5RN_gSutthTiptvO8mzk6Q,4991
284
283
  omlish/formats/json5/__init__.py,sha256=3rwU5w5N_-dYME5kwMvXgexl-Vvo4BAmOg1N-I9Wf0M,194
285
284
  omlish/formats/json5/codec.py,sha256=mywk74R7F77z7xprQd19qoJZ8sNPUEkiBD9jNCKTh0c,1603
286
285
  omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC4,38
287
- omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
288
- omlish/formats/json5/parsing.py,sha256=_M-DrXHz4izZcMp4QPCafMIgK6pzySHmksKDIhKW4lQ,2789
286
+ omlish/formats/json5/literals.py,sha256=dwQD6OkRBmIOp6i4Ha7XWYAfiBfxvTPgqNSh-OOSaBc,2514
287
+ omlish/formats/json5/parsing.py,sha256=SASgRbAy1jTu2YKtAFD0ET6v50Ytj3hGO5dw7Ybo8_k,1069
289
288
  omlish/formats/json5/rendering.py,sha256=V1XdLzawd-0qu7dVNorxUMiT4LRd5GCS8876-lDLF-c,4583
290
- omlish/formats/json5/stream.py,sha256=QNVWgejaimNkFmOtYtjV9E71L6zBxW7QdvVL_IdMquI,2253
291
- omlish/formats/json5/_antlr/Json5Lexer.py,sha256=8sT04wjBTDpyHpLo6a5byREBwfNnFtLPZp7Wx3KfbkY,23259
292
- omlish/formats/json5/_antlr/Json5Listener.py,sha256=wIqOwp4r-cOHxy6sxQbNmlYczqh2C3-H-74o_hr7WrA,2117
293
- omlish/formats/json5/_antlr/Json5Parser.py,sha256=psacqZWRzPNEZq70XKpOnelZXHuXjkULq1r-owaPs6g,19699
294
- omlish/formats/json5/_antlr/Json5Visitor.py,sha256=fIp5GhQ2Sd-bKEBBcBd31FOoCLiV1SZYPRof0Az6v6k,1455
295
- omlish/formats/json5/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
+ omlish/formats/json5/stream.py,sha256=p__Fp4dstWLsmq3B10ik0QCGVycA4ScVtIhXwsSiRvQ,2269
296
290
  omlish/formats/toml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
297
291
  omlish/formats/toml/codec.py,sha256=5HFGWEPd9IFxPlRMRheX8FEDlRIzLe1moHEOj2_PFKU,342
298
292
  omlish/formats/toml/parser.py,sha256=aaZlEEPk0IQhfux_kjCY2K5mYYYDPNQ-4wWgZXskoAM,30675
@@ -313,7 +307,7 @@ omlish/graphs/dot/make.py,sha256=e-M1IEdh4kHEjJmBxpaEUPxvFLrm5uIXdGxjQZr2HRo,365
313
307
  omlish/graphs/dot/rendering.py,sha256=IOCEEOqlsRctoIgnz1I9v0ycHHDAr5zYubTXT7v_YwA,3634
314
308
  omlish/graphs/dot/utils.py,sha256=8cGKIdcM-w1q4ITUYyC0lnYwLqNWuH2OddmmbLxVgEo,806
315
309
  omlish/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
316
- omlish/http/all.py,sha256=4dSBbitsrQIadivSo2rBLg8dgdmC0efpboylGUZgKKo,829
310
+ omlish/http/all.py,sha256=cHS0KaBfFt6ImVbsOZyuqyMzoxEEYX6a9IJeU1bJ0_8,1091
317
311
  omlish/http/asgi.py,sha256=4r2Gw1ojwp2OVpwonof1p4GFRcseIJqPhpkQpLhM9Jw,3243
318
312
  omlish/http/consts.py,sha256=7BJ4D1MdIvqBcepkgCfBFHolgTwbOlqsOEiee_IjxOA,2289
319
313
  omlish/http/cookies.py,sha256=uuOYlHR6e2SC3GM41V0aozK10nef9tYg83Scqpn5-HM,6351
@@ -819,74 +813,6 @@ omlish/text/minja.py,sha256=7UKNalkWpTG_364OIo7p5ym--uiNPR2RFBW_W8rrO4I,9194
819
813
  omlish/text/parts.py,sha256=MpiCUyfpcL4PLb2Etj8V7Yj4qofhy0xVwBrIL6RfNdg,6646
820
814
  omlish/text/random.py,sha256=8feS5JE_tSjYlMl-lp0j93kCfzBae9AM2cXlRLebXMA,199
821
815
  omlish/text/templating.py,sha256=i-HU7W-GtKdnBhEG3mnSey5ig7vV0q02D3pVzMoOzJY,3318
822
- omlish/text/antlr/__init__.py,sha256=88bMl_28cfSKslgOkMGYXqALgsHz3KC4LFvAVtzj7k8,89
823
- omlish/text/antlr/delimit.py,sha256=wvpZ-FlVoGwRjBALKT1in9cIriIwvyFqmHxgliNJEi8,3472
824
- omlish/text/antlr/dot.py,sha256=-WHO-xDSv-Ir00TZ4sVIwunKYtZkRveaQ4m5FKj_bRs,962
825
- omlish/text/antlr/errors.py,sha256=4J0WuVKbeFoZEP0wePCmn-e7mI1VMwWoE3wkeQO-4nk,313
826
- omlish/text/antlr/input.py,sha256=baeO279AIxR50pymya0eabtnc2A0bSdA5u7jvIGebzA,2090
827
- omlish/text/antlr/parsing.py,sha256=4J9sLZW8Nv6BDBqlHEg-nzLY_AfKE3lE0TpdXVKCUO8,1420
828
- omlish/text/antlr/runtime.py,sha256=wYUiJ0qoj4soHFL6fsq91MnUrDSKUEQVmJScKJibOAc,1975
829
- omlish/text/antlr/utils.py,sha256=hi_RFUl222r2gQsmmm5MYg5_vYa3q8u-KP4CC1ZHndA,912
830
- omlish/text/antlr/_runtime/BufferedTokenStream.py,sha256=1Rnhm62MZCWSuQeRs7lRUbdtdyo7Gyg8r4gAETjv-cE,10793
831
- omlish/text/antlr/_runtime/CommonTokenFactory.py,sha256=QrSSTH0gYhOpPeOHqrs6-2g1PGcgYvjhR6J6pynKLOc,2147
832
- omlish/text/antlr/_runtime/CommonTokenStream.py,sha256=L7giynpsS97oM6ZtPRIw8m6eIbGSaeEUJ7HN6b2etN4,2795
833
- omlish/text/antlr/_runtime/FileStream.py,sha256=X2PqkNatRxhFrk3acH4NhWv0aBCgMwAn87pmrTLmL5c,905
834
- omlish/text/antlr/_runtime/InputStream.py,sha256=50Ko4Vq-iWpk7sAMhJ0rrmB3LFv20TztUMpeIEcEfxg,2371
835
- omlish/text/antlr/_runtime/IntervalSet.py,sha256=-8puC1vhHPwFMG3YzmA62MjJf37hkBSzteJ_GIvXJhk,6002
836
- omlish/text/antlr/_runtime/LICENSE.txt,sha256=PbH7PueaS0-ZGPxND2Ezvxijz3h_EmzSL4qpuGIoHAw,1480
837
- omlish/text/antlr/_runtime/LL1Analyzer.py,sha256=Try7EBMnZfpDV-E_JDCTluc9XnbTPfNanDvVYtAUxzE,7747
838
- omlish/text/antlr/_runtime/Lexer.py,sha256=p5BbDve_V7Oms9FiiNfbVWWXc6dwt5B9wqije-RUc_0,11549
839
- omlish/text/antlr/_runtime/ListTokenSource.py,sha256=wjaO4eWaZu5LTHFlNGnaW4K8kfuPW28wVbRkyElYjD0,5381
840
- omlish/text/antlr/_runtime/Parser.py,sha256=RClLh37vtzhOpopUZPvSEesfya5yyC3Acpo1Bqzs1JM,22842
841
- omlish/text/antlr/_runtime/ParserInterpreter.py,sha256=F0Uscv8hApF7Z4Nm8sE9naGhJrn6tlix7BRcANOvpp8,7177
842
- omlish/text/antlr/_runtime/ParserRuleContext.py,sha256=2iV0H6_tjBD6LIQh8wMRlpZ4cSNxNc1_8MSeJUcdj7s,6787
843
- omlish/text/antlr/_runtime/PredictionContext.py,sha256=WWtD-vG0KcBtKqyjt42lGprSuu-VfSixeNxxbi8rQtw,23516
844
- omlish/text/antlr/_runtime/Recognizer.py,sha256=wsI9wHVeFk0b7J4E8dutGTX_B_U9lELoiTdoirQR29s,5397
845
- omlish/text/antlr/_runtime/RuleContext.py,sha256=tKXuP56if7CObxGkliLFynf8Da42Nr2CejFhReFK56g,8130
846
- omlish/text/antlr/_runtime/StdinStream.py,sha256=8up7-oFlr-ydpFV7kFqI1mRDD83Y8wYcXs0rBj-73Us,340
847
- omlish/text/antlr/_runtime/Token.py,sha256=Ywq-AwJz6GXQ431TTFExNylshQbNr6T5u4_48dxlrtk,5249
848
- omlish/text/antlr/_runtime/TokenStreamRewriter.py,sha256=2Zd8vdNQ7_XF1Y4r3axxHTD-hdauxyEPaePOqArF1g0,10355
849
- omlish/text/antlr/_runtime/Utils.py,sha256=Edv360609RwDaEz2JxlXCj9-HuXNEmqr4RVVcbhdLco,974
850
- omlish/text/antlr/_runtime/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
851
- omlish/text/antlr/_runtime/_all.py,sha256=MbNYoQYRympa1nGlgtuZ1AkJTv1SacqvBKG7bTXG0So,1042
852
- omlish/text/antlr/_runtime/_pygrun.py,sha256=22tgQKyhLO2UbnwacAzsew7bkXjENctDs4XrmSHAqXc,6328
853
- omlish/text/antlr/_runtime/atn/ATN.py,sha256=0V07bHRY-_rX-Du85F08KbMDbvr055co3Crt0VZbwOo,5792
854
- omlish/text/antlr/_runtime/atn/ATNConfig.py,sha256=sY7zO2oSh9SLSvs05gY84vtFmV4ZcTKz7dXvDIxH_ew,6573
855
- omlish/text/antlr/_runtime/atn/ATNConfigSet.py,sha256=vm06ECB3eJsD7BssUCoi08FAsnpRnJJDeuMZKMrlDNc,8336
856
- omlish/text/antlr/_runtime/atn/ATNDeserializationOptions.py,sha256=87uY6moHi9KpjeRZxwGLsaUL4eNZabFLL9nEK9m-WxU,1053
857
- omlish/text/antlr/_runtime/atn/ATNDeserializer.py,sha256=TwMeggclcky9tlmAmUXEilBfp2GMIFyveJGOYai-h5Q,18938
858
- omlish/text/antlr/_runtime/atn/ATNSimulator.py,sha256=RCQsNhVBbY0tdShJYJ7m5jhbcAWPsLe1PnasrJ4owos,2311
859
- omlish/text/antlr/_runtime/atn/ATNState.py,sha256=Eq2l1BLDqtZG8VHmoDCEUnyeiRJ-hcWPrzE5Kh_MY9w,7696
860
- omlish/text/antlr/_runtime/atn/ATNType.py,sha256=_UdEWJXYM9gmOQ0u8XxruKLJTYU5ePuNGMAQQu1mWv4,465
861
- omlish/text/antlr/_runtime/atn/LexerATNSimulator.py,sha256=ZFUTqu7D39AiC8VZunslTrsl7sZKpukEzlkWFK8CRBA,25408
862
- omlish/text/antlr/_runtime/atn/LexerAction.py,sha256=PS8ArQadDRVXYnfCbOxJBuEVh7jMX2JtarhxZJ9c-jE,10057
863
- omlish/text/antlr/_runtime/atn/LexerActionExecutor.py,sha256=GoLnxIG-mzOAHLZvfgIBMGB9i2FyXrZrqtFK3B0Hoak,6448
864
- omlish/text/antlr/_runtime/atn/ParserATNSimulator.py,sha256=5N0htVWAy3x8rfWVs1YN2Jz16LLpXKjAwefFPXgBHcM,80746
865
- omlish/text/antlr/_runtime/atn/PredictionMode.py,sha256=JAnsYHfd6vD1t1wvLNpBuyi5avjxn8Flbkh_lcrgs1g,22479
866
- omlish/text/antlr/_runtime/atn/SemanticContext.py,sha256=jYz90ZjiL4Hcya5881fTQd3zvTzTYpjsntiqiRx7xLA,10674
867
- omlish/text/antlr/_runtime/atn/Transition.py,sha256=YrPBbwKK9E4SwFNmS5u6ATfZ-uC-fx5GSAtPyQsBn4E,8775
868
- omlish/text/antlr/_runtime/atn/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
869
- omlish/text/antlr/_runtime/dfa/DFA.py,sha256=1eLI8ckM7_Q4dx_l5m1eiiqJPpaTWJ1DDKUMUUbc-qA,5381
870
- omlish/text/antlr/_runtime/dfa/DFASerializer.py,sha256=HmQpIrVl0_kit8GSCqYyT4AnFvWyBj8vuye0YeFNEKE,2549
871
- omlish/text/antlr/_runtime/dfa/DFAState.py,sha256=vZ5sBJc0hp5BaOVVT3sdQEd1jEi6yb-u-aO9DHpC2Tw,5616
872
- omlish/text/antlr/_runtime/dfa/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
873
- omlish/text/antlr/_runtime/error/DiagnosticErrorListener.py,sha256=SyUCrVs2Vzgvf8j2cSkzjODRBeXrVVrKytRH2LxjALs,4479
874
- omlish/text/antlr/_runtime/error/ErrorListener.py,sha256=pPVVFGIDbELkMhG-A5-b39y3SkNkJvsP6n8Y0TfotfA,2765
875
- omlish/text/antlr/_runtime/error/ErrorStrategy.py,sha256=0nZwpqR8L0264DphJHoEmYkQHlxZxCEdO54RAvHY6FI,30407
876
- omlish/text/antlr/_runtime/error/Errors.py,sha256=sCf-5-vb9MyO8XIDdHSqV_ozfEcRrm87yjg_sNtStXM,6808
877
- omlish/text/antlr/_runtime/error/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
878
- omlish/text/antlr/_runtime/tree/Chunk.py,sha256=xsSnPUGcULkNDJNLlpqq1tqwa2WhsgH-K1JOfKRI3_A,738
879
- omlish/text/antlr/_runtime/tree/ParseTreeMatch.py,sha256=sKf5rCZK7NosjIWIMjb7DtgobDfOa1k5sXNrm43dwRE,4506
880
- omlish/text/antlr/_runtime/tree/ParseTreePattern.py,sha256=TUpGiMTK2_qZO77f0Qa_rZidJa9IiBLoXOTjbmgwH7o,2851
881
- omlish/text/antlr/_runtime/tree/ParseTreePatternMatcher.py,sha256=EzOgoX-2sp1Gxsls8AVqiT20RbslFkt5kYuNayj-czY,16320
882
- omlish/text/antlr/_runtime/tree/RuleTagToken.py,sha256=KB4A0yYRSoYLOoPZNQogi2uU9IriMr8aiY668wB-6dg,2060
883
- omlish/text/antlr/_runtime/tree/TokenTagToken.py,sha256=V2ymw3sTiykgi7Lp64a7VsW_s8LvxAQ2FiHd5aOJPhA,1614
884
- omlish/text/antlr/_runtime/tree/Tree.py,sha256=-5aYTkO_eUUGY2BPY03IJLyG72lNMeO_uuf2u1kZL_4,5610
885
- omlish/text/antlr/_runtime/tree/Trees.py,sha256=iRcq2bhjBziXEUr6OFFs1rJs82q6wXTSduSBfCMMG7k,3985
886
- omlish/text/antlr/_runtime/tree/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
887
- omlish/text/antlr/_runtime/xpath/XPath.py,sha256=KSL1SH3VAeRDZCe4dAD7xmUdfk-j434ypZKRreFG2vk,9820
888
- omlish/text/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B2W6ie4ivtWLvlgymM,3509
889
- omlish/text/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
890
816
  omlish/text/go/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
891
817
  omlish/text/go/quoting.py,sha256=zbcPEDWsdj7GAemtu0x8nwMqpIu2C_5iInSwn6mMWlE,9142
892
818
  omlish/typedvalues/__init__.py,sha256=dQpM8VaON8S7dUv1LBwhyBDjUVo7EW475a9DpnDQz1E,936
@@ -899,9 +825,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
899
825
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
900
826
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
901
827
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
902
- omlish-0.0.0.dev436.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
903
- omlish-0.0.0.dev436.dist-info/METADATA,sha256=rhijomx6sfPC0m44wqh-2UEFSqGVGlodDFvI2Ssmr_Y,19005
904
- omlish-0.0.0.dev436.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
905
- omlish-0.0.0.dev436.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
906
- omlish-0.0.0.dev436.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
907
- omlish-0.0.0.dev436.dist-info/RECORD,,
828
+ omlish-0.0.0.dev438.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
829
+ omlish-0.0.0.dev438.dist-info/METADATA,sha256=rgXQ3eQ5a22kyq7eLSZCDuw4VCYG6emWkYn9OhW5dOI,19005
830
+ omlish-0.0.0.dev438.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
831
+ omlish-0.0.0.dev438.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
832
+ omlish-0.0.0.dev438.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
833
+ omlish-0.0.0.dev438.dist-info/RECORD,,