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 = {}
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
data = self.normalize_target_object(obj)
if 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}
model_title = self.get_model_title()
target_title = self.handler.get_target_title()
self.app.progress_loop(
cache,
objects,
progress,
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
def get_target_objects(self, source_data=None, progress=None):