From a0ac96dc6fb8eab245ce92e5ffb4c51692a2a42f Mon Sep 17 00:00:00 2001 From: vitalis89 <92910537+vitalis89@users.noreply.github.com> Date: Fri, 12 Sep 2025 23:06:33 +0300 Subject: [PATCH] Fix ignore_keys issue in detailed__dict__ If `key` is not in result, then there's no point in trying to delete it anyway --- deepdiff/helper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deepdiff/helper.py b/deepdiff/helper.py index 1b01931..8960936 100644 --- a/deepdiff/helper.py +++ b/deepdiff/helper.py @@ -739,8 +739,8 @@ def detailed__dict__(obj: Any, ignore_private_variables: bool = True, ignore_key else: result = obj.__dict__.copy() # A shallow copy private_var_prefix = f"_{obj.__class__.__name__}__" # The semi private variables in Python get this prefix - for key in ignore_keys: - if key in result or ( + for key in obj.__dict__: + if key in ignore_keys or ( ignore_private_variables and key.startswith('__') and not key.startswith(private_var_prefix) ): del result[key]