omlish 0.0.0.dev346__py3-none-any.whl → 0.0.0.dev348__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 +2 -2
- omlish/formats/json/literals.py +34 -4
- omlish/formats/json/rendering.py +8 -2
- omlish/formats/json5/rendering.py +8 -3
- omlish/specs/jmespath/visitor.py +4 -0
- {omlish-0.0.0.dev346.dist-info → omlish-0.0.0.dev348.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev346.dist-info → omlish-0.0.0.dev348.dist-info}/RECORD +11 -11
- {omlish-0.0.0.dev346.dist-info → omlish-0.0.0.dev348.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev346.dist-info → omlish-0.0.0.dev348.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev346.dist-info → omlish-0.0.0.dev348.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev346.dist-info → omlish-0.0.0.dev348.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/formats/json/literals.py
CHANGED
|
@@ -56,10 +56,26 @@ def _convert_to_string(s: str | bytes) -> str:
|
|
|
56
56
|
return s
|
|
57
57
|
|
|
58
58
|
|
|
59
|
+
def _handle_encode_quote_args(
|
|
60
|
+
q: str | None,
|
|
61
|
+
lq: str | None,
|
|
62
|
+
rq: str | None,
|
|
63
|
+
) -> tuple[str, str]:
|
|
64
|
+
if q is None:
|
|
65
|
+
q = '"'
|
|
66
|
+
if lq is None:
|
|
67
|
+
lq = q
|
|
68
|
+
if rq is None:
|
|
69
|
+
rq = q
|
|
70
|
+
return (lq, rq)
|
|
71
|
+
|
|
72
|
+
|
|
59
73
|
def encode_string(
|
|
60
74
|
s: str | bytes,
|
|
61
|
-
q: str =
|
|
75
|
+
q: str | None = None,
|
|
62
76
|
*,
|
|
77
|
+
lq: str | None = None,
|
|
78
|
+
rq: str | None = None,
|
|
63
79
|
escape_map: ta.Mapping[str, str] | None = None,
|
|
64
80
|
) -> str:
|
|
65
81
|
"""Return a JSON representation of a Python string."""
|
|
@@ -72,13 +88,21 @@ def encode_string(
|
|
|
72
88
|
def replace(m):
|
|
73
89
|
return escape_map[m.group(0)]
|
|
74
90
|
|
|
75
|
-
|
|
91
|
+
lq, rq = _handle_encode_quote_args(q, lq, rq)
|
|
92
|
+
|
|
93
|
+
return ''.join([
|
|
94
|
+
lq,
|
|
95
|
+
_ESCAPE_PAT.sub(replace, s),
|
|
96
|
+
rq,
|
|
97
|
+
])
|
|
76
98
|
|
|
77
99
|
|
|
78
100
|
def encode_string_ascii(
|
|
79
101
|
s: str | bytes,
|
|
80
|
-
q: str =
|
|
102
|
+
q: str | None = None,
|
|
81
103
|
*,
|
|
104
|
+
lq: str | None = None,
|
|
105
|
+
rq: str | None = None,
|
|
82
106
|
escape_map: ta.Mapping[str, str] | None = None,
|
|
83
107
|
) -> str:
|
|
84
108
|
"""Return an ASCII-only JSON representation of a Python string."""
|
|
@@ -105,7 +129,13 @@ def encode_string_ascii(
|
|
|
105
129
|
s2 = 0xDC00 | (n & 0x3FF)
|
|
106
130
|
return f'\\u{s1:04x}\\u{s2:04x}'
|
|
107
131
|
|
|
108
|
-
|
|
132
|
+
lq, rq = _handle_encode_quote_args(q, lq, rq)
|
|
133
|
+
|
|
134
|
+
return ''.join([
|
|
135
|
+
lq,
|
|
136
|
+
str(_ESCAPE_ASCII_PAT.sub(replace, s)),
|
|
137
|
+
rq,
|
|
138
|
+
])
|
|
109
139
|
|
|
110
140
|
|
|
111
141
|
##
|
omlish/formats/json/rendering.py
CHANGED
|
@@ -77,7 +77,7 @@ class AbstractJsonRenderer(lang.Abstract, ta.Generic[I]):
|
|
|
77
77
|
self._indent_cache[self._level] = ret
|
|
78
78
|
return ret
|
|
79
79
|
|
|
80
|
-
def _format_scalar(self, o: Scalar) -> str:
|
|
80
|
+
def _format_scalar(self, o: Scalar, state: State | None = None) -> str:
|
|
81
81
|
if o is None or isinstance(o, bool):
|
|
82
82
|
return self._literals[o]
|
|
83
83
|
|
|
@@ -129,7 +129,13 @@ class JsonRenderer(AbstractJsonRenderer[ta.Any]):
|
|
|
129
129
|
post = None
|
|
130
130
|
|
|
131
131
|
if isinstance(o, SCALAR_TYPES):
|
|
132
|
-
|
|
132
|
+
# FIXME: `less` workaround, doesn't carry color code across newlines
|
|
133
|
+
# f = self._format_scalar(o, state)
|
|
134
|
+
# if isinstance(o, str) and '\n' in f and self._style is not None and pre:
|
|
135
|
+
# f = f'\n{pre}'.join(f.split('\n'))
|
|
136
|
+
# self._write(f)
|
|
137
|
+
|
|
138
|
+
self._write(self._format_scalar(o, state)) # type: ignore[arg-type]
|
|
133
139
|
|
|
134
140
|
elif isinstance(o, ta.Mapping):
|
|
135
141
|
self._write('{')
|
|
@@ -29,16 +29,21 @@ class Json5Renderer(JsonRenderer):
|
|
|
29
29
|
|
|
30
30
|
self._multiline_strings = multiline_strings
|
|
31
31
|
|
|
32
|
-
def _format_scalar(self, o: Scalar) -> str:
|
|
32
|
+
def _format_scalar(self, o: Scalar, state: JsonRenderer.State | None = None) -> str:
|
|
33
33
|
if (
|
|
34
34
|
self._multiline_strings and
|
|
35
35
|
isinstance(o, str) and
|
|
36
36
|
'\n' in o
|
|
37
37
|
):
|
|
38
|
+
kw: dict = dict(
|
|
39
|
+
escape_map=MULTILINE_STRINGS_ESCAPE_MAP,
|
|
40
|
+
lq='"\\\n',
|
|
41
|
+
)
|
|
42
|
+
|
|
38
43
|
if self._ensure_ascii:
|
|
39
|
-
return encode_string_ascii(o,
|
|
44
|
+
return encode_string_ascii(o, **kw)
|
|
40
45
|
else:
|
|
41
|
-
return encode_string(o,
|
|
46
|
+
return encode_string(o, **kw)
|
|
42
47
|
|
|
43
48
|
else:
|
|
44
49
|
return super()._format_scalar(o)
|
omlish/specs/jmespath/visitor.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
omlish/.manifests.json,sha256=orgsRvtpHu8tdhaCvlP9v3P495OJopYYiHKjK68WtWg,8587
|
|
2
|
-
omlish/__about__.py,sha256=
|
|
2
|
+
omlish/__about__.py,sha256=VPo5EP7eKAN0kzg-6HJR4oMaz9fJ8yfitXPyfJ9iFDU,3478
|
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
|
4
4
|
omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
|
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
|
@@ -265,8 +265,8 @@ omlish/formats/json/__init__.py,sha256=i41uhoyXjuLjj5JmdRj4Ud2sfKD0j6KAyk_XyyCIB
|
|
|
265
265
|
omlish/formats/json/codecs.py,sha256=wvPHZw8cDHaOV6u7e9rfpCH3JVF_IjA6ND_fQUhcCXU,844
|
|
266
266
|
omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
|
|
267
267
|
omlish/formats/json/encoding.py,sha256=iwoYyJePibgvRDZ6e9b2OlXmOBJEczquRNoiffVf3hE,502
|
|
268
|
-
omlish/formats/json/literals.py,sha256=
|
|
269
|
-
omlish/formats/json/rendering.py,sha256=
|
|
268
|
+
omlish/formats/json/literals.py,sha256=sJb4c1FhM9Ms0c0suByMA5i7WXI-pSLsmnPVaQd-qCw,8106
|
|
269
|
+
omlish/formats/json/rendering.py,sha256=5p8kG1t3aGm2GXsb82h1S90Mmz4lzbX8sX9_qh7fH1U,4915
|
|
270
270
|
omlish/formats/json/types.py,sha256=ueO9-uOU2eVWowJf0LH1fHFLjZ6fTIZyq9qybcLQaiQ,147
|
|
271
271
|
omlish/formats/json/backends/__init__.py,sha256=K5nAP-fCgUvaSylHqgRvmJp6j6PTWdMjrNhvMouKrFc,161
|
|
272
272
|
omlish/formats/json/backends/base.py,sha256=WqtyoM82pyM0NyqpPwndrebr1bUVU1QlpmVQNrcAO8c,1114
|
|
@@ -288,7 +288,7 @@ omlish/formats/json5/codec.py,sha256=ldnxCRo0JP1fkGLt0mMxJlLvNxqIF_1KUCcSp1HtI-M
|
|
|
288
288
|
omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC4,38
|
|
289
289
|
omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
|
|
290
290
|
omlish/formats/json5/parsing.py,sha256=CWJHfe_FXCQuyDk00a7PI5wOdROq7Tc3fbWrNuwaKCw,2346
|
|
291
|
-
omlish/formats/json5/rendering.py,sha256=
|
|
291
|
+
omlish/formats/json5/rendering.py,sha256=tHo-Zrb5obxNFgz4PAg-L1IU4El_4Pu8F-eoPj5XARY,1212
|
|
292
292
|
omlish/formats/json5/_antlr/Json5Lexer.py,sha256=LnURBD0tL35VHNpxqM4DOPrTkE_9oONHtbftRM26tak,23239
|
|
293
293
|
omlish/formats/json5/_antlr/Json5Listener.py,sha256=37Jhzu7tQEw6gLIxtcZtV5Yjn08kS-GkxF7d0KjXyo8,2097
|
|
294
294
|
omlish/formats/json5/_antlr/Json5Parser.py,sha256=YU9bP89nq97A8ZCrjIcbgoBg4z76-N-6IMFGQe_ws54,19679
|
|
@@ -625,7 +625,7 @@ omlish/specs/jmespath/functions.py,sha256=YnuwlgkcbUJWlqOvSpN3LGXZpF0fpImKa--FLk
|
|
|
625
625
|
omlish/specs/jmespath/lexer.py,sha256=WGxkwQe_dcHWcJcGg9q6K-8_Q0oRdWkw09dYGFNTHbk,12639
|
|
626
626
|
omlish/specs/jmespath/parser.py,sha256=yfkydotVR4LBhrUTsptL_kLYDoGZrRN9zSEs_76kvZM,24441
|
|
627
627
|
omlish/specs/jmespath/scope.py,sha256=UyDsl9rv_c8DCjJBuVIA2ESu1jrgYvuwEKiaJDQKnT0,1590
|
|
628
|
-
omlish/specs/jmespath/visitor.py,sha256=
|
|
628
|
+
omlish/specs/jmespath/visitor.py,sha256=J1vI5WMt8v0TxCXz1EfeU_Po-t-RxaqeoSoOeL99TxE,16615
|
|
629
629
|
omlish/specs/jsonrpc/__init__.py,sha256=ugIdqHXWZjSy1R1SkwoxstO2GCHEF4W95Ogl3_5_DV4,544
|
|
630
630
|
omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI,7029
|
|
631
631
|
omlish/specs/jsonrpc/errors.py,sha256=-Zgmlo6bV6J8w5f8h9axQgLquIFBHDgIwcpufEH5NsE,707
|
|
@@ -864,9 +864,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
|
864
864
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
|
865
865
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
|
866
866
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
|
867
|
-
omlish-0.0.0.
|
|
868
|
-
omlish-0.0.0.
|
|
869
|
-
omlish-0.0.0.
|
|
870
|
-
omlish-0.0.0.
|
|
871
|
-
omlish-0.0.0.
|
|
872
|
-
omlish-0.0.0.
|
|
867
|
+
omlish-0.0.0.dev348.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
868
|
+
omlish-0.0.0.dev348.dist-info/METADATA,sha256=keSC0b7sKQuzPGKZZOOvIvBbQGN0650E6LUOdMyB4GY,4416
|
|
869
|
+
omlish-0.0.0.dev348.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
870
|
+
omlish-0.0.0.dev348.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
|
871
|
+
omlish-0.0.0.dev348.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
|
872
|
+
omlish-0.0.0.dev348.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|