seperman/deepdiff

exclude_regex_paths does not work correctly with regular expressions including $

GroundWalker7 opened this issue · 0 comments

Describe the bug
The parameter exclude_regex_paths does not work correctly with regular expressions including $
When I check the source code, I found the following code in diff.py line 481:

elif self.exclude_regex_paths and any(
[exclude_regex_path.search(level_path) for exclude_regex_path in self.exclude_regex_paths]):
skip = True

and the level_path will be like root['createTime']
So, if I want to match paths ending with time when using exclude_regex_paths, I have to use (?i).*time']$ or something like that.

To Reproduce
DeepDiff({"aTimea": 1}, {"aTimea": 2}, exclude_regex_paths=["(?i).*time$"])
and still get diff: {'values_changed': {"root['aTimea']": {'new_value': 2, 'old_value': 1}}}

OS, DeepDiff version and Python version (please complete the following information):

  • Python Version [3.12.2]
  • DeepDiff Version [7.0.1]