deepdiff icon indicating copy to clipboard operation
deepdiff copied to clipboard

exclude_regex_paths does not work correctly with regular expressions including $

Open GroundWalker7 opened this issue 1 year ago • 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]

GroundWalker7 avatar Jul 08 '24 02:07 GroundWalker7