python-jsonpath 1.2.0__py3-none-any.whl → 1.2.2__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.
jsonpath/__about__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2023-present James Prior <jamesgr.prior@gmail.com>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "1.2.0"
4
+ __version__ = "1.2.2"
jsonpath/filter.py CHANGED
@@ -243,8 +243,7 @@ class RegexLiteral(Literal[Pattern[str]]):
243
243
  if self.value.flags & flag:
244
244
  flags.append(ch)
245
245
 
246
- pattern = re.sub(r"\\(.)", r"\1", self.value.pattern)
247
- return f"/{pattern}/{''.join(flags)}"
246
+ return f"/{self.value.pattern}/{''.join(flags)}"
248
247
 
249
248
 
250
249
  class ListLiteral(FilterExpression):
jsonpath/lex.py CHANGED
@@ -88,13 +88,13 @@ class Lexer:
88
88
  key_pattern = r"[\u0080-\uFFFFa-zA-Z_][\u0080-\uFFFFa-zA-Z0-9_-]*"
89
89
 
90
90
  # `not` or !
91
- logical_not_pattern = r"(?:not|!)"
91
+ logical_not_pattern = r"(?:not\b)|!"
92
92
 
93
93
  # && or `and`
94
- logical_and_pattern = r"(?:&&|and)"
94
+ logical_and_pattern = r"&&|(?:and\b)"
95
95
 
96
96
  # || or `or`
97
- logical_or_pattern = r"(?:\|\||or)"
97
+ logical_or_pattern = r"\|\||(?:or\b)"
98
98
 
99
99
  def __init__(self, *, env: JSONPathEnvironment) -> None:
100
100
  self.env = env
@@ -153,15 +153,15 @@ class Lexer:
153
153
  ],
154
154
  (TOKEN_WILD, r"\*"),
155
155
  (TOKEN_FILTER, r"\?"),
156
- (TOKEN_IN, r"in"),
157
- (TOKEN_TRUE, r"[Tt]rue"),
158
- (TOKEN_FALSE, r"[Ff]alse"),
159
- (TOKEN_NIL, r"[Nn]il"),
160
- (TOKEN_NULL, r"[Nn]ull"),
161
- (TOKEN_NONE, r"[Nn]one"),
162
- (TOKEN_CONTAINS, r"contains"),
163
- (TOKEN_UNDEFINED, r"undefined"),
164
- (TOKEN_MISSING, r"missing"),
156
+ (TOKEN_IN, r"in\b"),
157
+ (TOKEN_TRUE, r"[Tt]rue\b"),
158
+ (TOKEN_FALSE, r"[Ff]alse\b"),
159
+ (TOKEN_NIL, r"[Nn]il\b"),
160
+ (TOKEN_NULL, r"[Nn]ull\b"),
161
+ (TOKEN_NONE, r"[Nn]one\b"),
162
+ (TOKEN_CONTAINS, r"contains\b"),
163
+ (TOKEN_UNDEFINED, r"undefined\b"),
164
+ (TOKEN_MISSING, r"missing\b"),
165
165
  (TOKEN_LIST_START, r"\["),
166
166
  (TOKEN_RBRACKET, r"]"),
167
167
  (TOKEN_COMMA, r","),
@@ -1,26 +1,25 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: python-jsonpath
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: JSONPath, JSON Pointer and JSON Patch for Python.
5
5
  Project-URL: Documentation, https://jg-rp.github.io/python-jsonpath/
6
6
  Project-URL: Issues, https://github.com/jg-rp/python-jsonpath/issues
7
7
  Project-URL: Source, https://github.com/jg-rp/python-jsonpath
8
8
  Author-email: James Prior <jamesgr.prior@gmail.com>
9
- License-Expression: MIT
10
- License-File: LICENSE.txt
9
+ License: MIT
11
10
  Classifier: Development Status :: 5 - Production/Stable
12
11
  Classifier: Intended Audience :: Developers
13
12
  Classifier: License :: OSI Approved :: MIT License
14
13
  Classifier: Programming Language :: Python
15
- Classifier: Programming Language :: Python :: 3.7
16
14
  Classifier: Programming Language :: Python :: 3.8
17
15
  Classifier: Programming Language :: Python :: 3.9
18
16
  Classifier: Programming Language :: Python :: 3.10
19
17
  Classifier: Programming Language :: Python :: 3.11
20
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
21
20
  Classifier: Programming Language :: Python :: Implementation :: CPython
22
21
  Classifier: Programming Language :: Python :: Implementation :: PyPy
23
- Requires-Python: >=3.7
22
+ Requires-Python: >=3.8
24
23
  Description-Content-Type: text/markdown
25
24
 
26
25
  <h1 align="center">Python JSONPath</h1>
@@ -91,9 +90,9 @@ conda install -c conda-forge python-jsonpath
91
90
 
92
91
  ## Related projects
93
92
 
94
- - [Python JSONPath RFC 9535](https://github.com/jg-rp/python-jsonpath-rfc9535) - An implementation of JSONPath that follows RFC 9535 much more strictly. If you require maximum interoperability with JSONPath implemented in other languages - at the expense of extra features - choose python-jsonpath-rfc9535 over python-jsonpath.
93
+ - [JSONPath RFC 9535](https://github.com/jg-rp/python-jsonpath-rfc9535) - A Python implementation of JSONPath that follows RFC 9535 much more strictly. If you require maximum interoperability with JSONPath implemented in other languages - at the expense of extra features - choose [jsonpath-rfc9535](https://pypi.org/project/jsonpath-rfc9535/) over [python-jsonpath](https://pypi.org/project/python-jsonpath/).
95
94
 
96
- python-jsonpath-rfc9535 matches RFC 9535's JSONPath model internally and is careful to match the spec's terminology. It also includes utilities for verifying and testing the [JSONPath Compliance Test Suite](https://github.com/jsonpath-standard/jsonpath-compliance-test-suite). Most notably the nondeterministic behavior of some JSONPath selectors.
95
+ jsonpath-rfc9535 matches RFC 9535's JSONPath model internally and is careful to use the spec's terminology. It also includes utilities for verifying and testing the [JSONPath Compliance Test Suite](https://github.com/jsonpath-standard/jsonpath-compliance-test-suite). Most notably the nondeterministic behavior of some JSONPath selectors.
97
96
 
98
97
  - [JSON P3](https://github.com/jg-rp/json-p3) - RFC 9535 implemented in TypeScript. JSON P3 does not include all the non-standard features of Python JSONPath, but does define some optional [extra syntax](https://jg-rp.github.io/json-p3/guides/jsonpath-extra).
99
98
 
@@ -1,13 +1,13 @@
1
- jsonpath/__about__.py,sha256=4Wt_cFljtpy0n1ce0PO_Q1JDVHTGvGvg27BJF3RI-_c,132
1
+ jsonpath/__about__.py,sha256=_iZoSz5H1QL_IGahln1eJLDPeCpxCbG73dj16UsIHNM,132
2
2
  jsonpath/__init__.py,sha256=bhEkdyCEv_5MS9J-VyMSRAyIRc-jmKFjLee8-3SYQ3U,2368
3
3
  jsonpath/__main__.py,sha256=6Y5wOE7U-MHymopXOsxofaY30tVZYPGTJO0L4vytoUw,61
4
4
  jsonpath/_data.py,sha256=JEpu5Kg0_kgxYKUilBcHVdTmPxf3-Vc0NgaW6olsqyY,577
5
5
  jsonpath/cli.py,sha256=scpWfJXl1jLQ80ZyXqMCu8JtRgZUXluC11x6OkC4oeA,10026
6
6
  jsonpath/env.py,sha256=EqlLT6_WE7WbChNs_xDipF7V8uGG3EnyKabJ_bstpGs,22815
7
7
  jsonpath/exceptions.py,sha256=5n-9vaKTu5asWllHT0IN-824ewcNCyQIyKvQ58TERVk,4351
8
- jsonpath/filter.py,sha256=_u09ewALY26RG0UvStTgtbIvt_MgjHHKkl6-FJlK7qg,20688
8
+ jsonpath/filter.py,sha256=b2s_QXjZvcefh7LfDTqSHM-hM5VYy4bpjn1IQRAjeO8,20637
9
9
  jsonpath/fluent_api.py,sha256=mfAA2t-xUGOmGVr_1h9lxo3y4FsAvaxOpvOH8jZ4DHU,9117
10
- jsonpath/lex.py,sha256=U99pjKxlGEIKM9QfH_8ax7X8ajJL4CI2TW3Lev2sZGM,10272
10
+ jsonpath/lex.py,sha256=8yrSLd3Q3A9Y4GeacOjboUp40XsR_BkRDQ3CC3UVcP8,10296
11
11
  jsonpath/match.py,sha256=b8fkPHsYjJSrTEOi68MFEyOCj0-FoQjFmMq-Ex4qvo0,3503
12
12
  jsonpath/parse.py,sha256=s7BuFsSgX2GuDubrFr-SDcCk2ZInGzPV04FNFcUwxPM,25214
13
13
  jsonpath/patch.py,sha256=tSr8-cGOY4lgnSX1PTYotObIZfakbTRaktrO4M4dqgQ,25321
@@ -28,8 +28,8 @@ jsonpath/function_extensions/match.py,sha256=KjsH33fCFGonp2RV__FuaeIOTwLLcvgaaCi
28
28
  jsonpath/function_extensions/search.py,sha256=O11fnkHlbvf0QPrLISYfhlPXBvVPBr-U8V0dGbd614Y,710
29
29
  jsonpath/function_extensions/typeof.py,sha256=yCAj9zOqSnam1mfHCGolNHWDmsBOvU3rAhbZDYycx50,1780
30
30
  jsonpath/function_extensions/value.py,sha256=fQMbPUV87Jn1nOwAlBpTeLmLIG5ejH0XQBOM_SR-Us4,721
31
- python_jsonpath-1.2.0.dist-info/METADATA,sha256=ShYCGzDgI9YuCbZre9aeA5y1GS-guyMVYiphgacaR4M,6306
32
- python_jsonpath-1.2.0.dist-info/WHEEL,sha256=TJPnKdtrSue7xZ_AVGkp9YXcvDrobsjBds1du3Nx6dc,87
33
- python_jsonpath-1.2.0.dist-info/entry_points.txt,sha256=xvbWnAebJyOMI_9ugK0xrpFRlwmEsAJD2kNHU0Dvscc,43
34
- python_jsonpath-1.2.0.dist-info/licenses/LICENSE.txt,sha256=u7PksAQGI1QYWcERHeauMseZ4XAzDKUrKW8Z4wbeU1k,1101
35
- python_jsonpath-1.2.0.dist-info/RECORD,,
31
+ python_jsonpath-1.2.2.dist-info/METADATA,sha256=Mn-V3WnVVD-_id7rRuc5PH0e4bNfmJXVTX10LoRx4Ec,6344
32
+ python_jsonpath-1.2.2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
33
+ python_jsonpath-1.2.2.dist-info/entry_points.txt,sha256=xvbWnAebJyOMI_9ugK0xrpFRlwmEsAJD2kNHU0Dvscc,43
34
+ python_jsonpath-1.2.2.dist-info/licenses/LICENSE.txt,sha256=u7PksAQGI1QYWcERHeauMseZ4XAzDKUrKW8Z4wbeU1k,1101
35
+ python_jsonpath-1.2.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.21.1
2
+ Generator: hatchling 1.26.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any