unmodified_mods = set() for changedUuid in locallyChangedUuids: item = rv.findUUID(changedUuid) alias = translator.getAliasForItem(item) # modifications that have been changed purely by # auto-triage shouldn't have recordsets created for them if (isinstance(item, pim.Note) and pim.EventStamp(item).isTriageOnlyModification() and item.doAutoTriageOnDateChange): doLog("Skipping a triage-only modification: %s", changedUuid) if self.hasState(alias): unmodified_mods.add(alias) else: continue if not self.hasState(alias): # a new, locally created item locallyAdded.add(alias) doLog("Locally modified item: %s / alias: %s", item.itsUUID, alias) localItems.add(alias) localCount = len(localItems) if localCount: _callback(msg="%d recordset(s) to generate" % localCount, totalWork=localCount, workDone=0) # Compute local records rsNewBase = { } i = 0 for alias in localItems: uuid = translator.getUUIDForAlias(alias) if uuid: item = rv.findUUID(uuid) else: item = None if (item is not None and item.isLive() and not pim.EventStamp(item).isGenerated and alias not in unmodified_mods): rs = eim.RecordSet(translator.exportItem(item)) self.share.addSharedItem(item) doLog("Computing local records for alias: %s", alias) else: rs = eim.RecordSet() doLog("No live/non-generated item for: %s", alias) rsNewBase[alias] = rs i += 1 _callback(msg="Generated %d of %d recordset(s)" % (i, localCount), work=1)