Просмотр исходного кода

Optimize shallow_compare_dict()

jeremystretch 3 лет назад
Родитель
Сommit
ed5fd140eb
1 измененных файлов с 6 добавлено и 6 удалено
  1. 6 6
      netbox/utilities/utils.py

+ 6 - 6
netbox/utilities/utils.py

@@ -359,18 +359,18 @@ def prepare_cloned_fields(instance):
     return QueryDict(urlencode(params), mutable=True)
     return QueryDict(urlencode(params), mutable=True)
 
 
 
 
-def shallow_compare_dict(source_dict, destination_dict, exclude=None):
+def shallow_compare_dict(source_dict, destination_dict, exclude=tuple()):
     """
     """
     Return a new dictionary of the different keys. The values of `destination_dict` are returned. Only the equality of
     Return a new dictionary of the different keys. The values of `destination_dict` are returned. Only the equality of
     the first layer of keys/values is checked. `exclude` is a list or tuple of keys to be ignored.
     the first layer of keys/values is checked. `exclude` is a list or tuple of keys to be ignored.
     """
     """
     difference = {}
     difference = {}
 
 
-    for key in destination_dict:
-        if source_dict.get(key) != destination_dict[key]:
-            if isinstance(exclude, (list, tuple)) and key in exclude:
-                continue
-            difference[key] = destination_dict[key]
+    for key, value in destination_dict.items():
+        if key in exclude:
+            continue
+        if source_dict.get(key) != value:
+            difference[key] = value
 
 
     return difference
     return difference