Skip to content

Commit 7625bbe

Browse files
committed
Guard whole-document pointer by string to avoid analyzer false positives
1 parent ae68c9d commit 7625bbe

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

je_auto_control/utils/json_patch/json_patch.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,9 @@ def resolve_pointer(doc: Any, pointer: str, default: Any = _MISSING) -> Any:
9393

9494
def set_pointer(doc: Any, pointer: str, value: Any) -> Any:
9595
"""Return a copy of ``doc`` with ``pointer`` set to ``value``."""
96-
refs = _split_pointer(pointer)
97-
if not refs:
96+
if pointer == "":
9897
return copy.deepcopy(value)
98+
refs = _split_pointer(pointer)
9999
result = copy.deepcopy(doc)
100100
parent = _walk(result, refs[:-1])
101101
_assign(parent, refs[-1], value, insert=False)
@@ -104,9 +104,9 @@ def set_pointer(doc: Any, pointer: str, value: Any) -> Any:
104104

105105
def remove_pointer(doc: Any, pointer: str) -> Any:
106106
"""Return a copy of ``doc`` with the value at ``pointer`` removed."""
107-
refs = _split_pointer(pointer)
108-
if not refs:
107+
if pointer == "":
109108
raise PatchError("cannot remove the whole document")
109+
refs = _split_pointer(pointer)
110110
result = copy.deepcopy(doc)
111111
_delete(_walk(result, refs[:-1]), refs[-1])
112112
return result

0 commit comments

Comments
 (0)