fix: log warnings if target object cache has duplicate keys

This commit is contained in:
Lance Edgar 2026-05-29 21:37:19 -05:00
parent e2d0794379
commit 5ea3b2a4da

View file

@ -923,24 +923,32 @@ class Importer: # pylint: disable=too-many-instance-attributes,too-many-public-
} }
} }
""" """
objects = self.get_target_objects(source_data=source_data) model_title = self.get_model_title()
target_title = self.handler.get_target_title()
cached = {} cached = {}
objects = self.get_target_objects(source_data=source_data)
log.debug("got %s %s records from target", len(objects), model_title)
def cache(obj, i): # pylint: disable=unused-argument def cache(obj, i): # pylint: disable=unused-argument
data = self.normalize_target_object(obj) data = self.normalize_target_object(obj)
if data: if data:
key = self.get_record_key(data) key = self.get_record_key(data)
if key in cached:
log.warning(
"target key was already cached (replacing) for %s: %s",
model_title,
key,
)
cached[key] = {"object": obj, "data": data} cached[key] = {"object": obj, "data": data}
model_title = self.get_model_title()
target_title = self.handler.get_target_title()
self.app.progress_loop( self.app.progress_loop(
cache, cache,
objects, objects,
progress, progress,
message=f"Reading {model_title} data from {target_title}", message=f"Reading {model_title} data from {target_title}",
) )
log.debug(f"cached %s {model_title} records from target", len(cached)) log.debug("cached %s %s records from target", len(cached), model_title)
return cached return cached
def get_target_objects(self, source_data=None, progress=None): def get_target_objects(self, source_data=None, progress=None):