dotted-notation 0.47.1__tar.gz → 0.47.2__tar.gz

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 (48) hide show
  1. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/CHANGELOG.md +7 -0
  2. {dotted_notation-0.47.1/dotted_notation.egg-info → dotted_notation-0.47.2}/PKG-INFO +8 -1
  3. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/README.md +7 -0
  4. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/grammar.py +4 -1
  5. {dotted_notation-0.47.1 → dotted_notation-0.47.2/dotted_notation.egg-info}/PKG-INFO +8 -1
  6. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/pyproject.toml +1 -1
  7. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/LICENSE +0 -0
  8. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/MANIFEST.in +0 -0
  9. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/__init__.py +0 -0
  10. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/__main__.py +0 -0
  11. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/access.pxd +0 -0
  12. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/access.py +0 -0
  13. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/api.py +0 -0
  14. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/base.pxd +0 -0
  15. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/base.py +0 -0
  16. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/cli/__init__.py +0 -0
  17. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/cli/_compat.py +0 -0
  18. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/cli/formats.py +0 -0
  19. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/cli/main.py +0 -0
  20. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/containers.py +0 -0
  21. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/engine.pxd +0 -0
  22. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/engine.py +0 -0
  23. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/filters.pxd +0 -0
  24. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/filters.py +0 -0
  25. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/groups.pxd +0 -0
  26. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/groups.py +0 -0
  27. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/matchers.pxd +0 -0
  28. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/matchers.py +0 -0
  29. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/native.py +0 -0
  30. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/predicates.py +0 -0
  31. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/recursive.pxd +0 -0
  32. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/recursive.py +0 -0
  33. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/results.py +0 -0
  34. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/sql/__init__.py +0 -0
  35. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/sql/core.py +0 -0
  36. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/sql/pg.py +0 -0
  37. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/transforms.py +0 -0
  38. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/utils.py +0 -0
  39. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/utypes.py +0 -0
  40. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/wrappers.pxd +0 -0
  41. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted/wrappers.py +0 -0
  42. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted_notation.egg-info/SOURCES.txt +0 -0
  43. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted_notation.egg-info/dependency_links.txt +0 -0
  44. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted_notation.egg-info/entry_points.txt +0 -0
  45. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted_notation.egg-info/requires.txt +0 -0
  46. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/dotted_notation.egg-info/top_level.txt +0 -0
  47. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/setup.cfg +0 -0
  48. {dotted_notation-0.47.1 → dotted_notation-0.47.2}/setup.py +0 -0
@@ -3,6 +3,13 @@
3
3
  All notable changes to `dotted` are recorded here. Versions prior to
4
4
  the ones listed are omitted — browse git history for earlier entries.
5
5
 
6
+ ## [0.47.2]
7
+
8
+ ### Added
9
+ - `$str`, a `$` before a word, is a plain string wherever a key, guard
10
+ value or transform argument may stand, as `^str` already was. It was a
11
+ `ParseError`. `$0`, `$(name)` and `$$(path)` are unchanged.
12
+
6
13
  ## [0.47.1]
7
14
 
8
15
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dotted_notation
3
- Version: 0.47.1
3
+ Version: 0.47.2
4
4
  Summary: Dotted notation for safe nested data traversal with optional chaining, pattern matching, and transforms
5
5
  Author-email: Frey Waid <logophage1@gmail.com>
6
6
  License-Expression: MIT
@@ -1655,6 +1655,13 @@ Quoting also works — a quoted string is always literal:
1655
1655
  To use a literal `$$` as a key, escape with backslash (`\$$`) or quote it
1656
1656
  (`'$$(…)'`).
1657
1657
 
1658
+ A `$` before a word is not a substitution at all: `$str` is the plain string
1659
+ `$str`, in a segment, a guard value or a transform argument alike, just as
1660
+ `^str` is. Only `$0`, `$(name)` and `$$(path)` have meaning:
1661
+
1662
+ >>> dotted.get({'$amount': {'value': 2}}, '$amount.value')
1663
+ 2
1664
+
1658
1665
  <a id="type-restrictions"></a>
1659
1666
  ## Type Restrictions
1660
1667
 
@@ -1608,6 +1608,13 @@ Quoting also works — a quoted string is always literal:
1608
1608
  To use a literal `$$` as a key, escape with backslash (`\$$`) or quote it
1609
1609
  (`'$$(…)'`).
1610
1610
 
1611
+ A `$` before a word is not a substitution at all: `$str` is the plain string
1612
+ `$str`, in a segment, a guard value or a transform argument alike, just as
1613
+ `^str` is. Only `$0`, `$(name)` and `$$(path)` have meaning:
1614
+
1615
+ >>> dotted.get({'$amount': {'value': 2}}, '$amount.value')
1616
+ 2
1617
+
1611
1618
  <a id="type-restrictions"></a>
1612
1619
  ## Type Restrictions
1613
1620
 
@@ -1,6 +1,7 @@
1
1
  """
2
2
  """
3
3
  import decimal
4
+ import re
4
5
  import pyparsing as pp
5
6
  from pyparsing import pyparsing_common as ppc
6
7
 
@@ -275,7 +276,9 @@ def _paren_subst_action(t):
275
276
  _paren_subst = pp.Regex(r'\$\([^)]+\)').set_parse_action(_paren_subst_action)
276
277
  _raw_subst = pp.Regex(r'\$[0-9]+').set_parse_action(
277
278
  lambda t: matchers.Subst(int(t[0][1:])))
278
- var = _escaped_dollar | _reference | _paren_subst | _raw_subst
279
+ # $str, a $ before a word: a plain string, as ^str is. Not $0, $(name) or $$(path).
280
+ _dollar_word = pp.Regex(r'\$(?![0-9($])[^' + re.escape(reserved) + r' \t\n\r]+').set_parse_action(matchers.Word)
281
+ var = _escaped_dollar | _reference | _paren_subst | _raw_subst | _dollar_word
279
282
  slice = pp.Optional(integer | plus) + ':' + pp.Optional(integer | plus) \
280
283
  + pp.Optional(':') + pp.Optional(integer | plus)
281
284
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dotted_notation
3
- Version: 0.47.1
3
+ Version: 0.47.2
4
4
  Summary: Dotted notation for safe nested data traversal with optional chaining, pattern matching, and transforms
5
5
  Author-email: Frey Waid <logophage1@gmail.com>
6
6
  License-Expression: MIT
@@ -1655,6 +1655,13 @@ Quoting also works — a quoted string is always literal:
1655
1655
  To use a literal `$$` as a key, escape with backslash (`\$$`) or quote it
1656
1656
  (`'$$(…)'`).
1657
1657
 
1658
+ A `$` before a word is not a substitution at all: `$str` is the plain string
1659
+ `$str`, in a segment, a guard value or a transform argument alike, just as
1660
+ `^str` is. Only `$0`, `$(name)` and `$$(path)` have meaning:
1661
+
1662
+ >>> dotted.get({'$amount': {'value': 2}}, '$amount.value')
1663
+ 2
1664
+
1658
1665
  <a id="type-restrictions"></a>
1659
1666
  ## Type Restrictions
1660
1667
 
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "dotted_notation"
9
- version = "0.47.1"
9
+ version = "0.47.2"
10
10
  description = "Dotted notation for safe nested data traversal with optional chaining, pattern matching, and transforms"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.6"